bool MiningBundleActivator::addingService( const ServiceReference& ref ) { if ( ref.getServiceName() == "IndexSearchService" ) { Properties props = ref.getServiceProperties(); if ( props.get( "collection" ) == config_->collectionName_) { IndexSearchService* service = reinterpret_cast<IndexSearchService*> ( const_cast<IService*>(ref.getService()) ); cout << "[MiningBundleActivator#addingService] Calling IndexSearchService..." << endl; currentCollectionDataName_ = service->bundleConfig_->collPath_.getCurrCollectionDir(); miningManager_ = createMiningManager_(service); if (!miningManager_) { cerr << "error: failed in creating MiningManager" << endl; return false; } searchService_ = new MiningSearchService; searchService_->bundleConfig_ = config_; searchService_->miningManager_ = miningManager_; searchService_->searchAggregator_ = service->searchAggregator_; searchService_->ro_searchAggregator_ = service->ro_searchAggregator_; searchService_->searchWorker_ = service->searchWorker_; taskService_ = new MiningTaskService(config_); taskService_->miningManager_ = miningManager_; Properties props; props.put( "collection", config_->collectionName_); searchServiceReg_ = context_->registerService( "MiningSearchService", searchService_, props ); taskServiceReg_ = context_->registerService( "MiningTaskService", taskService_, props ); return true; } else { return false; } } else { return false; } }