[jboss-user] [JBoss AOP Users] - JBoss Microcontainer with JBoss AOP in a standalone app.

pekarna do-not-reply at jboss.com
Sun Nov 8 22:24:06 EST 2009


Hi, 

I'm trying to create a standalone app using JBoss Microcontainer for IoC and JBoss AOP for, well, AOP.
I've boot-strapped, deployed a descriptor with AOP XML, so far so good. 
But the aspect is not performed.  Do I need to enable AOP plugin ors something?

Please check the code below.

Thanks for help.



  | <deployment xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  |             xsi:schemaLocation="urn:jboss:bean-deployer:2.0 bean-deployer_2_0.xsd"
  |             xmlns="urn:jboss:bean-deployer:2.0"
  |             xmlns:aop="urn:jboss:aop-beans:1.0">
  | 
  |   <bean name="myGarage" class="cz.zizka.ondra.jbmctest.Garage">
  |     <property name="car">
  |       <bean name="myCar" class="cz.zizka.ondra.jbmctest.Car">
  |         <property name="name">Red Devil</property>
  |       </bean>
  |     </property>
  |   </bean>
  | 
  |   <aop:interceptor name="FuelInterceptor" class="cz.zizka.ondra.jbmctest.FuelInterceptor"/>
  | 
  |   <aop:bind pointcut="execution(* cz.zizka.ondra.jbmctest.Car->set*Fuel(..)">
  |     <aop:interceptor-ref name="FuelInterceptor"/>
  |   </aop:bind>
  | 
  | </deployment>
  | 



  |   public static void main( String[] args ) throws Throwable
  |   {
  |     // Bootstrap.
  |     BasicBootstrap bootstrap = new BasicBootstrap();
  |     bootstrap.run();
  |     
  |     // Load the bean definitions.
  |     URL url = Thread.currentThread().getContextClassLoader().getResource("jboss-beans.xml");
  |     BasicXMLDeployer deployer = new BasicXMLDeployer( bootstrap.getKernel() );
  |     deployer.deploy( url );
  |     
  |     KernelController cont = bootstrap.getKernel().getController();
  |     ControllerContext context = cont.getInstalledContext("myGarage");
  |     System.out.println( "I have a garage: "+context.getTarget());
  | 
  |     // Put some fuel in.
  |     Car myCar = (Car) cont.getInstalledContext("myCar").getTarget();
  |     myCar.setLitresOfFuel( myCar.getLitresOfFuel() + 1 );
  |     System.out.println( "I have a garage: "+context.getTarget());
  | 
  | 
  |     deployer.shutdown();
  |     
  |   }
  | 



  | public class FuelInterceptor implements Interceptor {
  | 
  |   private static final Logger log = Logger.getLogger( FuelInterceptor.class.getName() );
  | 
  |   public Object invoke(Invocation invocation) throws Throwable
  |   {
  |     System.out.println( "In FuelInterceptor." );
  |     if( true ) throw new Exception(); // To see that it's really NOT called.
  |     Object target = invocation.getTargetObject();
  |     long time = System.currentTimeMillis();
  |     log.info("Invocation [" + target + "] start: " + time);
  |     try{
  |        return invocation.invokeNext();
  |     }
  |     finally{
  |        log.info("Invocation [" + target + "] time: " + (System.currentTimeMillis() - time));
  |     }
  |   }
  | 
  |   public String getName() {
  |   return FuelInterceptor.class.getName();
  |   }
  | }// class FuelInterceptor
  | 

View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4264485#4264485

Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4264485



More information about the jboss-user mailing list