Author: Bernhard Wick (bw@appserver.io)
Inheritance: implements AppserverIo\Appserver\AspectContainer\Interfaces\AspectManagerInterface, implements AppserverIo\Psr\Application\ManagerInterface
 /**
  * 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);
 }
Ejemplo n.º 2
0
 /**
  * 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);
 }