public class org.apache.activemq.broker.region.policy.QueryBasedSubscriptionRecoveryPolicy extends java.lang.Object implements org.apache.activemq.broker.region.policy.SubscriptionRecoveryPolicy
{
private static final org.slf4j.Logger LOG;
private org.apache.activemq.broker.region.policy.MessageQuery query;
private final java.util.concurrent.atomic.AtomicLong messageSequence;
private final org.apache.activemq.util.IdGenerator idGenerator;
private final org.apache.activemq.command.ProducerId producerId;
public void <init>()
{
org.apache.activemq.command.ProducerId v;
java.util.concurrent.atomic.AtomicLong v;
org.apache.activemq.broker.region.policy.QueryBasedSubscriptionRecoveryPolicy v;
org.apache.activemq.util.IdGenerator v;
v := @this: org.apache.activemq.broker.region.policy.QueryBasedSubscriptionRecoveryPolicy;
specialinvoke v.<java.lang.Object: void <init>()>();
v = new java.util.concurrent.atomic.AtomicLong;
specialinvoke v.<java.util.concurrent.atomic.AtomicLong: void <init>(long)>(0L);
v.<org.apache.activemq.broker.region.policy.QueryBasedSubscriptionRecoveryPolicy: java.util.concurrent.atomic.AtomicLong messageSequence> = v;
v = new org.apache.activemq.util.IdGenerator;
specialinvoke v.<org.apache.activemq.util.IdGenerator: void <init>()>();
v.<org.apache.activemq.broker.region.policy.QueryBasedSubscriptionRecoveryPolicy: org.apache.activemq.util.IdGenerator idGenerator> = v;
v = virtualinvoke v.<org.apache.activemq.broker.region.policy.QueryBasedSubscriptionRecoveryPolicy: org.apache.activemq.command.ProducerId createProducerId()>();
v.<org.apache.activemq.broker.region.policy.QueryBasedSubscriptionRecoveryPolicy: org.apache.activemq.command.ProducerId producerId> = v;
return;
}
public org.apache.activemq.broker.region.policy.SubscriptionRecoveryPolicy copy()
{
org.apache.activemq.broker.region.policy.MessageQuery v;
org.apache.activemq.broker.region.policy.QueryBasedSubscriptionRecoveryPolicy v, v;
v := @this: org.apache.activemq.broker.region.policy.QueryBasedSubscriptionRecoveryPolicy;
v = new org.apache.activemq.broker.region.policy.QueryBasedSubscriptionRecoveryPolicy;
specialinvoke v.<org.apache.activemq.broker.region.policy.QueryBasedSubscriptionRecoveryPolicy: void <init>()>();
v = v.<org.apache.activemq.broker.region.policy.QueryBasedSubscriptionRecoveryPolicy: org.apache.activemq.broker.region.policy.MessageQuery query>;
virtualinvoke v.<org.apache.activemq.broker.region.policy.QueryBasedSubscriptionRecoveryPolicy: void setQuery(org.apache.activemq.broker.region.policy.MessageQuery)>(v);
return v;
}
public boolean add(org.apache.activemq.broker.ConnectionContext, org.apache.activemq.broker.region.MessageReference) throws java.lang.Exception
{
org.apache.activemq.broker.region.policy.MessageQuery v;
org.apache.activemq.broker.ConnectionContext v;
org.apache.activemq.broker.region.MessageReference v;
org.apache.activemq.broker.region.policy.QueryBasedSubscriptionRecoveryPolicy v;
org.apache.activemq.command.Message v;
boolean v;
v := @this: org.apache.activemq.broker.region.policy.QueryBasedSubscriptionRecoveryPolicy;
v := @parameter: org.apache.activemq.broker.ConnectionContext;
v := @parameter: org.apache.activemq.broker.region.MessageReference;
v = v.<org.apache.activemq.broker.region.policy.QueryBasedSubscriptionRecoveryPolicy: org.apache.activemq.broker.region.policy.MessageQuery query>;
v = interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: org.apache.activemq.command.Message getMessage()>();
v = interfaceinvoke v.<org.apache.activemq.broker.region.policy.MessageQuery: boolean validateUpdate(org.apache.activemq.command.Message)>(v);
return v;
}
public void recover(org.apache.activemq.broker.ConnectionContext, org.apache.activemq.broker.region.Topic, org.apache.activemq.broker.region.SubscriptionRecovery) throws java.lang.Exception
{
org.apache.activemq.broker.region.policy.MessageQuery v, v;
org.apache.activemq.broker.region.Topic v;
org.apache.activemq.broker.region.SubscriptionRecovery v;
org.apache.activemq.command.ActiveMQDestination v;
org.apache.activemq.broker.ConnectionContext v;
org.apache.activemq.broker.region.policy.QueryBasedSubscriptionRecoveryPolicy v;
org.apache.activemq.broker.region.policy.QueryBasedSubscriptionRecoveryPolicy$1 v;
v := @this: org.apache.activemq.broker.region.policy.QueryBasedSubscriptionRecoveryPolicy;
v := @parameter: org.apache.activemq.broker.ConnectionContext;
v := @parameter: org.apache.activemq.broker.region.Topic;
v := @parameter: org.apache.activemq.broker.region.SubscriptionRecovery;
v = v.<org.apache.activemq.broker.region.policy.QueryBasedSubscriptionRecoveryPolicy: org.apache.activemq.broker.region.policy.MessageQuery query>;
if v == null goto label;
v = interfaceinvoke v.<org.apache.activemq.broker.region.SubscriptionRecovery: org.apache.activemq.command.ActiveMQDestination getActiveMQDestination()>();
v = v.<org.apache.activemq.broker.region.policy.QueryBasedSubscriptionRecoveryPolicy: org.apache.activemq.broker.region.policy.MessageQuery query>;
v = new org.apache.activemq.broker.region.policy.QueryBasedSubscriptionRecoveryPolicy$1;
specialinvoke v.<org.apache.activemq.broker.region.policy.QueryBasedSubscriptionRecoveryPolicy$1: void <init>(org.apache.activemq.broker.region.policy.QueryBasedSubscriptionRecoveryPolicy,org.apache.activemq.broker.region.Topic,org.apache.activemq.broker.ConnectionContext,org.apache.activemq.broker.region.SubscriptionRecovery)>(v, v, v, v);
interfaceinvoke v.<org.apache.activemq.broker.region.policy.MessageQuery: void execute(org.apache.activemq.command.ActiveMQDestination,javax.jms.MessageListener)>(v, v);
label:
return;
}
public void start() throws java.lang.Exception
{
org.apache.activemq.broker.region.policy.MessageQuery v;
org.apache.activemq.broker.region.policy.QueryBasedSubscriptionRecoveryPolicy v;
java.lang.IllegalArgumentException v;
v := @this: org.apache.activemq.broker.region.policy.QueryBasedSubscriptionRecoveryPolicy;
v = v.<org.apache.activemq.broker.region.policy.QueryBasedSubscriptionRecoveryPolicy: org.apache.activemq.broker.region.policy.MessageQuery query>;
if v != null goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("No query property configured");
throw v;
label:
return;
}
public void stop() throws java.lang.Exception
{
org.apache.activemq.broker.region.policy.QueryBasedSubscriptionRecoveryPolicy v;
v := @this: org.apache.activemq.broker.region.policy.QueryBasedSubscriptionRecoveryPolicy;
return;
}
public org.apache.activemq.broker.region.policy.MessageQuery getQuery()
{
org.apache.activemq.broker.region.policy.MessageQuery v;
org.apache.activemq.broker.region.policy.QueryBasedSubscriptionRecoveryPolicy v;
v := @this: org.apache.activemq.broker.region.policy.QueryBasedSubscriptionRecoveryPolicy;
v = v.<org.apache.activemq.broker.region.policy.QueryBasedSubscriptionRecoveryPolicy: org.apache.activemq.broker.region.policy.MessageQuery query>;
return v;
}
public void setQuery(org.apache.activemq.broker.region.policy.MessageQuery)
{
org.apache.activemq.broker.region.policy.MessageQuery v;
org.apache.activemq.broker.region.policy.QueryBasedSubscriptionRecoveryPolicy v;
v := @this: org.apache.activemq.broker.region.policy.QueryBasedSubscriptionRecoveryPolicy;
v := @parameter: org.apache.activemq.broker.region.policy.MessageQuery;
v.<org.apache.activemq.broker.region.policy.QueryBasedSubscriptionRecoveryPolicy: org.apache.activemq.broker.region.policy.MessageQuery query> = v;
return;
}
public org.apache.activemq.command.Message[] browse(org.apache.activemq.command.ActiveMQDestination) throws java.lang.Exception
{
org.apache.activemq.broker.region.policy.QueryBasedSubscriptionRecoveryPolicy v;
org.apache.activemq.command.Message[] v;
org.apache.activemq.command.ActiveMQDestination v;
v := @this: org.apache.activemq.broker.region.policy.QueryBasedSubscriptionRecoveryPolicy;
v := @parameter: org.apache.activemq.command.ActiveMQDestination;
v = newarray (org.apache.activemq.command.Message)[0];
return v;
}
public void setBroker(org.apache.activemq.broker.Broker)
{
org.apache.activemq.broker.Broker v;
org.apache.activemq.broker.region.policy.QueryBasedSubscriptionRecoveryPolicy v;
v := @this: org.apache.activemq.broker.region.policy.QueryBasedSubscriptionRecoveryPolicy;
v := @parameter: org.apache.activemq.broker.Broker;
return;
}
protected void dispatchInitialMessage(javax.jms.Message, org.apache.activemq.broker.region.Destination, org.apache.activemq.broker.ConnectionContext, org.apache.activemq.broker.region.SubscriptionRecovery)
{
java.lang.Throwable v;
org.slf4j.Logger v;
org.apache.activemq.command.ActiveMQMessage v;
org.apache.activemq.broker.region.SubscriptionRecovery v;
org.apache.activemq.command.ActiveMQDestination v, v;
org.apache.activemq.broker.ConnectionContext v;
org.apache.activemq.broker.region.policy.QueryBasedSubscriptionRecoveryPolicy v;
javax.jms.Message v;
org.apache.activemq.broker.region.Destination v;
v := @this: org.apache.activemq.broker.region.policy.QueryBasedSubscriptionRecoveryPolicy;
v := @parameter: javax.jms.Message;
v := @parameter: org.apache.activemq.broker.region.Destination;
v := @parameter: org.apache.activemq.broker.ConnectionContext;
v := @parameter: org.apache.activemq.broker.region.SubscriptionRecovery;
label:
v = staticinvoke <org.apache.activemq.ActiveMQMessageTransformation: org.apache.activemq.command.ActiveMQMessage transformMessage(javax.jms.Message,org.apache.activemq.ActiveMQConnection)>(v, null);
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: org.apache.activemq.command.ActiveMQDestination getDestination()>();
if v != null goto label;
v = interfaceinvoke v.<org.apache.activemq.broker.region.SubscriptionRecovery: org.apache.activemq.command.ActiveMQDestination getActiveMQDestination()>();
virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: void setDestination(org.apache.activemq.command.ActiveMQDestination)>(v);
label:
virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: void setRegionDestination(org.apache.activemq.command.Message$MessageDestination)>(v);
virtualinvoke v.<org.apache.activemq.broker.region.policy.QueryBasedSubscriptionRecoveryPolicy: void configure(org.apache.activemq.command.ActiveMQMessage)>(v);
interfaceinvoke v.<org.apache.activemq.broker.region.SubscriptionRecovery: boolean addRecoveredMessage(org.apache.activemq.broker.ConnectionContext,org.apache.activemq.broker.region.MessageReference)>(v, v);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.activemq.broker.region.policy.QueryBasedSubscriptionRecoveryPolicy: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object,java.lang.Object)>("Failed to dispatch initial message: {} into subscription. Reason: ", v, v);
label:
return;
catch java.lang.Throwable from label to label with label;
}
protected void configure(org.apache.activemq.command.ActiveMQMessage) throws javax.jms.JMSException
{
org.apache.activemq.command.ProducerId v, v;
java.util.concurrent.atomic.AtomicLong v;
org.apache.activemq.broker.region.policy.QueryBasedSubscriptionRecoveryPolicy v;
org.apache.activemq.command.MessageId v;
org.apache.activemq.command.ActiveMQMessage v;
long v;
v := @this: org.apache.activemq.broker.region.policy.QueryBasedSubscriptionRecoveryPolicy;
v := @parameter: org.apache.activemq.command.ActiveMQMessage;
v = v.<org.apache.activemq.broker.region.policy.QueryBasedSubscriptionRecoveryPolicy: java.util.concurrent.atomic.AtomicLong messageSequence>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: long incrementAndGet()>();
v = new org.apache.activemq.command.MessageId;
v = v.<org.apache.activemq.broker.region.policy.QueryBasedSubscriptionRecoveryPolicy: org.apache.activemq.command.ProducerId producerId>;
specialinvoke v.<org.apache.activemq.command.MessageId: void <init>(org.apache.activemq.command.ProducerId,long)>(v, v);
virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: void setMessageId(org.apache.activemq.command.MessageId)>(v);
virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: void onSend()>();
v = v.<org.apache.activemq.broker.region.policy.QueryBasedSubscriptionRecoveryPolicy: org.apache.activemq.command.ProducerId producerId>;
virtualinvoke v.<org.apache.activemq.command.ActiveMQMessage: void setProducerId(org.apache.activemq.command.ProducerId)>(v);
return;
}
protected org.apache.activemq.command.ProducerId createProducerId()
{
org.apache.activemq.command.ProducerId v;
org.apache.activemq.broker.region.policy.QueryBasedSubscriptionRecoveryPolicy v;
org.apache.activemq.command.ConnectionId v;
org.apache.activemq.command.SessionId v;
org.apache.activemq.util.IdGenerator v;
java.lang.String v;
v := @this: org.apache.activemq.broker.region.policy.QueryBasedSubscriptionRecoveryPolicy;
v = v.<org.apache.activemq.broker.region.policy.QueryBasedSubscriptionRecoveryPolicy: org.apache.activemq.util.IdGenerator idGenerator>;
v = virtualinvoke v.<org.apache.activemq.util.IdGenerator: java.lang.String generateId()>();
v = new org.apache.activemq.command.ConnectionId;
specialinvoke v.<org.apache.activemq.command.ConnectionId: void <init>(java.lang.String)>(v);
v = new org.apache.activemq.command.SessionId;
specialinvoke v.<org.apache.activemq.command.SessionId: void <init>(org.apache.activemq.command.ConnectionId,long)>(v, 1L);
v = new org.apache.activemq.command.ProducerId;
specialinvoke v.<org.apache.activemq.command.ProducerId: void <init>(org.apache.activemq.command.SessionId,long)>(v, 1L);
return v;
}
static void <clinit>()
{
org.slf4j.Logger v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lorg/apache/activemq/broker/region/policy/QueryBasedSubscriptionRecoveryPolicy;");
<org.apache.activemq.broker.region.policy.QueryBasedSubscriptionRecoveryPolicy: org.slf4j.Logger LOG> = v;
return;
}
}