/** * The main method that creates new instances in a separate context. * * @param \AppserverIo\Psr\Application\ApplicationInterface|\AppserverIo\Psr\Naming\NamingDirectoryInterface $application The application instance to register the class loader with * @param \AppserverIo\Appserver\Core\Api\Node\ManagerNodeInterface $managerConfiguration The manager configuration * * @return void */ public static function visit(ApplicationInterface $application, ManagerNodeInterface $managerConfiguration) { // check if the correct autoloader has been registered, if so we have to get its aspect register. // if not we have to fail here $classLoader = $application->search('DgClassLoader'); $aspectRegister = $classLoader->getAspectRegister(); // initialize the aspect manager $aspectManager = new AspectManager(); $aspectManager->injectApplication($application); $aspectManager->injectAspectRegister($aspectRegister); // attach the instance $application->addManager($aspectManager, $managerConfiguration); }
/** * Tests if we are able to reference multiple pointcuts for the same advice using XML * * @return void */ public function testXmlAllowsForMultiPointcut() { $this->markTestSkipped('Strange behaviour related to \\Stackable usage. Skipped until an alternative has been found.'); $configPath = $this->getMockWebappPath() . DIRECTORY_SEPARATOR . 'META-INF' . DIRECTORY_SEPARATOR . 'pointcuts.xml'; $mockApplication = $this->getSpecificConfigMockApplication($configPath); // inject our mock and run the parsing process $this->testClass->injectApplication($mockApplication); $this->testClass->registerAspectXml($mockApplication); // did we get everything? Check for the expected advice $advicesList = $this->testClass->getAspectRegister()->get($configPath)->getAdvices(); $this->assertTrue($advicesList->entryExists('\\AppserverIo\\Appserver\\NonExisting\\MetaInf\\Namespace\\TestAspect->metainfAdvice')); // check for the expected pointcuts the advice should reference $referencedPointcuts = $advicesList->get('\\AppserverIo\\Appserver\\NonExisting\\MetaInf\\Namespace\\TestAspect->metainfAdvice')->getPointcuts()->get(0)->getReferencedPointcuts(); $this->assertCount(2, $referencedPointcuts); }