Package org.jboss.test.aop.scopedattach

Source Code of org.jboss.test.aop.scopedattach.ScopedTester

/*
* JBoss, Home of Professional Open Source.
* Copyright 2006, Red Hat Middleware LLC, and individual contributors
* as indicated by the @author tags. See the copyright.txt file in the
* distribution for a full listing of individual contributors.
*
* This is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2.1 of
* the License, or (at your option) any later version.
*
* This software is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this software; if not, write to the Free
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
package org.jboss.test.aop.scopedattach;

import org.jboss.aop.Advised;
import org.jboss.mx.loading.LoaderRepository;
import org.jboss.mx.loading.RepositoryClassLoader;

/**
*
* @author <a href="kabir.khan@jboss.com">Kabir Khan</a>
* @version $Revision: 85945 $
*/
public class ScopedTester implements ScopedTesterMBean
{
   int expectedInterceptorValue;
   int expectedAspectValue;
   int metadataSuffix;
  
   String ctorPlainMetadata;
   String methodPlainMetadata;
   String customMetadata;
  
   public void setExpectedInterceptorValue(int i)
   {
      expectedInterceptorValue = i;
   }

   public void setExpectedAspectValue(int i)
   {
      expectedAspectValue = i;
   }
  
   public int getExpectedInterceptorValue()
   {
      return expectedInterceptorValue;
   }

   public int getExpectedAspectValue()
   {
      return expectedAspectValue;
   }

   public void setMetadataSuffix(int i)
   {
      metadataSuffix = i;
      ctorPlainMetadata = "ctor" + metadataSuffix;
      methodPlainMetadata = "method" + metadataSuffix;
      customMetadata = "custom" + metadataSuffix;
   }
  
   public void checkPOJOAdvised()
   {
      System.out.println("--------------------------- TESTING POJO ADVISED ------------------");
      if (!Advised.class.isAssignableFrom(POJO.class))
      {
         throw new RuntimeException("POJO is not advised");
      }
   }
  
   public void testScoped() throws Exception
   {
      try
      {
         System.out.println("--------------------------- TESTING SCOPED ------------------");
         System.out.println("MY CLASSLOADER " + getClass().getClassLoader());
         System.out.println("SCOPED INTERCEPTOR CLASSLOADER " + ScopedInterceptor.class.getClassLoader());
         System.out.println("POJO CLASSLOADER " + POJO.class.getClassLoader());
  
         if (getClass().getClassLoader() instanceof RepositoryClassLoader)
         {
            //Check that the classloaders have the same repositories
            LoaderRepository repository1 = ((RepositoryClassLoader)getClass().getClassLoader()).getLoaderRepository();
            LoaderRepository repository2 = ((RepositoryClassLoader)ScopedInterceptor.class.getClassLoader()).getLoaderRepository();
            LoaderRepository repository3 = ((RepositoryClassLoader)POJO.class.getClassLoader()).getLoaderRepository();
            if (repository1 != repository2)
            {
               throw new RuntimeException("Repositories were not the same");
            }
            if (repository1 != repository3)
            {
               throw new RuntimeException("Repositories were not the same");
            }
         }
        
         System.out.println("------- CTOR");
         ScopedAspect.intercepted = 0;
         ScopedFactoryAspect.intercepted = 0;
         ScopedPCInterceptor.intercepted = 0;
         ScopedPCJInterceptor.intercepted = 0;
         ScopedFactoryAspect.metadata = null;
         ScopedFactoryAspect.customMetadata = null;
        
         POJO pojo = new POJO();
         if (ScopedAspect.intercepted != 1)
         {
            throw new RuntimeException("Expected ScopedAspect 1 for POJO constructor, was " + ScopedAspect.intercepted);
         }
         if (ScopedFactoryAspect.intercepted != 1)
         {
            throw new RuntimeException("Expected ScopedFactoryAspect 1 for POJO constructor, was " + ScopedFactoryAspect.intercepted);
         }
         if (ScopedPCInterceptor.intercepted != 1)
         {
            throw new RuntimeException("Expected ScopedPCInterceptor 1 for POJO constructor, was " + ScopedPCInterceptor.intercepted);
         }
         if (ScopedPCJInterceptor.intercepted != 1)
         {
            throw new RuntimeException("Expected ScopedPCJInterceptor 1 for POJO constructor, was " + ScopedPCJInterceptor.intercepted);
         }
         if (!ctorPlainMetadata.equals(ScopedFactoryAspect.metadata))
         {
            throw new RuntimeException("Expected ctor metadata " + ctorPlainMetadata + ", was " + ScopedFactoryAspect.metadata);
         }
         if (!customMetadata.equals(ScopedFactoryAspect.customMetadata))
         {
            throw new RuntimeException("Expected ctor customm metadata " + customMetadata + ", was " + ScopedFactoryAspect.customMetadata);
         }
        
         System.out.println("------- METHOD");
         ScopedInterceptor.intercepted = 0;
         ScopedAspect.intercepted = 0;
         ScopedFactoryAspect.intercepted = 0;
         ScopedPCInterceptor.intercepted = 0;
         ScopedPCJInterceptor.intercepted = 0;
         ScopedPJInterceptor.intercepted = 0;
         ScopedFactoryAspect.metadata = null;
         ScopedFactoryAspect.customMetadata = null;
  
         pojo.method();
         if (ScopedInterceptor.intercepted != 1)
         {
            throw new RuntimeException("Expected ScopedInterceptor 1 for POJO method, was " + ScopedInterceptor.intercepted);
         }
         if (ScopedAspect.intercepted != 1)
         {
            throw new RuntimeException("Expected ScopedAspect 1 for POJO method, was " + ScopedAspect.intercepted);
         }
         if (ScopedFactoryAspect.intercepted != 1)
         {
            throw new RuntimeException("Expected ScopedFactoryAspect 1 for POJO method, was " + ScopedFactoryAspect.intercepted);
         }
         if (ScopedPCInterceptor.intercepted != 1)
         {
            throw new RuntimeException("Expected ScopedPCInterceptor 1 for POJO method, was " + ScopedPCInterceptor.intercepted);
         }
         if (ScopedPCJInterceptor.intercepted != 1)
         {
            throw new RuntimeException("Expected ScopedPCJInterceptor 1 for POJO method, was " + ScopedPCJInterceptor.intercepted);
         }
         if (ScopedPJInterceptor.intercepted != 1)
         {
            throw new RuntimeException("Expected ScopedPJInterceptor 1 for POJO method, was " + ScopedPJInterceptor.intercepted);
         }
         if (!methodPlainMetadata.equals(ScopedFactoryAspect.metadata))
         {
            throw new RuntimeException("Expected method metadata '" + methodPlainMetadata + ", was " + ScopedFactoryAspect.metadata);
         }
         if (!customMetadata.equals(ScopedFactoryAspect.customMetadata))
         {
            throw new RuntimeException("Expected method customm metadata " + customMetadata + ", was " + ScopedFactoryAspect.customMetadata);
         }
        
        
         if (ScopedInterceptor.value != expectedInterceptorValue)
         {
            throw new RuntimeException("Expected " + expectedInterceptorValue + " was " + ScopedInterceptor.value);
         }
         if (ScopedPCInterceptor.value != expectedInterceptorValue)
         {
            throw new RuntimeException("Expected " + expectedInterceptorValue + " was " + ScopedPCInterceptor.value);
         }
         if (ScopedPJInterceptor.value != expectedInterceptorValue)
         {
            throw new RuntimeException("Expected " + expectedInterceptorValue + " was " + ScopedPJInterceptor.value);
         }
         if (ScopedPCJInterceptor.value != expectedInterceptorValue)
         {
            throw new RuntimeException("Expected " + expectedInterceptorValue + " was " + ScopedPCJInterceptor.value);
         }
         if (ScopedAspect.value != expectedAspectValue)
         {
            throw new RuntimeException("Expected " + expectedAspectValue + " was " + ScopedAspect.value);
         }
      }
      catch(Exception e)
      {
         e.printStackTrace();
         throw e;
      }
   }  
}
TOP

Related Classes of org.jboss.test.aop.scopedattach.ScopedTester

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.