version 1.33, 2005/10/19 16:00:27
|
version 1.35, 2005/10/28 18:33:20
|
|
|
{ | { |
// cd ${PEGAUSE_HOME}/src/Pegasus/ProviderManager2/JMPI/org/pegasus/jmpi/tests/JMPI_TestPropertyTypes | // cd ${PEGAUSE_HOME}/src/Pegasus/ProviderManager2/JMPI/org/pegasus/jmpi/tests/JMPI_TestPropertyTypes |
// javap -s -p JMPI_TestPropertyTypes | // javap -s -p JMPI_TestPropertyTypes |
static const char *methodNames[][2] = { |
static const char *methodNames[][3] = { |
// CIMProvider | // CIMProvider |
// cimom-2003-11-24/org/snia/wbem/provider/CIMProvider.java | // cimom-2003-11-24/org/snia/wbem/provider/CIMProvider.java |
// src/Pegasus/ProviderManager2/JMPI/org/pegasus/jmpi/CIMProvider.java | // src/Pegasus/ProviderManager2/JMPI/org/pegasus/jmpi/CIMProvider.java |
{"initialize","(Lorg/pegasus/jmpi/CIMOMHandle;)V"}, |
{"","initialize","(Lorg/pegasus/jmpi/CIMOMHandle;)V"}, |
{"cleanup","()V"}, |
{"","cleanup","()V"}, |
// InstanceProvider | // InstanceProvider |
// cimom-2003-11-24/org/snia/wbem/provider/InstanceProvider.java | // cimom-2003-11-24/org/snia/wbem/provider/InstanceProvider.java |
// src/Pegasus/ProviderManager2/JMPI/org/pegasus/jmpi/CIMInstanceProvider.java | // src/Pegasus/ProviderManager2/JMPI/org/pegasus/jmpi/CIMInstanceProvider.java |
{"enumInstances","(Lorg/pegasus/jmpi/CIMObjectPath;ZLorg/pegasus/jmpi/CIMClass;)Ljava/util/Vector;"}, |
/* Begin Fix for 4189 */ |
{"enumInstances","(Lorg/pegasus/jmpi/CIMObjectPath;ZLorg/pegasus/jmpi/CIMClass;Z)Ljava/util/Vector;"}, |
{"pegasus 2.5","enumInstances","(Lorg/pegasus/jmpi/CIMObjectPath;Lorg/pegasus/jmpi/CIMClass;ZZZZ[Ljava/lang/String;)Ljava/util/Vector;"}, |
/* Fix for 4189 */ |
/* End Fix for 4189 */ |
{"enumInstances","(Lorg/pegasus/jmpi/CIMObjectPath;ZLorg/pegasus/jmpi/CIMClass;ZZZ[Ljava/lang/String;)Ljava/util/Vector;"}, |
{"snia 2.0","enumInstances","(Lorg/pegasus/jmpi/CIMObjectPath;ZLorg/pegasus/jmpi/CIMClass;Z)Ljava/util/Vector;"}, |
{"enumInstances","(Lorg/pegasus/jmpi/CIMObjectPath;ZLorg/pegasus/jmpi/CIMClass;Z)Ljava/util/Vector;"}, |
{"pegasus 2.4","enumInstances","(Lorg/pegasus/jmpi/CIMObjectPath;ZLorg/pegasus/jmpi/CIMClass;)Ljava/util/Vector;"}, |
/* Fix for 4189 */ |
/* Begin Fix for 4238 */ |
{"getInstance","(Lorg/pegasus/jmpi/CIMObjectPath;Lorg/pegasus/jmpi/CIMClass;Z)Lorg/pegasus/jmpi/CIMInstance;"}, |
{"pegasus 2.5","getInstance","(Lorg/pegasus/jmpi/CIMObjectPath;Lorg/pegasus/jmpi/CIMClass;ZZZ[Ljava/lang/String;)Lorg/pegasus/jmpi/CIMInstance;"}, |
{"createInstance","(Lorg/pegasus/jmpi/CIMObjectPath;Lorg/pegasus/jmpi/CIMInstance;)Lorg/pegasus/jmpi/CIMObjectPath;"}, |
/* End Fix for 4238 */ |
{"setInstance","(Lorg/pegasus/jmpi/CIMObjectPath;Lorg/pegasus/jmpi/CIMInstance;)V"}, |
{"snia 2.0","getInstance","(Lorg/pegasus/jmpi/CIMObjectPath;Lorg/pegasus/jmpi/CIMClass;Z)Lorg/pegasus/jmpi/CIMInstance;"}, |
{"deleteInstance","(Lorg/pegasus/jmpi/CIMObjectPath;)V"}, |
{"pegasus 2.4","getInstance","(Lorg/pegasus/jmpi/CIMObjectPath;ZZZ[Ljava/lang/String;Lorg/pegasus/jmpi/CIMClass;)Lorg/pegasus/jmpi/CIMInstance;"}, |
{"execQuery","(Lorg/pegasus/jmpi/CIMObjectPath;Ljava/lang/String;ILorg/pegasus/jmpi/CIMClass;)Ljava/util/Vector;"}, |
{"","createInstance","(Lorg/pegasus/jmpi/CIMObjectPath;Lorg/pegasus/jmpi/CIMInstance;)Lorg/pegasus/jmpi/CIMObjectPath;"}, |
|
{"","setInstance","(Lorg/pegasus/jmpi/CIMObjectPath;Lorg/pegasus/jmpi/CIMInstance;)V"}, |
|
{"","deleteInstance","(Lorg/pegasus/jmpi/CIMObjectPath;)V"}, |
|
{"","execQuery","(Lorg/pegasus/jmpi/CIMObjectPath;Ljava/lang/String;ILorg/pegasus/jmpi/CIMClass;)Ljava/util/Vector;"}, |
// MethodProvider | // MethodProvider |
// cimom-2003-11-24/org/snia/wbem/provider/MethodProvider.java | // cimom-2003-11-24/org/snia/wbem/provider/MethodProvider.java |
// src/Pegasus/ProviderManager2/JMPI/org/pegasus/jmpi/CIMMethodProvider.java | // src/Pegasus/ProviderManager2/JMPI/org/pegasus/jmpi/CIMMethodProvider.java |
{"invokeMethod","(Lorg/pegasus/jmpi/CIMObjectPath;Ljava/lang/String;Ljava/util/Vector;Ljava/util/Vector;)Lorg/pegasus/jmpi/CIMValue;"}, |
{"","invokeMethod","(Lorg/pegasus/jmpi/CIMObjectPath;Ljava/lang/String;Ljava/util/Vector;Ljava/util/Vector;)Lorg/pegasus/jmpi/CIMValue;"}, |
// PropertyProvider | // PropertyProvider |
// cimom-2003-11-24/org/snia/wbem/provider/PropertyProvider.java | // cimom-2003-11-24/org/snia/wbem/provider/PropertyProvider.java |
// AssociatorProvider | // AssociatorProvider |
|
|
// EventProvider | // EventProvider |
// cimom-2003-11-24/org/snia/wbem/provider20/EventProvider.java | // cimom-2003-11-24/org/snia/wbem/provider20/EventProvider.java |
// src/Pegasus/ProviderManager2/JMPI/org/pegasus/jmpi/EventProvider.java | // src/Pegasus/ProviderManager2/JMPI/org/pegasus/jmpi/EventProvider.java |
{"authorizeFilter","(Lorg/pegasus/jmpi/SelectExp;Ljava/lang/String;Lorg/pegasus/jmpi/CIMObjectPath;Ljava/lang/String;)V"}, |
{"","authorizeFilter","(Lorg/pegasus/jmpi/SelectExp;Ljava/lang/String;Lorg/pegasus/jmpi/CIMObjectPath;Ljava/lang/String;)V"}, |
{"mustPoll","(Lorg/pegasus/jmpi/SelectExp;Ljava/lang/String;Lorg/pegasus/jmpi/CIMObjectPath;)Z"}, |
{"","mustPoll","(Lorg/pegasus/jmpi/SelectExp;Ljava/lang/String;Lorg/pegasus/jmpi/CIMObjectPath;)Z"}, |
{"activateFilter","(Lorg/pegasus/jmpi/SelectExp;Ljava/lang/String;Lorg/pegasus/jmpi/CIMObjectPath;Z)V"}, |
{"","activateFilter","(Lorg/pegasus/jmpi/SelectExp;Ljava/lang/String;Lorg/pegasus/jmpi/CIMObjectPath;Z)V"}, |
{"deActivateFilter","(Lorg/pegasus/jmpi/SelectExp;Ljava/lang/String;Lorg/pegasus/jmpi/CIMObjectPath;Z)V"}, |
{"","deActivateFilter","(Lorg/pegasus/jmpi/SelectExp;Ljava/lang/String;Lorg/pegasus/jmpi/CIMObjectPath;Z)V"}, |
// IndicationHandler | // IndicationHandler |
// cimom-2003-11-24/org/snia/wbem/provider20/IndicationHandler.java | // cimom-2003-11-24/org/snia/wbem/provider20/IndicationHandler.java |
// ProviderAdapter | // ProviderAdapter |
// cimom-2003-11-24/org/snia/wbem/provider20/ProviderAdapter.java | // cimom-2003-11-24/org/snia/wbem/provider20/ProviderAdapter.java |
// JMPI_TestPropertyTypes | // JMPI_TestPropertyTypes |
{"findObjectPath","(Lorg/pegasus/jmpi/CIMObjectPath;)I"}, |
{"","findObjectPath","(Lorg/pegasus/jmpi/CIMObjectPath;)I"}, |
{"testPropertyTypesValue","(Lorg/pegasus/jmpi/CIMInstance;)V"} |
{"","testPropertyTypesValue","(Lorg/pegasus/jmpi/CIMInstance;)V"} |
}; | }; |
| |
if (!env) | if (!env) |
|
|
| |
for (int i = 0; i < (int)(sizeof (methodNames)/sizeof (methodNames[0])); i++) | for (int i = 0; i < (int)(sizeof (methodNames)/sizeof (methodNames[0])); i++) |
{ | { |
jmethodID id = env->GetMethodID(jc,methodNames[i][0], methodNames[i][1]); |
jmethodID id = env->GetMethodID(jc,methodNames[i][1], methodNames[i][2]); |
DDD(PEGASUS_STD(cout)<<"--- JMPIProviderManager::debugPrintMethodPointers: "<<methodNames[i][0]<<", id = "<<PEGASUS_STD(hex)<<(int)id<<PEGASUS_STD(dec)<<PEGASUS_STD(endl)); |
DDD(PEGASUS_STD(cout)<<"--- JMPIProviderManager::debugPrintMethodPointers: "<<methodNames[i][0]<<", "<<methodNames[i][1]<<", id = "<<PEGASUS_STD(hex)<<(int)id<<PEGASUS_STD(dec)<<PEGASUS_STD(endl)); |
env->ExceptionClear(); | env->ExceptionClear(); |
} | } |
| |
|
|
typedef enum { | typedef enum { |
METHOD_UNKNOWN = 0, | METHOD_UNKNOWN = 0, |
METHOD_PEGASUS_24, | METHOD_PEGASUS_24, |
|
METHOD_PEGASUS_25, |
METHOD_SNIA_PROVIDER20, | METHOD_SNIA_PROVIDER20, |
} METHOD_VERSION; | } METHOD_VERSION; |
METHOD_VERSION eMethodFound = METHOD_UNKNOWN; | METHOD_VERSION eMethodFound = METHOD_UNKNOWN; |
|
|
| |
jmethodID id = NULL; | jmethodID id = NULL; |
| |
|
/* Fix for 4238 */ |
|
// public abstract org.pegasus.jmpi.CIMInstance getInstance (org.pegasus.jmpi.CIMObjectPath cop, |
|
// org.pegasus.jmpi.CIMClass cimClass, |
|
// boolean localOnly |
|
// boolean includeQualifiers, |
|
// boolean includeClassOrigin, |
|
// String propertyList[]) |
|
// throws org.pegasus.jmpi.CIMException |
|
id = env->GetMethodID((jclass)pr.jProviderClass, |
|
"getInstance", |
|
"(Lorg/pegasus/jmpi/CIMObjectPath;Lorg/pegasus/jmpi/CIMClass;ZZZ[Ljava/lang/String;)Lorg/pegasus/jmpi/CIMInstance;"); |
|
|
|
if (id != NULL) |
|
{ |
|
eMethodFound = METHOD_PEGASUS_25; |
|
DDD (PEGASUS_STD(cout)<<"--- JMPIProviderManager::handleGetInstanceRequest: found METHOD_PEGASUS_25."<<PEGASUS_STD(endl)); |
|
} |
|
/* Fix for 4238 */ |
|
|
|
if (id == NULL) |
|
{ |
|
env->ExceptionClear(); |
|
|
// public abstract org.pegasus.jmpi.CIMInstance getInstance (org.pegasus.jmpi.CIMObjectPath cop, | // public abstract org.pegasus.jmpi.CIMInstance getInstance (org.pegasus.jmpi.CIMObjectPath cop, |
// org.pegasus.jmpi.CIMClass cimClass, | // org.pegasus.jmpi.CIMClass cimClass, |
// boolean localOnly) | // boolean localOnly) |
|
|
eMethodFound = METHOD_SNIA_PROVIDER20; | eMethodFound = METHOD_SNIA_PROVIDER20; |
DDD (PEGASUS_STD(cout)<<"--- JMPIProviderManager::handleGetInstanceRequest: found METHOD_SNIA_PROVIDER20."<<PEGASUS_STD(endl)); | DDD (PEGASUS_STD(cout)<<"--- JMPIProviderManager::handleGetInstanceRequest: found METHOD_SNIA_PROVIDER20."<<PEGASUS_STD(endl)); |
} | } |
|
} |
| |
if (id == NULL) | if (id == NULL) |
{ | { |
|
|
break; | break; |
} | } |
| |
|
/* Fix for 4238 */ |
|
case METHOD_PEGASUS_25: |
|
{ |
|
jint jopRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, objectPath); |
|
jobject jop = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewI,jopRef); |
|
|
|
JMPIjvm::checkException(env); |
|
|
|
CIMClass cls = pr._cimom_handle->getClass(context, |
|
request->nameSpace, |
|
request->instanceName.getClassName(), |
|
false, |
|
true, |
|
true, |
|
CIMPropertyList()); |
|
CIMClass *pcls = new CIMClass (cls); |
|
|
|
JMPIjvm::checkException(env); |
|
|
|
jint jcimClassRef = DEBUG_ConvertCToJava (CIMClass*, jint, pcls); |
|
jobject jcimClass = env->NewObject(jv->CIMClassClassRef,jv->CIMClassNewI,jcimClassRef); |
|
|
|
JMPIjvm::checkException(env); |
|
|
|
jobjectArray jPropertyList = getList(jv,env,request->propertyList); |
|
jobject jciRet = env->CallObjectMethod((jobject)pr.jProvider, |
|
id, |
|
jop, |
|
jcimClass, |
|
JMPI_LOCALONLY, |
|
JMPI_INCLUDE_QUALIFIERS, |
|
request->includeClassOrigin, |
|
jPropertyList); |
|
|
|
JMPIjvm::checkException(env); |
|
|
|
STAT_PMS_PROVIDEREND; |
|
|
|
handler.processing(); |
|
|
|
if (jciRet) { |
|
jint jciRetRef = env->CallIntMethod(jciRet,JMPIjvm::jv.CIMInstanceCInst); |
|
CIMInstance *ciRet = DEBUG_ConvertJavaToC (jint, CIMInstance*, jciRetRef); |
|
|
|
handler.deliver(*ciRet); |
|
} |
|
handler.complete(); |
|
break; |
|
} |
|
/* Fix for 4238 */ |
|
|
case METHOD_SNIA_PROVIDER20: | case METHOD_SNIA_PROVIDER20: |
{ | { |
jint jopRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, objectPath); | jint jopRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, objectPath); |
|
|
typedef enum { | typedef enum { |
METHOD_UNKNOWN = 0, | METHOD_UNKNOWN = 0, |
METHOD_PEGASUS_24, | METHOD_PEGASUS_24, |
METHOD_SNIA_PROVIDER20_VER1, |
METHOD_PEGASUS_25, |
METHOD_SNIA_PROVIDER20_VER2, |
METHOD_SNIA_PROVIDER20, |
} METHOD_VERSION; | } METHOD_VERSION; |
METHOD_VERSION eMethodFound = METHOD_UNKNOWN; | METHOD_VERSION eMethodFound = METHOD_UNKNOWN; |
JNIEnv *env = NULL; | JNIEnv *env = NULL; |
|
|
| |
/* Fix for 4189 */ | /* Fix for 4189 */ |
// public synchronized Vector enumInstances(CIMObjectPath cop, | // public synchronized Vector enumInstances(CIMObjectPath cop, |
// boolean deep, |
|
// CIMClass cimClass, | // CIMClass cimClass, |
|
// boolean deep, |
// boolean localOnly, | // boolean localOnly, |
// boolean includeQualifiers, | // boolean includeQualifiers, |
// boolean includeClassOrigin, | // boolean includeClassOrigin, |
|
|
// throws org.pegasus.jmpi.CIMException | // throws org.pegasus.jmpi.CIMException |
id = env->GetMethodID((jclass)pr.jProviderClass, | id = env->GetMethodID((jclass)pr.jProviderClass, |
"enumInstances", | "enumInstances", |
"(Lorg/pegasus/jmpi/CIMObjectPath;ZLorg/pegasus/jmpi/CIMClass;ZZZ[Ljava/lang/String;)Ljava/util/Vector;"); |
"(Lorg/pegasus/jmpi/CIMObjectPath;Lorg/pegasus/jmpi/CIMClass;ZZZZ[Ljava/lang/String;)Ljava/util/Vector;"); |
| |
if (id != NULL) | if (id != NULL) |
{ | { |
eMethodFound = METHOD_SNIA_PROVIDER20_VER1; |
eMethodFound = METHOD_PEGASUS_25; |
DDD (PEGASUS_STD(cout)<<"--- JMPIProviderManager::handleEnumerateInstancesRequest: found METHOD_SNIA_PROVIDER20_VER1."<<PEGASUS_STD(endl)); |
DDD (PEGASUS_STD(cout)<<"--- JMPIProviderManager::handleEnumerateInstancesRequest: found METHOD_PEGASUS_25."<<PEGASUS_STD(endl)); |
} | } |
/* Fix for 4189 */ | /* Fix for 4189 */ |
| |
|
|
| |
if (id != NULL) | if (id != NULL) |
{ | { |
eMethodFound = METHOD_SNIA_PROVIDER20_VER2; |
eMethodFound = METHOD_SNIA_PROVIDER20; |
DDD (PEGASUS_STD(cout)<<"--- JMPIProviderManager::handleEnumerateInstancesRequest: found METHOD_SNIA_PROVIDER20_VER2."<<PEGASUS_STD(endl)); |
DDD (PEGASUS_STD(cout)<<"--- JMPIProviderManager::handleEnumerateInstancesRequest: found METHOD_SNIA_PROVIDER20."<<PEGASUS_STD(endl)); |
} | } |
} | } |
| |
|
|
} | } |
| |
/* Fix for 4189 */ | /* Fix for 4189 */ |
case METHOD_SNIA_PROVIDER20_VER1: |
case METHOD_PEGASUS_25: |
{ | { |
jint jcopRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, objectPath); | jint jcopRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, objectPath); |
jobject jcop = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewI,jcopRef); | jobject jcop = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewI,jcopRef); |
|
|
jobject jVec = env->CallObjectMethod((jobject)pr.jProvider, | jobject jVec = env->CallObjectMethod((jobject)pr.jProvider, |
id, | id, |
jcop, | jcop, |
request->deepInheritance, |
|
jcc, | jcc, |
|
request->deepInheritance, |
JMPI_LOCALONLY, | JMPI_LOCALONLY, |
JMPI_INCLUDE_QUALIFIERS, | JMPI_INCLUDE_QUALIFIERS, |
request->includeClassOrigin, | request->includeClassOrigin, |
|
|
} | } |
/* Fix for 4189 */ | /* Fix for 4189 */ |
| |
case METHOD_SNIA_PROVIDER20_VER2: |
case METHOD_SNIA_PROVIDER20: |
{ | { |
jint jcopRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, objectPath); | jint jcopRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, objectPath); |
jobject jcop = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewI,jcopRef); | jobject jcop = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewI,jcopRef); |