Package org.apache.synapse.endpoints

Examples of org.apache.synapse.endpoints.DynamicLoadbalanceEndpoint


        fac = OMAbstractFactory.getOMFactory();
        OMElement endpointElement
                = fac.createOMElement("endpoint", SynapseConstants.SYNAPSE_OMNAMESPACE);

        DynamicLoadbalanceEndpoint dynamicLoadbalanceEndpoint = (DynamicLoadbalanceEndpoint) endpoint;

        // serialize the parameters
        serializeProperties(dynamicLoadbalanceEndpoint, endpointElement);

        serializeCommonAttributes(endpoint,endpointElement);
       

        Dispatcher dispatcher = dynamicLoadbalanceEndpoint.getDispatcher();
        if (dispatcher != null) {

            OMElement sessionElement = fac.createOMElement("session", SynapseConstants.SYNAPSE_OMNAMESPACE);
            if (dispatcher instanceof SoapSessionDispatcher) {
                sessionElement.addAttribute("type", "soap", null);
            } else if (dispatcher instanceof HttpSessionDispatcher) {
                sessionElement.addAttribute("type", "http", null);
            } else if (dispatcher instanceof SimpleClientSessionDispatcher) {
                sessionElement.addAttribute("type", "simpleClientSession", null);
            } else {
                handleException("invalid session dispatcher : " + dispatcher.getClass().getName());
            }

            long sessionTimeout = dynamicLoadbalanceEndpoint.getSessionTimeout();
            if (sessionTimeout != -1) {
                OMElement sessionTimeoutElement = fac.createOMElement("sessionTimeout",
                        SynapseConstants.SYNAPSE_OMNAMESPACE);
                sessionTimeoutElement.setText(String.valueOf(sessionTimeout));
                sessionElement.addChild(sessionTimeoutElement);
            }
            endpointElement.addChild(sessionElement);
        }

        OMElement dynamicLoadbalanceElement
                = fac.createOMElement("dynamicLoadbalance", SynapseConstants.SYNAPSE_OMNAMESPACE);
        endpointElement.addChild(dynamicLoadbalanceElement);

        // set if failover is turned off in the endpoint
        if (!dynamicLoadbalanceEndpoint.isFailover()) {
            dynamicLoadbalanceElement.addAttribute("failover", "false", null);
        }

        LoadBalanceMembershipHandler loadBalanceMembershipHandler = dynamicLoadbalanceEndpoint.getLbMembershipHandler();

        dynamicLoadbalanceElement.addAttribute(XMLConfigConstants.LOADBALANCE_ALGORITHM,
                loadBalanceMembershipHandler.getLoadbalanceAlgorithm().getClass().getName(),
                null);
View Full Code Here


                epConfig.getFirstChildWithName(new QName(SynapseConstants.SYNAPSE_NAMESPACE,
                                                         "dynamicLoadbalance"));

        if (loadbalanceElement != null) {

            DynamicLoadbalanceEndpoint loadbalanceEndpoint = new DynamicLoadbalanceEndpoint();

            // set endpoint name
            OMAttribute name =
                    epConfig.getAttribute(new QName(XMLConfigConstants.NULL_NAMESPACE, "name"));

            if (name != null) {
                loadbalanceEndpoint.setName(name.getAttributeValue());
            }

            // get the session for this endpoint
            OMElement sessionElement = epConfig.
                    getFirstChildWithName(new QName(SynapseConstants.SYNAPSE_NAMESPACE, "session"));
            if (sessionElement != null) {

                OMElement sessionTimeout = sessionElement.getFirstChildWithName(
                        new QName(SynapseConstants.SYNAPSE_NAMESPACE, "sessionTimeout"));

                if (sessionTimeout != null) {
                    try {
                        loadbalanceEndpoint.setSessionTimeout(Long.parseLong(
                                sessionTimeout.getText().trim()));
                    } catch (NumberFormatException nfe) {
                        handleException("Invalid session timeout value : " + sessionTimeout.getText());
                    }
                }

                String type = sessionElement.getAttributeValue(new QName("type"));

                if (type.equalsIgnoreCase("soap")) {
                    Dispatcher soapDispatcher = new SoapSessionDispatcher();
                    loadbalanceEndpoint.setDispatcher(soapDispatcher);

                } else if (type.equalsIgnoreCase("http")) {
                    Dispatcher httpDispatcher = new HttpSessionDispatcher();
                    loadbalanceEndpoint.setDispatcher(httpDispatcher);

                }

                loadbalanceEndpoint.setSessionAffinity(true);
            }

            // set if failover is turned off
            String failover = loadbalanceElement.getAttributeValue(new QName("failover"));
            if (failover != null && failover.equalsIgnoreCase("false")) {
                loadbalanceEndpoint.setFailover(false);
            }

            OMElement eventHandler =
                    loadbalanceElement.
                            getFirstChildWithName(new QName(SynapseConstants.SYNAPSE_NAMESPACE,
                                                            "membershipHandler"));
            if (eventHandler != null) {
                String clazz =
                        eventHandler.getAttributeValue(new QName(XMLConfigConstants.NULL_NAMESPACE,
                                                                 "class")).trim();
                try {
                    LoadBalanceMembershipHandler lbMembershipHandler =
                            (LoadBalanceMembershipHandler) Class.forName(clazz).newInstance();
                    Properties lbProperties = new Properties();
                    for (Iterator props = eventHandler.getChildrenWithName(new QName(
                            SynapseConstants.SYNAPSE_NAMESPACE, "property")); props.hasNext();) {
                        OMElement prop = (OMElement) props.next();
                        String propName =
                                prop.getAttributeValue(new QName(XMLConfigConstants.NULL_NAMESPACE,
                                                                 "name")).trim();
                        String propValue =
                                prop.getAttributeValue(new QName(XMLConfigConstants.NULL_NAMESPACE,
                                                                 "value")).trim();
                        lbProperties.put(propName, propValue);
                    }

                    // Set load balance algorithm
                    LoadbalanceAlgorithm algorithm =
                            LoadbalanceAlgorithmFactory.
                                    createLoadbalanceAlgorithm(loadbalanceElement, null);
                    lbMembershipHandler.init(lbProperties, algorithm);
                    loadbalanceEndpoint.setLoadBalanceMembershipHandler(lbMembershipHandler);
                } catch (Exception e) {
                    String msg = "Could not instantiate " +
                            "LoadBalanceMembershipHandler implementation " + clazz;
                    log.error(msg, e);
                    throw new SynapseException(msg, e);
View Full Code Here

                epConfig.getFirstChildWithName(new QName(SynapseConstants.SYNAPSE_NAMESPACE,
                                                         "dynamicLoadbalance"));

        if (loadbalanceElement != null) {

            DynamicLoadbalanceEndpoint loadbalanceEndpoint = new DynamicLoadbalanceEndpoint();

            // set endpoint name
            OMAttribute name =
                    epConfig.getAttribute(new QName(XMLConfigConstants.NULL_NAMESPACE, "name"));

            if (name != null) {
                loadbalanceEndpoint.setName(name.getAttributeValue());
            }

            // get the session for this endpoint
            OMElement sessionElement = epConfig.
                    getFirstChildWithName(new QName(SynapseConstants.SYNAPSE_NAMESPACE, "session"));
            if (sessionElement != null) {

                OMElement sessionTimeout = sessionElement.getFirstChildWithName(
                        new QName(SynapseConstants.SYNAPSE_NAMESPACE, "sessionTimeout"));

                if (sessionTimeout != null) {
                    try {
                        loadbalanceEndpoint.setSessionTimeout(Long.parseLong(
                                sessionTimeout.getText().trim()));
                    } catch (NumberFormatException nfe) {
                        handleException("Invalid session timeout value : " + sessionTimeout.getText());
                    }
                }

                String type = sessionElement.getAttributeValue(new QName("type"));

                if (type.equalsIgnoreCase("soap")) {
                    Dispatcher soapDispatcher = new SoapSessionDispatcher();
                    loadbalanceEndpoint.setDispatcher(soapDispatcher);

                } else if (type.equalsIgnoreCase("http")) {
                    Dispatcher httpDispatcher = new HttpSessionDispatcher();
                    loadbalanceEndpoint.setDispatcher(httpDispatcher);

                }

                loadbalanceEndpoint.setSessionAffinity(true);
            }

            // set if failover is turned off
            String failover = loadbalanceElement.getAttributeValue(new QName("failover"));
            if (failover != null && failover.equalsIgnoreCase("false")) {
                loadbalanceEndpoint.setFailover(false);
            } else {
                loadbalanceEndpoint.setFailover(true);
            }

            OMElement eventHandler =
                    loadbalanceElement.
                            getFirstChildWithName(new QName(SynapseConstants.SYNAPSE_NAMESPACE,
                                                            "membershipHandler"));
            if (eventHandler != null) {
                String clazz =
                        eventHandler.getAttributeValue(new QName(XMLConfigConstants.NULL_NAMESPACE,
                                                                 "class")).trim();
                try {
                    LoadBalanceMembershipHandler lbMembershipHandler =
                            (LoadBalanceMembershipHandler) Class.forName(clazz).newInstance();
                    Properties lbProperties = new Properties();
                    for (Iterator props = eventHandler.getChildrenWithName(new QName(
                            SynapseConstants.SYNAPSE_NAMESPACE, "property")); props.hasNext();) {
                        OMElement prop = (OMElement) props.next();
                        String propName =
                                prop.getAttributeValue(new QName(XMLConfigConstants.NULL_NAMESPACE,
                                                                 "name")).trim();
                        String propValue =
                                prop.getAttributeValue(new QName(XMLConfigConstants.NULL_NAMESPACE,
                                                                 "value")).trim();
                        lbProperties.put(propName, propValue);
                    }

                    // Set load balance algorithm
                    LoadbalanceAlgorithm algorithm =
                            LoadbalanceAlgorithmFactory.
                                    createLoadbalanceAlgorithm(loadbalanceElement, null);
                    lbMembershipHandler.init(lbProperties, algorithm);
                    loadbalanceEndpoint.setLoadBalanceMembershipHandler(lbMembershipHandler);
                } catch (Exception e) {
                    String msg = "Could not instantiate " +
                            "LoadBalanceMembershipHandler implementation " + clazz;
                    log.error(msg, e);
                    throw new SynapseException(msg, e);
View Full Code Here

TOP

Related Classes of org.apache.synapse.endpoints.DynamicLoadbalanceEndpoint

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.