src/share/classes/sun/corba/SharedSecrets.java

Wed, 27 Apr 2016 01:21:28 +0800

author
aoqi
date
Wed, 27 Apr 2016 01:21:28 +0800
changeset 0
7ef37b2cdcad
child 1692
b90a8fc589af
permissions
-rw-r--r--

Initial load
http://hg.openjdk.java.net/jdk8u/jdk8u/corba/
changeset: 765:f46df0af2ca8
tag: jdk8u25-b17

     1 /*
     2  * Copyright (c) 2012, 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  */
    26 package sun.corba;
    28 import com.sun.corba.se.impl.io.ValueUtility;
    29 import sun.misc.Unsafe;
    31 import java.security.AccessController;
    33 /** A repository of "shared secrets", which are a mechanism for
    34     calling implementation-private methods in another package without
    35     using reflection. A package-private class implements a public
    36     interface and provides the ability to call package-private methods
    37     within that package; the object implementing that interface is
    38     provided through a third package to which access is restricted.
    39     This framework avoids the primary disadvantage of using reflection
    40     for this purpose, namely the loss of compile-time checking. */
    42 // SharedSecrets cloned in corba repo to avoid build issues
    43 public class SharedSecrets {
    44     private static final Unsafe unsafe = Unsafe.getUnsafe();
    45     private static JavaCorbaAccess javaCorbaAccess;
    47     public static JavaCorbaAccess getJavaCorbaAccess() {
    48         if (javaCorbaAccess == null) {
    49             // Ensure ValueUtility is initialized; we know that that class
    50             // provides the shared secret
    51             unsafe.ensureClassInitialized(ValueUtility.class);
    52         }
    53         return javaCorbaAccess;
    54     }
    56     public static void setJavaCorbaAccess(JavaCorbaAccess access) {
    57         javaCorbaAccess = access;
    58     }
    60 }

mercurial