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);