Author: Tim Wagner (tw@appserver.io)
Inheritance: extends AppserverIo\Appserver\Core\Api\Node\AbstractNode, implements AppserverIo\Appserver\Core\Interfaces\SystemConfigurationInterface, use trait ParamsNodeTrait, use trait AppserverIo\Appserver\Core\Api\Node\ConsolesNodeTrait
コード例 #1
0
 /**
  * Handle an event.
  *
  * @param \League\Event\EventInterface $event The triggering event
  *
  * @return void
  * @see \League\Event\ListenerInterface::handle()
  */
 public function handle(EventInterface $event)
 {
     try {
         // load the application server and the naming directory instance
         /** @var \AppserverIo\Appserver\Core\Interfaces\ApplicationServerInterface $applicationServer */
         $applicationServer = $this->getApplicationServer();
         /** @var \AppserverIo\Psr\Naming\NamingDirectoryInterface $namingDirectory */
         $namingDirectory = $applicationServer->getNamingDirectory();
         // initialize configuration and schema file name
         $configurationFileName = $applicationServer->getConfigurationFilename();
         // get an instance of our configuration tester
         $configurationService = new ConfigurationService(new InitialContext(new AppserverNode()));
         // load the parsed system configuration
         /** @var \DOMDocument $doc */
         $doc = $configurationService->loadConfigurationByFilename($configurationFileName);
         // validate the configuration file with the schema
         $configurationService->validateXml($doc, null, true);
         try {
             // query whether we're in configuration test mode or not
             if ($namingDirectory->search('php:env/args/t')) {
                 echo 'Syntax OK' . PHP_EOL;
                 exit(0);
             }
         } catch (NamingException $ne) {
             // do nothing, because we're NOT in configuration test mode
         }
         // initialize the SimpleXMLElement with the content XML configuration file
         $configuration = new Configuration();
         $configuration->initFromString($doc->saveXML());
         // initialize the configuration and the base directory
         $systemConfiguration = new AppserverNode();
         $systemConfiguration->initFromConfiguration($configuration);
         $applicationServer->setSystemConfiguration($systemConfiguration);
     } catch (\Exception $e) {
         // render the validation errors and exit immediately
         echo $e . PHP_EOL;
         exit(0);
     }
 }
コード例 #2
0
 /**
  * Returns a appserver node initialized with a mock system configuration.
  *
  * @return \AppserverIo\Appserver\Core\Api\Node\AppserverNode The requested appserver node
  */
 public function getAppserverNode()
 {
     $appserverNode = new AppserverNode();
     $appserverNode->initFromConfiguration($this->getAppserverConfiguration());
     return $appserverNode;
 }