public class org.apache.helix.rest.metadatastore.accessor.ZkRoutingDataReader extends java.lang.Object implements org.apache.helix.rest.metadatastore.accessor.MetadataStoreRoutingDataReader, org.apache.helix.zookeeper.zkclient.IZkDataListener, org.apache.helix.zookeeper.zkclient.IZkChildListener, org.apache.helix.zookeeper.zkclient.IZkStateListener
{
private final java.lang.String _namespace;
private final java.lang.String _zkAddress;
private final org.apache.helix.zookeeper.api.client.HelixZkClient _zkClient;
private final org.apache.helix.msdcommon.callback.RoutingDataListener _routingDataListener;
public void <init>(java.lang.String, java.lang.String, org.apache.helix.msdcommon.callback.RoutingDataListener)
{
org.apache.helix.zookeeper.api.client.HelixZkClient$ZkClientConfig v, v;
org.apache.helix.zookeeper.api.client.HelixZkClient v, v, v;
org.apache.helix.rest.metadatastore.accessor.ZkRoutingDataReader v;
org.apache.helix.msdcommon.callback.RoutingDataListener v, v;
java.lang.String v, v, v;
boolean v, v;
org.apache.helix.zookeeper.datamodel.serializer.ZNRecordSerializer v;
java.lang.IllegalArgumentException v, v;
org.apache.helix.zookeeper.impl.factory.DedicatedZkClientFactory v;
org.apache.helix.zookeeper.api.client.HelixZkClient$ZkConnectionConfig v;
v := @this: org.apache.helix.rest.metadatastore.accessor.ZkRoutingDataReader;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: org.apache.helix.msdcommon.callback.RoutingDataListener;
specialinvoke v.<java.lang.Object: void <init>()>();
if v == null goto label;
v = virtualinvoke v.<java.lang.String: boolean isEmpty()>();
if v == 0 goto label;
label:
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("namespace cannot be null or empty!");
throw v;
label:
v.<org.apache.helix.rest.metadatastore.accessor.ZkRoutingDataReader: java.lang.String _namespace> = v;
if v == null goto label;
v = virtualinvoke v.<java.lang.String: boolean isEmpty()>();
if v == 0 goto label;
label:
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("Zk address cannot be null or empty!");
throw v;
label:
v.<org.apache.helix.rest.metadatastore.accessor.ZkRoutingDataReader: java.lang.String _zkAddress> = v;
v = staticinvoke <org.apache.helix.zookeeper.impl.factory.DedicatedZkClientFactory: org.apache.helix.zookeeper.impl.factory.DedicatedZkClientFactory getInstance()>();
v = new org.apache.helix.zookeeper.api.client.HelixZkClient$ZkConnectionConfig;
specialinvoke v.<org.apache.helix.zookeeper.api.client.HelixZkClient$ZkConnectionConfig: void <init>(java.lang.String)>(v);
v = new org.apache.helix.zookeeper.api.client.HelixZkClient$ZkClientConfig;
specialinvoke v.<org.apache.helix.zookeeper.api.client.HelixZkClient$ZkClientConfig: void <init>()>();
v = new org.apache.helix.zookeeper.datamodel.serializer.ZNRecordSerializer;
specialinvoke v.<org.apache.helix.zookeeper.datamodel.serializer.ZNRecordSerializer: void <init>()>();
v = virtualinvoke v.<org.apache.helix.zookeeper.api.client.HelixZkClient$ZkClientConfig: org.apache.helix.zookeeper.api.client.HelixZkClient$ZkClientConfig setZkSerializer(org.apache.helix.zookeeper.zkclient.serialize.ZkSerializer)>(v);
v = virtualinvoke v.<org.apache.helix.zookeeper.impl.factory.DedicatedZkClientFactory: org.apache.helix.zookeeper.api.client.HelixZkClient buildZkClient(org.apache.helix.zookeeper.api.client.HelixZkClient$ZkConnectionConfig,org.apache.helix.zookeeper.api.client.HelixZkClient$ZkClientConfig)>(v, v);
v.<org.apache.helix.rest.metadatastore.accessor.ZkRoutingDataReader: org.apache.helix.zookeeper.api.client.HelixZkClient _zkClient> = v;
v = v.<org.apache.helix.rest.metadatastore.accessor.ZkRoutingDataReader: org.apache.helix.zookeeper.api.client.HelixZkClient _zkClient>;
v = v.<org.apache.helix.rest.metadatastore.accessor.ZkRoutingDataReader: java.lang.String _zkAddress>;
staticinvoke <org.apache.helix.rest.metadatastore.ZkMetadataStoreDirectory: void createRoutingDataPath(org.apache.helix.zookeeper.api.client.HelixZkClient,java.lang.String)>(v, v);
v.<org.apache.helix.rest.metadatastore.accessor.ZkRoutingDataReader: org.apache.helix.msdcommon.callback.RoutingDataListener _routingDataListener> = v;
v = v.<org.apache.helix.rest.metadatastore.accessor.ZkRoutingDataReader: org.apache.helix.msdcommon.callback.RoutingDataListener _routingDataListener>;
if v == null goto label;
v = v.<org.apache.helix.rest.metadatastore.accessor.ZkRoutingDataReader: org.apache.helix.zookeeper.api.client.HelixZkClient _zkClient>;
interfaceinvoke v.<org.apache.helix.zookeeper.api.client.HelixZkClient: void subscribeRoutingDataChanges(org.apache.helix.zookeeper.zkclient.IZkChildListener,org.apache.helix.zookeeper.zkclient.IZkDataListener)>(v, v);
label:
return;
}
public java.util.Map getRoutingData() throws org.apache.helix.msdcommon.exception.InvalidRoutingDataException
{
java.lang.Throwable v;
java.util.HashMap v;
org.apache.helix.zookeeper.api.client.HelixZkClient v, v;
org.apache.helix.rest.metadatastore.accessor.ZkRoutingDataReader v;
org.apache.helix.msdcommon.exception.InvalidRoutingDataException v;
java.lang.String v, v, v;
boolean v;
java.util.Iterator v;
java.util.List v, v, v;
java.lang.Object v, v;
v := @this: org.apache.helix.rest.metadatastore.accessor.ZkRoutingDataReader;
v = new java.util.HashMap;
specialinvoke v.<java.util.HashMap: void <init>()>();
label:
v = v.<org.apache.helix.rest.metadatastore.accessor.ZkRoutingDataReader: org.apache.helix.zookeeper.api.client.HelixZkClient _zkClient>;
v = interfaceinvoke v.<org.apache.helix.zookeeper.api.client.HelixZkClient: java.util.List getChildren(java.lang.String)>("/METADATA_STORE_ROUTING_DATA");
label:
goto label;
label:
v := @caughtexception;
v = new org.apache.helix.msdcommon.exception.InvalidRoutingDataException;
v = v.<org.apache.helix.rest.metadatastore.accessor.ZkRoutingDataReader: java.lang.String _zkAddress>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(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[])>("Routing data directory ZNode /METADATA_STORE_ROUTING_DATA does not exist. Routing ZooKeeper address: \u0001");
specialinvoke v.<org.apache.helix.msdcommon.exception.InvalidRoutingDataException: void <init>(java.lang.String)>(v);
throw v;
label:
if v == null goto label;
v = interfaceinvoke v.<java.util.List: 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 = v.<org.apache.helix.rest.metadatastore.accessor.ZkRoutingDataReader: org.apache.helix.zookeeper.api.client.HelixZkClient _zkClient>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(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[])>("/METADATA_STORE_ROUTING_DATA/\u0001");
v = interfaceinvoke v.<org.apache.helix.zookeeper.api.client.HelixZkClient: java.lang.Object readData(java.lang.String,boolean)>(v, 1);
if v == null goto label;
v = virtualinvoke v.<org.apache.helix.zookeeper.datamodel.ZNRecord: java.util.List getListField(java.lang.String)>("ZK_PATH_SHARDING_KEYS");
if v == null goto label;
v = v;
goto label;
label:
v = staticinvoke <java.util.Collections: java.util.List emptyList()>();
label:
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
return v;
catch org.apache.helix.zookeeper.zkclient.exception.ZkNoNodeException from label to label with label;
}
public synchronized void close()
{
org.apache.helix.rest.metadatastore.accessor.ZkRoutingDataReader v;
org.apache.helix.zookeeper.api.client.HelixZkClient v, v;
v := @this: org.apache.helix.rest.metadatastore.accessor.ZkRoutingDataReader;
v = v.<org.apache.helix.rest.metadatastore.accessor.ZkRoutingDataReader: org.apache.helix.zookeeper.api.client.HelixZkClient _zkClient>;
interfaceinvoke v.<org.apache.helix.zookeeper.api.client.HelixZkClient: void unsubscribeAll()>();
v = v.<org.apache.helix.rest.metadatastore.accessor.ZkRoutingDataReader: org.apache.helix.zookeeper.api.client.HelixZkClient _zkClient>;
interfaceinvoke v.<org.apache.helix.zookeeper.api.client.HelixZkClient: void close()>();
return;
}
public synchronized void handleDataChange(java.lang.String, java.lang.Object)
{
org.apache.helix.zookeeper.api.client.HelixZkClient v, v;
org.apache.helix.rest.metadatastore.accessor.ZkRoutingDataReader v;
org.apache.helix.msdcommon.callback.RoutingDataListener v;
java.lang.Object v;
java.lang.String v, v;
boolean v;
v := @this: org.apache.helix.rest.metadatastore.accessor.ZkRoutingDataReader;
v := @parameter: java.lang.String;
v := @parameter: java.lang.Object;
v = v.<org.apache.helix.rest.metadatastore.accessor.ZkRoutingDataReader: org.apache.helix.zookeeper.api.client.HelixZkClient _zkClient>;
if v == null goto label;
v = v.<org.apache.helix.rest.metadatastore.accessor.ZkRoutingDataReader: org.apache.helix.zookeeper.api.client.HelixZkClient _zkClient>;
v = interfaceinvoke v.<org.apache.helix.zookeeper.api.client.HelixZkClient: boolean isClosed()>();
if v == 0 goto label;
label:
return;
label:
v = v.<org.apache.helix.rest.metadatastore.accessor.ZkRoutingDataReader: org.apache.helix.msdcommon.callback.RoutingDataListener _routingDataListener>;
v = v.<org.apache.helix.rest.metadatastore.accessor.ZkRoutingDataReader: java.lang.String _namespace>;
interfaceinvoke v.<org.apache.helix.msdcommon.callback.RoutingDataListener: void refreshRoutingData(java.lang.String)>(v);
return;
}
public synchronized void handleDataDeleted(java.lang.String)
{
org.apache.helix.rest.metadatastore.accessor.ZkRoutingDataReader v;
java.lang.String v;
v := @this: org.apache.helix.rest.metadatastore.accessor.ZkRoutingDataReader;
v := @parameter: java.lang.String;
specialinvoke v.<org.apache.helix.rest.metadatastore.accessor.ZkRoutingDataReader: void handleResubscription()>();
return;
}
public synchronized void handleChildChange(java.lang.String, java.util.List)
{
org.apache.helix.rest.metadatastore.accessor.ZkRoutingDataReader v;
java.util.List v;
java.lang.String v;
v := @this: org.apache.helix.rest.metadatastore.accessor.ZkRoutingDataReader;
v := @parameter: java.lang.String;
v := @parameter: java.util.List;
specialinvoke v.<org.apache.helix.rest.metadatastore.accessor.ZkRoutingDataReader: void handleResubscription()>();
return;
}
public synchronized void handleStateChanged(org.apache.zookeeper.Watcher$Event$KeeperState)
{
org.apache.helix.rest.metadatastore.accessor.ZkRoutingDataReader v;
org.apache.zookeeper.Watcher$Event$KeeperState v;
org.apache.helix.msdcommon.callback.RoutingDataListener v;
org.apache.helix.zookeeper.api.client.HelixZkClient v, v;
java.lang.String v;
boolean v;
v := @this: org.apache.helix.rest.metadatastore.accessor.ZkRoutingDataReader;
v := @parameter: org.apache.zookeeper.Watcher$Event$KeeperState;
v = v.<org.apache.helix.rest.metadatastore.accessor.ZkRoutingDataReader: org.apache.helix.zookeeper.api.client.HelixZkClient _zkClient>;
if v == null goto label;
v = v.<org.apache.helix.rest.metadatastore.accessor.ZkRoutingDataReader: org.apache.helix.zookeeper.api.client.HelixZkClient _zkClient>;
v = interfaceinvoke v.<org.apache.helix.zookeeper.api.client.HelixZkClient: boolean isClosed()>();
if v == 0 goto label;
label:
return;
label:
v = v.<org.apache.helix.rest.metadatastore.accessor.ZkRoutingDataReader: org.apache.helix.msdcommon.callback.RoutingDataListener _routingDataListener>;
v = v.<org.apache.helix.rest.metadatastore.accessor.ZkRoutingDataReader: java.lang.String _namespace>;
interfaceinvoke v.<org.apache.helix.msdcommon.callback.RoutingDataListener: void refreshRoutingData(java.lang.String)>(v);
return;
}
public synchronized void handleNewSession(java.lang.String)
{
org.apache.helix.rest.metadatastore.accessor.ZkRoutingDataReader v;
org.apache.helix.msdcommon.callback.RoutingDataListener v;
org.apache.helix.zookeeper.api.client.HelixZkClient v, v;
java.lang.String v, v;
boolean v;
v := @this: org.apache.helix.rest.metadatastore.accessor.ZkRoutingDataReader;
v := @parameter: java.lang.String;
v = v.<org.apache.helix.rest.metadatastore.accessor.ZkRoutingDataReader: org.apache.helix.zookeeper.api.client.HelixZkClient _zkClient>;
if v == null goto label;
v = v.<org.apache.helix.rest.metadatastore.accessor.ZkRoutingDataReader: org.apache.helix.zookeeper.api.client.HelixZkClient _zkClient>;
v = interfaceinvoke v.<org.apache.helix.zookeeper.api.client.HelixZkClient: boolean isClosed()>();
if v == 0 goto label;
label:
return;
label:
v = v.<org.apache.helix.rest.metadatastore.accessor.ZkRoutingDataReader: org.apache.helix.msdcommon.callback.RoutingDataListener _routingDataListener>;
v = v.<org.apache.helix.rest.metadatastore.accessor.ZkRoutingDataReader: java.lang.String _namespace>;
interfaceinvoke v.<org.apache.helix.msdcommon.callback.RoutingDataListener: void refreshRoutingData(java.lang.String)>(v);
return;
}
public synchronized void handleSessionEstablishmentError(java.lang.Throwable)
{
java.lang.Throwable v;
org.apache.helix.rest.metadatastore.accessor.ZkRoutingDataReader v;
org.apache.helix.msdcommon.callback.RoutingDataListener v;
org.apache.helix.zookeeper.api.client.HelixZkClient v, v;
java.lang.String v;
boolean v;
v := @this: org.apache.helix.rest.metadatastore.accessor.ZkRoutingDataReader;
v := @parameter: java.lang.Throwable;
v = v.<org.apache.helix.rest.metadatastore.accessor.ZkRoutingDataReader: org.apache.helix.zookeeper.api.client.HelixZkClient _zkClient>;
if v == null goto label;
v = v.<org.apache.helix.rest.metadatastore.accessor.ZkRoutingDataReader: org.apache.helix.zookeeper.api.client.HelixZkClient _zkClient>;
v = interfaceinvoke v.<org.apache.helix.zookeeper.api.client.HelixZkClient: boolean isClosed()>();
if v == 0 goto label;
label:
return;
label:
v = v.<org.apache.helix.rest.metadatastore.accessor.ZkRoutingDataReader: org.apache.helix.msdcommon.callback.RoutingDataListener _routingDataListener>;
v = v.<org.apache.helix.rest.metadatastore.accessor.ZkRoutingDataReader: java.lang.String _namespace>;
interfaceinvoke v.<org.apache.helix.msdcommon.callback.RoutingDataListener: void refreshRoutingData(java.lang.String)>(v);
return;
}
private void handleResubscription()
{
org.apache.helix.zookeeper.api.client.HelixZkClient v, v, v, v;
org.apache.helix.rest.metadatastore.accessor.ZkRoutingDataReader v;
org.apache.helix.msdcommon.callback.RoutingDataListener v;
java.lang.String v;
boolean v;
v := @this: org.apache.helix.rest.metadatastore.accessor.ZkRoutingDataReader;
v = v.<org.apache.helix.rest.metadatastore.accessor.ZkRoutingDataReader: org.apache.helix.zookeeper.api.client.HelixZkClient _zkClient>;
if v == null goto label;
v = v.<org.apache.helix.rest.metadatastore.accessor.ZkRoutingDataReader: org.apache.helix.zookeeper.api.client.HelixZkClient _zkClient>;
v = interfaceinvoke v.<org.apache.helix.zookeeper.api.client.HelixZkClient: boolean isClosed()>();
if v == 0 goto label;
label:
return;
label:
v = v.<org.apache.helix.rest.metadatastore.accessor.ZkRoutingDataReader: org.apache.helix.zookeeper.api.client.HelixZkClient _zkClient>;
interfaceinvoke v.<org.apache.helix.zookeeper.api.client.HelixZkClient: void unsubscribeAll()>();
v = v.<org.apache.helix.rest.metadatastore.accessor.ZkRoutingDataReader: org.apache.helix.zookeeper.api.client.HelixZkClient _zkClient>;
interfaceinvoke v.<org.apache.helix.zookeeper.api.client.HelixZkClient: void subscribeRoutingDataChanges(org.apache.helix.zookeeper.zkclient.IZkChildListener,org.apache.helix.zookeeper.zkclient.IZkDataListener)>(v, v);
v = v.<org.apache.helix.rest.metadatastore.accessor.ZkRoutingDataReader: org.apache.helix.msdcommon.callback.RoutingDataListener _routingDataListener>;
v = v.<org.apache.helix.rest.metadatastore.accessor.ZkRoutingDataReader: java.lang.String _namespace>;
interfaceinvoke v.<org.apache.helix.msdcommon.callback.RoutingDataListener: void refreshRoutingData(java.lang.String)>(v);
return;
}
}