Class AxisConfiguration

java.lang.Object
org.apache.axis2.description.AxisDescription
org.apache.axis2.engine.AxisConfiguration
All Implemented Interfaces:
DescriptionConstants, ParameterInclude

public class AxisConfiguration extends AxisDescription
Class AxisConfiguration
  • Field Details

  • Constructor Details

    • AxisConfiguration

      public AxisConfiguration()
      Constructor AxisConfiguration.
  • Method Details

    • addMessageReceiver

      public void addMessageReceiver(String mepURL, MessageReceiver messageReceiver)
    • addMessageBuilder

      public void addMessageBuilder(String contentType, Builder messageBuilder)
      Register a messageBuilder implementation against a content type. This is used by Axis2 to support different message formats.
      Parameters:
      contentType - the relevant content-type (i.e. "text/xml")
      messageBuilder - a Builder implementation
    • addMessageFormatter

      public void addMessageFormatter(String contentType, MessageFormatter messageFormatter)
      Register a messageFormatter implementation against a content type. This is used by Axis2 to support serialization of messages to different message formats. (Eg: JSON)
      Parameters:
      contentType - the relevant content-type (i.e. "text/xml")
      messageFormatter - a MessageFormatter implementation
    • addModule

      public void addModule(AxisModule module) throws AxisFault
      Add an available Module to this configuration
      Parameters:
      module - an AxisModule
      Throws:
      AxisFault - in case of error
    • deployModule

      public void deployModule(String moduleFileName) throws DeploymentException
      Throws:
      DeploymentException
    • removeModule

      public void removeModule(String moduleName, String moduleVersion)
      Remove a module with moduleName & moduleVersion
      Parameters:
      moduleName - the name of the module to remove
      moduleVersion - the version of the module to remove
    • removeModule

      public void removeModule(String moduleName, Version moduleVersion)
      Remove a module with moduleName & moduleVersion
      Parameters:
      moduleName - the name of the module to remove
      moduleVersion - the version of the module to remove
    • addModuleConfig

      public void addModuleConfig(ModuleConfiguration moduleConfiguration)
      Adds module configuration, if there is a moduleConfig tag in service.
      Parameters:
      moduleConfiguration - a ModuleConfiguration to remember
    • addObservers

      public void addObservers(AxisObserver axisObserver)
      Register given AxisObserver object to the AxisConfiguration.
      Parameters:
      axisObserver - the axis observer
    • removeObserver

      public void removeObserver(AxisObserver axisObserver)
      Unregister the given AxisObserver object if it is registered with the AxisConfiguration.
      Parameters:
      axisObserver - the axis observer
    • addService

      public void addService(AxisService service) throws AxisFault
      Add an AxisService to our global configuration. Since services must be in ServiceGroups, we construct an anonymous AxisServiceGroup around the passed AxisService and then call addServiceGroup().
      Parameters:
      service - an AxisService to deploy.
      Throws:
      AxisFault - if something goes wrong (invalid service, service is already deployed, etc...)
    • addServiceGroup

      public void addServiceGroup(AxisServiceGroup axisServiceGroup) throws AxisFault
      Throws:
      AxisFault
    • addServiceToExistingServiceGroup

      public void addServiceToExistingServiceGroup(AxisService axisService, String serviceGroupName) throws AxisFault
      This method is used to add a service to an existing active service group in the axis configuration
      Parameters:
      axisService - service to be added to the existing service group provided
      serviceGroupName - name of the service group which should be existing in the axis configuration
      Throws:
      AxisFault - in case of an error in adding the service to the group specified or if the group is not existing
    • addToAllServicesMap

      public void addToAllServicesMap(AxisService axisService) throws AxisFault
      Throws:
      AxisFault
    • removeServiceGroup

      public AxisServiceGroup removeServiceGroup(String serviceGroupName) throws AxisFault
      Throws:
      AxisFault
    • addTransportIn

      public void addTransportIn(TransportInDescription transport) throws AxisFault
      Add an incoming transport description (i.e. receiver) to our configuration.
      Parameters:
      transport - TransportInDescription to add.
      Throws:
      AxisFault
    • addTransportOut

      public void addTransportOut(TransportOutDescription transport) throws AxisFault
      Add an outgoing transport description (i.e. sender) to our configuration.
      Parameters:
      transport - TransportOutDescription to add.
      Throws:
      AxisFault
    • engageModule

      public void engageModule(String moduleref) throws AxisFault
      Engages the default module version corresponding to given module name , or if the module name contains version number in it then it will engage the correct module. Both of the below two cases are valid 1. engageModule("addressing"); 2. engageModule("addressing-1.23");
      Parameters:
      moduleref - name of module to engage
      Throws:
      AxisFault
    • engageModule

      public void engageModule(String moduleName, String versionID) throws AxisFault
      Engages a module using given name and its version ID.
      Parameters:
      moduleName - name of module to engage
      versionID - version of module to engage
      Throws:
      AxisFault
    • onEngage

      public void onEngage(AxisModule module, AxisDescription engager) throws AxisFault
      Overrides:
      onEngage in class AxisDescription
      Throws:
      AxisFault
    • onDisengage

      public void onDisengage(AxisModule module) throws AxisFault
      To dis-engage a module from the system. This will remove all the handlers belonging to this module from all the handler chains.
      Overrides:
      onDisengage in class AxisDescription
      Parameters:
      module - module to disengage
      Throws:
      AxisFault
    • notifyObservers

      public void notifyObservers(AxisEvent event, AxisService service)
    • notifyObservers

      public void notifyObservers(AxisEvent event, AxisModule moule)
    • notifyObservers

      public void notifyObservers(AxisEvent event, AxisServiceGroup serviceGroup)
    • removeService

      public void removeService(String name) throws AxisFault
      Remove a service.
      Parameters:
      name - name of service to remove
      Throws:
      AxisFault
    • addGlobalModuleRef

      public void addGlobalModuleRef(String moduleName)
      Add an AxisModule to the list of globally deployed modules.

      TODO: should this check for duplicate names?

      Parameters:
      moduleName - name of AxisModule to add to list.
    • engageGlobalModules

      public void engageGlobalModules() throws AxisFault
      Engage all the previously added global modules.
      Throws:
      AxisFault - if an individual engageModule() fails
    • getFaultyModules

      public Hashtable<String,String> getFaultyModules()
    • getFaultyServices

      public Hashtable<String,String> getFaultyServices()
    • addFaultyServiceDuetoModule

      public void addFaultyServiceDuetoModule(String moduleName, FaultyServiceData faultyServiceData)
      Updates the map that keeps track of faulty services due to modules
      Parameters:
      moduleName - This service has become faulty due this module.
      faultyServiceData - Data that are required when recovering the faulty service.
    • getFaultyServicesDuetoModule

      public Map<String,FaultyServiceData> getFaultyServicesDuetoModule(String moduleName)
      Returns a map which contains the faulty services due a particular module.
      Parameters:
      moduleName - name of the module about which to inquire
      Returns:
      a Map<String, FaultyServiceData> mapping service name to data
    • getFaultyServicesDuetoModules

      public Map<String,Map<String,FaultyServiceData>> getFaultyServicesDuetoModules()
      Returns the map which keeps track of faulty services due to modules.
      Returns:
      a Map keyed by module name, containing Maps keyed by service name containing FaultyServiceData for each faulty service.
    • removeFaultyServiceDuetoModule

      public void removeFaultyServiceDuetoModule(String moduleName, String serviceGroupName)
      Removes a faulty service for a given module from the internal map. TODO: Doesn't this actually remove a faulty service *group*? And should this even be public?
      Parameters:
      moduleName - name of the module to look up
      serviceGroupName - name of the service group to remove
    • removeFaultyService

      public void removeFaultyService(String key)
    • getOutFlowPhases

      public List<Phase> getOutFlowPhases()
    • getInFaultFlowPhases

      public List<Phase> getInFaultFlowPhases()
      Returns:
      Returns ArrayList.
    • getInFlowPhases

      public List<Phase> getInFlowPhases()
    • getMessageReceiver

      public MessageReceiver getMessageReceiver(String mepURL)
    • getMessageBuilder

      public Builder getMessageBuilder(String contentType)
      Get a Builder for a particular content type.
      Parameters:
      contentType - the desired content type
      Returns:
      the configured message builder implementation class name against the given content type.
    • getMessageBuilder

      public Builder getMessageBuilder(String contentType, boolean defaultBuilder)
    • getMessageFormatter

      public MessageFormatter getMessageFormatter(String contentType)
      Get a MessageFormatter for the specified content type.
      Parameters:
      contentType - content type to look up
      Returns:
      a MessageFormatter corresponding to the given content type, or null.
    • getModule

      public AxisModule getModule(String name)
      Get an AxisModule by name. If the exact name passed (which might contain a version) is present, we'll return that, otherwise we'll look for the default version *if* there is no version in the passed name.
      Parameters:
      name - module name to look up
      Returns:
      an AxisModule if found, or null
    • getModule

      public AxisModule getModule(String moduleName, String moduleVersion)
      Return the module having name=moduleName & version=moduleVersion
      Parameters:
      moduleName - The module name
      moduleVersion - The version of the module
      Returns:
      The AxisModule having name=moduleName & version=moduleVersion
    • getModuleClassLoader

      public ClassLoader getModuleClassLoader()
      Get the class loader that becomes the parent of all the modules
      Returns:
      a ClassLoader
    • getModuleConfig

      public ModuleConfiguration getModuleConfig(String moduleName)
    • getModules

      public HashMap<String,AxisModule> getModules()
      Returns:
      Returns HashMap.
    • getOutFaultFlowPhases

      public List<Phase> getOutFaultFlowPhases()
      Returns:
      Returns ArrayList.
    • getPhasesInfo

      public PhasesInfo getPhasesInfo()
    • getRepository

      public URL getRepository()
    • getService

      public AxisService getService(String name) throws AxisFault
      Method getService.
      Parameters:
      name - the name of the service to look up
      Returns:
      an AxisService if found, or null
      Throws:
      AxisFault
    • getServiceForActivation

      public AxisService getServiceForActivation(String serviceName)
      Service can start and stop, once stopped it cannot be accessed, so we need a way to get the service even if service is not active.
      Parameters:
      serviceName - name to look up
      Returns:
      AxisService
    • getServiceClassLoader

      public ClassLoader getServiceClassLoader()
    • getServiceGroup

      public AxisServiceGroup getServiceGroup(String serviceNameAndGroupString)
    • getServiceGroups

      public Iterator<AxisServiceGroup> getServiceGroups()
    • getServices

      public HashMap<String,AxisService> getServices()
    • getSystemClassLoader

      public ClassLoader getSystemClassLoader()
    • getTransportIn

      public TransportInDescription getTransportIn(String name)
    • getTransportOut

      public TransportOutDescription getTransportOut(String name)
    • getTransportsIn

      public HashMap<String,TransportInDescription> getTransportsIn()
    • getTransportsOut

      public HashMap<String,TransportOutDescription> getTransportsOut()
    • isEngaged

      public boolean isEngaged(String moduleId)
      Description copied from class: AxisDescription
      Check if a given module is engaged at this level.
      Overrides:
      isEngaged in class AxisDescription
      Parameters:
      moduleId - module to investigate.
      Returns:
      true if engaged, false if not. TODO: Handle versions? isEngaged("addressing") should be true even for versioned modulename...
    • isEngaged

      public boolean isEngaged(AxisModule axisModule)
      Overrides:
      isEngaged in class AxisDescription
    • setGlobalOutPhase

      public void setGlobalOutPhase(List<Phase> outPhases)
    • setInFaultPhases

      public void setInFaultPhases(List<Phase> list)
      Set the inbound fault phases TODO: Passing mutable lists like this and using them directly is bad practice.
      Parameters:
      list - a List of Phases which will become our inbound fault flow
    • setInPhasesUptoAndIncludingPostDispatch

      public void setInPhasesUptoAndIncludingPostDispatch(List<Phase> inPhasesUptoAndIncludingPostDispatch)
    • setModuleClassLoader

      public void setModuleClassLoader(ClassLoader classLoader)
    • setOutFaultPhases

      public void setOutFaultPhases(List<Phase> list)
      Set the outbound fault phases TODO: Passing mutable lists like this and using them directly is bad practice.
      Parameters:
      list - a List of Phases which will become our outbound fault flow
    • setPhasesInfo

      public void setPhasesInfo(PhasesInfo phasesInfo)
    • setRepository

      public void setRepository(URL axis2Repository)
    • setServiceClassLoader

      public void setServiceClassLoader(ClassLoader classLoader)
    • setSystemClassLoader

      public void setSystemClassLoader(ClassLoader classLoader)
    • addDefaultModuleVersion

      public void addDefaultModuleVersion(String moduleName, String moduleVersion)
      Adds a default module version, which can be done either programmatically or by using axis2.xml. The default module version is important if user asks to engage a module without given version ID, in which case, the default version is engaged. TODO: This currently does NOTHING if a default has already been set. Should either overwrite or throw.
      Parameters:
      moduleName - the name of the module for which we're setting the default version
      moduleVersion - the default version
    • getDefaultModuleVersion

      public String getDefaultModuleVersion(String moduleName)
    • getDefaultModule

      public AxisModule getDefaultModule(String moduleName)
    • getClusteringAgent

      public ClusteringAgent getClusteringAgent()
    • setClusteringAgent

      public void setClusteringAgent(ClusteringAgent clusteringAgent)
    • getTransactionConfiguration

      public TransactionConfiguration getTransactionConfiguration()
    • setTransactionConfig

      public void setTransactionConfig(TransactionConfiguration transactionConfiguration)
    • getKey

      public Object getKey()
      Specified by:
      getKey in class AxisDescription
    • stopService

      public void stopService(String serviceName) throws AxisFault
      Throws:
      AxisFault
    • startService

      public void startService(String serviceName) throws AxisFault
      Throws:
      AxisFault
    • getModulesForPolicyNamesapce

      public List<AxisModule> getModulesForPolicyNamesapce(String namesapce)
    • registerModulePolicySupport

      public void registerModulePolicySupport(AxisModule axisModule)
    • registerLocalPolicyAssertions

      public void registerLocalPolicyAssertions(AxisModule axisModule)
    • getObserversList

      public ArrayList<AxisObserver> getObserversList()
      This method returns read-only list of AxisObservers registered with this AxisConfiguration.
      Returns:
      ArrayList
    • isStart

      public boolean isStart()
    • setStart

      public void setStart(boolean start)
    • getTargetResolverChain

      public TargetResolver getTargetResolverChain()
      getTargetResolverChain returns an instance of TargetResolver which iterates over the registered TargetResolvers, calling each one in turn when resolveTarget is called.
      Returns:
      a TargetResolver which iterates over all registered TargetResolvers.
    • addTargetResolver

      public void addTargetResolver(TargetResolver tr)
    • addLocalPolicyAssertion

      public void addLocalPolicyAssertion(QName name)
    • getLocalPolicyAssertions

      public List<QName> getLocalPolicyAssertions()
    • removeLocalPolicyAssertion

      public void removeLocalPolicyAssertion(QName name)
    • isAssertionLocal

      public boolean isAssertionLocal(QName name)
    • addDataLocatorClassNames

      public void addDataLocatorClassNames(String dialect, String classname)
      Allows to define/configure Data Locator for specified dialect at Axis 2 Configuration.
      Parameters:
      dialect - - an absolute URI represents the format and version of data
      classname - - class name of the Data Locator configured to support retrieval for the specified dialect.
    • addDataLocator

      public void addDataLocator(String dialect, AxisDataLocator dataLocator)
      For internal used only! To store instance of DataLocator when it is first loaded. This allows to reuse of the DataLocator after it is initially loaded.
      Parameters:
      dialect - - an absolute URI represents the format and version of data
      dataLocator - - specified an DataLocator instance to support retrieval of the specified dialect.
    • getDataLocator

      public AxisDataLocator getDataLocator(String dialect)
      Return DataLocator instance for specified dialect.
      Parameters:
      dialect - the dialect to look up
      Returns:
      an AxisDataLocator, or null
    • getDataLocatorClassName

      public String getDataLocatorClassName(String dialect)
      Return classname of DataLocator configured for specified dialect.
      Parameters:
      dialect - the dialect to look up
      Returns:
      a String containing a class name, or null
    • validateSystemPredefinedPhases

      public void validateSystemPredefinedPhases() throws DeploymentException
      Checks whether the system pre-defined phases for all the flows, have been changed. If they have been changed, throws a DeploymentException.
      Throws:
      DeploymentException
    • getConfigurator

      public AxisConfigurator getConfigurator()
    • setConfigurator

      public void setConfigurator(AxisConfigurator configurator)
    • cleanup

      public void cleanup()
    • insertPhase

      public void insertPhase(Deployable d, int flow) throws AxisFault
      This method can be used to insert a phase at the runtime for a given location And the relative location can be specified by beforePhase and afterPhase. Parameters Either or both of them can be null , if both the parameters are null then the phase will be added some where in the global phase. If one of them are null then the phase will be added - If the beforePhase is null then the phase will be added after the afterPhase - If the after phase is null then the phase will be added before the beforePhase Type of the flow will be specified by the parameter flow. 1 - Inflow 2 - out flow 3 - fault in flow 4 - fault out flow
      Parameters:
      d - the Deployable representing the Phase to deploy
      flow - the type of the flow
      Throws:
      AxisFault - : If something went wrong
    • isChildFirstClassLoading

      public boolean isChildFirstClassLoading()
    • isGlobalModulesRegistered

      public boolean isGlobalModulesRegistered(String moduleName)