src/jdk.packager/share/native/library/common/Exports.cpp
branchJDK-8200758-branch
changeset 56982 e094d5483bd6
parent 56854 aedce3eaaf17
equal deleted inserted replaced
56963:eaca4369b068 56982:e094d5483bd6
    26 #include "Platform.h"
    26 #include "Platform.h"
    27 #include "Package.h"
    27 #include "Package.h"
    28 #include "PlatformString.h"
    28 #include "PlatformString.h"
    29 #include "PropertyFile.h"
    29 #include "PropertyFile.h"
    30 #include "Lock.h"
    30 #include "Lock.h"
    31 #include "Java.h"
    31 #include "JavaTypes.h"
    32 
    32 
    33 #include "jni.h"
    33 #include "jni.h"
    34 
    34 
    35 
    35 
    36 class UserJVMArgsExports {
    36 class UserJVMArgsExports {
    58             return NULL;
    58             return NULL;
    59 
    59 
    60         jstring result = NULL;
    60         jstring result = NULL;
    61 
    61 
    62         Package& package = Package::GetInstance();
    62         Package& package = Package::GetInstance();
    63         OrderedMap<TString, TString> defaultuserargs = package.GetDefaultJVMUserArgs();
    63         OrderedMap<TString, TString> defaultuserargs =
       
    64                 package.GetDefaultJVMUserArgs();
    64         TString loption = PlatformString(env, option).toString();
    65         TString loption = PlatformString(env, option).toString();
    65 
    66 
    66         TString temp;
    67         TString temp;
    67         defaultuserargs.GetValue(loption, temp);
    68         defaultuserargs.GetValue(loption, temp);
    68         PlatformString value = temp;
    69         PlatformString value = temp;
    82         jobjectArray result = NULL;
    83         jobjectArray result = NULL;
    83 
    84 
    84         Package& package = Package::GetInstance();
    85         Package& package = Package::GetInstance();
    85 
    86 
    86         try {
    87         try {
    87             result = MapKeysToJObjectArray(env, package.GetDefaultJVMUserArgs());
    88             result = MapKeysToJObjectArray(
       
    89                     env, package.GetDefaultJVMUserArgs());
    88         }
    90         }
    89         catch (const JavaException&) {
    91         catch (const JavaException&) {
    90         }
    92         }
    91 
    93 
    92         return result;
    94         return result;
   112         }
   114         }
   113 
   115 
   114         return result;
   116         return result;
   115     }
   117     }
   116 
   118 
   117     static void _setUserJvmKeysAndValues(JNIEnv *env, jobjectArray options, jobjectArray values) {
   119     static void _setUserJvmKeysAndValues(
       
   120                 JNIEnv *env, jobjectArray options, jobjectArray values) {
   118         if (env == NULL || options == NULL || values == NULL)
   121         if (env == NULL || options == NULL || values == NULL)
   119             return;
   122             return;
   120 
   123 
   121         Package& package = Package::GetInstance();
   124         Package& package = Package::GetInstance();
   122         OrderedMap<TString, TString> newMap;
   125         OrderedMap<TString, TString> newMap;
   124         try {
   127         try {
   125             JavaStringArray loptions(env, options);
   128             JavaStringArray loptions(env, options);
   126             JavaStringArray lvalues(env, values);
   129             JavaStringArray lvalues(env, values);
   127 
   130 
   128             for (unsigned int index = 0; index < loptions.Count(); index++) {
   131             for (unsigned int index = 0; index < loptions.Count(); index++) {
   129                 TString name = PlatformString(env, loptions.GetValue(index)).toString();
   132                 TString name = PlatformString(
   130                 TString value = PlatformString(env, lvalues.GetValue(index)).toString();
   133                         env, loptions.GetValue(index)).toString();
       
   134                 TString value = PlatformString(
       
   135                         env, lvalues.GetValue(index)).toString();
   131                 newMap.Append(name, value);
   136                 newMap.Append(name, value);
   132             }
   137             }
   133         }
   138         }
   134         catch (const JavaException&) {
   139         catch (const JavaException&) {
   135             return;
   140             return;
   156     }
   161     }
   157 };
   162 };
   158 
   163 
   159 
   164 
   160 extern "C" {
   165 extern "C" {
   161     JNIEXPORT jstring JNICALL Java_jdk_packager_services_userjvmoptions_LauncherUserJvmOptions__1getUserJvmOptionDefaultValue(JNIEnv *env, jclass klass, jstring option) {
   166     JNIEXPORT jstring JNICALL
       
   167             Java_jdk_packager_services_userjvmoptions_LauncherUserJvmOptions__1getUserJvmOptionDefaultValue(
       
   168             JNIEnv *env, jclass klass, jstring option) {
   162         return UserJVMArgsExports::_getUserJvmOptionDefaultValue(env, option);
   169         return UserJVMArgsExports::_getUserJvmOptionDefaultValue(env, option);
   163     }
   170     }
   164 
   171 
   165     JNIEXPORT jobjectArray JNICALL Java_jdk_packager_services_userjvmoptions_LauncherUserJvmOptions__1getUserJvmOptionDefaultKeys(JNIEnv *env, jclass klass) {
   172     JNIEXPORT jobjectArray JNICALL
       
   173             Java_jdk_packager_services_userjvmoptions_LauncherUserJvmOptions__1getUserJvmOptionDefaultKeys(
       
   174             JNIEnv *env, jclass klass) {
   166         return UserJVMArgsExports::_getUserJvmOptionDefaultKeys(env);
   175         return UserJVMArgsExports::_getUserJvmOptionDefaultKeys(env);
   167     }
   176     }
   168 
   177 
   169     JNIEXPORT jstring JNICALL Java_jdk_packager_services_userjvmoptions_LauncherUserJvmOptions__1getUserJvmOptionValue(JNIEnv *env, jclass klass, jstring option) {
   178     JNIEXPORT jstring JNICALL
       
   179              Java_jdk_packager_services_userjvmoptions_LauncherUserJvmOptions__1getUserJvmOptionValue(
       
   180              JNIEnv *env, jclass klass, jstring option) {
   170         return UserJVMArgsExports::_getUserJvmOptionValue(env, option);
   181         return UserJVMArgsExports::_getUserJvmOptionValue(env, option);
   171     }
   182     }
   172 
   183 
   173     JNIEXPORT void JNICALL Java_jdk_packager_services_userjvmoptions_LauncherUserJvmOptions__1setUserJvmKeysAndValues(JNIEnv *env, jclass klass, jobjectArray options, jobjectArray values) {
   184     JNIEXPORT void JNICALL
       
   185             Java_jdk_packager_services_userjvmoptions_LauncherUserJvmOptions__1setUserJvmKeysAndValues(
       
   186             JNIEnv *env, jclass klass, jobjectArray options,
       
   187             jobjectArray values) {
   174         UserJVMArgsExports::_setUserJvmKeysAndValues(env, options, values);
   188         UserJVMArgsExports::_setUserJvmKeysAndValues(env, options, values);
   175     }
   189     }
   176 
   190 
   177     JNIEXPORT jobjectArray JNICALL Java_jdk_packager_services_userjvmoptions_LauncherUserJvmOptions__1getUserJvmOptionKeys(JNIEnv *env, jclass klass) {
   191     JNIEXPORT jobjectArray JNICALL
       
   192             Java_jdk_packager_services_userjvmoptions_LauncherUserJvmOptions__1getUserJvmOptionKeys(
       
   193         JNIEnv *env, jclass klass) {
   178         return UserJVMArgsExports::_getUserJvmOptionKeys(env);
   194         return UserJVMArgsExports::_getUserJvmOptionKeys(env);
   179     }
   195     }
   180 }
   196 }
   181 
   197 
   182 #ifdef DEBUG
   198 #ifdef DEBUG
   207 //       break;
   223 //       break;
   208 //     }
   224 //     }
   209 //   }
   225 //   }
   210 // }
   226 // }
   211 //
   227 //
   212 // The call to isdebugger() will wait until a native debugger is attached. The process
   228 // The call to isdebugger() will wait until a native debugger is attached.
   213 // identifier (pid) will be printed to the console for you to attach your debugger to.
   229 // The process identifier (pid) will be printed to the console
       
   230 // for you to attach your debugger to.
   214 extern "C" {
   231 extern "C" {
   215     JNIEXPORT jboolean JNICALL Java_com_DebugExports_isdebugged(JNIEnv *env, jclass klass) {
   232     JNIEXPORT jboolean JNICALL Java_com_DebugExports_isdebugged(
       
   233             JNIEnv *env, jclass klass) {
   216         jboolean result = false;
   234         jboolean result = false;
   217         Package& package = Package::GetInstance();
   235         Package& package = Package::GetInstance();
   218 
   236 
   219         if (package.Debugging() == dsNative) {
   237         if (package.Debugging() == dsNative) {
   220             Platform& platform = Platform::GetInstance();
   238             Platform& platform = Platform::GetInstance();
   222         }
   240         }
   223 
   241 
   224         return result;
   242         return result;
   225     }
   243     }
   226 
   244 
   227     JNIEXPORT jint JNICALL Java_com_DebugExports_getpid(JNIEnv *env, jclass klass) {
   245     JNIEXPORT jint JNICALL Java_com_DebugExports_getpid(
       
   246             JNIEnv *env, jclass klass) {
   228         Platform& platform = Platform::GetInstance();
   247         Platform& platform = Platform::GetInstance();
   229         return platform.GetProcessID();
   248         return platform.GetProcessID();
   230     }
   249     }
   231 }
   250 }
   232 #endif //DEBUG
   251 #endif //DEBUG