int ACE_TMAIN (int argc, ACE_TCHAR *argv []) { // since this file is disabled by default, I guess DANCE_DISABLE_TRACE (); DANCE_TRACE ("ACE_TMAIN"); int retval = 0; try { DAnCE::Logger_Service * dlf = ACE_Dynamic_Service<DAnCE::Logger_Service>::instance ("DAnCE_Logger"); if (dlf) { dlf->init (argc, argv); } DAnCE::InstallationRepositoryManagerSvc * dirms = ACE_Dynamic_Service<DAnCE::InstallationRepositoryManagerSvc>::instance ("InstallationRepositoryManager"); if (dirms) { dirms->init (argc, argv); } DAnCE::ArtifactInstallationHandlerSvc * dfihs = ACE_Dynamic_Service<DAnCE::ArtifactInstallationHandlerSvc>::instance ("FileInstallationHandler"); if (dfihs) { dfihs->init (argc, argv); } DAnCE::ArtifactInstallationHandlerSvc * dhihs = ACE_Dynamic_Service<DAnCE::ArtifactInstallationHandlerSvc>::instance ("HttpInstallationHandler"); if (dhihs) { dhihs->init (argc, argv); } DANCE_DEBUG (DANCE_LOG_EVENT_TRACE, (LM_TRACE, DLINFO ACE_TEXT("dance_artifact_installation - initializing ORB\n"))); // Need an ORB for the Config handlers CORBA::ORB_var orb = CORBA::ORB_init (argc, argv); if (!parse_args (argc, argv)) { return -1; } auto_ptr<Deployment::DeploymentPlan> plan; if (!cdr_encoded_) { plan.reset (DAnCE::Convert_Plan::read_xml_plan (input_filename)); } else { plan.reset (DAnCE::Convert_Plan::read_cdr_plan (input_filename)); } if (plan.get () == 0) { DANCE_ERROR_RETURN (DANCE_LOG_TERMINAL_ERROR, (LM_ERROR, DLINFO ACE_TEXT ("dance_artifact_installation - ") ACE_TEXT ("Unable to convert provided plan into IDL representation\n")) // @will changed this to use DANCE_ERROR_RETURN and am still // returning 0 rather than a real error code , 0); } // instantiate artifact installation service DAnCE::ArtifactInstallation_Impl* installer = 0; ACE_NEW_RETURN (installer, DAnCE::ArtifactInstallation_Impl (), 1); PortableServer::Servant_var<DAnCE::ArtifactInstallation_Impl> pinstaller (installer); pinstaller->initialize (); // install artifacts for (CORBA::ULong i=0; i < plan->artifact.length (); ++i) { pinstaller->install(plan->UUID.in (), plan->artifact[i]); } pinstaller->clear (); } catch (const CORBA::Exception &ex) { // @will I'm not as familiar with CORBA exceptions, but this appears // to take control out of our hands for error logging // this file doesn't seem to be included in default projects // is this even an issue? ex._tao_print_exception ("dance_artifact_installation"); retval = 1; } catch (...) { DANCE_ERROR (DANCE_LOG_TERMINAL_ERROR, (LM_ERROR, "dance_artifact_installation - error: unknown c++ exception\n")); retval = 1; } return retval; }