public class io.ebeaninternal.server.cluster.ClusterManager implements io.ebeaninternal.server.cluster.ServerLookup
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: io.ebeaninternal.server.cluster.ClusterManager
super_class: java.lang.Object
{
private static final org.slf4j.Logger clusterLogger;
descriptor: Lorg/slf4j/Logger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final java.util.concurrent.locks.ReentrantLock lock;
descriptor: Ljava/util/concurrent/locks/ReentrantLock;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.concurrent.ConcurrentHashMap<java.lang.String, io.ebean.EbeanServer> serverMap;
descriptor: Ljava/util/concurrent/ConcurrentHashMap;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/concurrent/ConcurrentHashMap<Ljava/lang/String;Lio/ebean/EbeanServer;>;
private final java.lang.Object monitor;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final io.ebeaninternal.server.cluster.ClusterBroadcast broadcast;
descriptor: Lio/ebeaninternal/server/cluster/ClusterBroadcast;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private boolean started;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean shutdown;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc "io.ebean.Cluster"
invokestatic org.slf4j.LoggerFactory.getLogger:(Ljava/lang/String;)Lorg/slf4j/Logger;
putstatic io.ebeaninternal.server.cluster.ClusterManager.clusterLogger:Lorg/slf4j/Logger;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(io.ebean.config.ContainerConfig);
descriptor: (Lio/ebean/config/ContainerConfig;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.concurrent.locks.ReentrantLock
dup
invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
putfield io.ebeaninternal.server.cluster.ClusterManager.lock:Ljava/util/concurrent/locks/ReentrantLock;
2: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putfield io.ebeaninternal.server.cluster.ClusterManager.serverMap:Ljava/util/concurrent/ConcurrentHashMap;
3: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield io.ebeaninternal.server.cluster.ClusterManager.monitor:Ljava/lang/Object;
4: aload 0
invokevirtual io.ebeaninternal.server.cluster.ClusterManager.createFactory:()Lio/ebeaninternal/server/cluster/ClusterBroadcastFactory;
astore 2
start local 2 5: aload 2
ifnull 8
aload 1
invokevirtual io.ebean.config.ContainerConfig.isActive:()Z
ifeq 8
6: aload 0
aload 2
aload 0
aload 1
invokeinterface io.ebeaninternal.server.cluster.ClusterBroadcastFactory.create:(Lio/ebeaninternal/server/cluster/ClusterManager;Lio/ebean/config/ContainerConfig;)Lio/ebeaninternal/server/cluster/ClusterBroadcast;
putfield io.ebeaninternal.server.cluster.ClusterManager.broadcast:Lio/ebeaninternal/server/cluster/ClusterBroadcast;
7: goto 9
8: StackMap locals: io.ebeaninternal.server.cluster.ClusterManager io.ebean.config.ContainerConfig io.ebeaninternal.server.cluster.ClusterBroadcastFactory
StackMap stack:
aload 0
aconst_null
putfield io.ebeaninternal.server.cluster.ClusterManager.broadcast:Lio/ebeaninternal/server/cluster/ClusterBroadcast;
9: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lio/ebeaninternal/server/cluster/ClusterManager;
0 10 1 config Lio/ebean/config/ContainerConfig;
5 10 2 factory Lio/ebeaninternal/server/cluster/ClusterBroadcastFactory;
MethodParameters:
Name Flags
config
private io.ebeaninternal.server.cluster.ClusterBroadcastFactory createFactory();
descriptor: ()Lio/ebeaninternal/server/cluster/ClusterBroadcastFactory;
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=4, args_size=1
start local 0 0: ldc Lio/ebeaninternal/server/cluster/ClusterBroadcastFactory;
invokestatic java.util.ServiceLoader.load:(Ljava/lang/Class;)Ljava/util/ServiceLoader;
astore 1
start local 1 1: aconst_null
astore 2
start local 2 2: aload 1
invokevirtual java.util.ServiceLoader.iterator:()Ljava/util/Iterator;
astore 3
start local 3 3: aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifeq 5
4: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.ebeaninternal.server.cluster.ClusterBroadcastFactory
astore 2
5: StackMap locals: java.util.ServiceLoader io.ebeaninternal.server.cluster.ClusterBroadcastFactory java.util.Iterator
StackMap stack:
aload 2
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lio/ebeaninternal/server/cluster/ClusterManager;
1 6 1 load Ljava/util/ServiceLoader<Lio/ebeaninternal/server/cluster/ClusterBroadcastFactory;>;
2 6 2 factory Lio/ebeaninternal/server/cluster/ClusterBroadcastFactory;
3 6 3 iterator Ljava/util/Iterator<Lio/ebeaninternal/server/cluster/ClusterBroadcastFactory;>;
public void registerServer(io.ebean.EbeanServer);
descriptor: (Lio/ebean/EbeanServer;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield io.ebeaninternal.server.cluster.ClusterManager.lock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: aload 0
getfield io.ebeaninternal.server.cluster.ClusterManager.serverMap:Ljava/util/concurrent/ConcurrentHashMap;
aload 1
invokeinterface io.ebean.EbeanServer.getName:()Ljava/lang/String;
aload 1
invokevirtual java.util.concurrent.ConcurrentHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
2: aload 0
getfield io.ebeaninternal.server.cluster.ClusterManager.started:Z
ifne 8
3: aload 0
invokevirtual io.ebeaninternal.server.cluster.ClusterManager.startup:()V
4: goto 8
StackMap locals:
StackMap stack: java.lang.Throwable
5: astore 2
6: aload 0
getfield io.ebeaninternal.server.cluster.ClusterManager.lock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
7: aload 2
athrow
8: StackMap locals:
StackMap stack:
aload 0
getfield io.ebeaninternal.server.cluster.ClusterManager.lock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
9: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lio/ebeaninternal/server/cluster/ClusterManager;
0 10 1 server Lio/ebean/EbeanServer;
Exception table:
from to target type
1 5 5 any
MethodParameters:
Name Flags
server
public io.ebean.EbeanServer getServer(java.lang.String);
descriptor: (Ljava/lang/String;)Lio/ebean/EbeanServer;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield io.ebeaninternal.server.cluster.ClusterManager.lock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: aload 0
getfield io.ebeaninternal.server.cluster.ClusterManager.serverMap:Ljava/util/concurrent/ConcurrentHashMap;
aload 1
invokevirtual java.util.concurrent.ConcurrentHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast io.ebean.EbeanServer
astore 3
2: aload 0
getfield io.ebeaninternal.server.cluster.ClusterManager.lock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
3: aload 3
areturn
4: StackMap locals:
StackMap stack: java.lang.Throwable
astore 2
5: aload 0
getfield io.ebeaninternal.server.cluster.ClusterManager.lock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
6: aload 2
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lio/ebeaninternal/server/cluster/ClusterManager;
0 7 1 name Ljava/lang/String;
Exception table:
from to target type
1 2 4 any
MethodParameters:
Name Flags
name
private void startup();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
putfield io.ebeaninternal.server.cluster.ClusterManager.started:Z
1: aload 0
getfield io.ebeaninternal.server.cluster.ClusterManager.broadcast:Lio/ebeaninternal/server/cluster/ClusterBroadcast;
ifnull 3
2: aload 0
getfield io.ebeaninternal.server.cluster.ClusterManager.broadcast:Lio/ebeaninternal/server/cluster/ClusterBroadcast;
invokeinterface io.ebeaninternal.server.cluster.ClusterBroadcast.startup:()V
3: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/ebeaninternal/server/cluster/ClusterManager;
public void cacheClearAll(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield io.ebeaninternal.server.cluster.ClusterManager.broadcast:Lio/ebeaninternal/server/cluster/ClusterBroadcast;
ifnull 2
1: aload 0
getfield io.ebeaninternal.server.cluster.ClusterManager.broadcast:Lio/ebeaninternal/server/cluster/ClusterBroadcast;
new io.ebeaninternal.server.transaction.RemoteTransactionEvent
dup
aload 1
invokespecial io.ebeaninternal.server.transaction.RemoteTransactionEvent.<init>:(Ljava/lang/String;)V
invokevirtual io.ebeaninternal.server.transaction.RemoteTransactionEvent.cacheClearAll:()Lio/ebeaninternal/server/transaction/RemoteTransactionEvent;
invokeinterface io.ebeaninternal.server.cluster.ClusterBroadcast.broadcast:(Lio/ebeaninternal/server/transaction/RemoteTransactionEvent;)V
2: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/ebeaninternal/server/cluster/ClusterManager;
0 3 1 serverName Ljava/lang/String;
MethodParameters:
Name Flags
serverName
public void cacheClear(java.lang.String, java.lang.Class<?>);
descriptor: (Ljava/lang/String;Ljava/lang/Class;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield io.ebeaninternal.server.cluster.ClusterManager.broadcast:Lio/ebeaninternal/server/cluster/ClusterBroadcast;
ifnull 2
1: aload 0
getfield io.ebeaninternal.server.cluster.ClusterManager.broadcast:Lio/ebeaninternal/server/cluster/ClusterBroadcast;
new io.ebeaninternal.server.transaction.RemoteTransactionEvent
dup
aload 1
invokespecial io.ebeaninternal.server.transaction.RemoteTransactionEvent.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual io.ebeaninternal.server.transaction.RemoteTransactionEvent.cacheClear:(Ljava/lang/Class;)Lio/ebeaninternal/server/transaction/RemoteTransactionEvent;
invokeinterface io.ebeaninternal.server.cluster.ClusterBroadcast.broadcast:(Lio/ebeaninternal/server/transaction/RemoteTransactionEvent;)V
2: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/ebeaninternal/server/cluster/ClusterManager;
0 3 1 serverName Ljava/lang/String;
0 3 2 beanType Ljava/lang/Class<*>;
Signature: (Ljava/lang/String;Ljava/lang/Class<*>;)V
MethodParameters:
Name Flags
serverName
beanType
public boolean isClustering();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.ebeaninternal.server.cluster.ClusterManager.broadcast:Lio/ebeaninternal/server/cluster/ClusterBroadcast;
ifnull 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/ebeaninternal/server/cluster/ClusterManager;
public void broadcast(io.ebeaninternal.server.transaction.RemoteTransactionEvent);
descriptor: (Lio/ebeaninternal/server/transaction/RemoteTransactionEvent;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield io.ebeaninternal.server.cluster.ClusterManager.broadcast:Lio/ebeaninternal/server/cluster/ClusterBroadcast;
ifnull 4
1: getstatic io.ebeaninternal.server.cluster.ClusterManager.clusterLogger:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isDebugEnabled:()Z
ifeq 3
2: getstatic io.ebeaninternal.server.cluster.ClusterManager.clusterLogger:Lorg/slf4j/Logger;
ldc "sending: {}"
aload 1
invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;)V
3: StackMap locals:
StackMap stack:
aload 0
getfield io.ebeaninternal.server.cluster.ClusterManager.broadcast:Lio/ebeaninternal/server/cluster/ClusterBroadcast;
aload 1
invokeinterface io.ebeaninternal.server.cluster.ClusterBroadcast.broadcast:(Lio/ebeaninternal/server/transaction/RemoteTransactionEvent;)V
4: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/ebeaninternal/server/cluster/ClusterManager;
0 5 1 event Lio/ebeaninternal/server/transaction/RemoteTransactionEvent;
MethodParameters:
Name Flags
event
public void shutdown();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield io.ebeaninternal.server.cluster.ClusterManager.broadcast:Lio/ebeaninternal/server/cluster/ClusterBroadcast;
ifnull 3
aload 0
getfield io.ebeaninternal.server.cluster.ClusterManager.shutdown:Z
ifne 3
1: aload 0
iconst_1
putfield io.ebeaninternal.server.cluster.ClusterManager.shutdown:Z
2: aload 0
getfield io.ebeaninternal.server.cluster.ClusterManager.broadcast:Lio/ebeaninternal/server/cluster/ClusterBroadcast;
invokeinterface io.ebeaninternal.server.cluster.ClusterBroadcast.shutdown:()V
3: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/ebeaninternal/server/cluster/ClusterManager;
}
SourceFile: "ClusterManager.java"