Author: dblevins
Date: Wed Dec  8 00:52:03 2010
New Revision: 1043253

URL: http://svn.apache.org/viewvc?rev=1043253&view=rev
Log:
Small little karate chop to InterceptorHandler cuts down on synchronized static 
lookups in runtime. Removes 200~ of them per test.

OWB-503 status: 559 code uses
Total of 199932 static synchronized accesses and 267407 hashed calls in 340 
tests
Average of 588 static synchronized accesses and 786 hashed calls per test

Modified:
    
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/corespi/DefaultSingletonService.java
    
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorHandler.java

Modified: 
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/corespi/DefaultSingletonService.java
URL: 
http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/corespi/DefaultSingletonService.java?rev=1043253&r1=1043252&r2=1043253&view=diff
==============================================================================
--- 
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/corespi/DefaultSingletonService.java
 (original)
+++ 
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/corespi/DefaultSingletonService.java
 Wed Dec  8 00:52:03 2010
@@ -61,6 +61,8 @@ public class DefaultSingletonService imp
 
         synchronized (singletonMap)
         {
+//            util.Track.sync(singletonName);
+            
             WebBeansContext managerMap = singletonMap.get(classLoader);
 //            util.Track.get(singletonName);
 

Modified: 
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorHandler.java
URL: 
http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorHandler.java?rev=1043253&r1=1043252&r2=1043253&view=diff
==============================================================================
--- 
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorHandler.java
 (original)
+++ 
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorHandler.java
 Wed Dec  8 00:52:03 2010
@@ -149,7 +149,8 @@ public abstract class InterceptorHandler
     
     /**Intercepted methods*/
     protected transient Map<Method, List<InterceptorData>> 
interceptedMethodMap = null;
-    
+    private WebBeansContext webBeansContext;
+
     /**
      * Creates a new handler.
      * @param bean proxied bean
@@ -157,6 +158,7 @@ public abstract class InterceptorHandler
     protected InterceptorHandler(OwbBean<?> bean)
     {
         this.bean = bean;
+        this.webBeansContext = WebBeansContext.getInstance();
     }
 
     /**
@@ -207,12 +209,12 @@ public abstract class InterceptorHandler
                     List<Object> decorators = null;
                     if (injectionTarget.getDecoratorStack().size() > 0)
                     {
-                        Class<?> proxyClass = 
WebBeansContext.getInstance().getJavassistProxyFactory().getInterceptorProxyClasses().get(bean);
+                        Class<?> proxyClass = 
webBeansContext.getJavassistProxyFactory().getInterceptorProxyClasses().get(bean);
                         if (proxyClass == null)
                         {
-                            ProxyFactory delegateFactory = 
WebBeansContext.getInstance().getJavassistProxyFactory().createProxyFactory(bean);
-                            proxyClass = 
WebBeansContext.getInstance().getJavassistProxyFactory().getProxyClass(delegateFactory);
-                            
WebBeansContext.getInstance().getJavassistProxyFactory().getInterceptorProxyClasses().put(bean,
 proxyClass);
+                            ProxyFactory delegateFactory = 
webBeansContext.getJavassistProxyFactory().createProxyFactory(bean);
+                            proxyClass = 
webBeansContext.getJavassistProxyFactory().getProxyClass(delegateFactory);
+                            
webBeansContext.getJavassistProxyFactory().getInterceptorProxyClasses().put(bean,
 proxyClass);
                         }
                         Object delegate = proxyClass.newInstance();
                         delegateHandler = new DelegateHandler(this.bean);
@@ -328,7 +330,7 @@ public abstract class InterceptorHandler
      */
     protected BeanManagerImpl getBeanManager()
     {
-        return WebBeansContext.getInstance().getBeanManagerImpl();
+        return webBeansContext.getBeanManagerImpl();
     }
                 
     /**
@@ -363,10 +365,11 @@ public abstract class InterceptorHandler
     {
         if(s.readLong() == serialVersionUID)
         {
+            this.webBeansContext = WebBeansContext.getInstance();
             String passivationId = (String) s.readObject();
             if (passivationId != null)
             {
-                this.bean = (OwbBean<?>) 
WebBeansContext.getInstance().getBeanManagerImpl().getPassivationCapableBean(passivationId);
+                this.bean = (OwbBean<?>) 
webBeansContext.getBeanManagerImpl().getPassivationCapableBean(passivationId);
             }
         }
         else


Reply via email to