jdk/test/sun/security/util/Resources/NewNamesFormat.java
author sflores
Sun, 14 Oct 2012 22:58:59 +0100
changeset 14182 3041082abb40
parent 7179 4afb81e50183
child 14342 8435a30053c1
permissions -rw-r--r--
7194449: String resources for Key Tool and Policy Tool should be in their respective packages Reviewed-by: alanb, weijun, mullan
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
7179
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
     1
/*
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
     2
 * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
     3
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
     4
 *
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
     5
 * This code is free software; you can redistribute it and/or modify it
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
     6
 * under the terms of the GNU General Public License version 2 only, as
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
     7
 * published by the Free Software Foundation.
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
     8
 *
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
     9
 * This code is distributed in the hope that it will be useful, but WITHOUT
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
    10
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
    11
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
    12
 * version 2 for more details (a copy is included in the LICENSE file that
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
    13
 * accompanied this code).
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
    14
 *
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
    15
 * You should have received a copy of the GNU General Public License version
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
    16
 * 2 along with this work; if not, write to the Free Software Foundation,
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
    17
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
    18
 *
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
    19
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
    20
 * or visit www.oracle.com if you need additional information or have any
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
    21
 * questions.
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
    22
 */
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
    23
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
    24
/*
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
    25
 * @test
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
    26
 * @bug 6987827
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
    27
 * @summary security/util/Resources.java needs improvement
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
    28
 */
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
    29
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
    30
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
    31
import java.lang.reflect.Method;
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
    32
import java.util.HashSet;
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
    33
import java.util.Set;
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
    34
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
    35
/**
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
    36
 * This test makes sure that the keys in resources files are using the new
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
    37
 * format and there is no duplication.
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
    38
 */
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
    39
public class NewNamesFormat {
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
    40
    public static void main(String[] args) throws Exception {
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
    41
        checkRes("sun.security.util.Resources");
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
    42
        checkRes("sun.security.util.AuthResources");
14182
3041082abb40 7194449: String resources for Key Tool and Policy Tool should be in their respective packages
sflores
parents: 7179
diff changeset
    43
        checkRes("sun.security.tools.jarsigner.Resources");
3041082abb40 7194449: String resources for Key Tool and Policy Tool should be in their respective packages
sflores
parents: 7179
diff changeset
    44
        checkRes("sun.security.tools.keytool.Resources");
3041082abb40 7194449: String resources for Key Tool and Policy Tool should be in their respective packages
sflores
parents: 7179
diff changeset
    45
        checkRes("sun.security.tools.policytool.Resources");
7179
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
    46
    }
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
    47
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
    48
    private static void checkRes(String resName) throws Exception {
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
    49
        System.out.println("Checking " + resName + "...");
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
    50
        Class clazz = Class.forName(resName);
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
    51
        Method m = clazz.getMethod("getContents");
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
    52
        Object[][] contents = (Object[][])m.invoke(clazz.newInstance());
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
    53
        Set<String> keys = new HashSet<String>();
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
    54
        for (Object[] pair: contents) {
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
    55
            String key = (String)pair[0];
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
    56
            if (keys.contains(key)) {
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
    57
                System.out.println("Found dup: " + key);
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
    58
                throw new Exception();
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
    59
            }
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
    60
            checkKey(key);
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
    61
            keys.add(key);
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
    62
        }
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
    63
    }
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
    64
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
    65
    private static void checkKey(String key) throws Exception {
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
    66
        for (char c: key.toCharArray()) {
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
    67
            if (Character.isLetter(c) || Character.isDigit(c) ||
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
    68
                    c == '{' || c == '}' || c == '.') {
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
    69
                // OK
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
    70
            } else {
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
    71
                System.out.println("Illegal char [" + c + "] in key: " + key);
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
    72
                throw new Exception();
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
    73
            }
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
    74
        }
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
    75
    }
4afb81e50183 6987827: security/util/Resources.java needs improvement
weijun
parents:
diff changeset
    76
}