Package org.jboss.aop

Examples of org.jboss.aop.MethodInfo


         long methodHash = si.getMethodHash();
         log.debug("Received dynamic invocation for method with hash: " + methodHash);

         // Get the Method via MethodInfo from the Advisor
         Advisor advisor = this.getAdvisor();
         MethodInfo info = advisor.getMethodInfo(methodHash);
         Method unadvisedMethod = info.getMethod();
         SerializableMethod unadvisedMethodSerializable = new SerializableMethod(unadvisedMethod);

         // Get the invoked method from invocation metadata
         Object objInvokedMethod = si.getMetaData(SessionSpecRemotingMetadata.TAG_SESSION_INVOCATION,
               SessionSpecRemotingMetadata.KEY_INVOKED_METHOD);
View Full Code Here


      ClassLoader cl = this.getClassloader();

      // Obtain actual method
      Method actualMethod = method.toMethod(cl);
      long hash = MethodHashing.calculateHash(actualMethod);
      MethodInfo info = this.getAdvisor().getMethodInfo(hash);
      Method unadvisedMethod = info.getUnadvisedMethod();

      if (unadvisedMethod.getName().equals("getHandle"))
      {
         EJBObject proxy;
         if(CurrentRemoteProxyFactory.isSet())
View Full Code Here

      // start any transaction
      try
      {
         // Is the delivery transacted?
         MethodInfo methodInfo = container.getMethodInfo((Method)args[0]);
         boolean isTransacted = messageEndpointFactory.isDeliveryTransacted(methodInfo.getAdvisedMethod());

         startTransaction("beforeDelivery", proxy, container, method, args, isTransacted);
      }
      catch (Throwable t)
      {
View Full Code Here

      if (oldClassLoader != null)
         delivered = true;

      boolean commit = true;
      // Is the delivery transacted?
      MethodInfo methodInfo = container.getMethodInfo(method);

      try
      {
         // Check for starting a transaction
         if (oldClassLoader == null)
         {
            boolean isTransacted = messageEndpointFactory.isDeliveryTransacted(methodInfo.getAdvisedMethod());
            startTransaction("delivery", proxy, container, method, args, isTransacted);
         }
         return container.localInvoke(methodInfo, args);
      }
      catch (Throwable t)
View Full Code Here

      return jndiSuffix;
   }

   public Object localInvoke(Method method, Object[] args) throws Throwable
   {
      MethodInfo info = getMethodInfo(method);
      if (info == null)
      {
         throw new RuntimeException("Could not resolve beanClass method from proxy call: " + method.toString());
      }
      return localInvoke(info, args);
View Full Code Here

   {
      Object[] args = {timer};
      if(tMethod.getParameterTypes().length == 0)
         args = null;

      MethodInfo info = getMethodInfo(tMethod);
      if (info == null)
      {
         throw new RuntimeException("Could not find timeout method info: " + tMethod.toString() + " for container " + this);
      }
      // get hold of the unadvised method, so that we can mark it accessible
      // for the duration of this call (Remember, timeout methods can be with private, protected, package access modifier)
      Method unadvisedMethod = info.getUnadvisedMethod();
      // mark as accessible before invoking
      unadvisedMethod.setAccessible(true);
      try
      {
         // the timeout method (even if private, protected etc...) should pass through the AOP interceptor
         // chain. Hence we have a specific AOP interceptor stack for timeout method. Get hold of those interceptors
         Interceptor[] timeoutMethodAOPInterceptors = this.getInterceptors(info.getJoinpoint(),MDB_TIMEOUT_METHOD_AOP_INTERCEPTOR_STACK_NAME);
         // now create an invocation for the method info and the timeout method interceptors        
         EJBContainerInvocation nextInvocation = new MessageContainerInvocation(info, timeoutMethodAOPInterceptors);
         setTimer(nextInvocation, timer);
         nextInvocation.setAdvisor(getAdvisor());
         nextInvocation.setArguments(args);
View Full Code Here

            logger.trace("Received dynamic invocation for method with hash: " + methodHash);
         }
  
         // Get the Method via MethodInfo from the Advisor
         Advisor advisor = this.getAdvisor();
         MethodInfo methodInfo = advisor.getMethodInfo(methodHash);
  
         // create a container invocation
         AOPBasedContainerInvocation containerInvocation = new AOPBasedContainerInvocation(methodInfo,
               methodInvocation.getArguments());
         try
View Full Code Here

   public Object invoke(Serializable session, Class<?> invokedBusinessInterface, Method method, Object[] args)
         throws Exception
   {
      // create a (AOP) MethodInfo first so that a AOP based container invocation can be created out of it
      long hash = MethodHashing.calculateHash(method);
      MethodInfo methodInfo = getAdvisor().getMethodInfo(hash);
      if (methodInfo == null)
      {
         throw new RuntimeException("Method invocation via Proxy could not be found handled for EJB "
               + this.getEjbName() + " : " + method.toString()
               + ", probable error in virtual method registration w/ Advisor for the Container");
View Full Code Here

      ClassLoader oldLoader = Thread.currentThread().getContextClassLoader();
      try
      {
         // create a (AOP) MethodInfo first so that a AOP based container invocation can be created out of it
         long hash = MethodHashing.calculateHash(tMethod);
         MethodInfo methodInfo = getAdvisor().getMethodInfo(hash);
         if (methodInfo == null)
         {
            throw new RuntimeException("MethodInfo not found for timeout method " + tMethod.toString()
                  + ", probable error in virtual method registration w/ Advisor for the Container of bean " + this.getEjbName());
         }
         // get hold of the unadvised method, so that we can mark it accessible
         // for the duration of this call (Remember, timeout methods can be with private, protected, package access modifier)
         Method unadvisedMethod = methodInfo.getUnadvisedMethod();
         // mark as accessible before invoking
         unadvisedMethod.setAccessible(true);
         // the timeout method (even if private, protected etc...) should pass through the AOP interceptor
         // chain. Hence we have a specific AOP interceptor stack for timeout method. Get hold of those interceptors
         Interceptor[] timeoutMethodAOPInterceptors = this.getInterceptors(methodInfo.getJoinpoint(),SINGLETON_BEAN_TIMEOUT_METHOD_AOP_INTERCEPTOR_STACK_NAME);
         // create a container invocation
         ContainerInvocation containerInvocation = new AOPBasedContainerInvocation(methodInfo, args, null, timeoutMethodAOPInterceptors);

         // pass the control to the simple singleton container
         this.delegate.invoke(containerInvocation);
View Full Code Here

         throw new IllegalArgumentException(AOPBasedInterceptorRegistry.class + " can only handle "
               + org.jboss.ejb3.BeanContext.class + " , was passed " + targetBeanContext.getClass());
      }
      AOPBasedContainerInvocation aopInvocationContext = (AOPBasedContainerInvocation) containerInvocation;
      // form a AOP invocation
      MethodInfo methodInfo = aopInvocationContext.getMethodInfo();
      Interceptor[] aopInterceptors = aopInvocationContext.getInterceptors();

      EJBContainerInvocation<AOPBasedSingletonContainer, LegacySingletonBeanContext> invocation = new SessionContainerInvocation<AOPBasedSingletonContainer, LegacySingletonBeanContext>(
            containerInvocation.getInvokedBusinessInterface(), aopInvocationContext.getMethodInfo(), aopInterceptors,
            aopBasedSingletonContainer);
      invocation.setAdvisor(methodInfo.getAdvisor());
      invocation.setArguments(containerInvocation.getArgs());
      // set the target bean context of the AOP invocation
      invocation.setBeanContext((org.jboss.ejb3.interceptors.container.BeanContext<?>) targetBeanContext);
      // set the AOP metadata
      invocation.setMetaData(aopInvocationContext.getMetadata());
View Full Code Here

TOP

Related Classes of org.jboss.aop.MethodInfo

Copyright © 2018 www.massapicom. 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.