version 1.59.4.2, 2007/07/07 01:35:43
|
version 1.66, 2008/01/09 20:29:31
|
|
|
Boolean JMPIProviderManager::insertProvider(const ProviderName & name, | Boolean JMPIProviderManager::insertProvider(const ProviderName & name, |
const String &ns, const String &cn) | const String &ns, const String &cn) |
{ | { |
String key(ns+String("::")+cn+String("::")+CIMValue(name.getCapabilitiesMask()).toString()); |
String key(ns + String("::") + cn); |
| |
DDD(PEGASUS_STD(cout)<<"--- JMPIProviderManager::insertProvider: "<<key<<PEGASUS_STD(endl)); | DDD(PEGASUS_STD(cout)<<"--- JMPIProviderManager::insertProvider: "<<key<<PEGASUS_STD(endl)); |
| |
|
|
response = handleStopAllProvidersRequest(request); | response = handleStopAllProvidersRequest(request); |
break; | break; |
| |
case CIM_INITIALIZE_PROVIDER_REQUEST_MESSAGE: |
|
response = handleInitializeProviderRequest(request); |
|
break; |
|
|
|
case CIM_SUBSCRIPTION_INIT_COMPLETE_REQUEST_MESSAGE: | case CIM_SUBSCRIPTION_INIT_COMPLETE_REQUEST_MESSAGE: |
response = handleSubscriptionInitCompleteRequest (request); | response = handleSubscriptionInitCompleteRequest (request); |
break; | break; |
| |
default: | default: |
PEG_TRACE_STRING(TRC_PROVIDERMANAGER, Tracer::LEVEL2, |
PEG_TRACE((TRC_PROVIDERMANAGER, Tracer::LEVEL2, |
"*** Unsupported Request "+request->getType()); |
"*** Unsupported Request %d", |
|
request->getType() |
|
)); |
DDD(PEGASUS_STD(cout)<<"--- JMPIProviderManager::processMessage: Unsupported request "<<request->getType ()<<PEGASUS_STD(endl)); | DDD(PEGASUS_STD(cout)<<"--- JMPIProviderManager::processMessage: Unsupported request "<<request->getType ()<<PEGASUS_STD(endl)); |
| |
response = handleUnsupportedRequest(request); | response = handleUnsupportedRequest(request); |
|
|
PEG_METHOD_EXIT(); | PEG_METHOD_EXIT(); |
| |
throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED, | throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED, |
MessageLoaderParms ("ProviderManager.JMPI.METHOD_NOT_FOUND", |
MessageLoaderParms( |
"Could not find a method for the provider based on InterfaceType.")); |
"ProviderManager.JMPI.JMPIProviderManager.METHOD_NOT_FOUND", |
|
"Could not find a method for the provider based on " |
|
"InterfaceType.")); |
} | } |
| |
JMPIjvm::checkException(env); | JMPIjvm::checkException(env); |
|
|
PEG_METHOD_EXIT(); | PEG_METHOD_EXIT(); |
| |
throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED, | throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED, |
MessageLoaderParms("ProviderManager.JMPI.INIT_JVM_FAILED", |
MessageLoaderParms( |
"Could not initialize the JVM (Java Virtual Machine) runtime environment.")); |
"ProviderManager.JMPI.JMPIProviderManager.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); |
|
|
return(response); | return(response); |
} | } |
| |
Message * JMPIProviderManager::handleInitializeProviderRequest(const Message * message) |
|
{ |
|
PEG_METHOD_ENTER(TRC_PROVIDERMANAGER, "JMPIProviderManager::handleInitializeProviderRequest"); |
|
|
|
HandlerIntroInit(InitializeProvider,message,request,response,handler); |
|
|
|
try |
|
{ |
|
// resolve provider name |
|
ProviderName name = _resolveProviderName( |
|
request->operationContext.get(ProviderIdContainer::NAME)); |
|
|
|
// get cached or load new provider module |
|
JMPIProvider::OpProviderHolder ph = providerManager.getProvider (name.getPhysicalName(), |
|
name.getLogicalName(), |
|
String::EMPTY); |
|
|
|
} |
|
HandlerCatch(handler); |
|
|
|
PEG_METHOD_EXIT(); |
|
|
|
return(response); |
|
} |
|
|
|
Message * JMPIProviderManager::handleSubscriptionInitCompleteRequest (const Message * message) | Message * JMPIProviderManager::handleSubscriptionInitCompleteRequest (const Message * message) |
{ | { |
PEG_METHOD_ENTER (TRC_PROVIDERMANAGER, | PEG_METHOD_ENTER (TRC_PROVIDERMANAGER, |
|
|
{ | { |
String providerName; | String providerName; |
String fileName; | String fileName; |
String interfaceName; |
String moduleName; |
CIMValue genericValue; | CIMValue genericValue; |
| |
|
genericValue = providerId.getModule().getProperty( |
|
providerId.getModule().findProperty("Name")).getValue(); |
|
genericValue.get(moduleName); |
|
|
genericValue = providerId.getProvider().getProperty( | genericValue = providerId.getProvider().getProperty( |
providerId.getProvider().findProperty("Name")).getValue(); | providerId.getProvider().findProperty("Name")).getValue(); |
genericValue.get(providerName); | genericValue.get(providerName); |
|
|
genericValue.get(fileName); | genericValue.get(fileName); |
fileName = resolveFileName(fileName); | fileName = resolveFileName(fileName); |
| |
// ATTN: This attribute is probably not required |
return ProviderName(moduleName, providerName, fileName); |
genericValue = providerId.getModule().getProperty( |
|
providerId.getModule().findProperty("InterfaceType")).getValue(); |
|
genericValue.get(interfaceName); |
|
|
|
return ProviderName(providerName, fileName, interfaceName, 0); |
|
} | } |
| |
String JMPIProviderManager::resolveFileName(String fileName) | String JMPIProviderManager::resolveFileName(String fileName) |