Categories:
Audio (13)
Biotech (29)
Bytecode (36)
Database (77)
Framework (7)
Game (7)
General (507)
Graphics (53)
I/O (35)
IDE (2)
JAR Tools (101)
JavaBeans (21)
JDBC (121)
JDK (426)
JSP (20)
Logging (108)
Mail (58)
Messaging (8)
Network (84)
PDF (97)
Report (7)
Scripting (84)
Security (32)
Server (121)
Servlet (26)
SOAP (24)
Testing (54)
Web (15)
XML (309)
Collections:
Other Resources:
Apache ZooKeeper 3.7.0 Server Source Code
Apache ZooKeeper is an open-source server which enables highly
reliable distributed coordination.
Apache ZooKeeper Server Source Code files are provided in the source packge (apache-zookeeper-3.7.0.tar.gz). You can download it at Apache ZooKeeper Website.
You can also browse Apache ZooKeeper Server Source Code below:
✍: FYIcenter.com
⏎ org/apache/zookeeper/cli/ReconfigCommand.java
/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.zookeeper.cli; import static java.nio.charset.StandardCharsets.UTF_8; import java.io.FileInputStream; import java.util.Properties; import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.DefaultParser; import org.apache.commons.cli.Options; import org.apache.commons.cli.ParseException; import org.apache.zookeeper.KeeperException; import org.apache.zookeeper.admin.ZooKeeperAdmin; import org.apache.zookeeper.data.Stat; import org.apache.zookeeper.server.quorum.QuorumPeerConfig; /** * reconfig command for cli */ public class ReconfigCommand extends CliCommand { private static Options options = new Options(); /* joining - comma separated list of server config strings for servers to be added to the ensemble. * Each entry is identical in syntax as it would appear in a configuration file. Only used for * incremental reconfigurations. */ private String joining; /* leaving - comma separated list of server IDs to be removed from the ensemble. Only used for * incremental reconfigurations. */ private String leaving; /* members - comma separated list of new membership information (e.g., contents of a membership * configuration file) - for use only with a non-incremental reconfiguration. This may be specified * manually via the -members flag or it will automatically be filled in by reading the contents * of an actual configuration file using the -file flag. */ private String members; /* version - version of config from which we want to reconfigure - if current config is different * reconfiguration will fail. Should be committed from the CLI to disable this option. */ long version = -1; private CommandLine cl; static { options.addOption("s", false, "stats"); options.addOption("v", true, "required current config version"); options.addOption("file", true, "path of config file to parse for membership"); options.addOption("members", true, "comma-separated list of config strings for " + "non-incremental reconfig"); options.addOption("add", true, "comma-separated list of config strings for " + "new servers"); options.addOption("remove", true, "comma-separated list of server IDs to remove"); } public ReconfigCommand() { super("reconfig", "[-s] " + "[-v version] " + "[[-file path] | " + "[-members serverID=host:port1:port2;port3[,...]*]] | " + "[-add serverId=host:port1:port2;port3[,...]]* " + "[-remove serverId[,...]*]"); } @Override public CliCommand parse(String[] cmdArgs) throws CliParseException { joining = null; leaving = null; members = null; DefaultParser parser = new DefaultParser(); try { cl = parser.parse(options, cmdArgs); } catch (ParseException ex) { throw new CliParseException(ex); } if (!(cl.hasOption("file") || cl.hasOption("members")) && !cl.hasOption("add") && !cl.hasOption("remove")) { throw new CliParseException(getUsageStr()); } if (cl.hasOption("v")) { try { version = Long.parseLong(cl.getOptionValue("v"), 16); } catch (NumberFormatException e) { throw new CliParseException("-v must be followed by a long (configuration version)"); } } else { version = -1; } // Simple error checking for conflicting modes if ((cl.hasOption("file") || cl.hasOption("members")) && (cl.hasOption("add") || cl.hasOption("remove"))) { throw new CliParseException("Can't use -file or -members together with -add or -remove (mixing incremental" + " and non-incremental modes is not allowed)"); } if (cl.hasOption("file") && cl.hasOption("members")) { throw new CliParseException("Can't use -file and -members together (conflicting non-incremental modes)"); } // Set the joining/leaving/members values based on the mode we're in if (cl.hasOption("add")) { joining = cl.getOptionValue("add").toLowerCase(); } if (cl.hasOption("remove")) { leaving = cl.getOptionValue("remove").toLowerCase(); } if (cl.hasOption("members")) { members = cl.getOptionValue("members").toLowerCase(); } if (cl.hasOption("file")) { try { Properties dynamicCfg = new Properties(); try (FileInputStream inConfig = new FileInputStream(cl.getOptionValue("file"))) { dynamicCfg.load(inConfig); } //check that membership makes sense; leader will make these checks again //don't check for leader election ports since //client doesn't know what leader election alg is used members = QuorumPeerConfig.parseDynamicConfig(dynamicCfg, 0, true, false).toString(); } catch (Exception e) { throw new CliParseException("Error processing " + cl.getOptionValue("file") + e.getMessage()); } } return this; } @Override public boolean exec() throws CliException { try { Stat stat = new Stat(); if (!(zk instanceof ZooKeeperAdmin)) { // This should never happen when executing reconfig command line, // because it is guaranteed that we have a ZooKeeperAdmin instance ready // to use in CliCommand stack. // The only exception would be in test code where clients can directly set // ZooKeeper object to ZooKeeperMain. return false; } byte[] curConfig = ((ZooKeeperAdmin) zk).reconfigure(joining, leaving, members, version, stat); out.println("Committed new configuration:\n" + new String(curConfig, UTF_8)); if (cl.hasOption("s")) { new StatPrinter(out).print(stat); } } catch (KeeperException | InterruptedException ex) { throw new CliWrapperException(ex); } return false; } }
⏎ org/apache/zookeeper/cli/ReconfigCommand.java
Or download all of them as a single archive file:
File name: zookeeper-server-3.7.0-fyi.zip File size: 871011 bytes Release date: 2021-05-17 Download
⇒ Apache ZooKeeper 3.7.0 Jute Source Code
⇐ Download Apache ZooKeeper 3.7.0 Source Package
2022-11-16, 24840👍, 0💬
Popular Posts:
How to run "jarsigner" command from JDK tools.jar file? "jarsigner" command allows you to digitally ...
HttpComponents Client Source Code Files are provided in the source package file, httpcomponents-clie...
How to read XML document with XML Schema validation from socket connections with the socket\DelayedI...
What Is HttpComponents commons-httpclient-3.1.j ar?HttpComponents commons-httpclient-3.1.j aris the ...
How to download and install ojdbc5.jar for Oracle 11g R1? ojdbc5.jar for Oracle 11g R1 is a Java 5 J...