version 1.35, 2005/10/28 18:33:20
|
version 1.40, 2006/02/08 23:17:23
|
|
|
//%2005//////////////////////////////////////////////////////////////////////// |
//%2006//////////////////////////////////////////////////////////////////////// |
// | // |
// Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development | // Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development |
// Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems. | // Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems. |
|
|
// IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group. | // IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group. |
// Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.; | // Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.; |
// EMC Corporation; VERITAS Software Corporation; The Open Group. | // EMC Corporation; VERITAS Software Corporation; The Open Group. |
|
// Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.; |
|
// EMC Corporation; Symantec Corporation; The Open Group. |
// | // |
// Permission is hereby granted, free of charge, to any person obtaining a copy | // Permission is hereby granted, free of charge, to any person obtaining a copy |
// of this software and associated documentation files (the "Software"), to | // of this software and associated documentation files (the "Software"), to |
|
|
#else | #else |
#define DDD(x) | #define DDD(x) |
#endif | #endif |
|
|
|
// request->localOnly is replaced with JMPI_LOCALONLY for getInstance () and enumerateInstances () |
#define JMPI_LOCALONLY false | #define JMPI_LOCALONLY false |
#define JMPI_DEEPINHERITANCE true |
|
/* Fix for 4092 */ | /* Fix for 4092 */ |
|
// request->includeQualifiers is replaced with JMPI_INCLUDE_QUALIFIERS for getInstance (), |
|
// setInstance (), enumerateInstances (), associators (), and references () |
#define JMPI_INCLUDE_QUALIFIERS false | #define JMPI_INCLUDE_QUALIFIERS false |
| |
#include "Convert.h" | #include "Convert.h" |
|
|
// 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"}, |
{"snia 2.0","initialize","(Lorg/pegasus/jmpi/CIMOMHandle;)V"}, |
{"","cleanup","()V"}, |
{"snia 2.0","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 |
|
{"snia 2.0","enumInstances","(Lorg/pegasus/jmpi/CIMObjectPath;ZLorg/pegasus/jmpi/CIMClass;Z)Ljava/util/Vector;"}, |
|
{"pegasus 2.4","enumInstances","(Lorg/pegasus/jmpi/CIMObjectPath;ZZZ[Ljava/lang/String;Lorg/pegasus/jmpi/CIMClass;)[Lorg/pegasus/jmpi/CIMInstance;"}, |
/* Begin Fix for 4189 */ | /* Begin Fix for 4189 */ |
{"pegasus 2.5","enumInstances","(Lorg/pegasus/jmpi/CIMObjectPath;Lorg/pegasus/jmpi/CIMClass;ZZZZ[Ljava/lang/String;)Ljava/util/Vector;"}, |
{"pegasus 2.5","enumerateInstances","(Lorg/pegasus/jmpi/CIMObjectPath;Lorg/pegasus/jmpi/CIMClass;ZZ[Ljava/lang/String;)Ljava/util/Vector;"}, |
/* End Fix for 4189 */ | /* End Fix for 4189 */ |
{"snia 2.0","enumInstances","(Lorg/pegasus/jmpi/CIMObjectPath;ZLorg/pegasus/jmpi/CIMClass;Z)Ljava/util/Vector;"}, |
{"snia 2.0","enumInstances","(Lorg/pegasus/jmpi/CIMObjectPath;ZLorg/pegasus/jmpi/CIMClass;)Ljava/util/Vector;"}, |
{"pegasus 2.4","enumInstances","(Lorg/pegasus/jmpi/CIMObjectPath;ZLorg/pegasus/jmpi/CIMClass;)Ljava/util/Vector;"}, |
{"pegasus 2.4","enumerateInstanceNames","(Lorg/pegasus/jmpi/CIMObjectPath;Lorg/pegasus/jmpi/CIMClass;)[Lorg/pegasus/jmpi/CIMObjectPath;"}, |
/* Begin Fix for 4238 */ |
{"pegasus 2.5","enumerateInstanceNames","(Lorg/pegasus/jmpi/CIMObjectPath;Lorg/pegasus/jmpi/CIMClass;)Ljava/util/Vector;"}, |
{"pegasus 2.5","getInstance","(Lorg/pegasus/jmpi/CIMObjectPath;Lorg/pegasus/jmpi/CIMClass;ZZZ[Ljava/lang/String;)Lorg/pegasus/jmpi/CIMInstance;"}, |
|
/* End Fix for 4238 */ |
|
{"snia 2.0","getInstance","(Lorg/pegasus/jmpi/CIMObjectPath;Lorg/pegasus/jmpi/CIMClass;Z)Lorg/pegasus/jmpi/CIMInstance;"}, | {"snia 2.0","getInstance","(Lorg/pegasus/jmpi/CIMObjectPath;Lorg/pegasus/jmpi/CIMClass;Z)Lorg/pegasus/jmpi/CIMInstance;"}, |
{"pegasus 2.4","getInstance","(Lorg/pegasus/jmpi/CIMObjectPath;ZZZ[Ljava/lang/String;Lorg/pegasus/jmpi/CIMClass;)Lorg/pegasus/jmpi/CIMInstance;"}, | {"pegasus 2.4","getInstance","(Lorg/pegasus/jmpi/CIMObjectPath;ZZZ[Ljava/lang/String;Lorg/pegasus/jmpi/CIMClass;)Lorg/pegasus/jmpi/CIMInstance;"}, |
{"","createInstance","(Lorg/pegasus/jmpi/CIMObjectPath;Lorg/pegasus/jmpi/CIMInstance;)Lorg/pegasus/jmpi/CIMObjectPath;"}, |
/* Begin Fix for 4238 */ |
{"","setInstance","(Lorg/pegasus/jmpi/CIMObjectPath;Lorg/pegasus/jmpi/CIMInstance;)V"}, |
{"pegasus 2.5","getInstance","(Lorg/pegasus/jmpi/CIMObjectPath;Lorg/pegasus/jmpi/CIMClass;ZZ[Ljava/lang/String;)Lorg/pegasus/jmpi/CIMInstance;"}, |
{"","deleteInstance","(Lorg/pegasus/jmpi/CIMObjectPath;)V"}, |
/* End Fix for 4238 */ |
{"","execQuery","(Lorg/pegasus/jmpi/CIMObjectPath;Ljava/lang/String;ILorg/pegasus/jmpi/CIMClass;)Ljava/util/Vector;"}, |
{"snia 2.0","createInstance","(Lorg/pegasus/jmpi/CIMObjectPath;Lorg/pegasus/jmpi/CIMInstance;)Lorg/pegasus/jmpi/CIMObjectPath;"}, |
|
{"snia 2.0","setInstance","(Lorg/pegasus/jmpi/CIMObjectPath;Lorg/pegasus/jmpi/CIMInstance;)V"}, |
|
{"pegasus 2.4","setInstance","(Lorg/pegasus/jmpi/CIMObjectPath;Z[Ljava/lang/String)V"}, |
|
{"snia 2.0","deleteInstance","(Lorg/pegasus/jmpi/CIMObjectPath;)V"}, |
|
{"snia 2.0","execQuery","(Lorg/pegasus/jmpi/CIMObjectPath;Ljava/lang/String;ILorg/pegasus/jmpi/CIMClass;)Ljava/util/Vector;"}, |
|
{"pegasus 2.4","execQuery","(Lorg/pegasus/jmpi/CIMObjectPath;Ljava/lang/String;Ljava/lang/String;Lorg/pegasus/jmpi/CIMClass;)[Lorg/pegasus/jmpi/CIMInstance;"}, |
|
{"pegasus 2.5","execQuery","(Lorg/pegasus/jmpi/CIMObjectPath;Lorg/pegasus/jmpi/CIMClass;Ljava/lang/String;Ljava/lang/String;)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;"}, |
{"snia 2.0","invokeMethod","(Lorg/pegasus/jmpi/CIMObjectPath;Ljava/lang/String;Ljava/util/Vector;Ljava/util/Vector;)Lorg/pegasus/jmpi/CIMValue;"}, |
|
{"pegasus 2.4","invokeMethod","(Lorg/pegasus/jmpi/CIMObjectPath;Ljava/lang/String;[Lorg/pegasus/jmpi/CIMArgument;[Lorg/pegasus/jmpi/CIMArgument;)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 |
|
// src/Pegasus/ProviderManager2/JMPI/org/pegasus/jmpi/PropertyProvider.java |
|
{"snia 2.0","getPropertyValue","(Lorg/pegasus/jmpi/CIMObjectPath;Ljava/lang/String;Ljava/lang/String;)Lorg/pegasus/jmpi/CIMValue;"}, |
|
{"snia 2.0","setPropertyValue","(Lorg/pegasus/jmpi/CIMObjectPath;Ljava/lang/String;Ljava/lang/String;Lorg/pegasus/jmpi/CIMValue;)V"}, |
// AssociatorProvider | // AssociatorProvider |
// cimom-2003-11-24/org/snia/wbem/provider20/AssociatorProvider.java | // cimom-2003-11-24/org/snia/wbem/provider20/AssociatorProvider.java |
// src/Pegasus/ProviderManager2/JMPI/org/pegasus/jmpi/CIMAssociationProvider.java |
// src/Pegasus/ProviderManager2/JMPI/org/pegasus/jmpi/AssociatorProvider.java |
|
{"snia 2.0","associators","(Lorg/pegasus/jmpi/CIMObjectPath;Lorg/pegasus/jmpi/CIMObjectPath;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZ[Ljava/lang/String;)Ljava/util/Vector;"}, |
|
{"pegasus 2.4","associators","(Lorg/pegasus/jmpi/CIMObjectPath;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZ[Ljava/lang/String;)Ljava/util/Vector;"}, |
|
{"snia 2.0","associatorNames","(Lorg/pegasus/jmpi/CIMObjectPath;Lorg/pegasus/jmpi/CIMObjectPath;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/util/Vector;"}, |
|
{"pegasus 2.4","associatorNames","(Lorg/pegasus/jmpi/CIMObjectPath;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/util/Vector;"}, |
|
{"snia 2.0","references","(Lorg/pegasus/jmpi/CIMObjectPath;Lorg/pegasus/jmpi/CIMObjectPath;Ljava/lang/String;ZZ[Ljava/lang/String;)Ljava/util/Vector;"}, |
|
{"pegasus 2.4","references","(Lorg/pegasus/jmpi/CIMObjectPath;Ljava/lang/String;ZZ[Ljava/lang/String;)Ljava/util/Vector;"}, |
|
{"snia 2.0","referenceNames","(Lorg/pegasus/jmpi/CIMObjectPath;Lorg/pegasus/jmpi/CIMObjectPath;Ljava/lang/String;)Ljava/util/Vector;"}, |
|
{"pegasus 2.4","referenceNames","(Lorg/pegasus/jmpi/CIMObjectPath;Ljava/lang/String;)Ljava/util/Vector;"}, |
// CIMProviderRouter | // CIMProviderRouter |
// cimom-2003-11-24/org/snia/wbem/provider20/CIMProviderRouter.java | // cimom-2003-11-24/org/snia/wbem/provider20/CIMProviderRouter.java |
// 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"}, |
{"snia 2.0","activateFilter","(Lorg/pegasus/jmpi/SelectExp;Ljava/lang/String;Lorg/pegasus/jmpi/CIMObjectPath;Z)V"}, |
{"","mustPoll","(Lorg/pegasus/jmpi/SelectExp;Ljava/lang/String;Lorg/pegasus/jmpi/CIMObjectPath;)Z"}, |
{"snia 2.0","deActivateFilter","(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"}, |
|
// 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"}, |
{"JMPI_TestPropertyTypes","findObjectPath","(Lorg/pegasus/jmpi/CIMObjectPath;)I"}, |
{"","testPropertyTypesValue","(Lorg/pegasus/jmpi/CIMInstance;)V"} |
{"JMPI_TestPropertyTypes","testPropertyTypesValue","(Lorg/pegasus/jmpi/CIMInstance;)V"} |
}; | }; |
| |
if (!env) | if (!env) |
|
|
| |
env = JMPIjvm::attachThread(&jv); | env = JMPIjvm::attachThread(&jv); |
| |
|
if (!env) |
|
{ |
|
PEG_METHOD_EXIT(); |
|
|
|
STAT_COPYDISPATCHER |
|
|
|
throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED, |
|
MessageLoaderParms("ProviderManager.JMPI.INIT_JVM_FAILED", |
|
"Could not initialize the JVM (Java Virtual Machine) runtime environment.")); |
|
} |
|
|
|
////////DDD(debugPrintMethodPointers (env, (jclass)pr.jProviderClass)); |
|
|
JMPIProvider::pm_service_op_lock op_lock(&pr); | JMPIProvider::pm_service_op_lock op_lock(&pr); |
| |
STAT_GETSTARTTIME; | STAT_GETSTARTTIME; |
|
|
/* Fix for 4238 */ | /* Fix for 4238 */ |
// 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 includeQualifiers, | // boolean includeQualifiers, |
// boolean includeClassOrigin, | // boolean includeClassOrigin, |
// String propertyList[]) | // String propertyList[]) |
// throws org.pegasus.jmpi.CIMException | // throws org.pegasus.jmpi.CIMException |
id = env->GetMethodID((jclass)pr.jProviderClass, | id = env->GetMethodID((jclass)pr.jProviderClass, |
"getInstance", | "getInstance", |
"(Lorg/pegasus/jmpi/CIMObjectPath;Lorg/pegasus/jmpi/CIMClass;ZZZ[Ljava/lang/String;)Lorg/pegasus/jmpi/CIMInstance;"); |
"(Lorg/pegasus/jmpi/CIMObjectPath;Lorg/pegasus/jmpi/CIMClass;ZZ[Ljava/lang/String;)Lorg/pegasus/jmpi/CIMInstance;"); |
| |
if (id != NULL) | if (id != NULL) |
{ | { |
|
|
| |
JMPIjvm::checkException(env); | JMPIjvm::checkException(env); |
| |
CIMClass cls = pr._cimom_handle->getClass(context, |
CIMClass cls; |
|
|
|
try |
|
{ |
|
DDD (PEGASUS_STD(cout)<<"enter: cimom_handle->getClass("<<__LINE__<<") "<<request->instanceName.getClassName()<<PEGASUS_STD(endl)); |
|
AutoMutex lock (pr._cimomMutex); |
|
|
|
cls = pr._cimom_handle->getClass(context, |
request->nameSpace, | request->nameSpace, |
request->instanceName.getClassName(), | request->instanceName.getClassName(), |
false, | false, |
true, | true, |
true, | true, |
CIMPropertyList()); | CIMPropertyList()); |
|
DDD (PEGASUS_STD(cout)<<"exit: cimom_handle->getClass("<<__LINE__<<") "<<request->instanceName.getClassName()<<PEGASUS_STD(endl)); |
|
} |
|
catch (CIMException e) |
|
{ |
|
DDD (PEGASUS_STD(cout)<<"--- JMPIProviderManager::handleGetInstanceRequest: Error: Caught CIMExcetion during cimom_handle->getClass("<<__LINE__<<") "<<PEGASUS_STD(endl)); |
|
throw; |
|
} |
|
|
CIMClass *pcls = new CIMClass (cls); | CIMClass *pcls = new CIMClass (cls); |
| |
JMPIjvm::checkException(env); | JMPIjvm::checkException(env); |
|
|
jobject jciRet = env->CallObjectMethod((jobject)pr.jProvider, | jobject jciRet = env->CallObjectMethod((jobject)pr.jProvider, |
id, | id, |
jop, | jop, |
request->localOnly, |
JMPI_LOCALONLY, |
request->includeQualifiers, |
JMPI_INCLUDE_QUALIFIERS, |
request->includeClassOrigin, | request->includeClassOrigin, |
jPropertyList, | jPropertyList, |
jcimClass); | jcimClass); |
|
|
| |
JMPIjvm::checkException(env); | JMPIjvm::checkException(env); |
| |
CIMClass cls = pr._cimom_handle->getClass(context, |
CIMClass cls; |
|
|
|
try |
|
{ |
|
DDD (PEGASUS_STD(cout)<<"enter: cimom_handle->getClass("<<__LINE__<<") "<<request->instanceName.getClassName()<<PEGASUS_STD(endl)); |
|
AutoMutex lock (pr._cimomMutex); |
|
|
|
cls = pr._cimom_handle->getClass(context, |
request->nameSpace, | request->nameSpace, |
request->instanceName.getClassName(), | request->instanceName.getClassName(), |
false, | false, |
true, | true, |
true, | true, |
CIMPropertyList()); | CIMPropertyList()); |
|
DDD (PEGASUS_STD(cout)<<"exit: cimom_handle->getClass("<<__LINE__<<") "<<request->instanceName.getClassName()<<PEGASUS_STD(endl)); |
|
} |
|
catch (CIMException e) |
|
{ |
|
DDD (PEGASUS_STD(cout)<<"--- JMPIProviderManager::handleGetInstanceRequest: Error: Caught CIMExcetion during cimom_handle->getClass("<<__LINE__<<") "<<PEGASUS_STD(endl)); |
|
throw; |
|
} |
|
|
CIMClass *pcls = new CIMClass (cls); | CIMClass *pcls = new CIMClass (cls); |
| |
JMPIjvm::checkException(env); | JMPIjvm::checkException(env); |
|
|
id, | id, |
jop, | jop, |
jcimClass, | jcimClass, |
JMPI_LOCALONLY, |
|
JMPI_INCLUDE_QUALIFIERS, | JMPI_INCLUDE_QUALIFIERS, |
request->includeClassOrigin, | request->includeClassOrigin, |
jPropertyList); | jPropertyList); |
|
|
| |
JMPIjvm::checkException(env); | JMPIjvm::checkException(env); |
| |
CIMClass cls = pr._cimom_handle->getClass(context, |
CIMClass cls; |
|
|
|
try |
|
{ |
|
DDD (PEGASUS_STD(cout)<<"enter: cimom_handle->getClass("<<__LINE__<<") "<<request->instanceName.getClassName()<<PEGASUS_STD(endl)); |
|
AutoMutex lock (pr._cimomMutex); |
|
|
|
cls = pr._cimom_handle->getClass(context, |
request->nameSpace, | request->nameSpace, |
request->instanceName.getClassName(), | request->instanceName.getClassName(), |
false, | false, |
true, | true, |
true, | true, |
CIMPropertyList()); | CIMPropertyList()); |
|
DDD (PEGASUS_STD(cout)<<"exit: cimom_handle->getClass("<<__LINE__<<") "<<request->instanceName.getClassName()<<PEGASUS_STD(endl)); |
|
} |
|
catch (CIMException e) |
|
{ |
|
DDD (PEGASUS_STD(cout)<<"--- JMPIProviderManager::handleGetInstancesRequest: Error: Caught CIMExcetion during cimom_handle->getClass("<<__LINE__<<") "<<PEGASUS_STD(endl)); |
|
throw; |
|
} |
|
|
CIMClass *pcls = new CIMClass (cls); | CIMClass *pcls = new CIMClass (cls); |
| |
JMPIjvm::checkException(env); | JMPIjvm::checkException(env); |
|
|
| |
env = JMPIjvm::attachThread(&jv); | env = JMPIjvm::attachThread(&jv); |
| |
|
if (!env) |
|
{ |
|
PEG_METHOD_EXIT(); |
|
|
|
STAT_COPYDISPATCHER |
|
|
|
throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED, |
|
MessageLoaderParms("ProviderManager.JMPI.INIT_JVM_FAILED", |
|
"Could not initialize the JVM (Java Virtual Machine) runtime environment.")); |
|
} |
|
|
JMPIProvider::pm_service_op_lock op_lock(&pr); | JMPIProvider::pm_service_op_lock op_lock(&pr); |
| |
STAT_GETSTARTTIME; | STAT_GETSTARTTIME; |
|
|
jmethodID id = NULL; | jmethodID id = NULL; |
| |
/* Fix for 4189 */ | /* Fix for 4189 */ |
// public synchronized Vector enumInstances(CIMObjectPath cop, |
// public java.util.Vector enumerateInstances (org.pegasus.jmpi.CIMObjectPath cop, |
// CIMClass cimClass, |
// org.pegasus.jmpi.CIMClass cimClass, |
// boolean deep, |
|
// boolean localOnly, |
|
// boolean includeQualifiers, | // boolean includeQualifiers, |
// boolean includeClassOrigin, | // boolean includeClassOrigin, |
// String propertyList[]) |
// java.lang.String[] propertyList) |
// throws org.pegasus.jmpi.CIMException | // throws org.pegasus.jmpi.CIMException |
id = env->GetMethodID((jclass)pr.jProviderClass, | id = env->GetMethodID((jclass)pr.jProviderClass, |
"enumInstances", |
"enumerateInstances", |
"(Lorg/pegasus/jmpi/CIMObjectPath;Lorg/pegasus/jmpi/CIMClass;ZZZZ[Ljava/lang/String;)Ljava/util/Vector;"); |
"(Lorg/pegasus/jmpi/CIMObjectPath;Lorg/pegasus/jmpi/CIMClass;ZZ[Ljava/lang/String;)Ljava/util/Vector;"); |
| |
if (id != NULL) | if (id != NULL) |
{ | { |
|
|
{ | { |
env->ExceptionClear(); | env->ExceptionClear(); |
| |
// public org.pegasus.jmpi.CIMInstance[] enumerateInstances (org.pegasus.jmpi.CIMObjectPath op, |
// public org.pegasus.jmpi.CIMInstance[] enumInstances (org.pegasus.jmpi.CIMObjectPath cop, |
// boolean localOnly, | // boolean localOnly, |
// boolean includeQualifiers, | // boolean includeQualifiers, |
// boolean includeClassOrigin, | // boolean includeClassOrigin, |
// java.lang.String[] propertyList, | // java.lang.String[] propertyList, |
// org.pegasus.jmpi.CIMClass cc) |
// org.pegasus.jmpi.CIMClass cimClass) |
// throws org.pegasus.jmpi.CIMException | // throws org.pegasus.jmpi.CIMException |
id = env->GetMethodID((jclass)pr.jProviderClass, | id = env->GetMethodID((jclass)pr.jProviderClass, |
"enumerateInstances", |
"enumInstances", |
"(Lorg/pegasus/jmpi/CIMObjectPath;ZZZ[Ljava/lang/String;Lorg/pegasus/jmpi/CIMClass;)[Lorg/pegasus/jmpi/CIMInstance;"); | "(Lorg/pegasus/jmpi/CIMObjectPath;ZZZ[Ljava/lang/String;Lorg/pegasus/jmpi/CIMClass;)[Lorg/pegasus/jmpi/CIMInstance;"); |
| |
if (id != NULL) | if (id != NULL) |
|
|
| |
JMPIjvm::checkException(env); | JMPIjvm::checkException(env); |
| |
CIMClass cls = pr._cimom_handle->getClass(context, |
CIMClass cls; |
|
|
|
try |
|
{ |
|
DDD (PEGASUS_STD(cout)<<"enter: cimom_handle->getClass("<<__LINE__<<") "<<request->className<<PEGASUS_STD(endl)); |
|
AutoMutex lock (pr._cimomMutex); |
|
|
|
cls = pr._cimom_handle->getClass(context, |
request->nameSpace, | request->nameSpace, |
request->className, | request->className, |
false, | false, |
true, | true, |
true, | true, |
CIMPropertyList()); | CIMPropertyList()); |
|
DDD (PEGASUS_STD(cout)<<"exit: cimom_handle->getClass("<<__LINE__<<") "<<request->className<<PEGASUS_STD(endl)); |
|
} |
|
catch (CIMException e) |
|
{ |
|
DDD (PEGASUS_STD(cout)<<"--- JMPIProviderManager::handleEnumerateInstancesRequest: Error: Caught CIMExcetion during cimom_handle->getClass("<<__LINE__<<") "<<PEGASUS_STD(endl)); |
|
throw; |
|
} |
|
|
CIMClass *pcls = new CIMClass (cls); | CIMClass *pcls = new CIMClass (cls); |
| |
JMPIjvm::checkException(env); | JMPIjvm::checkException(env); |
|
|
JMPIjvm::checkException(env); | JMPIjvm::checkException(env); |
| |
jobjectArray jPropertyList = getList(jv,env,request->propertyList); | jobjectArray jPropertyList = getList(jv,env,request->propertyList); |
|
|
jobjectArray jAr = (jobjectArray)env->CallObjectMethod((jobject)pr.jProvider, | jobjectArray jAr = (jobjectArray)env->CallObjectMethod((jobject)pr.jProvider, |
id, | id, |
jcop, | jcop, |
request->localOnly, |
JMPI_LOCALONLY, |
request->includeQualifiers, |
JMPI_INCLUDE_QUALIFIERS, |
request->includeClassOrigin, | request->includeClassOrigin, |
jPropertyList, | jPropertyList, |
jcc); | jcc); |
|
|
jint jciRetRef = env->CallIntMethod(jciRet,JMPIjvm::jv.CIMInstanceCInst); | jint jciRetRef = env->CallIntMethod(jciRet,JMPIjvm::jv.CIMInstanceCInst); |
CIMInstance *ciRet = DEBUG_ConvertJavaToC (jint, CIMInstance*, jciRetRef); | CIMInstance *ciRet = DEBUG_ConvertJavaToC (jint, CIMInstance*, jciRetRef); |
| |
|
/* Fix for 4237 */ |
|
CIMClass cls; |
|
|
|
try |
|
{ |
|
DDD (PEGASUS_STD(cout)<<"enter: cimom_handle->getClass("<<__LINE__<<") "<<ciRet->getClassName()<<PEGASUS_STD(endl)); |
|
AutoMutex lock (pr._cimomMutex); |
|
|
|
cls = pr._cimom_handle->getClass(context, |
|
request->nameSpace, |
|
ciRet->getClassName(), |
|
false, |
|
true, |
|
true, |
|
CIMPropertyList()); |
|
DDD (PEGASUS_STD(cout)<<"exit: cimom_handle->getClass("<<__LINE__<<") "<<ciRet->getClassName()<<PEGASUS_STD(endl)); |
|
} |
|
catch (CIMException e) |
|
{ |
|
DDD (PEGASUS_STD(cout)<<"--- JMPIProviderManager::handleEnumerateInstancesRequest: Error: Caught CIMExcetion during cimom_handle->getClass("<<__LINE__<<") "<<PEGASUS_STD(endl)); |
|
throw; |
|
} |
|
|
|
const CIMObjectPath& op = ciRet->getPath(); |
|
CIMObjectPath iop = ciRet->buildPath(cls); |
|
|
JMPIjvm::checkException(env); | JMPIjvm::checkException(env); |
| |
handler.deliver(*ciRet); | handler.deliver(*ciRet); |
|
|
| |
JMPIjvm::checkException(env); | JMPIjvm::checkException(env); |
| |
CIMClass cls = pr._cimom_handle->getClass(context, |
CIMClass cls; |
|
|
|
try |
|
{ |
|
DDD (PEGASUS_STD(cout)<<"enter: cimom_handle->getClass("<<__LINE__<<") "<<request->className<<PEGASUS_STD(endl)); |
|
AutoMutex lock (pr._cimomMutex); |
|
|
|
cls = pr._cimom_handle->getClass (context, |
request->nameSpace, | request->nameSpace, |
request->className, | request->className, |
false, | false, |
true, | true, |
true, | true, |
CIMPropertyList()); | CIMPropertyList()); |
|
DDD (PEGASUS_STD(cout)<<"exit: cimom_handle->getClass("<<__LINE__<<") "<<request->className<<PEGASUS_STD(endl)); |
|
} |
|
catch (CIMException e) |
|
{ |
|
DDD (PEGASUS_STD(cout)<<"--- JMPIProviderManager::handleEnumerateInstancesRequest: Error: Caught CIMExcetion during cimom_handle->getClass("<<__LINE__<<") "<<PEGASUS_STD(endl)); |
|
throw; |
|
} |
|
|
CIMClass *pcls = new CIMClass (cls); | CIMClass *pcls = new CIMClass (cls); |
| |
JMPIjvm::checkException(env); | JMPIjvm::checkException(env); |
|
|
id, | id, |
jcop, | jcop, |
jcc, | jcc, |
request->deepInheritance, |
|
JMPI_LOCALONLY, |
|
JMPI_INCLUDE_QUALIFIERS, | JMPI_INCLUDE_QUALIFIERS, |
request->includeClassOrigin, | request->includeClassOrigin, |
jPropertyList); | jPropertyList); |
|
|
CIMInstance *ciRet = DEBUG_ConvertJavaToC (jint, CIMInstance*, jciRetRef); | CIMInstance *ciRet = DEBUG_ConvertJavaToC (jint, CIMInstance*, jciRetRef); |
| |
/* Fix for 4237 */ | /* Fix for 4237 */ |
CIMClass cls = pr._cimom_handle->getClass(context, |
CIMClass cls; |
|
|
|
try |
|
{ |
|
DDD (PEGASUS_STD(cout)<<"enter: cimom_handle->getClass("<<__LINE__<<") "<<ciRet->getClassName()<<PEGASUS_STD(endl)); |
|
AutoMutex lock (pr._cimomMutex); |
|
|
|
cls = pr._cimom_handle->getClass(context, |
request->nameSpace, | request->nameSpace, |
ciRet->getClassName(), | ciRet->getClassName(), |
false, | false, |
true, | true, |
true, | true, |
CIMPropertyList()); | CIMPropertyList()); |
|
DDD (PEGASUS_STD(cout)<<"exit: cimom_handle->getClass("<<__LINE__<<") "<<ciRet->getClassName()<<PEGASUS_STD(endl)); |
|
} |
|
catch (CIMException e) |
|
{ |
|
DDD (PEGASUS_STD(cout)<<"--- JMPIProviderManager::handleEnumerateInstancesRequest: Error: Caught CIMExcetion during cimom_handle->getClass("<<__LINE__<<") "<<PEGASUS_STD(endl)); |
|
throw; |
|
} |
|
|
const CIMObjectPath& op = ciRet->getPath(); | const CIMObjectPath& op = ciRet->getPath(); |
CIMObjectPath iop = ciRet->buildPath(cls); | CIMObjectPath iop = ciRet->buildPath(cls); |
| |
|
|
| |
JMPIjvm::checkException(env); | JMPIjvm::checkException(env); |
| |
CIMClass cls = pr._cimom_handle->getClass(context, |
CIMClass cls; |
|
|
|
try |
|
{ |
|
DDD (PEGASUS_STD(cout)<<"enter: cimom_handle->getClass("<<__LINE__<<") "<<request->className<<PEGASUS_STD(endl)); |
|
AutoMutex lock (pr._cimomMutex); |
|
|
|
cls = pr._cimom_handle->getClass(context, |
request->nameSpace, | request->nameSpace, |
request->className, | request->className, |
false, | false, |
true, | true, |
true, | true, |
CIMPropertyList()); | CIMPropertyList()); |
|
DDD (PEGASUS_STD(cout)<<"exit: cimom_handle->getClass("<<__LINE__<<") "<<request->className<<PEGASUS_STD(endl)); |
|
} |
|
catch (CIMException e) |
|
{ |
|
DDD (PEGASUS_STD(cout)<<"--- JMPIProviderManager::handleEnumerateInstancesRequest: Error: Caught CIMExcetion during cimom_handle->getClass("<<__LINE__<<") "<<PEGASUS_STD(endl)); |
|
throw; |
|
} |
|
|
CIMClass *pcls = new CIMClass (cls); | CIMClass *pcls = new CIMClass (cls); |
| |
JMPIjvm::checkException(env); | JMPIjvm::checkException(env); |
|
|
CIMInstance *ciRet = DEBUG_ConvertJavaToC (jint, CIMInstance*, jciRetRef); | CIMInstance *ciRet = DEBUG_ConvertJavaToC (jint, CIMInstance*, jciRetRef); |
| |
/* Fix for 4237 */ | /* Fix for 4237 */ |
CIMClass cls = pr._cimom_handle->getClass(context, |
CIMClass cls; |
|
|
|
try |
|
{ |
|
DDD (PEGASUS_STD(cout)<<"enter: cimom_handle->getClass("<<__LINE__<<") "<<ciRet->getClassName()<<PEGASUS_STD(endl)); |
|
AutoMutex lock (pr._cimomMutex); |
|
|
|
cls = pr._cimom_handle->getClass(context, |
request->nameSpace, | request->nameSpace, |
ciRet->getClassName(), | ciRet->getClassName(), |
false, | false, |
true, | true, |
true, | true, |
CIMPropertyList()); | CIMPropertyList()); |
|
DDD (PEGASUS_STD(cout)<<"exit: cimom_handle->getClass("<<__LINE__<<") "<<ciRet->getClassName()<<PEGASUS_STD(endl)); |
|
} |
|
catch (CIMException e) |
|
{ |
|
DDD (PEGASUS_STD(cout)<<"--- JMPIProviderManager::handleEnumerateInstancesRequest: Error: Caught CIMExcetion during cimom_handle->getClass("<<__LINE__<<") "<<PEGASUS_STD(endl)); |
|
throw; |
|
} |
|
|
const CIMObjectPath& op = ciRet->getPath(); | const CIMObjectPath& op = ciRet->getPath(); |
CIMObjectPath iop = ciRet->buildPath(cls); | CIMObjectPath iop = ciRet->buildPath(cls); |
| |
|
|
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; |
|
|
| |
PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4, "Calling provider.enumerateInstanceNames: " + pr.getName()); | PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4, "Calling provider.enumerateInstanceNames: " + pr.getName()); |
| |
DDD(PEGASUS_STD(cout)<<"--- JMPIProviderManager::handleEnumerateInstanceNamesRequest: Calling provider : enumerateInstanceNames"<<pr.getName()<<PEGASUS_STD(endl)); |
DDD(PEGASUS_STD(cout)<<"--- JMPIProviderManager::handleEnumerateInstanceNamesRequest: Calling provider : enumerateInstanceNames: "<<pr.getName()<<PEGASUS_STD(endl)); |
| |
JvmVector *jv = 0; | JvmVector *jv = 0; |
| |
env = JMPIjvm::attachThread(&jv); | env = JMPIjvm::attachThread(&jv); |
| |
|
if (!env) |
|
{ |
|
PEG_METHOD_EXIT(); |
|
|
|
STAT_COPYDISPATCHER |
|
|
|
throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED, |
|
MessageLoaderParms("ProviderManager.JMPI.INIT_JVM_FAILED", |
|
"Could not initialize the JVM (Java Virtual Machine) runtime environment.")); |
|
} |
|
|
JMPIProvider::pm_service_op_lock op_lock(&pr); | JMPIProvider::pm_service_op_lock op_lock(&pr); |
| |
STAT_GETSTARTTIME; | STAT_GETSTARTTIME; |
|
|
{ | { |
env->ExceptionClear(); | env->ExceptionClear(); |
| |
// public org.pegasus.jmpi.CIMObjectPath[] enumerateInstanceNames (org.pegasus.jmpi.CIMObjectPath op, |
// public org.pegasus.jmpi.CIMObjectPath[] enumerateInstanceNames (org.pegasus.jmpi.CIMObjectPath cop, |
// org.pegasus.jmpi.CIMClass cc) |
// org.pegasus.jmpi.CIMClass cimClass) |
// throws org.pegasus.jmpi.CIMException | // throws org.pegasus.jmpi.CIMException |
id = env->GetMethodID((jclass)pr.jProviderClass, | id = env->GetMethodID((jclass)pr.jProviderClass, |
"enumerateInstanceNames", | "enumerateInstanceNames", |
|
|
} | } |
} | } |
| |
|
if (id == NULL) |
|
{ |
|
env->ExceptionClear(); |
|
|
|
// public java.util.Vector enumerateInstanceNames (org.pegasus.jmpi.CIMObjectPath cop, |
|
// org.pegasus.jmpi.CIMClass cimClass) |
|
// throws org.pegasus.jmpi.CIMException |
|
id = env->GetMethodID((jclass)pr.jProviderClass, |
|
"enumerateInstanceNames", |
|
"(Lorg/pegasus/jmpi/CIMObjectPath;Lorg/pegasus/jmpi/CIMClass;)Ljava/util/Vector;"); |
|
|
|
if (id != NULL) |
|
{ |
|
eMethodFound = METHOD_PEGASUS_25; |
|
DDD (PEGASUS_STD(cout)<<"--- JMPIProviderManager::handleEnumerateInstanceNamesRequest: found METHOD_PEGASUS_25."<<PEGASUS_STD(endl)); |
|
} |
|
} |
|
|
|
if (id == NULL) |
|
{ |
|
DDD (PEGASUS_STD(cout)<<"--- JMPIProviderManager::handleEnumerateInstanceNamesRequest: No method found!"<<PEGASUS_STD(endl)); |
|
} |
|
|
JMPIjvm::checkException(env); | JMPIjvm::checkException(env); |
| |
switch (eMethodFound) | switch (eMethodFound) |
|
|
| |
JMPIjvm::checkException(env); | JMPIjvm::checkException(env); |
| |
CIMClass cls = pr._cimom_handle->getClass(context, |
CIMClass cls; |
|
|
|
try |
|
{ |
|
DDD (PEGASUS_STD(cout)<<"enter: cimom_handle->getClass("<<__LINE__<<") "<<request->className<<PEGASUS_STD(endl)); |
|
AutoMutex lock (pr._cimomMutex); |
|
|
|
cls = pr._cimom_handle->getClass(context, |
request->nameSpace, | request->nameSpace, |
request->className, | request->className, |
false, | false, |
true, | true, |
true, | true, |
CIMPropertyList()); | CIMPropertyList()); |
|
DDD (PEGASUS_STD(cout)<<"exit: cimom_handle->getClass("<<__LINE__<<") "<<request->className<<PEGASUS_STD(endl)); |
|
} |
|
catch (CIMException e) |
|
{ |
|
DDD (PEGASUS_STD(cout)<<"--- JMPIProviderManager::handleEnumerateInstanceNamesRequest: Error: Caught CIMExcetion during cimom_handle->getClass("<<__LINE__<<") "<<PEGASUS_STD(endl)); |
|
throw; |
|
} |
|
|
CIMClass *pcls = new CIMClass (cls); | CIMClass *pcls = new CIMClass (cls); |
| |
JMPIjvm::checkException(env); | JMPIjvm::checkException(env); |
|
|
break; | break; |
} | } |
| |
|
case METHOD_PEGASUS_25: |
|
{ |
|
jint jcopRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, objectPath); |
|
jobject jcop = env->NewObject(jv->CIMObjectPathClassRef,jv->CIMObjectPathNewI,jcopRef); |
|
|
|
JMPIjvm::checkException(env); |
|
|
|
CIMClass cls; |
|
|
|
try |
|
{ |
|
DDD (PEGASUS_STD(cout)<<"enter: cimom_handle->getClass("<<__LINE__<<") "<<request->className<<PEGASUS_STD(endl)); |
|
AutoMutex lock (pr._cimomMutex); |
|
|
|
cls = pr._cimom_handle->getClass(context, |
|
request->nameSpace, |
|
request->className, |
|
false, |
|
true, |
|
true, |
|
CIMPropertyList()); |
|
DDD (PEGASUS_STD(cout)<<"exit: cimom_handle->getClass("<<__LINE__<<") "<<request->className<<PEGASUS_STD(endl)); |
|
} |
|
catch (CIMException e) |
|
{ |
|
DDD (PEGASUS_STD(cout)<<"--- JMPIProviderManager::handleEnumerateInstanceNamesRequest: Error: Caught CIMExcetion during cimom_handle->getClass("<<__LINE__<<") "<<PEGASUS_STD(endl)); |
|
throw; |
|
} |
|
|
|
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); |
|
|
|
jobject jVec = env->CallObjectMethod((jobject)pr.jProvider, |
|
id, |
|
jcop, |
|
jcimClass); |
|
|
|
JMPIjvm::checkException(env); |
|
|
|
STAT_PMS_PROVIDEREND; |
|
|
|
handler.processing(); |
|
if (jVec) { |
|
for (int i=0,m=env->CallIntMethod(jVec,JMPIjvm::jv.VectorSize); i<m; i++) { |
|
JMPIjvm::checkException(env); |
|
|
|
jobject jcopRet = env->CallObjectMethod(jVec,JMPIjvm::jv.VectorElementAt,i); |
|
|
|
JMPIjvm::checkException(env); |
|
|
|
jint jcopRetRef = env->CallIntMethod(jcopRet,JMPIjvm::jv.CIMObjectPathCInst); |
|
CIMObjectPath *copRet = DEBUG_ConvertJavaToC (jint, CIMObjectPath*, jcopRetRef); |
|
|
|
JMPIjvm::checkException(env); |
|
|
|
handler.deliver(*copRet); |
|
} |
|
} |
|
handler.complete(); |
|
break; |
|
} |
|
|
case METHOD_SNIA_PROVIDER20: | case METHOD_SNIA_PROVIDER20: |
{ | { |
jint jcopRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, objectPath); | jint jcopRef = DEBUG_ConvertCToJava (CIMObjectPath*, jint, objectPath); |
|
|
| |
JMPIjvm::checkException(env); | JMPIjvm::checkException(env); |
| |
CIMClass cls = pr._cimom_handle->getClass(context, |
CIMClass cls; |
|
|
|
try |
|
{ |
|
DDD (PEGASUS_STD(cout)<<"enter: cimom_handle->getClass("<<__LINE__<<") "<<request->className<<PEGASUS_STD(endl)); |
|
AutoMutex lock (pr._cimomMutex); |
|
|
|
cls = pr._cimom_handle->getClass(context, |
request->nameSpace, | request->nameSpace, |
request->className, | request->className, |
false, | false, |
true, | true, |
true, | true, |
CIMPropertyList()); | CIMPropertyList()); |
|
DDD (PEGASUS_STD(cout)<<"exit: cimom_handle->getClass("<<__LINE__<<") "<<request->className<<PEGASUS_STD(endl)); |
|
} |
|
catch (CIMException e) |
|
{ |
|
DDD (PEGASUS_STD(cout)<<"--- JMPIProviderManager::handleEnumerateInstanceNamesRequest: Error: Caught CIMExcetion during cimom_handle->getClass("<<__LINE__<<") "<<PEGASUS_STD(endl)); |
|
throw; |
|
} |
|
|
CIMClass *pcls = new CIMClass (cls); | CIMClass *pcls = new CIMClass (cls); |
| |
JMPIjvm::checkException(env); | JMPIjvm::checkException(env); |
|
|
| |
env = JMPIjvm::attachThread(&jv); | env = JMPIjvm::attachThread(&jv); |
| |
|
if (!env) |
|
{ |
|
PEG_METHOD_EXIT(); |
|
|
|
STAT_COPYDISPATCHER |
|
|
|
throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED, |
|
MessageLoaderParms("ProviderManager.JMPI.INIT_JVM_FAILED", |
|
"Could not initialize the JVM (Java Virtual Machine) runtime environment.")); |
|
} |
|
|
JMPIProvider::pm_service_op_lock op_lock(&pr); | JMPIProvider::pm_service_op_lock op_lock(&pr); |
| |
STAT_GETSTARTTIME; | STAT_GETSTARTTIME; |
|
|
PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,"Calling provider.modifyInstance: " + pr.getName()); | PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL4,"Calling provider.modifyInstance: " + pr.getName()); |
| |
DDD(PEGASUS_STD(cout)<<"--- JMPIProviderManager::handleModifyInstanceRequest: Calling provider "<<PEGASUS_STD(hex)<<(int)&pr<<PEGASUS_STD(dec)<<", name = "<<pr.getName ()<<", module = "<<pr.getModule()<<" modifyInstance: "<<pr.getName()<<PEGASUS_STD(endl)); | DDD(PEGASUS_STD(cout)<<"--- JMPIProviderManager::handleModifyInstanceRequest: Calling provider "<<PEGASUS_STD(hex)<<(int)&pr<<PEGASUS_STD(dec)<<", name = "<<pr.getName ()<<", module = "<<pr.getModule()<<" modifyInstance: "<<pr.getName()<<PEGASUS_STD(endl)); |
////////DDD(debugPrintMethodPointers (env, (jclass)pr.jProviderClass)); |
|
| |
JvmVector *jv = 0; | JvmVector *jv = 0; |
| |
env = JMPIjvm::attachThread(&jv); | env = JMPIjvm::attachThread(&jv); |
| |
|
if (!env) |
|
{ |
|
PEG_METHOD_EXIT(); |
|
|
|
STAT_COPYDISPATCHER |
|
|
|
throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED, |
|
MessageLoaderParms("ProviderManager.JMPI.INIT_JVM_FAILED", |
|
"Could not initialize the JVM (Java Virtual Machine) runtime environment.")); |
|
} |
|
|
JMPIProvider::pm_service_op_lock op_lock(&pr); | JMPIProvider::pm_service_op_lock op_lock(&pr); |
| |
STAT_GETSTARTTIME; | STAT_GETSTARTTIME; |
|
|
id, | id, |
jcop, | jcop, |
jci, | jci, |
|
JMPI_INCLUDE_QUALIFIERS, |
jPropertyList); | jPropertyList); |
| |
JMPIjvm::checkException(env); | JMPIjvm::checkException(env); |
|
|
| |
env = JMPIjvm::attachThread(&jv); | env = JMPIjvm::attachThread(&jv); |
| |
|
if (!env) |
|
{ |
|
PEG_METHOD_EXIT(); |
|
|
|
STAT_COPYDISPATCHER |
|
|
|
throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED, |
|
MessageLoaderParms("ProviderManager.JMPI.INIT_JVM_FAILED", |
|
"Could not initialize the JVM (Java Virtual Machine) runtime environment.")); |
|
} |
|
|
JMPIProvider::pm_service_op_lock op_lock(&pr); | JMPIProvider::pm_service_op_lock op_lock(&pr); |
| |
STAT_GETSTARTTIME; | STAT_GETSTARTTIME; |
|
|
| |
JMPIjvm::checkException(env); | JMPIjvm::checkException(env); |
| |
env->CallVoidMethod((jobject)pr.jProvider,id,jcop); |
env->CallVoidMethod((jobject)pr.jProvider, |
|
id, |
|
jcop); |
| |
JMPIjvm::checkException(env); | JMPIjvm::checkException(env); |
| |
|
|
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; |
|
|
| |
env = JMPIjvm::attachThread(&jv); | env = JMPIjvm::attachThread(&jv); |
| |
|
if (!env) |
|
{ |
|
PEG_METHOD_EXIT(); |
|
|
|
STAT_COPYDISPATCHER |
|
|
|
throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED, |
|
MessageLoaderParms("ProviderManager.JMPI.INIT_JVM_FAILED", |
|
"Could not initialize the JVM (Java Virtual Machine) runtime environment.")); |
|
} |
|
|
JMPIProvider::pm_service_op_lock op_lock(&pr); | JMPIProvider::pm_service_op_lock op_lock(&pr); |
| |
STAT_GETSTARTTIME; | STAT_GETSTARTTIME; |
|
|
{ | { |
env->ExceptionClear(); | env->ExceptionClear(); |
| |
// public abstract org.pegasus.jmpi.CIMInstance[] execQuery(org.pegasus.jmpi.CIMObjectPath op, |
// public abstract org.pegasus.jmpi.CIMInstance[] execQuery(org.pegasus.jmpi.CIMObjectPath cop, |
// java.lang.String query, | // java.lang.String query, |
// java.lang.String ql, | // java.lang.String ql, |
// org.pegasus.jmpi.CIMClass cc) |
// org.pegasus.jmpi.CIMClass cimClass) |
// throws org.pegasus.jmpi.CIMException | // throws org.pegasus.jmpi.CIMException |
id = env->GetMethodID((jclass)pr.jProviderClass, | id = env->GetMethodID((jclass)pr.jProviderClass, |
"execQuery", | "execQuery", |
|
|
| |
if (id == NULL) | if (id == NULL) |
{ | { |
|
env->ExceptionClear(); |
|
|
|
// public abstract java.util.Vector execQuery(org.pegasus.jmpi.CIMObjectPath cop, |
|
// org.pegasus.jmpi.CIMClass cimClass, |
|
// java.lang.String query, |
|
// java.lang.String ql) |
|
// throws org.pegasus.jmpi.CIMException |
|
id = env->GetMethodID((jclass)pr.jProviderClass, |
|
"execQuery", |
|
"(Lorg/pegasus/jmpi/CIMObjectPath;Lorg/pegasus/jmpi/CIMClass;Ljava/lang/String;Ljava/lang/String;)Ljava/util/Vector;"); |
|
|
|
if (id != NULL) |
|
{ |
|
eMethodFound = METHOD_PEGASUS_25; |
|
DDD (PEGASUS_STD(cout)<<"--- JMPIProviderManager::handleExecQueryRequest: found METHOD_PEGASUS_25."<<PEGASUS_STD(endl)); |
|
} |
|
} |
|
|
|
if (id == NULL) |
|
{ |
DDD (PEGASUS_STD(cout)<<"--- JMPIProviderManager::handleExecQueryRequest: found no method!"<<PEGASUS_STD(endl)); | DDD (PEGASUS_STD(cout)<<"--- JMPIProviderManager::handleExecQueryRequest: found no method!"<<PEGASUS_STD(endl)); |
} | } |
| |
|
|
jstring jqueryLanguage = env->NewStringUTF(request->queryLanguage.getCString()); | jstring jqueryLanguage = env->NewStringUTF(request->queryLanguage.getCString()); |
jstring jquery = env->NewStringUTF(request->query.getCString()); | jstring jquery = env->NewStringUTF(request->query.getCString()); |
| |
CIMClass cls = pr._cimom_handle->getClass(context, |
CIMClass cls; |
|
|
|
try |
|
{ |
|
DDD (PEGASUS_STD(cout)<<"enter: cimom_handle->getClass("<<__LINE__<<") "<<request->className<<PEGASUS_STD(endl)); |
|
AutoMutex lock (pr._cimomMutex); |
|
|
|
cls = pr._cimom_handle->getClass(context, |
request->nameSpace, | request->nameSpace, |
request->className, | request->className, |
false, | false, |
true, | true, |
true, | true, |
CIMPropertyList()); | CIMPropertyList()); |
|
DDD (PEGASUS_STD(cout)<<"exit: cimom_handle->getClass("<<__LINE__<<") "<<request->className<<PEGASUS_STD(endl)); |
|
} |
|
catch (CIMException e) |
|
{ |
|
DDD (PEGASUS_STD(cout)<<"--- JMPIProviderManager::handleExecQueryRequest: Error: Caught CIMExcetion during cimom_handle->getClass("<<__LINE__<<") "<<PEGASUS_STD(endl)); |
|
throw; |
|
} |
|
|
CIMClass *pcls = new CIMClass (cls); | CIMClass *pcls = new CIMClass (cls); |
| |
JMPIjvm::checkException(env); | JMPIjvm::checkException(env); |
|
|
break; | break; |
} | } |
| |
|
case METHOD_PEGASUS_25: |
|
{ |
|
jint jcopref = DEBUG_ConvertCToJava (CIMObjectPath*, jint, objectPath); |
|
jobject jcop = env->NewObject(jv->CIMObjectPathClassRef, jv->CIMObjectPathNewI, jcopref); |
|
|
|
JMPIjvm::checkException(env); |
|
|
|
jstring jqueryLanguage = env->NewStringUTF(request->queryLanguage.getCString()); |
|
jstring jquery = env->NewStringUTF(request->query.getCString()); |
|
|
|
CIMClass cls; |
|
|
|
try |
|
{ |
|
DDD (PEGASUS_STD(cout)<<"enter: cimom_handle->getClass("<<__LINE__<<") "<<request->className<<PEGASUS_STD(endl)); |
|
AutoMutex lock (pr._cimomMutex); |
|
|
|
cls = pr._cimom_handle->getClass(context, |
|
request->nameSpace, |
|
request->className, |
|
false, |
|
true, |
|
true, |
|
CIMPropertyList()); |
|
DDD (PEGASUS_STD(cout)<<"exit: cimom_handle->getClass("<<__LINE__<<") "<<request->className<<PEGASUS_STD(endl)); |
|
} |
|
catch (CIMException e) |
|
{ |
|
DDD (PEGASUS_STD(cout)<<"--- JMPIProviderManager::handleExecQueryRequest: Error: Caught CIMExcetion during cimom_handle->getClass("<<__LINE__<<") "<<PEGASUS_STD(endl)); |
|
throw; |
|
} |
|
|
|
CIMClass *pcls = new CIMClass (cls); |
|
|
|
JMPIjvm::checkException(env); |
|
|
|
jint jcls = DEBUG_ConvertCToJava (CIMClass*, jint, pcls); |
|
|
|
jobject jCc=env->NewObject(jv->CIMClassClassRef,jv->CIMClassNewI,jcls); |
|
|
|
JMPIjvm::checkException(env); |
|
|
|
jobjectArray jVec = (jobjectArray)env->CallObjectMethod((jobject)pr.jProvider, |
|
id, |
|
jcop, |
|
jCc, |
|
jquery, |
|
jqueryLanguage); |
|
|
|
JMPIjvm::checkException(env); |
|
|
|
STAT_PMS_PROVIDEREND; |
|
|
|
handler.processing(); |
|
if (jVec) { |
|
for (int i=0,m=env->GetArrayLength(jVec); i<m; i++) { |
|
JMPIjvm::checkException(env); |
|
|
|
jobject jciRet = env->GetObjectArrayElement(jVec,i); |
|
|
|
JMPIjvm::checkException(env); |
|
|
|
jint jciRetRef = env->CallIntMethod(jciRet,JMPIjvm::jv.CIMInstanceCInst); |
|
CIMInstance *ciRet = DEBUG_ConvertJavaToC (jint, CIMInstance*, jciRetRef); |
|
|
|
JMPIjvm::checkException(env); |
|
|
|
handler.deliver(*ciRet); |
|
} |
|
} |
|
handler.complete(); |
|
break; |
|
} |
|
|
case METHOD_SNIA_PROVIDER20: | case METHOD_SNIA_PROVIDER20: |
{ | { |
jint jcopref = DEBUG_ConvertCToJava (CIMObjectPath*, jint, objectPath); | jint jcopref = DEBUG_ConvertCToJava (CIMObjectPath*, jint, objectPath); |
|
|
jstring jqueryLanguage = env->NewStringUTF(request->queryLanguage.getCString()); | jstring jqueryLanguage = env->NewStringUTF(request->queryLanguage.getCString()); |
jstring jquery = env->NewStringUTF(request->query.getCString()); | jstring jquery = env->NewStringUTF(request->query.getCString()); |
| |
CIMClass cls = pr._cimom_handle->getClass(context, |
CIMClass cls; |
|
|
|
try |
|
{ |
|
DDD (PEGASUS_STD(cout)<<"enter: cimom_handle->getClass("<<__LINE__<<") "<<request->className<<PEGASUS_STD(endl)); |
|
AutoMutex lock (pr._cimomMutex); |
|
|
|
cls = pr._cimom_handle->getClass(context, |
request->nameSpace, | request->nameSpace, |
request->className, | request->className, |
false, | false, |
true, | true, |
true, | true, |
CIMPropertyList()); | CIMPropertyList()); |
|
DDD (PEGASUS_STD(cout)<<"exit: cimom_handle->getClass("<<__LINE__<<") "<<request->className<<PEGASUS_STD(endl)); |
|
} |
|
catch (CIMException e) |
|
{ |
|
DDD (PEGASUS_STD(cout)<<"--- JMPIProviderManager::handleExecQueryRequest: Error: Caught CIMExcetion during cimom_handle->getClass("<<__LINE__<<") "<<PEGASUS_STD(endl)); |
|
throw; |
|
} |
|
|
CIMClass *pcls = new CIMClass (cls); | CIMClass *pcls = new CIMClass (cls); |
| |
JMPIjvm::checkException(env); | JMPIjvm::checkException(env); |
|
|
| |
env = JMPIjvm::attachThread(&jv); | env = JMPIjvm::attachThread(&jv); |
| |
|
if (!env) |
|
{ |
|
PEG_METHOD_EXIT(); |
|
|
|
STAT_COPYDISPATCHER |
|
|
|
throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED, |
|
MessageLoaderParms("ProviderManager.JMPI.INIT_JVM_FAILED", |
|
"Could not initialize the JVM (Java Virtual Machine) runtime environment.")); |
|
} |
|
|
JMPIProvider::pm_service_op_lock op_lock(&pr); | JMPIProvider::pm_service_op_lock op_lock(&pr); |
| |
STAT_GETSTARTTIME; | STAT_GETSTARTTIME; |
|
|
jResultClass, | jResultClass, |
jRole, | jRole, |
jResultRole, | jResultRole, |
false, |
JMPI_INCLUDE_QUALIFIERS, |
false, |
request->includeClassOrigin, |
jPropertyList); | jPropertyList); |
| |
JMPIjvm::checkException(env); | JMPIjvm::checkException(env); |
|
|
JMPIjvm::checkException(env); | JMPIjvm::checkException(env); |
| |
CIMInstance *ciRet = DEBUG_ConvertJavaToC (jint, CIMInstance*, jciRetRef); | CIMInstance *ciRet = DEBUG_ConvertJavaToC (jint, CIMInstance*, jciRetRef); |
CIMClass cls = pr._cimom_handle->getClass(context, |
CIMClass cls; |
|
|
|
try |
|
{ |
|
DDD (PEGASUS_STD(cout)<<"enter: cimom_handle->getClass("<<__LINE__<<") "<<ciRet->getClassName()<<PEGASUS_STD(endl)); |
|
AutoMutex lock (pr._cimomMutex); |
|
|
|
cls = pr._cimom_handle->getClass(context, |
request->nameSpace, | request->nameSpace, |
ciRet->getClassName(), | ciRet->getClassName(), |
false, | false, |
true, | true, |
true, | true, |
CIMPropertyList()); | CIMPropertyList()); |
|
DDD (PEGASUS_STD(cout)<<"exit: cimom_handle->getClass("<<__LINE__<<") "<<ciRet->getClassName()<<PEGASUS_STD(endl)); |
|
} |
|
catch (CIMException e) |
|
{ |
|
DDD (PEGASUS_STD(cout)<<"--- JMPIProviderManager::handleAssociatorsRequest: Error: Caught CIMExcetion during cimom_handle->getClass("<<__LINE__<<") "<<PEGASUS_STD(endl)); |
|
throw; |
|
} |
|
|
const CIMObjectPath& op = ciRet->getPath(); | const CIMObjectPath& op = ciRet->getPath(); |
CIMObjectPath iop = ciRet->buildPath(cls); | CIMObjectPath iop = ciRet->buildPath(cls); |
| |
|
|
| |
jint jciRetRef = env->CallIntMethod(jciRet,JMPIjvm::jv.CIMInstanceCInst); | jint jciRetRef = env->CallIntMethod(jciRet,JMPIjvm::jv.CIMInstanceCInst); |
CIMInstance *ciRet = DEBUG_ConvertJavaToC (jint, CIMInstance*, jciRetRef); | CIMInstance *ciRet = DEBUG_ConvertJavaToC (jint, CIMInstance*, jciRetRef); |
CIMClass cls = pr._cimom_handle->getClass(context, |
CIMClass cls; |
|
|
|
try |
|
{ |
|
DDD (PEGASUS_STD(cout)<<"enter: cimom_handle->getClass("<<__LINE__<<") "<<ciRet->getClassName()<<PEGASUS_STD(endl)); |
|
AutoMutex lock (pr._cimomMutex); |
|
|
|
cls = pr._cimom_handle->getClass(context, |
request->nameSpace, | request->nameSpace, |
ciRet->getClassName(), | ciRet->getClassName(), |
false, | false, |
true, | true, |
true, | true, |
CIMPropertyList()); | CIMPropertyList()); |
|
DDD (PEGASUS_STD(cout)<<"exit: cimom_handle->getClass("<<__LINE__<<") "<<ciRet->getClassName()<<PEGASUS_STD(endl)); |
|
} |
|
catch (CIMException e) |
|
{ |
|
DDD (PEGASUS_STD(cout)<<"--- JMPIProviderManager::handleAssociatorsRequest: Error: Caught CIMExcetion during cimom_handle->getClass("<<__LINE__<<") "<<PEGASUS_STD(endl)); |
|
throw; |
|
} |
|
|
const CIMObjectPath& op = ciRet->getPath(); | const CIMObjectPath& op = ciRet->getPath(); |
CIMObjectPath iop = ciRet->buildPath(cls); | CIMObjectPath iop = ciRet->buildPath(cls); |
| |
|
|
| |
env = JMPIjvm::attachThread(&jv); | env = JMPIjvm::attachThread(&jv); |
| |
|
if (!env) |
|
{ |
|
PEG_METHOD_EXIT(); |
|
|
|
STAT_COPYDISPATCHER |
|
|
|
throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED, |
|
MessageLoaderParms("ProviderManager.JMPI.INIT_JVM_FAILED", |
|
"Could not initialize the JVM (Java Virtual Machine) runtime environment.")); |
|
} |
|
|
JMPIProvider::pm_service_op_lock op_lock(&pr); | JMPIProvider::pm_service_op_lock op_lock(&pr); |
| |
STAT_GETSTARTTIME; | STAT_GETSTARTTIME; |
|
|
| |
env = JMPIjvm::attachThread(&jv); | env = JMPIjvm::attachThread(&jv); |
| |
|
if (!env) |
|
{ |
|
PEG_METHOD_EXIT(); |
|
|
|
STAT_COPYDISPATCHER |
|
|
|
throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED, |
|
MessageLoaderParms("ProviderManager.JMPI.INIT_JVM_FAILED", |
|
"Could not initialize the JVM (Java Virtual Machine) runtime environment.")); |
|
} |
|
|
JMPIProvider::pm_service_op_lock op_lock(&pr); | JMPIProvider::pm_service_op_lock op_lock(&pr); |
| |
STAT_GETSTARTTIME; | STAT_GETSTARTTIME; |
|
|
id, | id, |
jAssociationName, | jAssociationName, |
jRole, | jRole, |
false, |
JMPI_INCLUDE_QUALIFIERS, |
false, |
request->includeClassOrigin, |
jPropertyList); | jPropertyList); |
| |
JMPIjvm::checkException(env); | JMPIjvm::checkException(env); |
|
|
JMPIjvm::checkException(env); | JMPIjvm::checkException(env); |
| |
CIMInstance *ciRet = DEBUG_ConvertJavaToC (jint, CIMInstance*, jciRetRef); | CIMInstance *ciRet = DEBUG_ConvertJavaToC (jint, CIMInstance*, jciRetRef); |
CIMClass cls = pr._cimom_handle->getClass(context, |
CIMClass cls; |
|
|
|
try |
|
{ |
|
DDD (PEGASUS_STD(cout)<<"enter: cimom_handle->getClass("<<__LINE__<<") "<<ciRet->getClassName()<<PEGASUS_STD(endl)); |
|
AutoMutex lock (pr._cimomMutex); |
|
|
|
cls = pr._cimom_handle->getClass(context, |
request->nameSpace, | request->nameSpace, |
ciRet->getClassName(), | ciRet->getClassName(), |
false, | false, |
true, | true, |
true, | true, |
CIMPropertyList()); | CIMPropertyList()); |
|
DDD (PEGASUS_STD(cout)<<"exit: cimom_handle->getClass("<<__LINE__<<") "<<ciRet->getClassName()<<PEGASUS_STD(endl)); |
|
} |
|
catch (CIMException e) |
|
{ |
|
DDD (PEGASUS_STD(cout)<<"--- JMPIProviderManager::handleReferencesRequest: Error: Caught CIMExcetion during cimom_handle->getClass("<<__LINE__<<") "<<PEGASUS_STD(endl)); |
|
throw; |
|
} |
|
|
const CIMObjectPath& op = ciRet->getPath(); | const CIMObjectPath& op = ciRet->getPath(); |
CIMObjectPath iop = ciRet->buildPath(cls); | CIMObjectPath iop = ciRet->buildPath(cls); |
| |
|
|
| |
jint jciRetRef = env->CallIntMethod(jciRet,JMPIjvm::jv.CIMInstanceCInst); | jint jciRetRef = env->CallIntMethod(jciRet,JMPIjvm::jv.CIMInstanceCInst); |
CIMInstance *ciRet = DEBUG_ConvertJavaToC (jint, CIMInstance*, jciRetRef); | CIMInstance *ciRet = DEBUG_ConvertJavaToC (jint, CIMInstance*, jciRetRef); |
CIMClass cls = pr._cimom_handle->getClass(context, |
CIMClass cls; |
|
|
|
try |
|
{ |
|
DDD (PEGASUS_STD(cout)<<"enter: cimom_handle->getClass("<<__LINE__<<") "<<ciRet->getClassName()<<PEGASUS_STD(endl)); |
|
AutoMutex lock (pr._cimomMutex); |
|
|
|
cls = pr._cimom_handle->getClass(context, |
request->nameSpace, | request->nameSpace, |
ciRet->getClassName(), | ciRet->getClassName(), |
false, | false, |
true, | true, |
true, | true, |
CIMPropertyList()); | CIMPropertyList()); |
|
DDD (PEGASUS_STD(cout)<<"exit: cimom_handle->getClass("<<__LINE__<<") "<<ciRet->getClassName()<<PEGASUS_STD(endl)); |
|
} |
|
catch (CIMException e) |
|
{ |
|
DDD (PEGASUS_STD(cout)<<"--- JMPIProviderManager::handleReferencesRequest: Error: Caught CIMExcetion during cimom_handle->getClass("<<__LINE__<<") "<<PEGASUS_STD(endl)); |
|
throw; |
|
} |
|
|
const CIMObjectPath& op = ciRet->getPath(); | const CIMObjectPath& op = ciRet->getPath(); |
CIMObjectPath iop = ciRet->buildPath(cls); | CIMObjectPath iop = ciRet->buildPath(cls); |
| |
|
|
| |
env = JMPIjvm::attachThread(&jv); | env = JMPIjvm::attachThread(&jv); |
| |
|
if (!env) |
|
{ |
|
PEG_METHOD_EXIT(); |
|
|
|
STAT_COPYDISPATCHER |
|
|
|
throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED, |
|
MessageLoaderParms("ProviderManager.JMPI.INIT_JVM_FAILED", |
|
"Could not initialize the JVM (Java Virtual Machine) runtime environment.")); |
|
} |
|
|
JMPIProvider::pm_service_op_lock op_lock(&pr); | JMPIProvider::pm_service_op_lock op_lock(&pr); |
| |
STAT_GETSTARTTIME; | STAT_GETSTARTTIME; |
|
|
| |
env = JMPIjvm::attachThread(&jv); | env = JMPIjvm::attachThread(&jv); |
| |
|
if (!env) |
|
{ |
|
PEG_METHOD_EXIT(); |
|
|
|
STAT_COPYDISPATCHER |
|
|
|
throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED, |
|
MessageLoaderParms("ProviderManager.JMPI.INIT_JVM_FAILED", |
|
"Could not initialize the JVM (Java Virtual Machine) runtime environment.")); |
|
} |
|
|
JMPIProvider::pm_service_op_lock op_lock(&pr); | JMPIProvider::pm_service_op_lock op_lock(&pr); |
| |
STAT_GETSTARTTIME; | STAT_GETSTARTTIME; |
|
|
| |
env = JMPIjvm::attachThread(&jv); | env = JMPIjvm::attachThread(&jv); |
| |
|
if (!env) |
|
{ |
|
PEG_METHOD_EXIT(); |
|
|
|
STAT_COPYDISPATCHER |
|
|
|
throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED, |
|
MessageLoaderParms("ProviderManager.JMPI.INIT_JVM_FAILED", |
|
"Could not initialize the JVM (Java Virtual Machine) runtime environment.")); |
|
} |
|
|
JMPIProvider::pm_service_op_lock op_lock(&pr); | JMPIProvider::pm_service_op_lock op_lock(&pr); |
| |
STAT_GETSTARTTIME; | STAT_GETSTARTTIME; |
|
|
| |
env = JMPIjvm::attachThread(&jv); | env = JMPIjvm::attachThread(&jv); |
| |
|
if (!env) |
|
{ |
|
PEG_METHOD_EXIT(); |
|
|
|
STAT_COPYDISPATCHER |
|
|
|
throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED, |
|
MessageLoaderParms("ProviderManager.JMPI.INIT_JVM_FAILED", |
|
"Could not initialize the JVM (Java Virtual Machine) runtime environment.")); |
|
} |
|
|
JMPIProvider::pm_service_op_lock op_lock(&pr); | JMPIProvider::pm_service_op_lock op_lock(&pr); |
| |
STAT_GETSTARTTIME; | STAT_GETSTARTTIME; |
|
|
| |
env = JMPIjvm::attachThread(&jv); | env = JMPIjvm::attachThread(&jv); |
| |
|
if (!env) |
|
{ |
|
PEG_METHOD_EXIT(); |
|
|
|
STAT_COPYDISPATCHER |
|
|
|
throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED, |
|
MessageLoaderParms("ProviderManager.JMPI.INIT_JVM_FAILED", |
|
"Could not initialize the JVM (Java Virtual Machine) runtime environment.")); |
|
} |
|
|
JMPIProvider::pm_service_op_lock op_lock(&pr); | JMPIProvider::pm_service_op_lock op_lock(&pr); |
| |
STAT_GETSTARTTIME; | STAT_GETSTARTTIME; |
| |
jmethodID id = NULL; | jmethodID id = NULL; |
| |
// public void authorizeFilter (org.pegasus.jmpi.SelectExp filter, |
// public void activateFilter (org.pegasus.jmpi.SelectExp filter, |
// java.lang.String eventType, | // java.lang.String eventType, |
// org.pegasus.jmpi.CIMObjectPath classPath, | // org.pegasus.jmpi.CIMObjectPath classPath, |
// java.lang.String owner) | // java.lang.String owner) |
|
|
| |
env = JMPIjvm::attachThread(&jv); | env = JMPIjvm::attachThread(&jv); |
| |
|
if (!env) |
|
{ |
|
PEG_METHOD_EXIT(); |
|
|
|
STAT_COPYDISPATCHER |
|
|
|
throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED, |
|
MessageLoaderParms("ProviderManager.JMPI.INIT_JVM_FAILED", |
|
"Could not initialize the JVM (Java Virtual Machine) runtime environment.")); |
|
} |
|
|
JMPIProvider::pm_service_op_lock op_lock(&pr); | JMPIProvider::pm_service_op_lock op_lock(&pr); |
| |
STAT_GETSTARTTIME; | STAT_GETSTARTTIME; |