Package org.apache.synapse

Examples of org.apache.synapse.Mediator


                if (errorHandler != null) {
                    // set exception information to message context
                    Axis2MessageContext.setErrorInformation(synCtx, e);

                    Mediator errHandler = synCtx.getConfiguration().getNamedSequence(errorHandler);
                    if (errHandler == null) {
                        handleException("Error handler sequence mediator instance named " +
                            errorHandler + " cannot be found");
                    } else {
                        return errHandler.mediate(synCtx);
                    }
               
                } else {
                    throw e;
                }
            }

        } else {
            Mediator m = synCtx.getConfiguration().getNamedSequence(ref);
            if (m == null) {
                handleException("Sequence mediator instance named " + ref + " cannot be found.");
            } else {
                return m.mediate(synCtx);
            }
        }
        return false;
    }
View Full Code Here


            // set exception information to message context
            Axis2MessageContext.setErrorInformation(synCtx, e);

            Iterator it = errorHandlerMediators.iterator();
            while (it.hasNext()) {
                Mediator m = (Mediator) it.next();
                if (!m.mediate(synCtx)) {
                    return false;
                }
            }
        } finally {
            Iterator it = finallyMediators.iterator();
            while (it.hasNext()) {
                Mediator m = (Mediator) it.next();
                if (!m.mediate(synCtx)) {
                    return false;
                }
            }
        }
        return true;
View Full Code Here

    public boolean mediate(MessageContext synCtx) {
        log.debug("Implicit Sequence <" + getType() + "> :: mediate()");

        Iterator it = mediators.iterator();
        while (it.hasNext()) {
            Mediator m = (Mediator) it.next();
            if (!m.mediate(synCtx)) {
                return false;
            }
        }
        return true;
    }
View Full Code Here

        if (appContext != null) {

            Object o = appContext.getBean(beanName);   
            if (o != null && Mediator.class.isAssignableFrom(o.getClass())) {
                Mediator m = (Mediator) o;
                return m.mediate(synCtx);

            } else {
                handleException("Could not load bean named : " + beanName +
                    " from the Spring configuration with key : " + configKey);
            }
View Full Code Here

        if (key == null) {

            // The onError sequence for handling errors which may occur during the
            // mediation through this sequence
            Mediator errorHandlerMediator = null;

            // Setting Required property to collect the sequence statistics
            if (statsOn) {
                StatisticsStack sequenceStack = (StatisticsStack)
                    synCtx.getProperty(SynapseConstants.SEQUENCE_STATS);
                if (sequenceStack == null) {
                    sequenceStack = new SequenceStatisticsStack();
                    synCtx.setProperty(SynapseConstants.SEQUENCE_STATS, sequenceStack);
                }
                String seqName = (name == null ? SynapseConstants.ANONYMOUS_SEQUENCE : name);
                boolean isFault = synCtx.getEnvelope().getBody().hasFault();
                sequenceStack.put(seqName, System.currentTimeMillis(),
                        !synCtx.isResponse(), statsOn, isFault);
            }
            try {

                // push the errorHandler sequence into the current message as the fault handler
                if (errorHandler != null) {
                    errorHandlerMediator = synCtx.getSequence(errorHandler);

                    if (errorHandlerMediator != null) {
                        if (traceOrDebugOn) {
                            traceOrDebug(traceOn, "Setting the onError handler : " +
                                errorHandler + " for the sequence : " + name);
                        }
                        synCtx.pushFaultHandler(
                                new MediatorFaultHandler(errorHandlerMediator));
                    } else {
                        auditWarn("onError handler : " + errorHandler + " for sequence : " +
                            name + " cannot be found", synCtx);
                    }
                }

                boolean result = super.mediate(synCtx);

                // if we pushed an error handler, pop it from the fault stack
                // before we exit normally without an exception
                if (errorHandlerMediator != null) {
                    Stack faultStack = synCtx.getFaultStack();
                    if (faultStack != null && !faultStack.isEmpty()) {
                        Object o = faultStack.peek();

                        if (o instanceof MediatorFaultHandler &&
                            errorHandlerMediator.equals(
                                ((MediatorFaultHandler) o).getFaultMediator())) {
                            faultStack.pop();
                        }
                    }
                }

                if (traceOrDebugOn) {
                    if (traceOn && trace.isTraceEnabled()) {
                        trace.trace("Message : " + synCtx.getEnvelope());
                    }

                    traceOrDebug(traceOn,
                        "End : Sequence <" + (name == null ? "anonymous" : name) + ">");
                }

                return result;

            } finally {

                //If this sequence is finished it's task normally
                if (statsOn) {
                    StatisticsUtils.processSequenceStatistics(synCtx);
                }
                //If this sequence is a IN or OUT sequence of a proxy service
                StatisticsUtils.processProxyServiceStatistics(synCtx);
            }

        } else {

            Mediator m = synCtx.getSequence(key);
            if (m == null) {
                handleException("Sequence named " + key + " cannot be found", synCtx);

            } else {
                if (traceOrDebugOn) {
                    traceOrDebug(traceOn, "Executing sequence named " + key);
                }

                boolean result = m.mediate(synCtx);

                if (traceOrDebugOn) {
                    traceOrDebug(traceOn, "End : Sequence <" + key + ">");
                }
                return result;
View Full Code Here

            String msg = "The name of the actual mediator class is a required attribute";
            log.error(msg);
            throw new SynapseException(msg);
        }
        Class clazz = null;
        Mediator m = null;
        try {
            clazz = getClass().getClassLoader().loadClass(
                    name.getAttributeValue());
            m = (Mediator) clazz.newInstance();
        } catch (Exception e) {
View Full Code Here

                if (XMLConfigConstants.SEQUENCE_ELT.equals(elt.getQName())) {
                    String key = elt.getAttributeValue(
                            new QName(XMLConfigConstants.NULL_NAMESPACE, "key"));
                    // this could be a sequence def or a mediator of the main sequence
                    if (key != null) {
                        Mediator m = MediatorFactoryFinder.getInstance().getMediator(elt);
                        rootSequence.addChild(m);
                    } else {
                        defineSequence(config, elt);
                    }
                } else if (XMLConfigConstants.ENDPOINT_ELT.equals(elt.getQName())) {
                    defineEndpoint(config, elt);
                } else if (XMLConfigConstants.ENTRY_ELT.equals(elt.getQName())) {
                    defineEntry(config, elt);
                } else if (XMLConfigConstants.PROXY_ELT.equals(elt.getQName())) {
                    defineProxy(config, elt);
                } else if (XMLConfigConstants.REGISTRY_ELT.equals(elt.getQName())) {
                    defineRegistry(config, elt);
                } else if (XMLConfigConstants.TASK_ELT.equals(elt.getQName())) {
                    defineStartup(config, elt);
                } else {
                    Mediator m = MediatorFactoryFinder.getInstance().getMediator(elt);
                    rootSequence.addChild(m);
                }
            }
        }
View Full Code Here

       
        String onReject = throttleMediator.getOnRejectSeqKey();
        if (onReject != null) {
            throttle.addAttribute(fac.createOMAttribute(XMLConfigConstants.ONREJECT, nullNS, onReject));
        } else {
            Mediator mediator = throttleMediator.getOnRejectMediator();
            SequenceMediatorSerializer serializer = new SequenceMediatorSerializer();
            if (mediator != null && mediator instanceof SequenceMediator) {
                OMElement element = serializer.serializeAnonymousSequence(null,
                        (SequenceMediator) mediator);
                element.setLocalName(XMLConfigConstants.ONREJECT);
                throttle.addChild(element);
            }
        }
        String onAccept = throttleMediator.getOnAcceptSeqKey();
        if (onAccept != null) {
            throttle.addAttribute(fac.createOMAttribute(XMLConfigConstants.ONACCEPT, nullNS, onAccept));
        } else {
            Mediator mediator = throttleMediator.getOnAcceptMediator();
            SequenceMediatorSerializer serializer = new SequenceMediatorSerializer();
            if (mediator != null && mediator instanceof SequenceMediator) {
                OMElement element = serializer.serializeAnonymousSequence(null,
                        (SequenceMediator) mediator);
                element.setLocalName(XMLConfigConstants.ONACCEPT);
View Full Code Here

            isAllowed = throttleByRate(synContext, traceOrDebugOn, traceOn);
        }

        if (isAllowed) {
            if (onAcceptSeqKey != null) {
                Mediator mediator = synContext.getSequence(onAcceptSeqKey);
                if (mediator != null) {
                    return mediator.mediate(synContext);
                } else {
                    handleException("Unable to find onAccept sequence with key : "
                        + onAcceptSeqKey, synContext);
                }
            } else if (onAcceptMediator != null) {
                return onAcceptMediator.mediate(synContext);
            } else {
                return true;
            }

        } else {
            if (onRejectSeqKey != null) {
                Mediator mediator = synContext.getSequence(onRejectSeqKey);
                if (mediator != null) {
                    return mediator.mediate(synContext);
                } else {
                    handleException("Unable to find onReject sequence with key : "
                        + onRejectSeqKey, synContext);
                }
            } else if (onRejectMediator != null) {
View Full Code Here

    }

    protected boolean serialization(String inputXml, MediatorFactory mediatorFactory, MediatorSerializer mediatorSerializer) {

        OMElement inputOM = createOMElement(inputXml);
        Mediator mediator = mediatorFactory.createMediator(inputOM);
        OMElement resultOM = mediatorSerializer.serializeMediator(null, mediator);
        try {
            assertXMLEqual(resultOM.toString(), inputXml);
            return true;
        } catch (SAXException e) {
View Full Code Here

TOP

Related Classes of org.apache.synapse.Mediator

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.