/** * Sets the name of the {@link Node} if the name has not already been set. * * @param nodeName * the name of the {@link Node} * @return this {@link NodeConfiguration} */ public NodeConfiguration setDefaultNodeName(String nodeName) { return setDefaultNodeName(GraphName.of(nodeName)); }
@Override public void execute(final NodeMain nodeMain, final NodeConfiguration nodeConfiguration, final Collection<NodeListener> nodeListeners) { // NOTE(damonkohler): To avoid a race condition, we have to make our copy // of the NodeConfiguration in the current thread. final NodeConfiguration nodeConfigurationCopy = NodeConfiguration.copyOf(nodeConfiguration); nodeConfigurationCopy.setDefaultNodeName(nodeMain.getDefaultNodeName()); Preconditions.checkNotNull(nodeConfigurationCopy.getNodeName(), "Node name not specified."); if (DEBUG) { log.info("Starting node: " + nodeConfigurationCopy.getNodeName()); } scheduledExecutorService.execute(new Runnable() { @Override public void run() { Collection<NodeListener> nodeListenersCopy = Lists.newArrayList(); nodeListenersCopy.add(new RegistrationListener()); nodeListenersCopy.add(nodeMain); if (nodeListeners != null) { nodeListenersCopy.addAll(nodeListeners); } // The new Node will call onStart(). Node node = nodeFactory.newNode(nodeConfigurationCopy, nodeListenersCopy); nodeMains.put(node, nodeMain); } }); }