/** * Test initialization of DynamicLoadBalanceEndpoint * * @throws AxisFault on an issue initializing DynamicLoadBalanceEndpoint */ @Test public void testInit() throws AxisFault { DynamicLoadbalanceEndpoint dynamicLoadbalanceEndpoint = new DynamicLoadbalanceEndpoint(); dynamicLoadbalanceEndpoint.init(getMockedSynapseEnvironment()); }
protected void setCookieHeader(MessageContext synCtx) { String cookieHeader = extractSessionID(synCtx, "Cookie"); if (cookieHeader != null) { synCtx.setProperty("LB_COOKIE_HEADER", cookieHeader); } }
public void send(MessageContext synCtx) { if (RuntimeStatisticCollector.isStatisticsEnabled()) { Integer currentIndex = null; boolean retry = (synCtx.getProperty(SynapseConstants.LAST_ENDPOINT) != null); if ((getDefinition() != null) && !retry) { currentIndex = OpenEventCollector.reportChildEntryEvent(synCtx, getReportingName(), ComponentType.ENDPOINT, getDefinition().getAspectConfiguration(), true); } try { sendMessage(synCtx); } finally { if (currentIndex != null) { CloseEventCollector.closeEntryEvent(synCtx, getReportingName(), ComponentType.MEDIATOR, currentIndex, false); } } } else { sendMessage(synCtx); } }
DynamicLoadbalanceEndpoint loadbalanceEndpoint = new DynamicLoadbalanceEndpoint(); loadbalanceEndpoint.setName(name.getAttributeValue()); loadbalanceEndpoint.setSessionTimeout(Long.parseLong( sessionTimeout.getText().trim())); } catch (NumberFormatException nfe) { loadbalanceEndpoint.setDispatcher(soapDispatcher); loadbalanceEndpoint.setDispatcher(httpDispatcher); loadbalanceEndpoint.setSessionAffinity(true); loadbalanceEndpoint.setFailover(false); } else { loadbalanceEndpoint.setFailover(true); createLoadbalanceAlgorithm(loadbalanceElement, null); lbMembershipHandler.init(lbProperties, algorithm); loadbalanceEndpoint.setLoadBalanceMembershipHandler(lbMembershipHandler); } catch (Exception e) { String msg = "Could not instantiate " +
int incomingPort = extractPort(synCtx, transport); EndpointReference to = getEndpointReferenceAfterURLRewrite(currentMember, transport, address, incomingPort); synCtx.setTo(to); faultHandler.setCurrentMember(currentMember); synCtx.pushFaultHandler(faultHandler); if (isFailover()) { synCtx.getEnvelope().build(); Endpoint endpoint = getEndpoint(to, currentMember, synCtx); faultHandler.setCurrentEp(endpoint); if (isSessionAffinityBasedLB()) { synCtx.setProperty(SynapseConstants.PROP_SAL_ENDPOINT_DEFAULT_SESSION_TIMEOUT, getSessionTimeout()); synCtx.setProperty(SynapseConstants.PROP_SAL_ENDPOINT_CURRENT_DISPATCHER, dispatcher); prepareEndPointSequence(synCtx, endpoint); if(newSession) { synCtx.setProperty(SynapseConstants.PROP_SAL_ENDPOINT_CURRENT_MEMBER, currentMember); memberHosts = new HashMap<String, String>()); memberHosts.put(extractHost(synCtx), "true"); setupTransportHeaders(synCtx); try { endpoint.send(synCtx);
/** * Test sending a message to a load balance EP * * @throws AxisFault on an issue sending message to DynamicLoadBalanceEndpoint */ @Test public void testSend() throws AxisFault { DynamicLoadbalanceEndpoint dynamicLoadbalanceEndpoint = new DynamicLoadbalanceEndpoint(); SynapseEnvironment synapseEnvironment = getMockedSynapseEnvironment(); dynamicLoadbalanceEndpoint.init(synapseEnvironment); MessageContext messageContext = createMessageContext(); //Mock a LoadBalanceMembershipHandler and set LoadBalanceMembershipHandler loadBalanceMembershipHandler = PowerMockito. mock(LoadBalanceMembershipHandler.class); Member member1 = new Member("localhost", 9000); Mockito.when(loadBalanceMembershipHandler. getNextApplicationMember(any(AlgorithmContext.class))).thenReturn(member1); dynamicLoadbalanceEndpoint.setLoadBalanceMembershipHandler(loadBalanceMembershipHandler); //set mocked SynapseEnvironment to message context ((Axis2MessageContext)messageContext).getAxis2MessageContext(). getConfigurationContext().getAxisConfiguration(). addParameter(SynapseConstants.SYNAPSE_ENV, synapseEnvironment); messageContext.setEnvironment(synapseEnvironment); //send message dynamicLoadbalanceEndpoint.send(messageContext); Assert.assertNotNull("SynapseConstants.LAST_ENDPOINT should return a not null value", messageContext.getProperty(SynapseConstants.LAST_ENDPOINT)); }
int incomingPort = extractPort(synCtx, transport); EndpointReference to = getEndpointReferenceAfterURLRewrite(currentMember, transport, address, incomingPort); synCtx.setTo(to); faultHandler.setCurrentMember(currentMember); synCtx.pushFaultHandler(faultHandler); if (isFailover()) { synCtx.getEnvelope().build(); Endpoint endpoint = getEndpoint(to, currentMember, synCtx); faultHandler.setCurrentEp(endpoint); if (isSessionAffinityBasedLB() && newSession) { prepareEndPointSequence(synCtx, endpoint); synCtx.setProperty(SynapseConstants.PROP_SAL_ENDPOINT_CURRENT_MEMBER, currentMember); synCtx.setProperty(SynapseConstants.PROP_SAL_ENDPOINT_CURRENT_DISPATCHER, dispatcher); memberHosts = new HashMap<String, String>()); memberHosts.put(extractHost(synCtx), "true");
Dispatcher dispatcher = dynamicLoadbalanceEndpoint.getDispatcher(); if (dispatcher != null) { long sessionTimeout = dynamicLoadbalanceEndpoint.getSessionTimeout(); if (sessionTimeout != -1) { OMElement sessionTimeoutElement = fac.createOMElement("sessionTimeout", if (!dynamicLoadbalanceEndpoint.isFailover()) { dynamicLoadbalanceElement.addAttribute("failover", "false", null); LoadBalanceMembershipHandler loadBalanceMembershipHandler = dynamicLoadbalanceEndpoint.getLbMembershipHandler();
@Override public void init(SynapseEnvironment synapseEnvironment) { if (!initialized) { super.init(synapseEnvironment); ConfigurationContext cfgCtx = ((Axis2SynapseEnvironment) synapseEnvironment).getAxis2ConfigurationContext(); ClusteringAgent clusteringAgent = cfgCtx.getAxisConfiguration().getClusteringAgent(); if (clusteringAgent == null) { throw new SynapseException("Axis2 ClusteringAgent not defined in axis2.xml"); } // Add the Axis2 GroupManagement agents for (String domain : hostDomainMap.values()) { if (clusteringAgent.getGroupManagementAgent(domain) == null) { clusteringAgent.addGroupManagementAgent(new DefaultGroupManagementAgent(), domain); } } slbMembershipHandler = new ServiceLoadBalanceMembershipHandler(hostDomainMap, getAlgorithm(), cfgCtx, isClusteringEnabled, getName()); // Initialize the SAL Sessions if already has not been initialized. SALSessions salSessions = SALSessions.getInstance(); if (!salSessions.isInitialized()) { salSessions.initialize(isClusteringEnabled, cfgCtx); } initialized = true; log.info("ServiceDynamicLoadbalanceEndpoint initialized"); } }
DynamicLoadbalanceEndpoint loadbalanceEndpoint = new DynamicLoadbalanceEndpoint(); loadbalanceEndpoint.setName(name.getAttributeValue()); loadbalanceEndpoint.setSessionTimeout(Long.parseLong( sessionTimeout.getText().trim())); } catch (NumberFormatException nfe) { loadbalanceEndpoint.setDispatcher(soapDispatcher); loadbalanceEndpoint.setDispatcher(httpDispatcher); loadbalanceEndpoint.setSessionAffinity(true); loadbalanceEndpoint.setFailover(false); } else { loadbalanceEndpoint.setFailover(true); createLoadbalanceAlgorithm(loadbalanceElement, null); lbMembershipHandler.init(lbProperties, algorithm); loadbalanceEndpoint.setLoadBalanceMembershipHandler(lbMembershipHandler); } catch (Exception e) { String msg = "Could not instantiate " +
Dispatcher dispatcher = dynamicLoadbalanceEndpoint.getDispatcher(); if (dispatcher != null) { long sessionTimeout = dynamicLoadbalanceEndpoint.getSessionTimeout(); if (sessionTimeout != -1) { OMElement sessionTimeoutElement = fac.createOMElement("sessionTimeout", if (!dynamicLoadbalanceEndpoint.isFailover()) { dynamicLoadbalanceElement.addAttribute("failover", "false", null); LoadBalanceMembershipHandler loadBalanceMembershipHandler = dynamicLoadbalanceEndpoint.getLbMembershipHandler();
@Override public void init(SynapseEnvironment synapseEnvironment) { if (!initialized) { super.init(synapseEnvironment); ConfigurationContext cfgCtx = ((Axis2SynapseEnvironment) synapseEnvironment).getAxis2ConfigurationContext(); ClusteringAgent clusteringAgent = cfgCtx.getAxisConfiguration().getClusteringAgent(); if (clusteringAgent == null) { throw new SynapseException("Axis2 ClusteringAgent not defined in axis2.xml"); } // Add the Axis2 GroupManagement agents for (String domain : hostDomainMap.values()) { if (clusteringAgent.getGroupManagementAgent(domain) == null) { clusteringAgent.addGroupManagementAgent(new DefaultGroupManagementAgent(), domain); } } slbMembershipHandler = new ServiceLoadBalanceMembershipHandler(hostDomainMap, getAlgorithm(), cfgCtx, isClusteringEnabled, getName()); // Initialize the SAL Sessions if already has not been initialized. SALSessions salSessions = SALSessions.getInstance(); if (!salSessions.isInitialized()) { salSessions.initialize(isClusteringEnabled, cfgCtx); } initialized = true; log.info("ServiceDynamicLoadbalanceEndpoint initialized"); } }
super.init(synapseEnvironment); ConfigurationContext cfgCtx = ((Axis2SynapseEnvironment) synapseEnvironment).getAxis2ConfigurationContext();
protected void setCookieHeader(MessageContext synCtx) { String cookieHeader = extractSessionID(synCtx, "Cookie"); if (cookieHeader != null) { synCtx.setProperty("LB_COOKIE_HEADER", cookieHeader); } }