You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zookeeper.apache.org by an...@apache.org on 2020/01/21 17:19:00 UTC

[zookeeper] branch master updated: ZOOKEEPER-3666: remove the deprecated LogFormatter tool

This is an automated email from the ASF dual-hosted git repository.

andor pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/zookeeper.git


The following commit(s) were added to refs/heads/master by this push:
     new 97f89ce  ZOOKEEPER-3666: remove the deprecated LogFormatter tool
97f89ce is described below

commit 97f89ceb2ac22a45d886e0430e2bcbf4d337094d
Author: Nishanth Entoor <en...@gmail.com>
AuthorDate: Tue Jan 21 18:18:51 2020 +0100

    ZOOKEEPER-3666: remove the deprecated LogFormatter tool
    
    As per [ZOOKEEPER-3666](https://issues.apache.org/jira/browse/ZOOKEEPER-3666), we need to remove the deprecated LogFormatter tool. For this I made the following changes:
    - Removed LogFormatter class
    - Removed testLogFormatter test from InvalidSnapshotTest
    - Changed zookeeperAdmin.md file
    
    Please let me know if additional changes are required.
    
    Author: Nishanth Entoor <en...@gmail.com>
    
    Reviewers: eolivelli@apache.org, andor@apache.org
    
    Closes #1200 from nishanth-entoor/ZOOKEEPER-3666
---
 .../src/main/resources/markdown/zookeeperAdmin.md  |   4 +-
 .../org/apache/zookeeper/server/LogFormatter.java  | 125 ---------------------
 .../apache/zookeeper/test/InvalidSnapshotTest.java |  12 --
 3 files changed, 1 insertion(+), 140 deletions(-)

diff --git a/zookeeper-docs/src/main/resources/markdown/zookeeperAdmin.md b/zookeeper-docs/src/main/resources/markdown/zookeeperAdmin.md
index 785494b..7e28cc7 100644
--- a/zookeeper-docs/src/main/resources/markdown/zookeeperAdmin.md
+++ b/zookeeper-docs/src/main/resources/markdown/zookeeperAdmin.md
@@ -2424,9 +2424,7 @@ a running replicated ZooKeeper server to a development machine with a
 stand-alone ZooKeeper server for troubleshooting.
 
 Using older log and snapshot files, you can look at the previous
-state of ZooKeeper servers and even restore that state. The
-LogFormatter class allows an administrator to look at the transactions
-in a log.
+state of ZooKeeper servers and even restore that state.
 
 The ZooKeeper server creates snapshot and log files, but
 never deletes them. The retention policy of the data and log
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/LogFormatter.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/LogFormatter.java
deleted file mode 100644
index 81392df..0000000
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/LogFormatter.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * 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.server;
-
-import java.io.EOFException;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.text.DateFormat;
-import java.util.Date;
-import java.util.zip.Adler32;
-import java.util.zip.Checksum;
-import org.apache.jute.BinaryInputArchive;
-import org.apache.jute.Record;
-import org.apache.yetus.audience.InterfaceAudience;
-import org.apache.zookeeper.ZKUtil;
-import org.apache.zookeeper.server.persistence.FileHeader;
-import org.apache.zookeeper.server.persistence.FileTxnLog;
-import org.apache.zookeeper.server.util.SerializeUtils;
-import org.apache.zookeeper.txn.TxnDigest;
-import org.apache.zookeeper.txn.TxnHeader;
-import org.apache.zookeeper.util.ServiceUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * @deprecated deprecated in 3.5.5, use @see TxnLogToolkit instead
- */
-@Deprecated
-@InterfaceAudience.Public
-public class LogFormatter {
-
-    private static final Logger LOG = LoggerFactory.getLogger(LogFormatter.class);
-
-    /**
-     * @param args
-     */
-    public static void main(String[] args) throws Exception {
-        if (args.length != 1) {
-            System.err.println("USAGE: LogFormatter log_file");
-            ServiceUtils.requestSystemExit(ExitCode.INVALID_INVOCATION.getValue());
-        }
-
-        String error = ZKUtil.validateFileInput(args[0]);
-        if (null != error) {
-            System.err.println(error);
-            ServiceUtils.requestSystemExit(ExitCode.INVALID_INVOCATION.getValue());
-        }
-
-        FileInputStream fis = new FileInputStream(args[0]);
-        BinaryInputArchive logStream = BinaryInputArchive.getArchive(fis);
-        FileHeader fhdr = new FileHeader();
-        fhdr.deserialize(logStream, "fileheader");
-
-        if (fhdr.getMagic() != FileTxnLog.TXNLOG_MAGIC) {
-            System.err.println("Invalid magic number for " + args[0]);
-            ServiceUtils.requestSystemExit(ExitCode.INVALID_INVOCATION.getValue());
-        }
-        System.out.println("ZooKeeper Transactional Log File with dbid "
-                           + fhdr.getDbid()
-                           + " txnlog format version "
-                           + fhdr.getVersion());
-
-        // enable digest
-        ZooKeeperServer.setDigestEnabled(true);
-
-        int count = 0;
-        while (true) {
-            long crcValue;
-            byte[] bytes;
-            try {
-                crcValue = logStream.readLong("crcvalue");
-
-                bytes = logStream.readBuffer("txnEntry");
-            } catch (EOFException e) {
-                System.out.println("EOF reached after " + count + " txns.");
-                return;
-            }
-            if (bytes.length == 0) {
-                // Since we preallocate, we define EOF to be an
-                // empty transaction
-                System.out.println("EOF reached after " + count + " txns.");
-                return;
-            }
-            Checksum crc = new Adler32();
-            crc.update(bytes, 0, bytes.length);
-            if (crcValue != crc.getValue()) {
-                throw new IOException("CRC doesn't match " + crcValue + " vs " + crc.getValue());
-            }
-            TxnLogEntry entry = SerializeUtils.deserializeTxn(bytes);
-            TxnHeader hdr = entry.getHeader();
-            Record txn = entry.getTxn();
-            TxnDigest digest = entry.getDigest();
-            System.out.println(
-                DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.LONG).format(new Date(hdr.getTime()))
-                + " session 0x" + Long.toHexString(hdr.getClientId())
-                + " cxid 0x" + Long.toHexString(hdr.getCxid())
-                + " zxid 0x" + Long.toHexString(hdr.getZxid())
-                + " " + Request.op2String(hdr.getType())
-                + " " + txn
-                + " " + digest);
-            if (logStream.readByte("EOR") != 'B') {
-                LOG.error("Last transaction was partial.");
-                throw new EOFException("Last transaction was partial.");
-            }
-            count++;
-        }
-    }
-
-}
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/test/InvalidSnapshotTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/test/InvalidSnapshotTest.java
index 9f458cb..9003bb6 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/test/InvalidSnapshotTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/test/InvalidSnapshotTest.java
@@ -40,18 +40,6 @@ public class InvalidSnapshotTest extends ZKTestCase {
     private static final File testData = new File(System.getProperty("test.data.dir", "src/test/resources/data"));
 
     /**
-     * Verify the LogFormatter by running it on a known file.
-     */
-    @SuppressWarnings("deprecation")
-    @Test
-    public void testLogFormatter() throws Exception {
-        File snapDir = new File(testData, "invalidsnap");
-        File logfile = new File(new File(snapDir, "version-2"), "log.274");
-        String[] args = {logfile.getCanonicalFile().toString()};
-        org.apache.zookeeper.server.LogFormatter.main(args);
-    }
-
-    /**
      * Verify the SnapshotFormatter by running it on a known file.
      */
     @Test