Class AxisConfiguration

    • Constructor Detail

      • AxisConfiguration

        public AxisConfiguration()
        Constructor AxisConfiguration.
    • Method Detail

      • 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
      • 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...)
      • 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
      • 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
      • 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
      • 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
      • 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()
      • 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
      • 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()
      • getSystemClassLoader

        public ClassLoader getSystemClassLoader()
      • 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...
      • 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)
      • setClusteringAgent

        public void setClusteringAgent​(ClusteringAgent clusteringAgent)
      • getModulesForPolicyNamesapce

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

        public void registerModulePolicySupport​(AxisModule axisModule)
      • registerLocalPolicyAssertions

        public void registerLocalPolicyAssertions​(AxisModule axisModule)
      • 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
      • 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)