public class org.apache.camel.processor.idempotent.IdempotentConsumer extends org.apache.camel.support.ServiceSupport implements org.apache.camel.CamelContextAware, org.apache.camel.AsyncProcessor, org.apache.camel.Navigate, org.apache.camel.spi.IdAware
{
private static final org.slf4j.Logger LOG;
private org.apache.camel.CamelContext camelContext;
private java.lang.String id;
private final org.apache.camel.Expression messageIdExpression;
private final org.apache.camel.AsyncProcessor processor;
private final org.apache.camel.spi.IdempotentRepository idempotentRepository;
private final boolean eager;
private final boolean completionEager;
private final boolean skipDuplicate;
private final boolean removeOnFailure;
private final java.util.concurrent.atomic.AtomicLong duplicateMessageCount;
public void <init>(org.apache.camel.Expression, org.apache.camel.spi.IdempotentRepository, boolean, boolean, boolean, boolean, org.apache.camel.Processor)
{
org.apache.camel.spi.IdempotentRepository v;
org.apache.camel.Expression v;
org.apache.camel.processor.idempotent.IdempotentConsumer v;
java.util.concurrent.atomic.AtomicLong v;
org.apache.camel.Processor v;
org.apache.camel.AsyncProcessor v;
boolean v, v, v, v;
v := @this: org.apache.camel.processor.idempotent.IdempotentConsumer;
v := @parameter: org.apache.camel.Expression;
v := @parameter: org.apache.camel.spi.IdempotentRepository;
v := @parameter: boolean;
v := @parameter: boolean;
v := @parameter: boolean;
v := @parameter: boolean;
v := @parameter: org.apache.camel.Processor;
specialinvoke v.<org.apache.camel.support.ServiceSupport: void <init>()>();
v = new java.util.concurrent.atomic.AtomicLong;
specialinvoke v.<java.util.concurrent.atomic.AtomicLong: void <init>()>();
v.<org.apache.camel.processor.idempotent.IdempotentConsumer: java.util.concurrent.atomic.AtomicLong duplicateMessageCount> = v;
v.<org.apache.camel.processor.idempotent.IdempotentConsumer: org.apache.camel.Expression messageIdExpression> = v;
v.<org.apache.camel.processor.idempotent.IdempotentConsumer: org.apache.camel.spi.IdempotentRepository idempotentRepository> = v;
v.<org.apache.camel.processor.idempotent.IdempotentConsumer: boolean eager> = v;
v.<org.apache.camel.processor.idempotent.IdempotentConsumer: boolean completionEager> = v;
v.<org.apache.camel.processor.idempotent.IdempotentConsumer: boolean skipDuplicate> = v;
v.<org.apache.camel.processor.idempotent.IdempotentConsumer: boolean removeOnFailure> = v;
v = staticinvoke <org.apache.camel.util.AsyncProcessorConverterHelper: org.apache.camel.AsyncProcessor convert(org.apache.camel.Processor)>(v);
v.<org.apache.camel.processor.idempotent.IdempotentConsumer: org.apache.camel.AsyncProcessor processor> = v;
return;
}
public java.lang.String toString()
{
org.apache.camel.AsyncProcessor v;
java.lang.String v;
org.apache.camel.Expression v;
org.apache.camel.processor.idempotent.IdempotentConsumer v;
v := @this: org.apache.camel.processor.idempotent.IdempotentConsumer;
v = v.<org.apache.camel.processor.idempotent.IdempotentConsumer: org.apache.camel.Expression messageIdExpression>;
v = v.<org.apache.camel.processor.idempotent.IdempotentConsumer: org.apache.camel.AsyncProcessor processor>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.camel.Expression,org.apache.camel.AsyncProcessor)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("IdempotentConsumer[\u -> \u]");
return v;
}
public org.apache.camel.CamelContext getCamelContext()
{
org.apache.camel.CamelContext v;
org.apache.camel.processor.idempotent.IdempotentConsumer v;
v := @this: org.apache.camel.processor.idempotent.IdempotentConsumer;
v = v.<org.apache.camel.processor.idempotent.IdempotentConsumer: org.apache.camel.CamelContext camelContext>;
return v;
}
public void setCamelContext(org.apache.camel.CamelContext)
{
org.apache.camel.CamelContext v;
org.apache.camel.processor.idempotent.IdempotentConsumer v;
v := @this: org.apache.camel.processor.idempotent.IdempotentConsumer;
v := @parameter: org.apache.camel.CamelContext;
v.<org.apache.camel.processor.idempotent.IdempotentConsumer: org.apache.camel.CamelContext camelContext> = v;
return;
}
public java.lang.String getId()
{
java.lang.String v;
org.apache.camel.processor.idempotent.IdempotentConsumer v;
v := @this: org.apache.camel.processor.idempotent.IdempotentConsumer;
v = v.<org.apache.camel.processor.idempotent.IdempotentConsumer: java.lang.String id>;
return v;
}
public void setId(java.lang.String)
{
java.lang.String v;
org.apache.camel.processor.idempotent.IdempotentConsumer v;
v := @this: org.apache.camel.processor.idempotent.IdempotentConsumer;
v := @parameter: java.lang.String;
v.<org.apache.camel.processor.idempotent.IdempotentConsumer: java.lang.String id> = v;
return;
}
public void process(org.apache.camel.Exchange) throws java.lang.Exception
{
org.apache.camel.Exchange v;
org.apache.camel.processor.idempotent.IdempotentConsumer v;
v := @this: org.apache.camel.processor.idempotent.IdempotentConsumer;
v := @parameter: org.apache.camel.Exchange;
staticinvoke <org.apache.camel.util.AsyncProcessorHelper: void process(org.apache.camel.AsyncProcessor,org.apache.camel.Exchange)>(v, v);
return;
}
public boolean process(org.apache.camel.Exchange, org.apache.camel.AsyncCallback)
{
org.apache.camel.processor.idempotent.NoMessageIdException v;
boolean v, v, v, v, v, v, v, v, v, v, v, v, v, v;
org.apache.camel.processor.idempotent.IdempotentConsumer$IdempotentConsumerCallback v;
java.lang.Exception v, v;
org.apache.camel.AsyncProcessor v;
org.apache.camel.Exchange v;
org.apache.camel.spi.IdempotentRepository v, v, v, v, v, v, v;
org.apache.camel.Expression v, v;
org.apache.camel.processor.idempotent.IdempotentConsumer v;
java.lang.Boolean v;
org.apache.camel.processor.idempotent.IdempotentOnCompletion v;
org.slf4j.Logger v;
org.apache.camel.AsyncCallback v;
java.lang.Object v;
v := @this: org.apache.camel.processor.idempotent.IdempotentConsumer;
v := @parameter: org.apache.camel.Exchange;
v := @parameter: org.apache.camel.AsyncCallback;
label:
v = v.<org.apache.camel.processor.idempotent.IdempotentConsumer: org.apache.camel.Expression messageIdExpression>;
v = interfaceinvoke v.<org.apache.camel.Expression: java.lang.Object evaluate(org.apache.camel.Exchange,java.lang.Class)>(v, class "Ljava/lang/String;");
if v != null goto label;
v = new org.apache.camel.processor.idempotent.NoMessageIdException;
v = v.<org.apache.camel.processor.idempotent.IdempotentConsumer: org.apache.camel.Expression messageIdExpression>;
specialinvoke v.<org.apache.camel.processor.idempotent.NoMessageIdException: void <init>(org.apache.camel.Exchange,org.apache.camel.Expression)>(v, v);
interfaceinvoke v.<org.apache.camel.Exchange: void setException(java.lang.Throwable)>(v);
interfaceinvoke v.<org.apache.camel.AsyncCallback: void done(boolean)>(1);
label:
return 1;
label:
v := @caughtexception;
interfaceinvoke v.<org.apache.camel.Exchange: void setException(java.lang.Throwable)>(v);
interfaceinvoke v.<org.apache.camel.AsyncCallback: void done(boolean)>(1);
return 1;
label:
v = v.<org.apache.camel.processor.idempotent.IdempotentConsumer: boolean eager>;
if v == 0 goto label;
v = v.<org.apache.camel.processor.idempotent.IdempotentConsumer: org.apache.camel.spi.IdempotentRepository idempotentRepository>;
v = v instanceof org.apache.camel.spi.ExchangeIdempotentRepository;
if v == 0 goto label;
v = v.<org.apache.camel.processor.idempotent.IdempotentConsumer: org.apache.camel.spi.IdempotentRepository idempotentRepository>;
v = interfaceinvoke v.<org.apache.camel.spi.ExchangeIdempotentRepository: boolean add(org.apache.camel.Exchange,java.lang.Object)>(v, v);
goto label;
label:
v = v.<org.apache.camel.processor.idempotent.IdempotentConsumer: org.apache.camel.spi.IdempotentRepository idempotentRepository>;
v = interfaceinvoke v.<org.apache.camel.spi.IdempotentRepository: boolean add(java.lang.Object)>(v);
goto label;
label:
v = v.<org.apache.camel.processor.idempotent.IdempotentConsumer: org.apache.camel.spi.IdempotentRepository idempotentRepository>;
v = v instanceof org.apache.camel.spi.ExchangeIdempotentRepository;
if v == 0 goto label;
v = v.<org.apache.camel.processor.idempotent.IdempotentConsumer: org.apache.camel.spi.IdempotentRepository idempotentRepository>;
v = interfaceinvoke v.<org.apache.camel.spi.ExchangeIdempotentRepository: boolean contains(org.apache.camel.Exchange,java.lang.Object)>(v, v);
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v;
goto label;
label:
v = v.<org.apache.camel.processor.idempotent.IdempotentConsumer: org.apache.camel.spi.IdempotentRepository idempotentRepository>;
v = interfaceinvoke v.<org.apache.camel.spi.IdempotentRepository: boolean contains(java.lang.Object)>(v);
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v;
label:
if v != 0 goto label;
v = <java.lang.Boolean: java.lang.Boolean TRUE>;
interfaceinvoke v.<org.apache.camel.Exchange: void setProperty(java.lang.String,java.lang.Object)>("CamelDuplicateMessage", v);
specialinvoke v.<org.apache.camel.processor.idempotent.IdempotentConsumer: void onDuplicate(org.apache.camel.Exchange,java.lang.String)>(v, v);
v = v.<org.apache.camel.processor.idempotent.IdempotentConsumer: boolean skipDuplicate>;
if v == 0 goto label;
v = <org.apache.camel.processor.idempotent.IdempotentConsumer: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object,java.lang.Object)>("Ignoring duplicate message with id: {} for exchange: {}", v, v);
interfaceinvoke v.<org.apache.camel.AsyncCallback: void done(boolean)>(1);
label:
return 1;
label:
v = new org.apache.camel.processor.idempotent.IdempotentOnCompletion;
v = v.<org.apache.camel.processor.idempotent.IdempotentConsumer: org.apache.camel.spi.IdempotentRepository idempotentRepository>;
v = v.<org.apache.camel.processor.idempotent.IdempotentConsumer: boolean eager>;
v = v.<org.apache.camel.processor.idempotent.IdempotentConsumer: boolean removeOnFailure>;
specialinvoke v.<org.apache.camel.processor.idempotent.IdempotentOnCompletion: void <init>(org.apache.camel.spi.IdempotentRepository,java.lang.String,boolean,boolean)>(v, v, v, v);
v = new org.apache.camel.processor.idempotent.IdempotentConsumer$IdempotentConsumerCallback;
v = v.<org.apache.camel.processor.idempotent.IdempotentConsumer: boolean completionEager>;
specialinvoke v.<org.apache.camel.processor.idempotent.IdempotentConsumer$IdempotentConsumerCallback: void <init>(org.apache.camel.Exchange,org.apache.camel.spi.Synchronization,org.apache.camel.AsyncCallback,boolean)>(v, v, v, v);
v = v.<org.apache.camel.processor.idempotent.IdempotentConsumer: boolean completionEager>;
if v != 0 goto label;
interfaceinvoke v.<org.apache.camel.Exchange: void addOnCompletion(org.apache.camel.spi.Synchronization)>(v);
label:
goto label;
label:
v := @caughtexception;
interfaceinvoke v.<org.apache.camel.Exchange: void setException(java.lang.Throwable)>(v);
interfaceinvoke v.<org.apache.camel.AsyncCallback: void done(boolean)>(1);
return 1;
label:
v = v.<org.apache.camel.processor.idempotent.IdempotentConsumer: org.apache.camel.AsyncProcessor processor>;
v = interfaceinvoke v.<org.apache.camel.AsyncProcessor: boolean process(org.apache.camel.Exchange,org.apache.camel.AsyncCallback)>(v, v);
return v;
catch java.lang.Exception from label to label with label;
catch java.lang.Exception from label to label with label;
catch java.lang.Exception from label to label with label;
}
public java.util.List next()
{
org.apache.camel.AsyncProcessor v;
org.apache.camel.processor.idempotent.IdempotentConsumer v;
boolean v;
java.util.ArrayList v;
v := @this: org.apache.camel.processor.idempotent.IdempotentConsumer;
v = virtualinvoke v.<org.apache.camel.processor.idempotent.IdempotentConsumer: boolean hasNext()>();
if v != 0 goto label;
return null;
label:
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>(int)>(1);
v = v.<org.apache.camel.processor.idempotent.IdempotentConsumer: org.apache.camel.AsyncProcessor processor>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
return v;
}
public boolean hasNext()
{
org.apache.camel.AsyncProcessor v;
org.apache.camel.processor.idempotent.IdempotentConsumer v;
boolean v;
v := @this: org.apache.camel.processor.idempotent.IdempotentConsumer;
v = v.<org.apache.camel.processor.idempotent.IdempotentConsumer: org.apache.camel.AsyncProcessor processor>;
if v == null goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public org.apache.camel.Expression getMessageIdExpression()
{
org.apache.camel.Expression v;
org.apache.camel.processor.idempotent.IdempotentConsumer v;
v := @this: org.apache.camel.processor.idempotent.IdempotentConsumer;
v = v.<org.apache.camel.processor.idempotent.IdempotentConsumer: org.apache.camel.Expression messageIdExpression>;
return v;
}
public org.apache.camel.spi.IdempotentRepository getIdempotentRepository()
{
org.apache.camel.spi.IdempotentRepository v;
org.apache.camel.processor.idempotent.IdempotentConsumer v;
v := @this: org.apache.camel.processor.idempotent.IdempotentConsumer;
v = v.<org.apache.camel.processor.idempotent.IdempotentConsumer: org.apache.camel.spi.IdempotentRepository idempotentRepository>;
return v;
}
public org.apache.camel.Processor getProcessor()
{
org.apache.camel.AsyncProcessor v;
org.apache.camel.processor.idempotent.IdempotentConsumer v;
v := @this: org.apache.camel.processor.idempotent.IdempotentConsumer;
v = v.<org.apache.camel.processor.idempotent.IdempotentConsumer: org.apache.camel.AsyncProcessor processor>;
return v;
}
public long getDuplicateMessageCount()
{
java.util.concurrent.atomic.AtomicLong v;
long v;
org.apache.camel.processor.idempotent.IdempotentConsumer v;
v := @this: org.apache.camel.processor.idempotent.IdempotentConsumer;
v = v.<org.apache.camel.processor.idempotent.IdempotentConsumer: java.util.concurrent.atomic.AtomicLong duplicateMessageCount>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: long get()>();
return v;
}
protected void doStart() throws java.lang.Exception
{
org.apache.camel.CamelContext v, v;
java.lang.Object[] v;
org.apache.camel.spi.IdempotentRepository v, v, v;
org.apache.camel.processor.idempotent.IdempotentConsumer v;
org.apache.camel.AsyncProcessor v;
boolean v;
v := @this: org.apache.camel.processor.idempotent.IdempotentConsumer;
v = v.<org.apache.camel.processor.idempotent.IdempotentConsumer: org.apache.camel.CamelContext camelContext>;
v = v.<org.apache.camel.processor.idempotent.IdempotentConsumer: org.apache.camel.spi.IdempotentRepository idempotentRepository>;
v = interfaceinvoke v.<org.apache.camel.CamelContext: boolean hasService(java.lang.Object)>(v);
if v != 0 goto label;
v = v.<org.apache.camel.processor.idempotent.IdempotentConsumer: org.apache.camel.CamelContext camelContext>;
v = v.<org.apache.camel.processor.idempotent.IdempotentConsumer: org.apache.camel.spi.IdempotentRepository idempotentRepository>;
interfaceinvoke v.<org.apache.camel.CamelContext: void addService(java.lang.Object)>(v);
label:
v = newarray (java.lang.Object)[2];
v = v.<org.apache.camel.processor.idempotent.IdempotentConsumer: org.apache.camel.AsyncProcessor processor>;
v[0] = v;
v = v.<org.apache.camel.processor.idempotent.IdempotentConsumer: org.apache.camel.spi.IdempotentRepository idempotentRepository>;
v[1] = v;
staticinvoke <org.apache.camel.util.ServiceHelper: void startServices(java.lang.Object[])>(v);
return;
}
protected void doStop() throws java.lang.Exception
{
java.lang.Object[] v;
org.apache.camel.AsyncProcessor v;
org.apache.camel.spi.IdempotentRepository v;
org.apache.camel.processor.idempotent.IdempotentConsumer v;
v := @this: org.apache.camel.processor.idempotent.IdempotentConsumer;
v = newarray (java.lang.Object)[2];
v = v.<org.apache.camel.processor.idempotent.IdempotentConsumer: org.apache.camel.AsyncProcessor processor>;
v[0] = v;
v = v.<org.apache.camel.processor.idempotent.IdempotentConsumer: org.apache.camel.spi.IdempotentRepository idempotentRepository>;
v[1] = v;
staticinvoke <org.apache.camel.util.ServiceHelper: void stopServices(java.lang.Object[])>(v);
return;
}
protected void doShutdown() throws java.lang.Exception
{
org.apache.camel.CamelContext v;
java.lang.Object[] v;
org.apache.camel.AsyncProcessor v;
org.apache.camel.spi.IdempotentRepository v, v;
org.apache.camel.processor.idempotent.IdempotentConsumer v;
v := @this: org.apache.camel.processor.idempotent.IdempotentConsumer;
v = newarray (java.lang.Object)[2];
v = v.<org.apache.camel.processor.idempotent.IdempotentConsumer: org.apache.camel.AsyncProcessor processor>;
v[0] = v;
v = v.<org.apache.camel.processor.idempotent.IdempotentConsumer: org.apache.camel.spi.IdempotentRepository idempotentRepository>;
v[1] = v;
staticinvoke <org.apache.camel.util.ServiceHelper: void stopAndShutdownServices(java.lang.Object[])>(v);
v = v.<org.apache.camel.processor.idempotent.IdempotentConsumer: org.apache.camel.CamelContext camelContext>;
v = v.<org.apache.camel.processor.idempotent.IdempotentConsumer: org.apache.camel.spi.IdempotentRepository idempotentRepository>;
interfaceinvoke v.<org.apache.camel.CamelContext: boolean removeService(java.lang.Object)>(v);
return;
}
public boolean isEager()
{
org.apache.camel.processor.idempotent.IdempotentConsumer v;
boolean v;
v := @this: org.apache.camel.processor.idempotent.IdempotentConsumer;
v = v.<org.apache.camel.processor.idempotent.IdempotentConsumer: boolean eager>;
return v;
}
public boolean isCompletionEager()
{
org.apache.camel.processor.idempotent.IdempotentConsumer v;
boolean v;
v := @this: org.apache.camel.processor.idempotent.IdempotentConsumer;
v = v.<org.apache.camel.processor.idempotent.IdempotentConsumer: boolean completionEager>;
return v;
}
public boolean isSkipDuplicate()
{
org.apache.camel.processor.idempotent.IdempotentConsumer v;
boolean v;
v := @this: org.apache.camel.processor.idempotent.IdempotentConsumer;
v = v.<org.apache.camel.processor.idempotent.IdempotentConsumer: boolean skipDuplicate>;
return v;
}
public boolean isRemoveOnFailure()
{
org.apache.camel.processor.idempotent.IdempotentConsumer v;
boolean v;
v := @this: org.apache.camel.processor.idempotent.IdempotentConsumer;
v = v.<org.apache.camel.processor.idempotent.IdempotentConsumer: boolean removeOnFailure>;
return v;
}
public void resetDuplicateMessageCount()
{
java.util.concurrent.atomic.AtomicLong v;
org.apache.camel.processor.idempotent.IdempotentConsumer v;
v := @this: org.apache.camel.processor.idempotent.IdempotentConsumer;
v = v.<org.apache.camel.processor.idempotent.IdempotentConsumer: java.util.concurrent.atomic.AtomicLong duplicateMessageCount>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: void set(long)>(0L);
return;
}
private void onDuplicate(org.apache.camel.Exchange, java.lang.String)
{
java.util.concurrent.atomic.AtomicLong v;
org.apache.camel.Exchange v;
java.lang.String v;
org.apache.camel.processor.idempotent.IdempotentConsumer v;
v := @this: org.apache.camel.processor.idempotent.IdempotentConsumer;
v := @parameter: org.apache.camel.Exchange;
v := @parameter: java.lang.String;
v = v.<org.apache.camel.processor.idempotent.IdempotentConsumer: java.util.concurrent.atomic.AtomicLong duplicateMessageCount>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: long incrementAndGet()>();
virtualinvoke v.<org.apache.camel.processor.idempotent.IdempotentConsumer: void onDuplicateMessage(org.apache.camel.Exchange,java.lang.String)>(v, v);
return;
}
public void clear()
{
org.apache.camel.spi.IdempotentRepository v;
org.apache.camel.processor.idempotent.IdempotentConsumer v;
v := @this: org.apache.camel.processor.idempotent.IdempotentConsumer;
v = v.<org.apache.camel.processor.idempotent.IdempotentConsumer: org.apache.camel.spi.IdempotentRepository idempotentRepository>;
interfaceinvoke v.<org.apache.camel.spi.IdempotentRepository: void clear()>();
return;
}
protected void onDuplicateMessage(org.apache.camel.Exchange, java.lang.String)
{
org.apache.camel.Exchange v;
java.lang.String v;
org.apache.camel.processor.idempotent.IdempotentConsumer v;
v := @this: org.apache.camel.processor.idempotent.IdempotentConsumer;
v := @parameter: org.apache.camel.Exchange;
v := @parameter: java.lang.String;
return;
}
static void <clinit>()
{
org.slf4j.Logger v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lorg/apache/camel/processor/idempotent/IdempotentConsumer;");
<org.apache.camel.processor.idempotent.IdempotentConsumer: org.slf4j.Logger LOG> = v;
return;
}
}