Class AxisEngine

  • All Implemented Interfaces:
    java.io.Serializable, Handler
    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 Detail

      • log

        protected static org.apache.commons.logging.Log log
        The Log for all message logging.
      • PROP_DEBUG_LEVEL

        public static final java.lang.String PROP_DEBUG_LEVEL
        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_SYNC_CONFIG

        public static final java.lang.String PROP_SYNC_CONFIG
        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
      • _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
      • 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
      • 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