## org.apache.axis
Class AxisEngine

    java.lang.Object
      org.apache.axis.handlers.BasicHandler
          org.apache.axis.AxisEngine

All Implemented Interfaces:
  Handler, java.io.Serializable

Direct Known Subclasses:
  AxisClient, AxisServer

public abstract class AxisEngine
extends BasicHandler

An `AxisEngine` is the base class for AxisClient and AxisServer. Handles common functionality like dealing with the handler/service registries and loading properties.

Author:
  Glen Daniels (gdaniels@apache.org), Glyn Normington (glyn@apache.org)
See Also:
  Serialized Form

Field Summary
`protected boolean` `_hasSafePassword` Has the user changed the password yet? True if they have.
`protected ClassCache` `classCache` Java class cache.
`protected EngineConfiguration` `config` Our go-to guy for configuration...
`static java.lang.String` `DEFAULT_ATTACHMENT_IMPL`
`static java.lang.String` `ENV_ATTACHMENT_DIR`
`static java.lang.String` `ENV_SERVLET_CONTEXT`
`static java.lang.String` `ENV_SERVLET_REALPATH`
`protected static org.apache.commons.logging.Log` `log` The `Log` for all message logging.
`static java.lang.String` `PROP_ATTACHMENT_CLEANUP`
`static java.lang.String` `PROP_ATTACHMENT_DIR`
`static java.lang.String` `PROP_ATTACHMENT_IMPLEMENTATION`
`static java.lang.String` `PROP_BP10_COMPLIANCE` Compliance with WS-I Basic Profile.
`static java.lang.String` `PROP_BYTE_BUFFER_BACKING`
`static java.lang.String` `PROP_BYTE_BUFFER_CACHE_INCREMENT`
`static java.lang.String` `PROP_BYTE_BUFFER_RESIDENT_MAX_SIZE`
`static java.lang.String` `PROP_BYTE_BUFFER_WORK_BUFFER_SIZE`
`static java.lang.String` `PROP_DEBUG_FILE`
`static java.lang.String` `PROP_DEBUG_LEVEL`
`static java.lang.String` `PROP_DEFAULT_CONFIG_CLASS`
`static java.lang.String` `PROP_DISABLE_PRETTY_XML`
`static java.lang.String` `PROP_DOMULTIREFS`
`static java.lang.String` `PROP_DOTNET_SOAPENC_FIX` Set this property to 'true' when you want Axis to avoid soap encoded types to work around a .NET problem where it wont accept soap encoded types for a (soap encoded!) array.
`static java.lang.String` `PROP_EMIT_ALL_TYPES`
`static java.lang.String` `PROP_ENABLE_NAMESPACE_PREFIX_OPTIMIZATION`
`static java.lang.String` `PROP_PASSWORD`
`static java.lang.String` `PROP_SEND_XSI`
`static java.lang.String` `PROP_SOAP_ALLOWED_VERSION`
`static java.lang.String` `PROP_SOAP_VERSION`
`static java.lang.String` `PROP_SYNC_CONFIG`
`static java.lang.String` `PROP_TWOD_ARRAY_ENCODING`
`static java.lang.String` `PROP_XML_DECL`
`static java.lang.String` `PROP_XML_ENCODING`
`static java.lang.String` `PROP_XML_REUSE_SAX_PARSERS`
`protected boolean` `shouldSaveConfig` Should we save the engine config each time we modify it? True if we should.

Fields inherited from class org.apache.axis.handlers.BasicHandler
`makeLockable, name, options`

Constructor Summary
`AxisEngine(EngineConfiguration config)` Construct an AxisEngine using the specified engine configuration.

Method Summary
`void` `addActorURI(java.lang.String uri)` Add an actor by uri that will hold for the entire engine.
`void` `cleanup()` Cleanup routine removes application scoped objects.
`java.util.ArrayList` `getActorURIs()` Get a list of actor URIs that hold for the entire engine.
`Session` `getApplicationSession()` Get the `Session` object associated with the application session.
`ClassCache` `getClassCache()` Get the `ClassCache` associated with this engine.
`abstract AxisEngine` `getClientEngine()` Client engine access.
`EngineConfiguration` `getConfig()` Get the `EngineConfiguration` used throughout this `AxisEngine` instance.
`static MessageContext` `getCurrentMessageContext()` Get the active message context.
`Handler` `getGlobalRequest()` Get the global request `Handler`.
`Handler` `getGlobalResponse()` Get the global respones `Handler`.
`Handler` `getHandler(java.lang.String name)` Get the `Handler` for a particular local name.
`SOAPService` `getService(java.lang.String name)` Get the `SOAPService` for a particular local name.
`Handler` `getTransport(java.lang.String name)` Get the `Handler` that implements the transport for a local name.
`TypeMappingRegistry` `getTypeMappingRegistry()` Get the `TypeMappingRegistry` for this axis engine.
`boolean` `hasSafePassword()` Discover if this `AxisEngine` has a safe password.
`void` `init()` Initialize the engine.
`static void` `normaliseOptions(Handler handler)` Normalise the engine's options.
`void` `refreshGlobalOptions()` (Re-)load the global options from the registry.
`void` `removeActorURI(java.lang.String uri)` Remove an actor by uri that will hold for the entire engine.
`void` `saveConfiguration()` Write out our engine configuration.
`void` `setAdminPassword(java.lang.String pw)` Set the administration password.
`protected static void` `setCurrentMessageContext(MessageContext mc)` Set the active message context.
`void` `setShouldSaveConfig(boolean shouldSaveConfig)` Set the flag that controls if the configuration should be saved.

Methods inherited from class org.apache.axis.handlers.BasicHandler
`canHandleBlock, generateWSDL, getDeploymentData, getName, getOption, getOptions, getUnderstoodHeaders, initHashtable, onFault, setName, setOption, setOptionDefault, setOptions, setOptionsLockable`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Methods inherited from interface org.apache.axis.Handler
`invoke`

Field Detail

### log

    protected static org.apache.commons.logging.Log log

  The `Log` for all message logging.

### PROP_XML_DECL

    public static final java.lang.String PROP_XML_DECL

See Also:
  Constant Field Values

### PROP_DEBUG_LEVEL

    public static final java.lang.String PROP_DEBUG_LEVEL

See Also:
  Constant Field Values

### PROP_DEBUG_FILE

    public static final java.lang.String PROP_DEBUG_FILE

See Also:
  Constant Field Values

### PROP_DOMULTIREFS

    public static final java.lang.String PROP_DOMULTIREFS

See Also:
  Constant Field Values

### PROP_DISABLE_PRETTY_XML

    public static final java.lang.String PROP_DISABLE_PRETTY_XML

See Also:
  Constant Field Values

### PROP_ENABLE_NAMESPACE_PREFIX_OPTIMIZATION

    public static final java.lang.String PROP_ENABLE_NAMESPACE_PREFIX_OPTIMIZATION

See Also:
  Constant Field Values

### PROP_PASSWORD

    public static final java.lang.String PROP_PASSWORD

See Also:
  Constant Field Values

### PROP_SYNC_CONFIG

    public static final java.lang.String PROP_SYNC_CONFIG

See Also:
  Constant Field Values

### PROP_SEND_XSI

    public static final java.lang.String PROP_SEND_XSI

See Also:
  Constant Field Values

### PROP_ATTACHMENT_DIR

    public static final java.lang.String PROP_ATTACHMENT_DIR

See Also:
  Constant Field Values

### PROP_ATTACHMENT_IMPLEMENTATION

    public static final java.lang.String PROP_ATTACHMENT_IMPLEMENTATION

See Also:
  Constant Field Values

### PROP_ATTACHMENT_CLEANUP

    public static final java.lang.String PROP_ATTACHMENT_CLEANUP

See Also:
  Constant Field Values

### PROP_DEFAULT_CONFIG_CLASS

    public static final java.lang.String PROP_DEFAULT_CONFIG_CLASS

See Also:
  Constant Field Values

### PROP_SOAP_VERSION

    public static final java.lang.String PROP_SOAP_VERSION

See Also:
  Constant Field Values

### PROP_SOAP_ALLOWED_VERSION

    public static final java.lang.String PROP_SOAP_ALLOWED_VERSION

See Also:
  Constant Field Values

### PROP_TWOD_ARRAY_ENCODING

    public static final java.lang.String PROP_TWOD_ARRAY_ENCODING

See Also:
  Constant Field Values

### PROP_XML_ENCODING

    public static final java.lang.String PROP_XML_ENCODING

See Also:
  Constant Field Values

### PROP_XML_REUSE_SAX_PARSERS

    public static final java.lang.String PROP_XML_REUSE_SAX_PARSERS

See Also:
  Constant Field Values

### PROP_BYTE_BUFFER_BACKING

    public static final java.lang.String PROP_BYTE_BUFFER_BACKING

See Also:
  Constant Field Values

### PROP_BYTE_BUFFER_CACHE_INCREMENT

    public static final java.lang.String PROP_BYTE_BUFFER_CACHE_INCREMENT

See Also:
  Constant Field Values

### PROP_BYTE_BUFFER_RESIDENT_MAX_SIZE

    public static final java.lang.String PROP_BYTE_BUFFER_RESIDENT_MAX_SIZE

See Also:
  Constant Field Values

### PROP_BYTE_BUFFER_WORK_BUFFER_SIZE

    public static final java.lang.String PROP_BYTE_BUFFER_WORK_BUFFER_SIZE

See Also:
  Constant Field Values

### PROP_EMIT_ALL_TYPES

    public static final java.lang.String PROP_EMIT_ALL_TYPES

See Also:
  Constant Field Values

### PROP_DOTNET_SOAPENC_FIX

    public static final java.lang.String PROP_DOTNET_SOAPENC_FIX

  Set this property to 'true' when you want Axis to avoid soap encoded types to work around a .NET problem where it wont accept soap encoded types for a (soap encoded!) array.

  See Also:
    Constant Field Values

### PROP_BP10_COMPLIANCE

    public static final java.lang.String PROP_BP10_COMPLIANCE

  Compliance with WS-I Basic Profile.

  See Also:
    Constant Field Values

### DEFAULT_ATTACHMENT_IMPL

    public static final java.lang.String DEFAULT_ATTACHMENT_IMPL

See Also:
  Constant Field Values

### ENV_ATTACHMENT_DIR

    public static final java.lang.String ENV_ATTACHMENT_DIR

See Also:
  Constant Field Values

### ENV_SERVLET_REALPATH

    public static final java.lang.String ENV_SERVLET_REALPATH

See Also:
  Constant Field Values

### ENV_SERVLET_CONTEXT

    public static final java.lang.String ENV_SERVLET_CONTEXT

See Also:
  Constant Field Values

### config

    protected EngineConfiguration config

  Our go-to guy for configuration...

### _hasSafePassword

    protected boolean _hasSafePassword

  Has the user changed the password yet? True if they have.

### shouldSaveConfig

    protected boolean shouldSaveConfig

  Should we save the engine config each time we modify it? True if we should.

### classCache

    protected transient ClassCache classCache

  Java class cache.

Constructor Detail

### AxisEngine

    public AxisEngine(EngineConfiguration config)

  Construct an AxisEngine using the specified engine configuration.

Parameters:
  `config` - the EngineConfiguration for this engine

Method Detail

### setCurrentMessageContext

    protected static void setCurrentMessageContext(MessageContext mc)

  Set the active message context.

  Parameters:
    `mc` - - the new active message context.

### getCurrentMessageContext

    public static MessageContext getCurrentMessageContext()

  Get the active message context.

  Returns:
    the current active message context

### init

    public void init()

  Initialize the engine. Multiple calls will (may?) return the engine to the intialized state.

  Specified by:
    `init` in interface `Handler`
  Overrides:
    `init` in class `BasicHandler`

### cleanup

    public void cleanup()

  Cleanup routine removes application scoped objects. There is a small risk of this being called more than once so the cleanup should be designed to resist that event.

  Specified by:
    `cleanup` in interface `Handler`
  Overrides:
    `cleanup` in class `BasicHandler`

### saveConfiguration

    public void saveConfiguration()

  Write out our engine configuration.

### getConfig

    public EngineConfiguration getConfig()

  Get the `EngineConfiguration` used throughout this `AxisEngine` instance.

  Returns:
    the engine configuration instance

### hasSafePassword

    public boolean hasSafePassword()

  Discover if this `AxisEngine` has a safe password.

  Returns:
    true if it is safe, false otherwise

### setAdminPassword

    public void setAdminPassword(java.lang.String pw)

  Set the administration password.

  Parameters:
    `pw` - the literal value of the password as a `String`

### setShouldSaveConfig

    public void setShouldSaveConfig(boolean shouldSaveConfig)

  Set the flag that controls if the configuration should be saved.

  Parameters:
    `shouldSaveConfig` - true if the configuration should be changed, false otherwise

### getHandler

    public Handler getHandler(java.lang.String name)
                       throws AxisFault

  Get the `Handler` for a particular local name.

  Parameters:
    `name` - the local name of the request type
  Returns:
    the `Handler` for this request type
  Throws:
    `AxisFault`

### getService

    public SOAPService getService(java.lang.String name)
                           throws AxisFault

  Get the `SOAPService` for a particular local name.

  Parameters:
    `name` - the local name of the request type
  Returns:
    the `SOAPService` for this request type
  Throws:
    `AxisFault`

### getTransport

    public Handler getTransport(java.lang.String name)
                         throws AxisFault

  Get the `Handler` that implements the transport for a local name.

  Parameters:
    `name` - the local name to fetch the transport for
  Returns:
    a `Handler` for this local name
  Throws:
    `AxisFault`

### getTypeMappingRegistry

    public TypeMappingRegistry getTypeMappingRegistry()

  Get the `TypeMappingRegistry` for this axis engine.

  Returns:
    the `TypeMappingRegistry` if possible, or null if there is any error resolving it

### getGlobalRequest

    public Handler getGlobalRequest()
                             throws ConfigurationException

  Get the global request `Handler`.

  Returns:
    the `Handler` used for global requests
  Throws:
    `ConfigurationException`

### getGlobalResponse

    public Handler getGlobalResponse()
                              throws ConfigurationException

  Get the global respones `Handler`.

  Returns:
    the `Handler` used for global responses
  Throws:
    `ConfigurationException`

### getActorURIs

    public java.util.ArrayList getActorURIs()

  Get a list of actor URIs that hold for the entire engine.

  Returns:
    an `ArrayList` of all actor URIs as `Strings`

### addActorURI

    public void addActorURI(java.lang.String uri)

  Add an actor by uri that will hold for the entire engine.

  Parameters:
    `uri` - a `String` giving the uri of the actor to add

### removeActorURI

    public void removeActorURI(java.lang.String uri)

  Remove an actor by uri that will hold for the entire engine.

  Parameters:
    `uri` - a `String` giving the uri of the actor to remove

### getClientEngine

    public abstract AxisEngine getClientEngine()

  Client engine access.

  An AxisEngine may define another specific AxisEngine to be used by newly created Clients. For instance, a server may create an AxisClient and allow deployment to it. Then the server's services may access the AxisClient's deployed handlers and transports.

  Returns:
    an `AxisEngine` that is the client engine

### normaliseOptions

    public static void normaliseOptions(Handler handler)

  Normalise the engine's options.

  Convert boolean options from String to Boolean and default any ommitted boolean options to TRUE. Default the admin. password.

  Parameters:
    `handler` - the `Handler` to normalise; instances of `AxisEngine` get extra data normalised

### refreshGlobalOptions

    public void refreshGlobalOptions()
                              throws ConfigurationException

  (Re-)load the global options from the registry.

  Throws:
    `ConfigurationException`

### getApplicationSession

    public Session getApplicationSession()

  Get the `Session` object associated with the application session.

  Returns:
    a `Session` scoped to the application

### getClassCache

    public ClassCache getClassCache()

  Get the `ClassCache` associated with this engine.

  Returns:
    the class cache

Copyright © 2005 Apache Web Services Project. All Rights Reserved.