Search in sources :

Example 11 with Port

use of com.predic8.wsdl.Port in project service-proxy by membrane.

the class AdminPageBuilder method createNodesTable.

protected void createNodesTable(String balancerName) throws Exception {
    table().attr("cellpadding", "0", "cellspacing", "0", "border", "0", "class", "display nodesTable");
    thead();
    tr();
    createThs("Node", "Status", "Count", "Errors", "Time since last up", "Sessions", "Current Threads", "Action");
    end();
    end();
    tbody();
    for (Node n : BalancerUtil.lookupBalancer(router, balancerName).getAllNodesByCluster(params.get("cluster"))) {
        tr();
        td();
        createLink("" + n.getHost() + ":" + n.getPort(), "node", "show", createQueryString("balancer", balancerName, "cluster", params.get("cluster"), "host", n.getHost(), "port", "" + n.getPort()));
        end();
        createTds(getStatusString(n), "" + n.getCounter(), String.format("%1$.2f%%", n.getErrors() * 100), formatDurationHMS(System.currentTimeMillis() - n.getLastUpTime()), "" + BalancerUtil.lookupBalancer(router, balancerName).getSessionsByNode(params.get("cluster"), n).size(), "" + n.getThreads());
        td();
        createIcon("ui-icon-eject", "node", "takeout", "takeout", createQuery4Node(n));
        createIcon("ui-icon-circle-arrow-n", "node", "up", "up", createQuery4Node(n));
        createIcon("ui-icon-circle-arrow-s", "node", "down", "down", createQuery4Node(n));
        if (!readOnly)
            createIcon("ui-icon-trash", "node", "delete", "delete", createQuery4Node(n));
        end();
        end();
    }
    end();
    end();
    script().raw("$(document).ready(function() { $('.nodesTable').dataTable({'bJQueryUI': true, \"bPaginate\": false}); } );").end();
}
Also used : Node(com.predic8.membrane.core.interceptor.balancer.Node)

Example 12 with Port

use of com.predic8.wsdl.Port in project service-proxy by membrane.

the class Connection method open.

public static Connection open(String host, int port, String localHost, SSLProvider sslProvider, ConnectionManager mgr, int connectTimeout, @Nullable String sniServername, @Nullable ProxyConfiguration proxy, @Nullable SSLProvider proxySSLProvider) throws UnknownHostException, IOException {
    Connection con = new Connection(mgr, host, sslProvider, sniServername, proxy);
    String origHost = host;
    int origPort = port;
    SSLProvider origSSLProvider = sslProvider;
    String origSniServername = sniServername;
    if (proxy != null) {
        sslProvider = proxySSLProvider;
        host = proxy.getHost();
        port = proxy.getPort();
        sniServername = null;
    }
    if (sslProvider != null) {
        if (isNullOrEmpty(localHost))
            con.socket = sslProvider.createSocket(host, port, connectTimeout, sniServername);
        else
            con.socket = sslProvider.createSocket(host, port, InetAddress.getByName(localHost), 0, connectTimeout, sniServername);
    } else {
        if (isNullOrEmpty(localHost)) {
            con.socket = new Socket();
        } else {
            con.socket = new Socket();
            con.socket.bind(new InetSocketAddress(InetAddress.getByName(localHost), 0));
        }
        con.socket.connect(new InetSocketAddress(host, port), connectTimeout);
    }
    if (proxy != null && origSSLProvider != null) {
        con.doTunnelHandshake(proxy, con.socket, origHost, origPort);
        con.socket = origSSLProvider.createSocket(con.socket, origHost, origPort, connectTimeout, origSniServername);
    }
    log.debug("Opened connection on localPort: " + con.socket.getLocalPort());
    // Creating output stream before input stream is suggested.
    con.out = new BufferedOutputStream(con.socket.getOutputStream(), 2048);
    con.in = new BufferedInputStream(con.socket.getInputStream(), 2048);
    return con;
}
Also used : InetSocketAddress(java.net.InetSocketAddress) SSLProvider(com.predic8.membrane.core.transport.ssl.SSLProvider) Socket(java.net.Socket) SSLSocket(javax.net.ssl.SSLSocket)

Example 13 with Port

use of com.predic8.wsdl.Port in project service-proxy by membrane.

the class HttpTransport method openPort.

/**
 * @param port
 * @throws IOException
 */
@Override
public synchronized void openPort(String ip, int port, SSLProvider sslProvider) throws IOException {
    if (isAnyThreadListeningAt(ip, port)) {
        return;
    }
    if (port == -1)
        throw new RuntimeException("The port-attribute is missing (probably on a <serviceProxy> element).");
    HttpEndpointListener portListenerThread = new HttpEndpointListener(ip, port, this, sslProvider);
    portListenerMapping.put(new IpPort(ip, port), portListenerThread);
    portListenerThread.start();
    for (IPortChangeListener listener : menuListeners) {
        listener.addPort(port);
    }
}
Also used : IPortChangeListener(com.predic8.membrane.core.model.IPortChangeListener)

Example 14 with Port

use of com.predic8.wsdl.Port in project service-proxy by membrane.

the class HTTP2XMLInterceptorTest method parseXML.

@Test
public void parseXML() throws Exception {
    String xml = "<request method='POST' http-version='1.1'><uri value='http://localhost:3011/manager/person?vorname=jim&amp;nachname=panse'><host>localhost</host><port>8080</port><path><component>manager</component><component>person</component></path><query><param name='vorname'>jim</param><param name='nachname'>panse</param></query></uri></request>";
    XMLStreamReader r = XMLInputFactory.newInstance().createXMLStreamReader(new StringReader(xml));
    // skip DocumentNode
    r.next();
    Request req = new Request();
    req.parse(r);
    assertEquals("POST", req.getMethod());
    assertEquals("1.1", req.getHttpVersion());
    assertURI(req.getUri());
}
Also used : XMLStreamReader(javax.xml.stream.XMLStreamReader) StringReader(java.io.StringReader) Request(com.predic8.membrane.core.http.xml.Request) Test(org.junit.Test)

Example 15 with Port

use of com.predic8.wsdl.Port in project service-proxy by membrane.

the class MultipleLoadBalancersTest method setUp.

@Before
public void setUp() throws Exception {
    service1 = new MockService(2001);
    service2 = new MockService(2002);
    service11 = new MockService(2011);
    service12 = new MockService(2012);
    balancer = new HttpRouter();
    balancingInterceptor1 = createBalancingInterceptor(7000, "Default");
    balancingInterceptor2 = createBalancingInterceptor(7001, "Balancer2");
    BalancerUtil.lookupBalancer(balancer, "Default").up("Default", "localhost", service1.port);
    BalancerUtil.lookupBalancer(balancer, "Default").up("Default", "localhost", service2.port);
    BalancerUtil.lookupBalancer(balancer, "Balancer2").up("Default", "localhost", service11.port);
    BalancerUtil.lookupBalancer(balancer, "Balancer2").up("Default", "localhost", service12.port);
    roundRobinStrategy1 = new RoundRobinStrategy();
    roundRobinStrategy2 = new RoundRobinStrategy();
}
Also used : HttpRouter(com.predic8.membrane.core.HttpRouter) RoundRobinStrategy(com.predic8.membrane.core.interceptor.balancer.RoundRobinStrategy) Before(org.junit.Before)

Aggregations

ServiceProxy (com.predic8.membrane.core.rules.ServiceProxy)9 Test (org.junit.Test)7 ServiceProxyKey (com.predic8.membrane.core.rules.ServiceProxyKey)6 StringWriter (java.io.StringWriter)6 Exchange (com.predic8.membrane.core.exchange.Exchange)5 Rule (com.predic8.membrane.core.rules.Rule)5 Process2 (com.predic8.membrane.examples.Process2)5 File (java.io.File)5 ProxyRule (com.predic8.membrane.core.rules.ProxyRule)4 HttpRouter (com.predic8.membrane.core.HttpRouter)3 Request (com.predic8.membrane.core.http.Request)3 Response (com.predic8.membrane.core.http.Response)3 LoadBalancingInterceptor (com.predic8.membrane.core.interceptor.balancer.LoadBalancingInterceptor)3 Node (com.predic8.membrane.core.interceptor.balancer.Node)3 Definitions (com.predic8.wsdl.Definitions)3 Port (com.predic8.wsdl.Port)3 ArrayList (java.util.ArrayList)3 EtcdNodeInformation (com.predic8.membrane.core.cloud.etcd.EtcdNodeInformation)2 IPortChangeListener (com.predic8.membrane.core.model.IPortChangeListener)2 AbstractServiceProxy (com.predic8.membrane.core.rules.AbstractServiceProxy)2