1 /*
   2  * Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.  Oracle designates this
   8  * particular file as subject to the "Classpath" exception as provided
   9  * by Oracle in the LICENSE file that accompanied this code.
  10  *
  11  * This code is distributed in the hope that it will be useful, but WITHOUT
  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any
  23  * questions.
  24  */
  25 package com.sun.java.util.jar.pack;
  26 
  27 import java.util.ListResourceBundle;
  28 
  29 public class DriverResource extends ListResourceBundle {
  30 
  31     public static final String VERSION = "VERSION";
  32     public static final String BAD_ARGUMENT = "BAD_ARGUMENT";
  33     public static final String BAD_OPTION = "BAD_OPTION";
  34     public static final String BAD_REPACK_OUTPUT = "BAD_REPACK_OUTPUT";
  35     public static final String DETECTED_ZIP_COMMENT = "DETECTED_ZIP_COMMENT";
  36     public static final String SKIP_FOR_REPACKED = "SKIP_FOR_REPACKED";
  37     public static final String WRITE_PACK_FILE = "WRITE_PACK_FILE";
  38     public static final String WRITE_PACKGZ_FILE = "WRITE_PACKGZ_FILE";
  39     public static final String SKIP_FOR_MOVE_FAILED = "SKIP_FOR_MOVE_FAILED";
  40     public static final String PACK_HELP = "PACK_HELP";
  41     public static final String UNPACK_HELP = "UNPACK_HELP";
  42     public static final String MORE_INFO = "MORE_INFO";
  43     public static final String DUPLICATE_OPTION = "DUPLICATE_OPTION";
  44     public static final String BAD_SPEC = "BAD_SPEC";
  45 
  46     /*
  47      * The following are the output of 'pack200' and 'unpack200' commands.
  48      * Do not translate command arguments and words with a prefix of '-' or '--'.
  49      */
  50     private static final Object[][] resource = {
  51         {VERSION, "{0} version {1}"}, // parameter 0:class name;parameter 1: version value
  52         {BAD_ARGUMENT, "Bad argument: {0}"},
  53         {BAD_OPTION, "Bad option: {0}={1}"}, // parameter 0:option name;parameter 1:option value
  54         {BAD_REPACK_OUTPUT, "Bad --repack output: {0}"}, // parameter 0:filename
  55         {DETECTED_ZIP_COMMENT, "Detected ZIP comment: {0}"}, // parameter 0:comment
  56         {SKIP_FOR_REPACKED, "Skipping because already repacked: {0}"}, // parameter 0:filename
  57         {WRITE_PACK_FILE, "To write a *.pack file, specify --no-gzip: {0}"}, // parameter 0:filename
  58         {WRITE_PACKGZ_FILE, "To write a *.pack.gz file, specify --gzip: {0}"}, // parameter 0:filename
  59         {SKIP_FOR_MOVE_FAILED, "Skipping unpack because move failed: {0}"}, // parameter 0:filename
  60         {PACK_HELP, new String[] {
  61                 "Usage:  pack200 [-opt... | --option=value]... x.pack[.gz] y.jar",
  62                 "",
  63                 "Packing Options",
  64                 "  -r, --repack                    repack or normalize a jar, suitable for ",
  65                 "                                  signing with jarsigner",
  66                 "  -g, --no-gzip                   output a plain pack file, suitable to be",
  67                 "                                  compressed with a file compression utility",
  68                 "  --gzip                          (default) post compress the pack output",
  69                 "                                  with gzip",
  70                 "  -G, --strip-debug               remove debugging attributes (SourceFile,",
  71                 "                                  LineNumberTable, LocalVariableTable",
  72                 "                                  and LocalVariableTypeTable) while packing",
  73                 "  -O, --no-keep-file-order        do not transmit file ordering information",
  74                 "  --keep-file-order               (default) preserve input file ordering",
  75                 "  -S{N}, --segment-limit={N}      limit segment sizes (default unlimited)",
  76                 "  -E{N}, --effort={N}             packing effort (default N=5)",
  77                 "  -H{h}, --deflate-hint={h}       transmit deflate hint: true, false,",
  78                 "                                  or keep (default)",
  79                 "  -m{V}, --modification-time={V}  transmit modtimes: latest or keep (default)",
  80                 "  -P{F}, --pass-file={F}          transmit the given input element(s) unchanged",
  81                 "  -U{a}, --unknown-attribute={a}  unknown attribute action: error, strip,",
  82                 "                                  or pass (default)",
  83                 "  -C{N}={L}, --class-attribute={N}={L}  (user-defined attribute)",
  84                 "  -F{N}={L}, --field-attribute={N}={L}  (user-defined attribute)",
  85                 "  -M{N}={L}, --method-attribute={N}={L} (user-defined attribute)",
  86                 "  -D{N}={L}, --code-attribute={N}={L}   (user-defined attribute)",
  87                 "  -f{F}, --config-file={F}        read file F for Pack200.Packer properties",
  88                 "  -v, --verbose                   increase program verbosity",
  89                 "  -q, --quiet                     set verbosity to lowest level",
  90                 "  -l{F}, --log-file={F}           output to the given log file, ",
  91                 "                                  or '-' for System.out",
  92                 "  -?, -h, --help                  print this help message",
  93                 "  -V, --version                   print program version",
  94                 "  -J{X}                           pass option X to underlying Java VM",
  95                 "",
  96                 "Notes:",
  97                 "  The -P, -C, -F, -M, and -D options accumulate.",
  98                 "  Example attribute definition:  -C SourceFile=RUH .",
  99                 "  Config. file properties are defined by the Pack200 API.",
 100                 "  For meaning of -S, -E, -H-, -m, -U values, see Pack200 API.",
 101                 "  Layout definitions (like RUH) are defined by JSR 200.",
 102                 "",
 103                 "Repacking mode updates the JAR file with a pack/unpack cycle:",
 104                 "    pack200 [-r|--repack] [-opt | --option=value]... [repackedy.jar] y.jar\n",
 105                 "",
 106                 "Exit Status:",
 107                 "  0 if successful, >0 if an error occurred"
 108             }
 109         },
 110         {UNPACK_HELP, new String[] {
 111                 "Usage:  unpack200 [-opt... | --option=value]... x.pack[.gz] y.jar\n",
 112                 "",
 113                 "Unpacking Options",
 114                 "  -H{h}, --deflate-hint={h}     override transmitted deflate hint:",
 115                 "                                true, false, or keep (default)",
 116                 "  -r, --remove-pack-file        remove input file after unpacking",
 117                 "  -v, --verbose                 increase program verbosity",
 118                 "  -q, --quiet                   set verbosity to lowest level",
 119                 "  -l{F}, --log-file={F}         output to the given log file, or",
 120                 "                                '-' for System.out",
 121                 "  -?, -h, --help                print this help message",
 122                 "  -V, --version                 print program version",
 123                 "  -J{X}                         pass option X to underlying Java VM"
 124             }
 125         },
 126         {MORE_INFO, "(For more information, run {0} --help .)"}, // parameter 0:command name
 127         {DUPLICATE_OPTION, "duplicate option: {0}"}, // parameter 0:option
 128         {BAD_SPEC, "bad spec for {0}: {1}"}, // parameter 0:option;parameter 1:specifier
 129     };
 130 
 131     protected Object[][] getContents() {
 132         return resource;
 133     }
 134 }