Search in sources :

Example 6 with Flow

use of com.predic8.membrane.core.interceptor.Interceptor.Flow in project service-proxy by membrane.

the class MemoryExchangeStore method snap.

public void snap(AbstractExchange exc, Flow flow) {
    if (flow != Flow.REQUEST)
        return;
    if (isKeyInStore(exc)) {
        getKeyList(exc).add(exc);
    } else {
        List<AbstractExchange> list = new Vector<AbstractExchange>();
        list.add(exc);
        exchangesMap.put(exc.getRule().getKey(), list);
    }
    totals.add(exc);
    for (IExchangesStoreListener listener : exchangesStoreListeners) {
        exc.addExchangeStoreListener(listener);
        listener.addExchange(exc.getRule(), exc);
    }
}
Also used : IExchangesStoreListener(com.predic8.membrane.core.model.IExchangesStoreListener) AbstractExchange(com.predic8.membrane.core.exchange.AbstractExchange) Vector(java.util.Vector)

Example 7 with Flow

use of com.predic8.membrane.core.interceptor.Interceptor.Flow in project service-proxy by membrane.

the class RequestInterceptor method handleRequest.

@Override
public Outcome handleRequest(Exchange exc) throws Exception {
    boolean logDebug = log.isDebugEnabled();
    for (Interceptor i : getInterceptors()) {
        EnumSet<Flow> f = i.getFlow();
        if (!f.contains(Flow.REQUEST))
            continue;
        if (logDebug)
            log.debug("Invoking request handler: " + i.getDisplayName() + " on exchange: " + exc);
        Outcome o = i.handleRequest(exc);
        if (o != Outcome.CONTINUE)
            return o;
    }
    return Outcome.CONTINUE;
}
Also used : Outcome(com.predic8.membrane.core.interceptor.Outcome) Interceptor(com.predic8.membrane.core.interceptor.Interceptor)

Example 8 with Flow

use of com.predic8.membrane.core.interceptor.Interceptor.Flow in project service-proxy by membrane.

the class GroovyInterceptor method logGroovyException.

private void logGroovyException(Flow flow, Exception e) {
    try {
        ServiceProxy sp = getRule();
        log.error("Exception in Groovy script in service proxy '" + sp.getName() + "' on port " + sp.getPort() + " with path " + (sp.getPath() != null ? sp.getPath().getValue() : "*"));
        if (flow != null)
            log.error("Flow: " + flow.name());
        else
            log.error("There is possibly a syntax error in the groovy script (compilation error)");
    } catch (NoSuchElementException e2) {
    // ignore - logging should not break anything
    } finally {
        e.printStackTrace();
    }
}
Also used : ServiceProxy(com.predic8.membrane.core.rules.ServiceProxy) NoSuchElementException(java.util.NoSuchElementException)

Aggregations

AbstractExchange (com.predic8.membrane.core.exchange.AbstractExchange)2 Interceptor (com.predic8.membrane.core.interceptor.Interceptor)2 AbstractExchangeViewerListener (com.predic8.membrane.core.model.AbstractExchangeViewerListener)2 AbstractExchangeSnapshot (com.predic8.membrane.core.exchange.snapshots.AbstractExchangeSnapshot)1 DynamicAbstractExchangeSnapshot (com.predic8.membrane.core.exchange.snapshots.DynamicAbstractExchangeSnapshot)1 AbstractInterceptor (com.predic8.membrane.core.interceptor.AbstractInterceptor)1 Flow (com.predic8.membrane.core.interceptor.Interceptor.Flow)1 Outcome (com.predic8.membrane.core.interceptor.Outcome)1 LoadBalancingInterceptor (com.predic8.membrane.core.interceptor.balancer.LoadBalancingInterceptor)1 RequestInterceptor (com.predic8.membrane.core.interceptor.flow.RequestInterceptor)1 ResponseInterceptor (com.predic8.membrane.core.interceptor.flow.ResponseInterceptor)1 IExchangesStoreListener (com.predic8.membrane.core.model.IExchangesStoreListener)1 ServiceProxy (com.predic8.membrane.core.rules.ServiceProxy)1 IOException (java.io.IOException)1 UnknownHostException (java.net.UnknownHostException)1 NoSuchElementException (java.util.NoSuchElementException)1 Vector (java.util.Vector)1