gpt4 book ai didi

org.apache.curator.utils.ZKPaths.getPathAndNode()方法的使用及代码示例

转载 作者:知者 更新时间:2024-03-17 05:30:40 29 4
gpt4 key购买 nike

本文整理了Java中org.apache.curator.utils.ZKPaths.getPathAndNode()方法的一些代码示例,展示了ZKPaths.getPathAndNode()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ZKPaths.getPathAndNode()方法的具体详情如下:
包路径:org.apache.curator.utils.ZKPaths
类名称:ZKPaths
方法名:getPathAndNode

ZKPaths.getPathAndNode介绍

[英]Given a full path, return the node name and its path. i.e. "/one/two/three" will return {"/one/two", "three"}
[中]给定完整路径,返回节点名称及其路径。i、 e.“/one/two/three”将返回{/one/two”,“three”}

代码示例

代码示例来源:origin: soabase/exhibitor

public UsageListing(Exhibitor exhibitor, String startPath, int maxChildren)
{
  if ( startPath.trim().length() == 0 )
  {
    startPath = "/";
  }
  ZKPaths.PathAndNode pathAndNode = ZKPaths.getPathAndNode(startPath);
  this.exhibitor = exhibitor;
  this.startPath = ZKPaths.makePath(pathAndNode.getPath(), pathAndNode.getNode());
  this.maxChildren = maxChildren;
}

代码示例来源:origin: apache/incubator-druid

public void update(final String path, final byte[] bytes)
{
 synchronized (toAnnounce) {
  if (!started) {
   // removeParentsIfCreated is not relevant for updates; use dummy value "false".
   toUpdate.add(new Announceable(path, bytes, false));
   return;
  }
 }
 final ZKPaths.PathAndNode pathAndNode = ZKPaths.getPathAndNode(path);
 final String parentPath = pathAndNode.getPath();
 final String nodePath = pathAndNode.getNode();
 ConcurrentMap<String, byte[]> subPaths = announcements.get(parentPath);
 if (subPaths == null || subPaths.get(nodePath) == null) {
  throw new ISE("Cannot update a path[%s] that hasn't been announced!", path);
 }
 synchronized (toAnnounce) {
  try {
   byte[] oldBytes = subPaths.get(nodePath);
   if (!Arrays.equals(oldBytes, bytes)) {
    subPaths.put(nodePath, bytes);
    updateAnnouncement(path, bytes);
   }
  }
  catch (Exception e) {
   throw Throwables.propagate(e);
  }
 }
}

代码示例来源:origin: soabase/exhibitor

if ( children.size() == 0 )
  thisPath = ZKPaths.getPathAndNode(thisPath).getPath();    // assume a child node was passed - use its parent
  if ( thisPath.equals("/") )

代码示例来源:origin: spotify/helios

@Override
 public boolean update(final byte[] bytes) {
  final String parent = ZKPaths.getPathAndNode(path).getPath();
  try {
   if (zooKeeperClient.stat(parent) == null) {
    return false;
   }
   if (zooKeeperClient.stat(path) == null) {
    zooKeeperClient.createAndSetData(path, bytes);
   } else {
    zooKeeperClient.setData(path, bytes);
   }
   return true;
  } catch (KeeperException.NodeExistsException ignore) {
   // Conflict due to curator retry or losing a race. We're done here.
   return true;
  } catch (KeeperException.ConnectionLossException e) {
   log.warn("ZooKeeper connection lost while updating node: {}", path);
   return false;
  } catch (KeeperException e) {
   log.error("failed to update node: {}", path, e);
   return false;
  }
 }
}

代码示例来源:origin: apache/incubator-druid

final ZKPaths.PathAndNode pathAndNode = ZKPaths.getPathAndNode(path);

代码示例来源:origin: apache/incubator-druid

case CHILD_REMOVED:
 final ChildData child = event.getData();
 final ZKPaths.PathAndNode childPath = ZKPaths.getPathAndNode(child.getPath());
 final byte[] value = finalSubPaths.get(childPath.getNode());
 if (value != null) {
  for (String path : thePathsLost) {
   log.info("Reinstating [%s]", path);
   final ZKPaths.PathAndNode split = ZKPaths.getPathAndNode(path);
   createAnnouncement(path, announcements.get(split.getPath()).get(split.getNode()));

代码示例来源:origin: apache/incubator-druid

/**
 * Unannounces an announcement created at path.  Note that if all announcements get removed, the Announcer
 * will continue to have ZK watches on paths because clearing them out is a source of ugly race conditions.
 * <p/>
 * If you need to completely clear all the state of what is being watched and announced, stop() the Announcer.
 *
 * @param path the path to unannounce
 */
public void unannounce(String path)
{
 log.info("unannouncing [%s]", path);
 final ZKPaths.PathAndNode pathAndNode = ZKPaths.getPathAndNode(path);
 final String parentPath = pathAndNode.getPath();
 final ConcurrentMap<String, byte[]> subPaths = announcements.get(parentPath);
 if (subPaths == null || subPaths.remove(pathAndNode.getNode()) == null) {
  log.error("Path[%s] not announced, cannot unannounce.", path);
  return;
 }
 try {
  curator.inTransaction().delete().forPath(path).and().commit();
 }
 catch (KeeperException.NoNodeException e) {
  log.info("node[%s] didn't exist anyway...", path);
 }
 catch (Exception e) {
  throw Throwables.propagate(e);
 }
}

代码示例来源:origin: apache/incubator-druid

@Test
public void testCleansUpItsLittleTurdlings() throws Exception
{
 curator.start();
 curator.blockUntilConnected();
 Announcer announcer = new Announcer(curator, exec);
 final byte[] billy = StringUtils.toUtf8("billy");
 final String testPath = "/somewhere/test2";
 final String parent = ZKPaths.getPathAndNode(testPath).getPath();
 announcer.start();
 try {
  Assert.assertNull(curator.checkExists().forPath(parent));
  awaitAnnounce(announcer, testPath, billy, true);
  Assert.assertNotNull(curator.checkExists().forPath(parent));
 }
 finally {
  announcer.stop();
 }
 Assert.assertNull(curator.checkExists().forPath(parent));
}

代码示例来源:origin: apache/incubator-druid

@Test
public void testLeavesBehindTurdlingsWhenToldTo() throws Exception
{
 curator.start();
 curator.blockUntilConnected();
 Announcer announcer = new Announcer(curator, exec);
 final byte[] billy = StringUtils.toUtf8("billy");
 final String testPath = "/somewhere/test2";
 final String parent = ZKPaths.getPathAndNode(testPath).getPath();
 announcer.start();
 try {
  Assert.assertNull(curator.checkExists().forPath(parent));
  awaitAnnounce(announcer, testPath, billy, false);
  Assert.assertNotNull(curator.checkExists().forPath(parent));
 }
 finally {
  announcer.stop();
 }
 Assert.assertNotNull(curator.checkExists().forPath(parent));
}

代码示例来源:origin: apache/incubator-druid

@Test
public void testLeavesBehindTurdlingsThatAlreadyExisted() throws Exception
{
 curator.start();
 curator.blockUntilConnected();
 Announcer announcer = new Announcer(curator, exec);
 final byte[] billy = StringUtils.toUtf8("billy");
 final String testPath = "/somewhere/test2";
 final String parent = ZKPaths.getPathAndNode(testPath).getPath();
 curator.create().forPath(parent);
 final Stat initialStat = curator.checkExists().forPath(parent);
 announcer.start();
 try {
  Assert.assertEquals(initialStat.getMzxid(), curator.checkExists().forPath(parent).getMzxid());
  awaitAnnounce(announcer, testPath, billy, true);
  Assert.assertEquals(initialStat.getMzxid(), curator.checkExists().forPath(parent).getMzxid());
 }
 finally {
  announcer.stop();
 }
 Assert.assertEquals(initialStat.getMzxid(), curator.checkExists().forPath(parent).getMzxid());
}

代码示例来源:origin: org.apache.curator/curator-framework

@VisibleForTesting
String adjustPath(String path) throws Exception
{
  if ( doProtected )
  {
    ZKPaths.PathAndNode pathAndNode = ZKPaths.getPathAndNode(path);
    String name = getProtectedPrefix(protectedId) + pathAndNode.getNode();
    path = ZKPaths.makePath(pathAndNode.getPath(), name);
  }
  return path;
}

代码示例来源:origin: org.apache.curator/curator-framework

private String protectedPathInForeground(String adjustedPath, byte[] data, List<ACL> aclList) throws Exception
{
  try
  {
    return pathInForeground(adjustedPath, data, aclList);
  }
  catch ( Exception e)
  {
    ThreadUtils.checkInterrupted(e);
    if ( ( e instanceof KeeperException.ConnectionLossException ||
      !( e instanceof KeeperException )) && protectedId != null )
    {
      /*
       * CURATOR-45 + CURATOR-79: we don't know if the create operation was successful or not,
       * register the znode to be sure it is deleted later.
       */
      new FindAndDeleteProtectedNodeInBackground(client, ZKPaths.getPathAndNode(adjustedPath).getPath(), protectedId).execute();
      /*
      * The current UUID is scheduled to be deleted, it is not safe to use it again.
      * If this builder is used again later create a new UUID
      */
      protectedId = UUID.randomUUID().toString();
    }
    throw e;
  }
}

代码示例来源:origin: org.apache.curator/curator-framework

final String parent = ZKPaths.getPathAndNode(path).getPath();
if ( !parent.equals(ZKPaths.PATH_SEPARATOR) )

代码示例来源:origin: dCache/dcache

public static Type infoTypefromZKPath(String path) {
  if (ZKPaths.getPathAndNode(path).getPath().equals(ZK_CORES_URI)) {
    return Type.URI;
  } else {
    return Type.PLAIN;
  }
}

代码示例来源:origin: nirmata/workflow

public static String getRunIdFromRunPath(String path)
{
  return ZKPaths.getPathAndNode(path).getNode();
}

代码示例来源:origin: info.xiancloud/xian-curator-framework

@VisibleForTesting
String adjustPath(String path) throws Exception
{
  if ( doProtected )
  {
    ZKPaths.PathAndNode pathAndNode = ZKPaths.getPathAndNode(path);
    String name = getProtectedPrefix(protectedId) + pathAndNode.getNode();
    path = ZKPaths.makePath(pathAndNode.getPath(), name);
  }
  return path;
}

代码示例来源:origin: io.fabric8/fabric-zookeeper

/**
 * NOTE: this is a BLOCKING method. Rebuild the internal cache for the given node by querying
 * for all needed data WITHOUT generating any events to send to listeners.
 *
 * @param fullPath full path of the node to rebuild
 * @throws Exception errors
 */
public void rebuildNode(String fullPath) throws Exception
{
  Preconditions.checkArgument(ZKPaths.getPathAndNode(fullPath).getPath().startsWith(path), "Node is not part of this cache: " + fullPath);
  Preconditions.checkState(!executorService.isShutdown(), "cache has been closed");
  ensurePath.ensure(client.getZookeeperClient());
  internalRebuildNode(fullPath);
  // this is necessary so that any updates that occurred while rebuilding are taken
  // have to rebuild entire tree in case this node got deleted in the interim
  offerOperation(new TreeRefreshOperation(this, path, RefreshMode.FORCE_GET_DATA_AND_STAT));
}

代码示例来源:origin: jboss-fuse/fabric8

/**
 * NOTE: this is a BLOCKING method. Rebuild the internal cache for the given node by querying
 * for all needed data WITHOUT generating any events to send to listeners.
 *
 * @param fullPath full path of the node to rebuild
 * @throws Exception errors
 */
public void rebuildNode(String fullPath) throws Exception
{
  Preconditions.checkArgument(ZKPaths.getPathAndNode(fullPath).getPath().startsWith(path), "Node is not part of this cache: " + fullPath);
  Preconditions.checkState(!executorService.isShutdown(), "cache has been closed");
  ensurePath.ensure(client.getZookeeperClient());
  internalRebuildNode(fullPath);
  // this is necessary so that any updates that occurred while rebuilding are taken
  // have to rebuild entire tree in case this node got deleted in the interim
  offerOperation(new TreeRefreshOperation(this, path, RefreshMode.FORCE_GET_DATA_AND_STAT));
}

代码示例来源:origin: info.xiancloud/xian-curator-recipes

/**
 * NOTE: this is a BLOCKING method. Rebuild the internal cache for the given node by querying
 * for all needed data WITHOUT generating any events to send to listeners.
 *
 * @param fullPath full path of the node to rebuild
 * @throws Exception errors
 */
public void rebuildNode(String fullPath) throws Exception
{
  Preconditions.checkArgument(ZKPaths.getPathAndNode(fullPath).getPath().equals(path), "Node is not part of this cache: " + fullPath);
  Preconditions.checkState(!executorService.isShutdown(), "cache has been closed");
  ensurePath();
  internalRebuildNode(fullPath);
  // this is necessary so that any updates that occurred while rebuilding are taken
  // have to rebuild entire tree in case this node got deleted in the interim
  offerOperation(new RefreshOperation(this, RefreshMode.FORCE_GET_DATA_AND_STAT));
}

代码示例来源:origin: at.molindo/helios-services

@Override
 public boolean update(final byte[] bytes) {
  final String parent = ZKPaths.getPathAndNode(path).getPath();
  try {
   if (zooKeeperClient.stat(parent) == null) {
    return false;
   }
   if (zooKeeperClient.stat(path) == null) {
    zooKeeperClient.createAndSetData(path, bytes);
   } else {
    zooKeeperClient.setData(path, bytes);
   }
   return true;
  } catch (KeeperException.NodeExistsException ignore) {
   // Conflict due to curator retry or losing a race. We're done here.
   return true;
  } catch (KeeperException.ConnectionLossException e) {
   log.warn("ZooKeeper connection lost while updating node: {}", path);
   return false;
  } catch (KeeperException e) {
   log.error("failed to update node: {}", path, e);
   return false;
  }
 }
}

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com