Search in sources :

Example 21 with Rule

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

the class RuleManager method ruleUp.

public synchronized void ruleUp(Rule rule) {
    int index = rules.indexOf(rule);
    if (index <= 0)
        return;
    Collections.swap(rules, index, index - 1);
    Collections.swap(ruleSources, index, index - 1);
    for (IRuleChangeListener listener : listeners) {
        listener.rulePositionsChanged();
    }
}
Also used : IRuleChangeListener(com.predic8.membrane.core.model.IRuleChangeListener)

Example 22 with Rule

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

the class RuleManager method addProxy.

public synchronized void addProxy(Rule rule, RuleDefinitionSource source) {
    if (exists(rule.getKey()))
        return;
    rules.add(rule);
    ruleSources.add(source);
    for (IRuleChangeListener listener : listeners) {
        listener.ruleAdded(rule);
    }
}
Also used : IRuleChangeListener(com.predic8.membrane.core.model.IRuleChangeListener)

Example 23 with Rule

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

the class RuleManager method replaceRule.

public synchronized void replaceRule(Rule rule, Rule newRule) {
    getExchangeStore().removeAllExchanges(rule);
    int i = rules.indexOf(rule);
    rules.set(i, newRule);
    for (IRuleChangeListener listener : listeners) {
        listener.ruleRemoved(rule, rules.size());
    }
    for (IRuleChangeListener listener : listeners) {
        listener.ruleAdded(newRule);
    }
}
Also used : IRuleChangeListener(com.predic8.membrane.core.model.IRuleChangeListener)

Example 24 with Rule

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

the class EtcdPublisher method readConfig.

public void readConfig() {
    nodesFromConfig.clear();
    for (Rule rule : router.getRuleManager().getRules()) {
        if (!(rule instanceof ServiceProxy))
            continue;
        ServiceProxy sp = (ServiceProxy) rule;
        if (sp.getPath() == null)
            continue;
        nodesFromConfig.add(new EtcdNodeInformation(sp.getPath().getValue(), "/" + UUID.randomUUID().toString(), "localhost", Integer.toString(sp.getPort()), sp.getName()));
    }
}
Also used : ServiceProxy(com.predic8.membrane.core.rules.ServiceProxy) Rule(com.predic8.membrane.core.rules.Rule)

Example 25 with Rule

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

the class AccessControlInterceptorIntegrationTest method setUp.

@Before
public void setUp() throws Exception {
    Rule rule = new ServiceProxy(new ServiceProxyKey("localhost", "POST", ".*", 3008), "thomas-bayer.com", 80);
    router = new HttpRouter();
    router.getRuleManager().addProxyAndOpenPortIfNew(rule);
}
Also used : ServiceProxyKey(com.predic8.membrane.core.rules.ServiceProxyKey) ServiceProxy(com.predic8.membrane.core.rules.ServiceProxy) Rule(com.predic8.membrane.core.rules.Rule) HttpRouter(com.predic8.membrane.core.HttpRouter) Before(org.junit.Before)

Aggregations

Rule (com.predic8.membrane.core.rules.Rule)29 ServiceProxy (com.predic8.membrane.core.rules.ServiceProxy)15 ServiceProxyKey (com.predic8.membrane.core.rules.ServiceProxyKey)13 HttpRouter (com.predic8.membrane.core.HttpRouter)11 Before (org.junit.Before)8 IRuleChangeListener (com.predic8.membrane.core.model.IRuleChangeListener)6 ProxyRule (com.predic8.membrane.core.rules.ProxyRule)6 AbstractServiceProxy (com.predic8.membrane.core.rules.AbstractServiceProxy)5 Exchange (com.predic8.membrane.core.exchange.Exchange)3 IOException (java.io.IOException)3 Test (org.junit.Test)3 AbstractExchange (com.predic8.membrane.core.exchange.AbstractExchange)2 HeaderField (com.predic8.membrane.core.http.HeaderField)2 MockInterceptor (com.predic8.membrane.core.interceptor.MockInterceptor)2 Mapping (com.predic8.membrane.core.interceptor.rewrite.RewriteInterceptor.Mapping)2 IExchangesStoreListener (com.predic8.membrane.core.model.IExchangesStoreListener)2 NullRule (com.predic8.membrane.core.rules.NullRule)2 SOAPProxy (com.predic8.membrane.core.rules.SOAPProxy)2 StringWriter (java.io.StringWriter)2 CacheBuilder (com.google.common.cache.CacheBuilder)1