Java源码示例:org.apache.curator.framework.recipes.nodes.PersistentEphemeralNode
示例1
@Override
public PersistentEphemeralNode persistentEphemeralNode(final String path,
final PersistentEphemeralNode.Mode mode,
final byte[] data) {
assertClusterIdFlagTrue();
final PersistentEphemeralNode node = new PersistentEphemeralNode(client, mode, path, data);
// ugly hack to work around a problem with curator, wherein PersistentEphemeralNode creates
// all parent paths if they don't exist but applies the ACL for its own path to its parents
try {
final Field field = node.getClass().getDeclaredField("createMethod");
field.setAccessible(true);
field.set(node, client.create());
} catch (NoSuchFieldException | IllegalAccessException e) {
throw new RuntimeException(e);
}
return node;
}
示例2
@Before
public void setUp() throws Exception {
registrar.startUp();
final PersistentEphemeralNode ephemeralNode = mock(PersistentEphemeralNode.class);
when(client.persistentEphemeralNode(upPath,
PersistentEphemeralNode.Mode.EPHEMERAL,
new byte[]{}))
.thenReturn(ephemeralNode);
// default behavior for checking ID of the host registered in zookeeper - it is this host
when(client.exists(idPath)).thenReturn(new Stat());
when(client.getData(idPath)).thenReturn(hostId.getBytes());
}
示例3
public static void appendPersistentData(CuratorFramework client, String path, String data) throws Exception {
PersistentEphemeralNode node = new PersistentEphemeralNode(client, PersistentEphemeralNode.Mode.EPHEMERAL, path, data.getBytes(Constants.Global.CHARSET_NAME));
node.start();
node.waitForInitialCreate(3, TimeUnit.SECONDS);
}
示例4
@Override
public PersistentEphemeralNode persistentEphemeralNode(final String path,
final PersistentEphemeralNode.Mode mode,
final byte[] data) {
return client.persistentEphemeralNode(path, mode, data);
}
示例5
PersistentEphemeralNode persistentEphemeralNode(String path,
final PersistentEphemeralNode.Mode mode,
byte[] data);