protected static function CheckServiceName($serviceName = "Default") { if (self::$_serviceName == "") { self::OpenConfigFile(); $pathResult = self::$configXML->xpath("/configuration/services/service[@name=\"{$serviceName}\"]"); if (empty($pathResult)) { $pathResult = self::$configXML->xpath("/configuration/services/service[@name=\"Default\"]"); if (empty($pathResult)) { ODataException::createBadRequestError("No configuration info found for service: {$serviceName} !"); } $serviceName = "Default"; } unset($pathResult); self::$_serviceName = $serviceName; } return self::$_serviceName; }
/** * Read and validates the configuration for the given service. * * @param string $serviceName requested service name * @param string &$serviceInfo service info * @param string $configFile config filename for all the services * * @return void * * @throws ODataException If configuration file * does not exists or malformed. */ public static function validateAndGetsServiceInfo($serviceName, &$serviceInfo, $configFile = '../../../services/service.config.xml') { $xml = simplexml_load_file(dirname(__FILE__) . "/" . $configFile, null, LIBXML_NOCDATA); if (!$xml) { ODataException::createInternalServerError('service.config file is not in proper XML format'); } if (count($xml->children()) != 1) { ODataException::createInternalServerError("Config file has more than one root entries"); } $pathResult = $xml->xpath("/configuration/services/service[@name=\"{$serviceName}\"]"); if (empty($pathResult)) { ODataException::createBadRequestError("No configuration info found for {$serviceName}"); } $pathResult = $xml->xpath("/configuration/services/service[@name=\"{$serviceName}\"]/path"); if (empty($pathResult)) { ODataException::createInternalServerError("One of the mendatory configuration info were missing in the config file"); } else { $serviceInfo['SERVICE_PATH'] = strval($pathResult[0]); if (empty($serviceInfo['SERVICE_PATH'])) { ODataException::createInternalServerError("One of the mendatory configuration info were missing in the config file or config file is mail formed"); } } unset($pathResult); $pathResult = $xml->xpath("/configuration/services/service[@name=\"{$serviceName}\"]/classname"); if (empty($pathResult)) { ODataException::createInternalServerError("One of the mendatory configuration info were missing in the config file"); } else { $serviceInfo['SERVICE_CLASS'] = strval($pathResult[0]); if (empty($serviceInfo['SERVICE_CLASS'])) { ODataException::createInternalServerError("One of the mendatory configuration info were missing in the config file or config file is mail formed"); } } unset($pathResult); $pathResult = $xml->xpath("/configuration/services/service[@name=\"{$serviceName}\"]/baseURL"); if (empty($pathResult)) { ODataException::createInternalServerError("One of the mendatory configuration info were missing in the config file"); } else { $serviceInfo['SERVICE_BASEURL'] = strval($pathResult[0]); if (empty($serviceInfo['SERVICE_BASEURL'])) { ODataException::createInternalServerError("One of the mendatory configuration info were missing in the config file or config file is mail formed"); } } }