11. Bootstrap.{setup,start}()
src/main/java/org/elasticsearch/bootstrap/Bootstrap.java:
50 /**
51 * A main entry point when starting from the command line.
52 */
53 public class Bootstrap {
…
62 private void setup(boolean addShutdownHook, Tuple<Settings,
Environment> tuple) throws Exception {
…
69 NodeBuilder nodeBuilder =
NodeBuilder.nodeBuilder().settings(tuple.v1()).loadConfigSettings(fa
lse);
70 node = nodeBuilder.build();
…
79 }
…
118 /**
119 * hook for JSVC
120 */
121 public void start() {
122 node.start();
123 }
11
12. NodeBuilder
src/main/java/org/elasticsearch/node/NodeBuilder.java:
26 /**
27 * A node builder is used to construct a {@link Node} instance.
…
57 */
58 public class NodeBuilder {
…
64 /**
65 * A convenient factory method to create a {@link
NodeBuilder}.
66 */
67 public static NodeBuilder nodeBuilder() {
68 return new NodeBuilder();
69 }
…
155 /**
156 * Builds the node without starting it.
157 */
158 public Node build() {
159 return new InternalNode(settings.build(),
loadConfigSettings);
160 }
12
13. class InternalNode
AutoClosable
Releasable
<<interface>>
Node
final
InternalNode
• ノードに関する情報を保持しているクラス
• elasticsearchの各々のサーバのこと
14. InternalNode(1/2)
src/main/java/org/elasticsearch/node/internal/InternalNode.java:
111 public final class InternalNode implements Node {
…
116 private final Injector injector;
…
126 public InternalNode(Settings preparedSettings, boolean
loadConfigSettings) throws ElasticsearchException {
…
138 logger.info("initializing …");
…
157 try {
…
194 injector = modules.createInjector();
…
204 logger.info("initialized");
205 }
14