public function injectBeanContext(BeanContextInterface $beanContext) { $this->beanContext = $beanContext; }
/** * Registers the message beans at startup. * * @param \AppserverIo\Psr\Application\ApplicationInterface $application The application instance * * @return void */ public function registerBeans(ApplicationInterface $application) { // query whether or not the web application folder exists if (is_dir($this->getWebappPath()) === false) { return; } // initialize the directory parser and parse the web application's base directory for annotated beans $directoryParser = new DirectoryParser(); $directoryParser->injectBeanContext($this); $directoryParser->parse(); // initialize the deployment descriptor parser and parse the web application's deployment descriptor for beans $deploymentDescriptorParser = new DeploymentDescriptorParser(); $deploymentDescriptorParser->injectBeanContext($this); $deploymentDescriptorParser->parse(); // load the object manager /** @var \AppserverIo\Appserver\DependencyInjectionContainer\Interfaces\ObjectManagerInterface $objectManager */ $objectManager = $this->getApplication()->search('ObjectManagerInterface'); // register the beans found by annotations and the XML configuration /** \AppserverIo\Psr\Deployment\DescriptorInterface $objectDescriptor */ foreach ($objectManager->getObjectDescriptors() as $descriptor) { // check if we've found a bean descriptor and register the bean if ($descriptor instanceof BeanDescriptorInterface) { $this->registerBean($descriptor); } // if we found a singleton session bean with a startup callback if ($descriptor instanceof SingletonSessionBeanDescriptorInterface && $descriptor->isInitOnStartup()) { $this->getApplication()->search($descriptor->getName(), array(null, array($application))); } } }