public class org.apache.camel.impl.cloud.ServiceRegistrationRoutePolicy extends org.apache.camel.support.RoutePolicySupport implements org.apache.camel.CamelContextAware
{
private static final org.slf4j.Logger LOGGER;
private final org.apache.camel.cloud.ServiceRegistry$Selector serviceRegistrySelector;
private org.apache.camel.cloud.ServiceRegistry serviceRegistry;
private org.apache.camel.CamelContext camelContext;
public void <init>()
{
org.apache.camel.impl.cloud.ServiceRegistrationRoutePolicy v;
org.apache.camel.cloud.ServiceRegistry$Selector v;
v := @this: org.apache.camel.impl.cloud.ServiceRegistrationRoutePolicy;
v = <org.apache.camel.impl.cloud.ServiceRegistrySelectors: org.apache.camel.cloud.ServiceRegistry$Selector DEFAULT_SELECTOR>;
specialinvoke v.<org.apache.camel.impl.cloud.ServiceRegistrationRoutePolicy: void <init>(org.apache.camel.cloud.ServiceRegistry,org.apache.camel.cloud.ServiceRegistry$Selector)>(null, v);
return;
}
public void <init>(org.apache.camel.cloud.ServiceRegistry$Selector)
{
org.apache.camel.impl.cloud.ServiceRegistrationRoutePolicy v;
org.apache.camel.cloud.ServiceRegistry$Selector v;
v := @this: org.apache.camel.impl.cloud.ServiceRegistrationRoutePolicy;
v := @parameter: org.apache.camel.cloud.ServiceRegistry$Selector;
specialinvoke v.<org.apache.camel.impl.cloud.ServiceRegistrationRoutePolicy: void <init>(org.apache.camel.cloud.ServiceRegistry,org.apache.camel.cloud.ServiceRegistry$Selector)>(null, v);
return;
}
public void <init>(org.apache.camel.cloud.ServiceRegistry, org.apache.camel.cloud.ServiceRegistry$Selector)
{
org.apache.camel.impl.cloud.ServiceRegistrationRoutePolicy v;
org.apache.camel.cloud.ServiceRegistry$Selector v;
org.apache.camel.cloud.ServiceRegistry v;
v := @this: org.apache.camel.impl.cloud.ServiceRegistrationRoutePolicy;
v := @parameter: org.apache.camel.cloud.ServiceRegistry;
v := @parameter: org.apache.camel.cloud.ServiceRegistry$Selector;
specialinvoke v.<org.apache.camel.support.RoutePolicySupport: void <init>()>();
v.<org.apache.camel.impl.cloud.ServiceRegistrationRoutePolicy: org.apache.camel.cloud.ServiceRegistry serviceRegistry> = v;
v.<org.apache.camel.impl.cloud.ServiceRegistrationRoutePolicy: org.apache.camel.cloud.ServiceRegistry$Selector serviceRegistrySelector> = v;
return;
}
public org.apache.camel.CamelContext getCamelContext()
{
org.apache.camel.CamelContext v;
org.apache.camel.impl.cloud.ServiceRegistrationRoutePolicy v;
v := @this: org.apache.camel.impl.cloud.ServiceRegistrationRoutePolicy;
v = v.<org.apache.camel.impl.cloud.ServiceRegistrationRoutePolicy: org.apache.camel.CamelContext camelContext>;
return v;
}
public void setCamelContext(org.apache.camel.CamelContext)
{
org.apache.camel.CamelContext v;
org.apache.camel.impl.cloud.ServiceRegistrationRoutePolicy v;
v := @this: org.apache.camel.impl.cloud.ServiceRegistrationRoutePolicy;
v := @parameter: org.apache.camel.CamelContext;
v.<org.apache.camel.impl.cloud.ServiceRegistrationRoutePolicy: org.apache.camel.CamelContext camelContext> = v;
return;
}
public void doStart() throws java.lang.Exception
{
org.apache.camel.CamelContext v;
org.apache.camel.impl.cloud.ServiceRegistrationRoutePolicy v;
java.lang.Object[] v;
org.slf4j.Logger v;
org.apache.camel.cloud.ServiceRegistry v, v, v, v;
java.util.function.Supplier v;
org.apache.camel.cloud.ServiceRegistry$Selector v;
java.util.Optional v;
java.lang.Class v;
java.lang.Object v;
java.lang.String v, v;
v := @this: org.apache.camel.impl.cloud.ServiceRegistrationRoutePolicy;
v = v.<org.apache.camel.impl.cloud.ServiceRegistrationRoutePolicy: org.apache.camel.cloud.ServiceRegistry serviceRegistry>;
if v != null goto label;
v = v.<org.apache.camel.impl.cloud.ServiceRegistrationRoutePolicy: org.apache.camel.CamelContext camelContext>;
v = v.<org.apache.camel.impl.cloud.ServiceRegistrationRoutePolicy: org.apache.camel.cloud.ServiceRegistry$Selector serviceRegistrySelector>;
v = staticinvoke <org.apache.camel.impl.cloud.ServiceRegistryHelper: java.util.Optional lookupService(org.apache.camel.CamelContext,org.apache.camel.cloud.ServiceRegistry$Selector)>(v, v);
v = staticinvoke <org.apache.camel.impl.cloud.ServiceRegistrationRoutePolicy$lambda_doStart_0__309: 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.cloud.ServiceRegistrationRoutePolicy: org.apache.camel.cloud.ServiceRegistry serviceRegistry> = v;
label:
v = <org.apache.camel.impl.cloud.ServiceRegistrationRoutePolicy: org.slf4j.Logger LOGGER>;
v = newarray (java.lang.Object)[4];
v[0] = v;
v = v.<org.apache.camel.impl.cloud.ServiceRegistrationRoutePolicy: org.apache.camel.cloud.ServiceRegistry serviceRegistry>;
v[1] = v;
v = v.<org.apache.camel.impl.cloud.ServiceRegistrationRoutePolicy: org.apache.camel.cloud.ServiceRegistry serviceRegistry>;
v = interfaceinvoke v.<org.apache.camel.cloud.ServiceRegistry: java.lang.String getId()>();
v[2] = v;
v = v.<org.apache.camel.impl.cloud.ServiceRegistrationRoutePolicy: org.apache.camel.cloud.ServiceRegistry serviceRegistry>;
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[])>("ServiceRegistrationRoutePolicy {} is using ServiceRegistry instance {} (id={}, type={})", v);
return;
}
public void onStart(org.apache.camel.Route)
{
org.apache.camel.impl.cloud.ServiceRegistrationRoutePolicy v;
org.apache.camel.Route v;
v := @this: org.apache.camel.impl.cloud.ServiceRegistrationRoutePolicy;
v := @parameter: org.apache.camel.Route;
specialinvoke v.<org.apache.camel.impl.cloud.ServiceRegistrationRoutePolicy: void register(org.apache.camel.Route)>(v);
return;
}
public void onStop(org.apache.camel.Route)
{
org.apache.camel.impl.cloud.ServiceRegistrationRoutePolicy v;
org.apache.camel.Route v;
v := @this: org.apache.camel.impl.cloud.ServiceRegistrationRoutePolicy;
v := @parameter: org.apache.camel.Route;
specialinvoke v.<org.apache.camel.impl.cloud.ServiceRegistrationRoutePolicy: void deregister(org.apache.camel.Route)>(v);
return;
}
public void onSuspend(org.apache.camel.Route)
{
org.apache.camel.impl.cloud.ServiceRegistrationRoutePolicy v;
org.apache.camel.Route v;
v := @this: org.apache.camel.impl.cloud.ServiceRegistrationRoutePolicy;
v := @parameter: org.apache.camel.Route;
specialinvoke v.<org.apache.camel.impl.cloud.ServiceRegistrationRoutePolicy: void deregister(org.apache.camel.Route)>(v);
return;
}
public void onResume(org.apache.camel.Route)
{
org.apache.camel.impl.cloud.ServiceRegistrationRoutePolicy v;
org.apache.camel.Route v;
v := @this: org.apache.camel.impl.cloud.ServiceRegistrationRoutePolicy;
v := @parameter: org.apache.camel.Route;
specialinvoke v.<org.apache.camel.impl.cloud.ServiceRegistrationRoutePolicy: void register(org.apache.camel.Route)>(v);
return;
}
private void register(org.apache.camel.Route)
{
java.util.function.Consumer v;
org.apache.camel.impl.cloud.ServiceRegistrationRoutePolicy v;
org.apache.camel.Route v;
org.apache.camel.cloud.ServiceRegistry v;
java.util.Optional v;
v := @this: org.apache.camel.impl.cloud.ServiceRegistrationRoutePolicy;
v := @parameter: org.apache.camel.Route;
v = specialinvoke v.<org.apache.camel.impl.cloud.ServiceRegistrationRoutePolicy: java.util.Optional computeServiceDefinition(org.apache.camel.Route)>(v);
v = v.<org.apache.camel.impl.cloud.ServiceRegistrationRoutePolicy: org.apache.camel.cloud.ServiceRegistry serviceRegistry>;
virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = staticinvoke <org.apache.camel.impl.cloud.ServiceRegistrationRoutePolicy$register__310: java.util.function.Consumer bootstrap$(org.apache.camel.cloud.ServiceRegistry)>(v);
virtualinvoke v.<java.util.Optional: void ifPresent(java.util.function.Consumer)>(v);
return;
}
private void deregister(org.apache.camel.Route)
{
java.util.function.Consumer v;
org.apache.camel.impl.cloud.ServiceRegistrationRoutePolicy v;
org.apache.camel.Route v;
org.apache.camel.cloud.ServiceRegistry v;
java.util.Optional v;
v := @this: org.apache.camel.impl.cloud.ServiceRegistrationRoutePolicy;
v := @parameter: org.apache.camel.Route;
v = specialinvoke v.<org.apache.camel.impl.cloud.ServiceRegistrationRoutePolicy: java.util.Optional computeServiceDefinition(org.apache.camel.Route)>(v);
v = v.<org.apache.camel.impl.cloud.ServiceRegistrationRoutePolicy: org.apache.camel.cloud.ServiceRegistry serviceRegistry>;
virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = staticinvoke <org.apache.camel.impl.cloud.ServiceRegistrationRoutePolicy$deregister__311: java.util.function.Consumer bootstrap$(org.apache.camel.cloud.ServiceRegistry)>(v);
virtualinvoke v.<java.util.Optional: void ifPresent(java.util.function.Consumer)>(v);
return;
}
private java.util.Optional computeServiceDefinition(org.apache.camel.Route)
{
org.apache.camel.Endpoint v;
org.apache.camel.Consumer v;
java.util.Map v, v;
boolean v, v, v, v, v;
org.apache.camel.impl.cloud.ServiceRegistrationRoutePolicy v;
java.util.Set v;
org.apache.camel.spi.UuidGenerator v;
java.util.Optional v, v;
org.apache.camel.spi.RouteContext v;
org.apache.camel.Route v;
java.util.HashMap v;
int v;
org.apache.camel.model.RouteDefinition v;
org.apache.camel.CamelContext v, v;
org.apache.camel.impl.cloud.DefaultServiceDefinition v;
org.slf4j.Logger v;
java.util.Iterator v;
org.apache.camel.TypeConverter v;
java.lang.Object v, v, v, v, v, v, v, v, v;
v := @this: org.apache.camel.impl.cloud.ServiceRegistrationRoutePolicy;
v := @parameter: org.apache.camel.Route;
v = interfaceinvoke v.<org.apache.camel.Route: org.apache.camel.Consumer getConsumer()>();
v = interfaceinvoke v.<org.apache.camel.Consumer: org.apache.camel.Endpoint getEndpoint()>();
v = new java.util.HashMap;
specialinvoke v.<java.util.HashMap: void <init>()>();
v = v instanceof org.apache.camel.cloud.DiscoverableService;
if v == 0 goto label;
v = interfaceinvoke v.<org.apache.camel.cloud.DiscoverableService: java.util.Map getServiceProperties()>();
interfaceinvoke v.<java.util.Map: void putAll(java.util.Map)>(v);
label:
v = interfaceinvoke v.<org.apache.camel.Route: java.util.Map getProperties()>();
v = interfaceinvoke v.<java.util.Map: java.util.Set entrySet()>();
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.<java.util.Map$Entry: java.lang.Object getKey()>();
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("service.");
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = v.<org.apache.camel.impl.cloud.ServiceRegistrationRoutePolicy: org.apache.camel.CamelContext camelContext>;
v = interfaceinvoke v.<org.apache.camel.CamelContext: org.apache.camel.TypeConverter getTypeConverter()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = interfaceinvoke v.<org.apache.camel.TypeConverter: java.lang.Object convertTo(java.lang.Class,java.lang.Object)>(class "Ljava/lang/String;", v);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>("service.name");
if v != null goto label;
v = interfaceinvoke v.<org.apache.camel.Route: java.lang.String getGroup()>();
if v == null goto label;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>("service.name", v);
label:
v = staticinvoke <org.apache.camel.util.ObjectHelper: boolean isEmpty(java.lang.Object)>(v);
if v == 0 goto label;
v = <org.apache.camel.impl.cloud.ServiceRegistrationRoutePolicy: org.slf4j.Logger LOGGER>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object)>("Route {} has not enough information for service registration", v);
v = staticinvoke <java.util.Optional: java.util.Optional empty()>();
return v;
label:
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>("service.id");
if v != null goto label;
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.model.RouteDefinition: boolean hasCustomIdAssigned()>();
if v == 0 goto label;
v = interfaceinvoke v.<org.apache.camel.Route: java.lang.String getId()>();
label:
if v == null goto label;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>("service.id", v);
label:
if v != null goto label;
v = virtualinvoke v.<org.apache.camel.impl.cloud.ServiceRegistrationRoutePolicy: org.apache.camel.CamelContext getCamelContext()>();
v = interfaceinvoke v.<org.apache.camel.CamelContext: org.apache.camel.spi.UuidGenerator getUuidGenerator()>();
v = interfaceinvoke v.<org.apache.camel.spi.UuidGenerator: java.lang.String generateUuid()>();
label:
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>("service.host");
v = interfaceinvoke v.<java.util.Map: java.lang.Object getOrDefault(java.lang.Object,java.lang.Object)>("service.port", "-1");
v = new org.apache.camel.impl.cloud.DefaultServiceDefinition;
v = staticinvoke <java.lang.Integer: int parseInt(java.lang.String)>(v);
specialinvoke v.<org.apache.camel.impl.cloud.DefaultServiceDefinition: void <init>(java.lang.String,java.lang.String,java.lang.String,int,java.util.Map)>(v, v, v, v, v);
v = staticinvoke <java.util.Optional: java.util.Optional of(java.lang.Object)>(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/cloud/ServiceRegistrationRoutePolicy;");
<org.apache.camel.impl.cloud.ServiceRegistrationRoutePolicy: org.slf4j.Logger LOGGER> = v;
return;
}
}