public function parse()
{
// load the web application base directory
$webappPath = $this->getBeanContext()->getWebappPath();
// prepare the deployment descriptor
$deploymentDescriptor = AppEnvironmentHelper::getEnvironmentAwareGlobPattern($webappPath, 'META-INF' . DIRECTORY_SEPARATOR . 'epb');
// query whether we found epb.xml deployment descriptor file
if (file_exists($deploymentDescriptor) === false) {
return;
}
// validate the passed configuration file
/** @var \AppserverIo\Appserver\Core\Api\ConfigurationService $configurationService */
$configurationService = $this->getApplication()->newService('AppserverIo\\Appserver\\Core\\Api\\ConfigurationService');
$configurationService->validateFile($deploymentDescriptor, null, true);
// prepare and initialize the configuration node
$epbNode = new EpbNode();
$epbNode->initFromFile($deploymentDescriptor);
// query whether or not the deployment descriptor contains any beans
/** @var \AppserverIo\Appserver\Core\Api\Node\EnterpriseBeansNode $enterpriseBeans */
if ($enterpriseBeans = $epbNode->getEnterpriseBeans()) {
// parse the session beans of the deployment descriptor
/** @var \AppserverIo\Appserver\Core\Api\Node\SessionNode $sessionNode */
foreach ($enterpriseBeans->getSessions() as $sessionNode) {
$this->processConfigurationNode($sessionNode);
}
// parse the message driven beans from the deployment descriptor
/** @var \AppserverIo\Appserver\Core\Api\Node\MessageDrivenNode $messageDrivenNode */
foreach ($enterpriseBeans->getMessageDrivens() as $messageDrivenNode) {
$this->processConfigurationNode($messageDrivenNode);
}
}
}