test/jdk/javax/management/security/ServerDelegate.java
author lfoltan
Tue, 20 Feb 2018 07:46:40 -0500
changeset 49026 844bf1deff1a
parent 47216 71c04702a3d5
permissions -rw-r--r--
8196884: VS2017 Multiple Type Cast Conversion Compilation Errors Summary: Change the type of symbolic constant badAddressVal and introduce specific casts to fix multiple type cast conversion compilation errors. Reviewed-by: coleenp, kbarrett
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
34827
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
     1
/*
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
     2
 * Copyright (c) 2004, 2015, Oracle and/or its affiliates. All rights reserved.
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
     3
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
     4
 *
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
     5
 * This code is free software; you can redistribute it and/or modify it
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
     6
 * under the terms of the GNU General Public License version 2 only, as
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
     7
 * published by the Free Software Foundation.
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
     8
 *
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
     9
 * This code is distributed in the hope that it will be useful, but WITHOUT
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    10
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    11
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    12
 * version 2 for more details (a copy is included in the LICENSE file that
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    13
 * accompanied this code).
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    14
 *
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    15
 * You should have received a copy of the GNU General Public License version
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    16
 * 2 along with this work; if not, write to the Free Software Foundation,
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    17
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    18
 *
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    19
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    20
 * or visit www.oracle.com if you need additional information or have any
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    21
 * questions.
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    22
 */
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    23
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    24
import java.security.Principal;
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    25
import java.util.ArrayList;
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    26
import java.util.List;
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    27
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    28
import javax.management.remote.JMXServiceURL ;
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    29
import javax.management.MBeanRegistration;
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    30
import javax.management.MBeanServer;
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    31
import javax.management.ObjectName;
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    32
import javax.management.StandardMBean;
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    33
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    34
/**
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    35
 * This class defines an MBean that can be registered and used on client side
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    36
 * to handle informations or properties of the remote server.
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    37
 *
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    38
 * For example, this MBean can store IOR addresses
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    39
 * of RMI/IIOP connector(s) used in a test.
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    40
 *
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    41
 * That MBean might not be used for testing purpose itself.
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    42
 */
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    43
public class ServerDelegate implements ServerDelegateMBean, MBeanRegistration {
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    44
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    45
    private MBeanServer mbeanServer = null;
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    46
    private List<JMXServiceURL> addresses  = null;
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    47
    private String port;
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    48
    private static String javaVersion = System.getProperty("java.version");
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    49
    private int sqeJmxwsCredentialsProviderCallCount = 0;
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    50
    private String jmxwsCredentialsProviderUrl = null;
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    51
    private int testJMXAuthenticatorCallCount = 0;
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    52
    private Principal testJMXAuthenticatorPrincipal = null;
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    53
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    54
    @SqeDescriptorKey("NO PARAMETER CONSTRUCTOR ServerDelegate")
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    55
    public ServerDelegate() {
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    56
        addresses = new ArrayList<JMXServiceURL>();
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    57
    }
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    58
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    59
    public ObjectName preRegister(MBeanServer server, ObjectName name)
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    60
    throws Exception {
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    61
        // Initialize MBeanServer attribute
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    62
        mbeanServer = server;
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    63
        return name;
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    64
    }
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    65
    public void postRegister(Boolean registrationDone) {
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    66
    }
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    67
    public void preDeregister() throws Exception {
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    68
    }
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    69
    public void postDeregister() {
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    70
    }
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    71
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    72
    public void addAddress(JMXServiceURL url) {
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    73
        addresses.add(url) ;
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    74
    }
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    75
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    76
    public List<JMXServiceURL> getAddresses() {
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    77
        return addresses ;
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    78
    }
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    79
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    80
    public void setPort(String p) {
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    81
        port = p ;
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    82
    }
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    83
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    84
    public String getPort() {
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    85
        return port ;
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    86
    }
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    87
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    88
    public String getJavaVersion() {
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    89
        return javaVersion;
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    90
    }
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    91
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    92
    public void sqeJmxwsCredentialsProviderCalled() {
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    93
        sqeJmxwsCredentialsProviderCallCount++;
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    94
    }
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    95
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    96
    public int getSqeJmxwsCredentialsProviderCallCount() {
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    97
        return sqeJmxwsCredentialsProviderCallCount;
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    98
    }
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
    99
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   100
    public void setJmxwsCredentialsProviderUrl(String url) {
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   101
        jmxwsCredentialsProviderUrl = url;
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   102
    }
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   103
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   104
    public String getJmxwsCredentialsProviderUrl() {
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   105
        return jmxwsCredentialsProviderUrl;
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   106
    }
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   107
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   108
    public void testJMXAuthenticatorCalled() {
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   109
        testJMXAuthenticatorCallCount++;
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   110
    }
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   111
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   112
    public int getTestJMXAuthenticatorCallCount() {
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   113
        return testJMXAuthenticatorCallCount;
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   114
    }
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   115
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   116
    public void setTestJMXAuthenticatorPrincipal(Principal principal) {
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   117
        testJMXAuthenticatorPrincipal = principal;
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   118
    }
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   119
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   120
    public String getTestJMXAuthenticatorPrincipalString() {
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   121
        if ( testJMXAuthenticatorPrincipal != null ) {
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   122
            return testJMXAuthenticatorPrincipal.toString();
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   123
        }
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   124
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   125
        return null;
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   126
    }
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   127
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   128
   /**
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   129
     * Instantiates and registers a StandardMBean in the MBean server.
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   130
     *
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   131
     * @param implementationClassName
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   132
     *      The implementation class name of the MBean.
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   133
     * @param interfaceClassName
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   134
     *      The management interface class name of the MBean.
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   135
     * @param isMXBean
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   136
     *      If true, the resultant MBean is an MXBean.
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   137
     * @param name
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   138
     *      The object name of the StandardMBean.
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   139
     */
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   140
    @SuppressWarnings("unchecked")
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   141
    public void createStandardMBean(
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   142
            String implementationClassName,
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   143
            String interfaceClassName,
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   144
            boolean isMXBean,
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   145
            ObjectName name)
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   146
            throws Exception {
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   147
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   148
        Object implementation =
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   149
                Class.forName(implementationClassName).newInstance();
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   150
        Class<Object> interfaceClass = interfaceClassName == null ? null :
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   151
            (Class<Object>)Class.forName(interfaceClassName);
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   152
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   153
        // Create the StandardMBean
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   154
        StandardMBean standardMBean = new StandardMBean(
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   155
                implementation,
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   156
                interfaceClass,
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   157
                isMXBean);
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   158
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   159
        // Register the StandardMBean
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   160
        mbeanServer.registerMBean(standardMBean, name);
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   161
    }
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   162
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   163
    /**
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   164
     * Instantiates and registers a StandardMBean in the MBean server.
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   165
     * The object will use standard JMX design pattern to determine
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   166
     * the management interface associated with the given implementation.
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   167
     */
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   168
    @SuppressWarnings("unchecked")
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   169
    public void createStandardMBean(
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   170
            String implementationClassName,
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   171
            boolean isMXBean,
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   172
            ObjectName name)
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   173
            throws Exception {
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   174
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   175
        createStandardMBean(implementationClassName, null, isMXBean, name);
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   176
    }
de746e7eb1e3 8058865: JMX Test Refactoring
olagneau
parents:
diff changeset
   177
}