public final class org.apache.camel.impl.cluster.ClusteredRoutePolicy extends org.apache.camel.support.RoutePolicySupport implements org.apache.camel.CamelContextAware
{
private static final org.slf4j.Logger LOGGER;
private final java.util.concurrent.atomic.AtomicBoolean leader;
private final java.util.Set startedRoutes;
private final java.util.Set stoppedRoutes;
private final org.apache.camel.util.ReferenceCount refCount;
private final org.apache.camel.cluster.CamelClusterEventListener$Leadership leadershipEventListener;
private final org.apache.camel.impl.cluster.ClusteredRoutePolicy$CamelContextStartupListener listener;
private final java.util.concurrent.atomic.AtomicBoolean contextStarted;
private final java.lang.String namespace;
private final org.apache.camel.cluster.CamelClusterService$Selector clusterServiceSelector;
private org.apache.camel.cluster.CamelClusterService clusterService;
private org.apache.camel.cluster.CamelClusterView clusterView;
private java.time.Duration initialDelay;
private java.util.concurrent.ScheduledExecutorService executorService;
private org.apache.camel.CamelContext camelContext;
private void <init>(org.apache.camel.cluster.CamelClusterService, org.apache.camel.cluster.CamelClusterService$Selector, java.lang.String)
{
java.util.concurrent.atomic.AtomicBoolean v, v;
java.lang.Runnable v;
java.util.HashSet v, v;
java.time.Duration v;
org.apache.camel.impl.cluster.ClusteredRoutePolicy$CamelContextStartupListener v, v;
java.lang.String v;
org.apache.camel.cluster.CamelClusterService v;
org.apache.camel.impl.cluster.ClusteredRoutePolicy v;
org.apache.camel.impl.cluster.ClusteredRoutePolicy$CamelClusterLeadershipListener v;
org.apache.camel.cluster.CamelClusterService$Selector v;
java.lang.RuntimeException v;
java.lang.Exception v;
org.apache.camel.util.ReferenceCount v;
v := @this: org.apache.camel.impl.cluster.ClusteredRoutePolicy;
v := @parameter: org.apache.camel.cluster.CamelClusterService;
v := @parameter: org.apache.camel.cluster.CamelClusterService$Selector;
v := @parameter: java.lang.String;
specialinvoke v.<org.apache.camel.support.RoutePolicySupport: void <init>()>();
v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: java.lang.String namespace> = v;
v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: org.apache.camel.cluster.CamelClusterService clusterService> = v;
v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: org.apache.camel.cluster.CamelClusterService$Selector clusterServiceSelector> = v;
staticinvoke <org.apache.camel.util.ObjectHelper: java.lang.Object notNull(java.lang.Object,java.lang.String)>(v, "Namespace");
v = new org.apache.camel.impl.cluster.ClusteredRoutePolicy$CamelClusterLeadershipListener;
specialinvoke v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy$CamelClusterLeadershipListener: void <init>(org.apache.camel.impl.cluster.ClusteredRoutePolicy)>(v);
v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: org.apache.camel.cluster.CamelClusterEventListener$Leadership leadershipEventListener> = v;
v = new java.util.HashSet;
specialinvoke v.<java.util.HashSet: void <init>()>();
v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: java.util.Set stoppedRoutes> = v;
v = new java.util.HashSet;
specialinvoke v.<java.util.HashSet: void <init>()>();
v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: java.util.Set startedRoutes> = v;
v = new java.util.concurrent.atomic.AtomicBoolean;
specialinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void <init>(boolean)>(0);
v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: java.util.concurrent.atomic.AtomicBoolean leader> = v;
v = new java.util.concurrent.atomic.AtomicBoolean;
specialinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void <init>(boolean)>(0);
v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: java.util.concurrent.atomic.AtomicBoolean contextStarted> = v;
v = staticinvoke <java.time.Duration: java.time.Duration ofMillis(long)>(0L);
v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: java.time.Duration initialDelay> = v;
label:
v = new org.apache.camel.impl.cluster.ClusteredRoutePolicy$CamelContextStartupListener;
specialinvoke v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy$CamelContextStartupListener: void <init>(org.apache.camel.impl.cluster.ClusteredRoutePolicy)>(v);
v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: org.apache.camel.impl.cluster.ClusteredRoutePolicy$CamelContextStartupListener listener> = v;
v = v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: org.apache.camel.impl.cluster.ClusteredRoutePolicy$CamelContextStartupListener listener>;
virtualinvoke v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy$CamelContextStartupListener: void start()>();
label:
goto label;
label:
v := @caughtexception;
v = new java.lang.RuntimeException;
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.Throwable)>(v);
throw v;
label:
v = staticinvoke <org.apache.camel.impl.cluster.ClusteredRoutePolicy$lambda_new_0__348: java.lang.Runnable bootstrap$(org.apache.camel.impl.cluster.ClusteredRoutePolicy)>(v);
v = staticinvoke <org.apache.camel.util.ReferenceCount: org.apache.camel.util.ReferenceCount onRelease(java.lang.Runnable)>(v);
v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: org.apache.camel.util.ReferenceCount refCount> = v;
return;
catch java.lang.Exception from label to label with label;
}
public org.apache.camel.CamelContext getCamelContext()
{
org.apache.camel.CamelContext v;
org.apache.camel.impl.cluster.ClusteredRoutePolicy v;
v := @this: org.apache.camel.impl.cluster.ClusteredRoutePolicy;
v = v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: org.apache.camel.CamelContext camelContext>;
return v;
}
public void setCamelContext(org.apache.camel.CamelContext)
{
java.lang.IllegalStateException v;
org.apache.camel.impl.cluster.ClusteredRoutePolicy$CamelContextStartupListener v, v;
java.util.concurrent.ScheduledExecutorService v;
org.apache.camel.spi.ExecutorServiceManager v;
java.lang.String v;
org.apache.camel.spi.ManagementStrategy v;
org.apache.camel.CamelContext v, v, v, v, v, v, v;
org.apache.camel.impl.cluster.ClusteredRoutePolicy v;
java.lang.RuntimeException v;
java.lang.Exception v;
v := @this: org.apache.camel.impl.cluster.ClusteredRoutePolicy;
v := @parameter: org.apache.camel.CamelContext;
v = v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: org.apache.camel.CamelContext camelContext>;
if v != v goto label;
return;
label:
v = v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: org.apache.camel.CamelContext camelContext>;
if v == null goto label;
v = v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: org.apache.camel.CamelContext camelContext>;
if v == v goto label;
v = new java.lang.IllegalStateException;
v = v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: org.apache.camel.CamelContext camelContext>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.camel.CamelContext,org.apache.camel.CamelContext)>(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[])>("CamelContext should not be changed: current=\u, new=\u0001");
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>(v);
throw v;
label:
v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: org.apache.camel.CamelContext camelContext> = v;
v = v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: org.apache.camel.CamelContext camelContext>;
v = v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: org.apache.camel.impl.cluster.ClusteredRoutePolicy$CamelContextStartupListener listener>;
interfaceinvoke v.<org.apache.camel.CamelContext: void addStartupListener(org.apache.camel.StartupListener)>(v);
v = v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: org.apache.camel.CamelContext camelContext>;
v = interfaceinvoke v.<org.apache.camel.CamelContext: org.apache.camel.spi.ManagementStrategy getManagementStrategy()>();
v = v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: org.apache.camel.impl.cluster.ClusteredRoutePolicy$CamelContextStartupListener listener>;
interfaceinvoke v.<org.apache.camel.spi.ManagementStrategy: void addEventNotifier(org.apache.camel.spi.EventNotifier)>(v);
v = interfaceinvoke v.<org.apache.camel.CamelContext: org.apache.camel.spi.ExecutorServiceManager getExecutorServiceManager()>();
v = interfaceinvoke v.<org.apache.camel.spi.ExecutorServiceManager: java.util.concurrent.ScheduledExecutorService newSingleThreadScheduledExecutor(java.lang.Object,java.lang.String)>(v, "ClusteredRoutePolicy");
v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: java.util.concurrent.ScheduledExecutorService executorService> = v;
label:
goto label;
label:
v := @caughtexception;
v = new java.lang.RuntimeException;
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.Throwable)>(v);
throw v;
label:
return;
catch java.lang.Exception from label to label with label;
}
public java.time.Duration getInitialDelay()
{
org.apache.camel.impl.cluster.ClusteredRoutePolicy v;
java.time.Duration v;
v := @this: org.apache.camel.impl.cluster.ClusteredRoutePolicy;
v = v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: java.time.Duration initialDelay>;
return v;
}
public void setInitialDelay(java.time.Duration)
{
org.apache.camel.impl.cluster.ClusteredRoutePolicy v;
java.time.Duration v;
v := @this: org.apache.camel.impl.cluster.ClusteredRoutePolicy;
v := @parameter: java.time.Duration;
v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: java.time.Duration initialDelay> = v;
return;
}
public void onInit(org.apache.camel.Route)
{
org.apache.camel.model.RouteDefinition v;
org.apache.camel.impl.cluster.ClusteredRoutePolicy v;
org.apache.camel.Route v;
org.slf4j.Logger v;
java.util.Set v;
java.lang.Class v;
org.apache.camel.util.ReferenceCount v;
java.lang.String v;
org.apache.camel.spi.RouteContext v;
v := @this: org.apache.camel.impl.cluster.ClusteredRoutePolicy;
v := @parameter: org.apache.camel.Route;
specialinvoke v.<org.apache.camel.support.RoutePolicySupport: void onInit(org.apache.camel.Route)>(v);
v = <org.apache.camel.impl.cluster.ClusteredRoutePolicy: org.slf4j.Logger LOGGER>;
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = interfaceinvoke v.<org.apache.camel.Route: java.lang.String getId()>();
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object,java.lang.Object)>("Route managed by {}. Setting route {} AutoStartup flag to false.", v, v);
v = interfaceinvoke v.<org.apache.camel.Route: org.apache.camel.spi.RouteContext getRouteContext()>();
v = interfaceinvoke v.<org.apache.camel.spi.RouteContext: org.apache.camel.model.RouteDefinition getRoute()>();
virtualinvoke v.<org.apache.camel.model.RouteDefinition: void setAutoStartup(java.lang.String)>("false");
v = v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: org.apache.camel.util.ReferenceCount refCount>;
virtualinvoke v.<org.apache.camel.util.ReferenceCount: void retain()>();
v = v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: java.util.Set stoppedRoutes>;
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
specialinvoke v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: void startManagedRoutes()>();
return;
}
public void doStart() throws java.lang.Exception
{
java.lang.Object[] v;
java.util.function.Supplier v;
java.lang.String v, v, v;
org.apache.camel.cluster.CamelClusterService v, v, v, v, v;
org.apache.camel.CamelContext v;
org.apache.camel.impl.cluster.ClusteredRoutePolicy v;
org.slf4j.Logger v;
org.apache.camel.cluster.CamelClusterService$Selector v;
org.apache.camel.cluster.CamelClusterView v;
java.util.Optional v;
java.lang.Class v;
java.lang.Object v;
v := @this: org.apache.camel.impl.cluster.ClusteredRoutePolicy;
v = v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: org.apache.camel.cluster.CamelClusterService clusterService>;
if v != null goto label;
v = v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: org.apache.camel.CamelContext camelContext>;
v = v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: org.apache.camel.cluster.CamelClusterService$Selector clusterServiceSelector>;
v = staticinvoke <org.apache.camel.impl.cluster.ClusterServiceHelper: java.util.Optional lookupService(org.apache.camel.CamelContext,org.apache.camel.cluster.CamelClusterService$Selector)>(v, v);
v = staticinvoke <org.apache.camel.impl.cluster.ClusteredRoutePolicy$lambda_doStart_1__349: java.util.function.Supplier bootstrap$()>();
v = virtualinvoke v.<java.util.Optional: java.lang.Object orElseThrow(java.util.function.Supplier)>(v);
v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: org.apache.camel.cluster.CamelClusterService clusterService> = v;
label:
v = <org.apache.camel.impl.cluster.ClusteredRoutePolicy: org.slf4j.Logger LOGGER>;
v = newarray (java.lang.Object)[4];
v[0] = v;
v = v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: org.apache.camel.cluster.CamelClusterService clusterService>;
v[1] = v;
v = v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: org.apache.camel.cluster.CamelClusterService clusterService>;
v = interfaceinvoke v.<org.apache.camel.cluster.CamelClusterService: java.lang.String getId()>();
v[2] = v;
v = v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: org.apache.camel.cluster.CamelClusterService clusterService>;
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v[3] = v;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object[])>("ClusteredRoutePolicy {} is using ClusterService instance {} (id={}, type={})", v);
v = v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: org.apache.camel.cluster.CamelClusterService clusterService>;
v = v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: java.lang.String namespace>;
v = interfaceinvoke v.<org.apache.camel.cluster.CamelClusterService: org.apache.camel.cluster.CamelClusterView getView(java.lang.String)>(v);
v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: org.apache.camel.cluster.CamelClusterView clusterView> = v;
return;
}
public void doShutdown() throws java.lang.Exception
{
org.apache.camel.impl.cluster.ClusteredRoutePolicy v;
org.apache.camel.util.ReferenceCount v;
v := @this: org.apache.camel.impl.cluster.ClusteredRoutePolicy;
v = v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: org.apache.camel.util.ReferenceCount refCount>;
virtualinvoke v.<org.apache.camel.util.ReferenceCount: void release()>();
return;
}
public boolean isLeader()
{
java.util.concurrent.atomic.AtomicBoolean v;
org.apache.camel.impl.cluster.ClusteredRoutePolicy v;
boolean v;
v := @this: org.apache.camel.impl.cluster.ClusteredRoutePolicy;
v = v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: java.util.concurrent.atomic.AtomicBoolean leader>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean get()>();
return v;
}
private synchronized void setLeader(boolean)
{
org.apache.camel.impl.cluster.ClusteredRoutePolicy v;
org.slf4j.Logger v, v;
java.util.concurrent.atomic.AtomicBoolean v, v;
boolean v, v, v;
v := @this: org.apache.camel.impl.cluster.ClusteredRoutePolicy;
v := @parameter: boolean;
if v == 0 goto label;
v = v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: java.util.concurrent.atomic.AtomicBoolean leader>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean compareAndSet(boolean,boolean)>(0, v);
if v == 0 goto label;
v = <org.apache.camel.impl.cluster.ClusteredRoutePolicy: org.slf4j.Logger LOGGER>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>("Leadership taken");
specialinvoke v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: void startManagedRoutes()>();
goto label;
label:
if v != 0 goto label;
v = v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: java.util.concurrent.atomic.AtomicBoolean leader>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean getAndSet(boolean)>(v);
if v == 0 goto label;
v = <org.apache.camel.impl.cluster.ClusteredRoutePolicy: org.slf4j.Logger LOGGER>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>("Leadership lost");
specialinvoke v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: void stopManagedRoutes()>();
label:
return;
}
private void startManagedRoutes()
{
org.apache.camel.impl.cluster.ClusteredRoutePolicy v;
boolean v;
v := @this: org.apache.camel.impl.cluster.ClusteredRoutePolicy;
v = virtualinvoke v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: boolean isLeader()>();
if v == 0 goto label;
specialinvoke v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: void doStartManagedRoutes()>();
goto label;
label:
specialinvoke v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: void doStopManagedRoutes()>();
label:
return;
}
private void doStartManagedRoutes()
{
java.lang.String v, v;
org.apache.camel.ServiceStatus v;
boolean v, v, v;
org.apache.camel.model.RouteDefinition v;
org.apache.camel.CamelContext v, v;
org.apache.camel.impl.cluster.ClusteredRoutePolicy v;
org.slf4j.Logger v;
java.util.Iterator v;
java.util.Set v, v, v, v;
java.lang.Exception v;
java.lang.Object v;
org.apache.camel.spi.RouteContext v;
v := @this: org.apache.camel.impl.cluster.ClusteredRoutePolicy;
v = virtualinvoke v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: boolean isRunAllowed()>();
if v != 0 goto label;
return;
label:
v = v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: java.util.Set stoppedRoutes>;
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<org.apache.camel.Route: org.apache.camel.spi.RouteContext getRouteContext()>();
v = interfaceinvoke v.<org.apache.camel.spi.RouteContext: org.apache.camel.model.RouteDefinition getRoute()>();
v = virtualinvoke v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: org.apache.camel.CamelContext getCamelContext()>();
v = virtualinvoke v.<org.apache.camel.model.RouteDefinition: org.apache.camel.ServiceStatus getStatus(org.apache.camel.CamelContext)>(v);
v = virtualinvoke v.<org.apache.camel.ServiceStatus: boolean isStartable()>();
if v == 0 goto label;
v = <org.apache.camel.impl.cluster.ClusteredRoutePolicy: org.slf4j.Logger LOGGER>;
v = interfaceinvoke v.<org.apache.camel.Route: java.lang.String getId()>();
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object)>("Starting route \'{}\'", v);
v = v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: org.apache.camel.CamelContext camelContext>;
v = interfaceinvoke v.<org.apache.camel.Route: java.lang.String getId()>();
interfaceinvoke v.<org.apache.camel.CamelContext: void startRoute(java.lang.String)>(v);
v = v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: java.util.Set startedRoutes>;
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
goto label;
label:
v = v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: java.util.Set stoppedRoutes>;
v = v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: java.util.Set startedRoutes>;
interfaceinvoke v.<java.util.Set: boolean removeAll(java.util.Collection)>(v);
label:
goto label;
label:
v := @caughtexception;
virtualinvoke v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: void handleException(java.lang.Throwable)>(v);
label:
return;
catch java.lang.Exception from label to label with label;
}
private void stopManagedRoutes()
{
org.apache.camel.impl.cluster.ClusteredRoutePolicy v;
boolean v;
v := @this: org.apache.camel.impl.cluster.ClusteredRoutePolicy;
v = virtualinvoke v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: boolean isLeader()>();
if v == 0 goto label;
specialinvoke v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: void doStartManagedRoutes()>();
goto label;
label:
specialinvoke v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: void doStopManagedRoutes()>();
label:
return;
}
private void doStopManagedRoutes()
{
java.lang.String v;
org.apache.camel.ServiceStatus v;
boolean v, v, v;
org.apache.camel.model.RouteDefinition v;
org.apache.camel.CamelContext v;
org.apache.camel.impl.cluster.ClusteredRoutePolicy v;
org.slf4j.Logger v;
java.util.Iterator v;
java.util.Set v, v, v, v;
java.lang.Exception v;
java.lang.Object v;
org.apache.camel.spi.RouteContext v;
v := @this: org.apache.camel.impl.cluster.ClusteredRoutePolicy;
v = virtualinvoke v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: boolean isRunAllowed()>();
if v != 0 goto label;
return;
label:
v = v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: java.util.Set startedRoutes>;
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<org.apache.camel.Route: org.apache.camel.spi.RouteContext getRouteContext()>();
v = interfaceinvoke v.<org.apache.camel.spi.RouteContext: org.apache.camel.model.RouteDefinition getRoute()>();
v = virtualinvoke v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: org.apache.camel.CamelContext getCamelContext()>();
v = virtualinvoke v.<org.apache.camel.model.RouteDefinition: org.apache.camel.ServiceStatus getStatus(org.apache.camel.CamelContext)>(v);
v = virtualinvoke v.<org.apache.camel.ServiceStatus: boolean isStoppable()>();
if v == 0 goto label;
v = <org.apache.camel.impl.cluster.ClusteredRoutePolicy: org.slf4j.Logger LOGGER>;
v = interfaceinvoke v.<org.apache.camel.Route: java.lang.String getId()>();
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object)>("Stopping route \'{}\'", v);
virtualinvoke v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: void stopRoute(org.apache.camel.Route)>(v);
v = v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: java.util.Set stoppedRoutes>;
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
goto label;
label:
v = v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: java.util.Set startedRoutes>;
v = v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: java.util.Set stoppedRoutes>;
interfaceinvoke v.<java.util.Set: boolean removeAll(java.util.Collection)>(v);
label:
goto label;
label:
v := @caughtexception;
virtualinvoke v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: void handleException(java.lang.Throwable)>(v);
label:
return;
catch java.lang.Exception from label to label with label;
}
private void onCamelContextStarted()
{
java.util.function.Function v, v;
org.apache.camel.cluster.CamelClusterEventListener$Leadership v;
java.util.stream.Collector v, v;
org.apache.camel.impl.cluster.ClusteredRoutePolicy v;
org.slf4j.Logger v;
java.util.Set v, v;
org.apache.camel.cluster.CamelClusterView v;
java.util.stream.Stream v, v, v, v;
java.lang.Object v, v;
v := @this: org.apache.camel.impl.cluster.ClusteredRoutePolicy;
v = <org.apache.camel.impl.cluster.ClusteredRoutePolicy: org.slf4j.Logger LOGGER>;
v = v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: java.util.Set stoppedRoutes>;
v = interfaceinvoke v.<java.util.Set: java.util.stream.Stream stream()>();
v = staticinvoke <org.apache.camel.impl.cluster.ClusteredRoutePolicy$getId__350: java.util.function.Function bootstrap$()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream map(java.util.function.Function)>(v);
v = staticinvoke <java.util.stream.Collectors: java.util.stream.Collector joining(java.lang.CharSequence)>(",");
v = interfaceinvoke v.<java.util.stream.Stream: java.lang.Object collect(java.util.stream.Collector)>(v);
v = v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: java.util.Set startedRoutes>;
v = interfaceinvoke v.<java.util.Set: java.util.stream.Stream stream()>();
v = staticinvoke <org.apache.camel.impl.cluster.ClusteredRoutePolicy$getId__351: java.util.function.Function bootstrap$()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream map(java.util.function.Function)>(v);
v = staticinvoke <java.util.stream.Collectors: java.util.stream.Collector joining(java.lang.CharSequence)>(",");
v = interfaceinvoke v.<java.util.stream.Stream: java.lang.Object collect(java.util.stream.Collector)>(v);
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object,java.lang.Object)>("Apply cluster policy (stopped-routes=\'{}\', started-routes=\'{}\')", v, v);
v = v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: org.apache.camel.cluster.CamelClusterView clusterView>;
v = v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: org.apache.camel.cluster.CamelClusterEventListener$Leadership leadershipEventListener>;
interfaceinvoke v.<org.apache.camel.cluster.CamelClusterView: void addEventListener(org.apache.camel.cluster.CamelClusterEventListener)>(v);
return;
}
public static org.apache.camel.impl.cluster.ClusteredRoutePolicy forNamespace(org.apache.camel.CamelContext, org.apache.camel.cluster.CamelClusterService$Selector, java.lang.String) throws java.lang.Exception
{
org.apache.camel.CamelContext v;
org.apache.camel.impl.cluster.ClusteredRoutePolicy v;
org.apache.camel.cluster.CamelClusterService$Selector v;
java.lang.String v;
v := @parameter: org.apache.camel.CamelContext;
v := @parameter: org.apache.camel.cluster.CamelClusterService$Selector;
v := @parameter: java.lang.String;
v = new org.apache.camel.impl.cluster.ClusteredRoutePolicy;
specialinvoke v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: void <init>(org.apache.camel.cluster.CamelClusterService,org.apache.camel.cluster.CamelClusterService$Selector,java.lang.String)>(null, v, v);
virtualinvoke v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: void setCamelContext(org.apache.camel.CamelContext)>(v);
return v;
}
public static org.apache.camel.impl.cluster.ClusteredRoutePolicy forNamespace(org.apache.camel.CamelContext, java.lang.String) throws java.lang.Exception
{
org.apache.camel.CamelContext v;
org.apache.camel.impl.cluster.ClusteredRoutePolicy v;
org.apache.camel.cluster.CamelClusterService$Selector v;
java.lang.String v;
v := @parameter: org.apache.camel.CamelContext;
v := @parameter: java.lang.String;
v = <org.apache.camel.impl.cluster.ClusterServiceSelectors: org.apache.camel.cluster.CamelClusterService$Selector DEFAULT_SELECTOR>;
v = staticinvoke <org.apache.camel.impl.cluster.ClusteredRoutePolicy: org.apache.camel.impl.cluster.ClusteredRoutePolicy forNamespace(org.apache.camel.CamelContext,org.apache.camel.cluster.CamelClusterService$Selector,java.lang.String)>(v, v, v);
return v;
}
public static org.apache.camel.impl.cluster.ClusteredRoutePolicy forNamespace(org.apache.camel.cluster.CamelClusterService, java.lang.String) throws java.lang.Exception
{
org.apache.camel.impl.cluster.ClusteredRoutePolicy v;
org.apache.camel.cluster.CamelClusterService$Selector v;
java.lang.String v;
org.apache.camel.cluster.CamelClusterService v;
v := @parameter: org.apache.camel.cluster.CamelClusterService;
v := @parameter: java.lang.String;
v = new org.apache.camel.impl.cluster.ClusteredRoutePolicy;
v = <org.apache.camel.impl.cluster.ClusterServiceSelectors: org.apache.camel.cluster.CamelClusterService$Selector DEFAULT_SELECTOR>;
specialinvoke v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: void <init>(org.apache.camel.cluster.CamelClusterService,org.apache.camel.cluster.CamelClusterService$Selector,java.lang.String)>(v, v, v);
return v;
}
public static org.apache.camel.impl.cluster.ClusteredRoutePolicy forNamespace(org.apache.camel.cluster.CamelClusterService$Selector, java.lang.String) throws java.lang.Exception
{
org.apache.camel.cluster.CamelClusterService$Selector v;
org.apache.camel.impl.cluster.ClusteredRoutePolicy v;
java.lang.String v;
v := @parameter: org.apache.camel.cluster.CamelClusterService$Selector;
v := @parameter: java.lang.String;
v = new org.apache.camel.impl.cluster.ClusteredRoutePolicy;
specialinvoke v.<org.apache.camel.impl.cluster.ClusteredRoutePolicy: void <init>(org.apache.camel.cluster.CamelClusterService,org.apache.camel.cluster.CamelClusterService$Selector,java.lang.String)>(null, v, v);
return v;
}
public static org.apache.camel.impl.cluster.ClusteredRoutePolicy forNamespace(java.lang.String) throws java.lang.Exception
{
org.apache.camel.cluster.CamelClusterService$Selector v;
org.apache.camel.impl.cluster.ClusteredRoutePolicy v;
java.lang.String v;
v := @parameter: java.lang.String;
v = <org.apache.camel.impl.cluster.ClusterServiceSelectors: org.apache.camel.cluster.CamelClusterService$Selector DEFAULT_SELECTOR>;
v = staticinvoke <org.apache.camel.impl.cluster.ClusteredRoutePolicy: org.apache.camel.impl.cluster.ClusteredRoutePolicy forNamespace(org.apache.camel.cluster.CamelClusterService$Selector,java.lang.String)>(v, v);
return v;
}
static void <clinit>()
{
org.slf4j.Logger v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lorg/apache/camel/impl/cluster/ClusteredRoutePolicy;");
<org.apache.camel.impl.cluster.ClusteredRoutePolicy: org.slf4j.Logger LOGGER> = v;
return;
}
}