Search in sources :

Example 16 with Router

use of com.predic8.membrane.core.Router in project service-proxy by membrane.

the class AccessControlInterceptor method parse.

protected AccessControl parse(String fileName, Router router) throws Exception {
    try {
        XMLInputFactory factory = XMLInputFactory.newInstance();
        XMLStreamReader reader = new FixedStreamReader(factory.createXMLStreamReader(router.getResolverMap().resolve(ResolverMap.combine(router == null ? null : router.getBaseLocation(), fileName))));
        AccessControl res = (AccessControl) new AccessControl(router).parse(reader);
        res.init(router);
        return res;
    } catch (Exception e) {
        log.error("Error initializing accessControl.", e);
        System.err.println("Error initializing accessControl: terminating.");
        throw new RuntimeException(e);
    }
}
Also used : XMLStreamReader(javax.xml.stream.XMLStreamReader) FixedStreamReader(com.predic8.membrane.core.FixedStreamReader) XMLInputFactory(javax.xml.stream.XMLInputFactory) IOException(java.io.IOException)

Example 17 with Router

use of com.predic8.membrane.core.Router 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 18 with Router

use of com.predic8.membrane.core.Router in project service-proxy by membrane.

the class AdminPageBuilder method createBalancersTable.

protected void createBalancersTable() throws UnsupportedEncodingException {
    table().attr("cellpadding", "0", "cellspacing", "0", "border", "0", "class", "display balancersTable");
    thead();
    tr();
    createThs("Name", "Failover", "Health");
    end();
    end();
    tbody();
    for (LoadBalancingInterceptor loadBalancingInterceptor : BalancerUtil.collectBalancers(router)) {
        tr();
        td();
        createLink(loadBalancingInterceptor.getName(), "clusters", null, createQueryString("balancer", loadBalancingInterceptor.getName()));
        end();
        createTds(loadBalancingInterceptor.isFailOver() ? "yes" : "no", getFormatedHealth(loadBalancingInterceptor.getName()));
        end();
    }
    end();
    end();
}
Also used : LoadBalancingInterceptor(com.predic8.membrane.core.interceptor.balancer.LoadBalancingInterceptor)

Example 19 with Router

use of com.predic8.membrane.core.Router in project service-proxy by membrane.

the class SSLProxy method init.

@Override
public void init(Router router) throws Exception {
    this.router = router;
    cm = new ConnectionManager(connectionConfiguration.getKeepAliveTimeout());
}
Also used : ConnectionManager(com.predic8.membrane.core.transport.http.ConnectionManager)

Example 20 with Router

use of com.predic8.membrane.core.Router in project service-proxy by membrane.

the class Transport method init.

public void init(Router router) throws Exception {
    this.router = router;
    if (interceptors.isEmpty()) {
        interceptors.add(new RuleMatchingInterceptor());
        interceptors.add(new ExchangeStoreInterceptor(router.getExchangeStore()));
        interceptors.add(new DispatchingInterceptor());
        interceptors.add(new ReverseProxyingInterceptor());
        interceptors.add(new UserFeatureInterceptor());
        interceptors.add(new HTTPClientInterceptor());
    }
    for (Interceptor interceptor : interceptors) {
        interceptor.init(router);
    }
}
Also used : HTTPClientInterceptor(com.predic8.membrane.core.interceptor.HTTPClientInterceptor) ReverseProxyingInterceptor(com.predic8.membrane.core.interceptor.rewrite.ReverseProxyingInterceptor) ExchangeStoreInterceptor(com.predic8.membrane.core.interceptor.ExchangeStoreInterceptor) HTTPClientInterceptor(com.predic8.membrane.core.interceptor.HTTPClientInterceptor) DispatchingInterceptor(com.predic8.membrane.core.interceptor.DispatchingInterceptor) RuleMatchingInterceptor(com.predic8.membrane.core.interceptor.RuleMatchingInterceptor) Interceptor(com.predic8.membrane.core.interceptor.Interceptor) UserFeatureInterceptor(com.predic8.membrane.core.interceptor.UserFeatureInterceptor) ReverseProxyingInterceptor(com.predic8.membrane.core.interceptor.rewrite.ReverseProxyingInterceptor) ExchangeStoreInterceptor(com.predic8.membrane.core.interceptor.ExchangeStoreInterceptor) UserFeatureInterceptor(com.predic8.membrane.core.interceptor.UserFeatureInterceptor) RuleMatchingInterceptor(com.predic8.membrane.core.interceptor.RuleMatchingInterceptor) DispatchingInterceptor(com.predic8.membrane.core.interceptor.DispatchingInterceptor)

Aggregations

HttpRouter (com.predic8.membrane.core.HttpRouter)24 ServiceProxy (com.predic8.membrane.core.rules.ServiceProxy)21 ServiceProxyKey (com.predic8.membrane.core.rules.ServiceProxyKey)19 Before (org.junit.Before)18 Rule (com.predic8.membrane.core.rules.Rule)16 IOException (java.io.IOException)9 Router (com.predic8.membrane.core.Router)8 Exchange (com.predic8.membrane.core.exchange.Exchange)6 AbstractInterceptor (com.predic8.membrane.core.interceptor.AbstractInterceptor)5 Outcome (com.predic8.membrane.core.interceptor.Outcome)5 ProxyRule (com.predic8.membrane.core.rules.ProxyRule)5 StringWriter (java.io.StringWriter)5 Test (org.junit.Test)5 Interceptor (com.predic8.membrane.core.interceptor.Interceptor)3 Node (com.predic8.membrane.core.interceptor.balancer.Node)3 Mapping (com.predic8.membrane.core.interceptor.rewrite.RewriteInterceptor.Mapping)3 AbstractServiceProxy (com.predic8.membrane.core.rules.AbstractServiceProxy)3 ProxyRuleKey (com.predic8.membrane.core.rules.ProxyRuleKey)3 HttpClientConfiguration (com.predic8.membrane.core.transport.http.client.HttpClientConfiguration)3 File (java.io.File)3