[jboss-cvs] JBossAS SVN: r106597 - in projects/interceptors/trunk/jboss-interceptor/src: main/java/org/jboss/interceptor/proxy and 3 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Jul 12 11:03:31 EDT 2010


Author: marius.bogoevici
Date: 2010-07-12 11:03:30 -0400 (Mon, 12 Jul 2010)
New Revision: 106597

Added:
   projects/interceptors/trunk/jboss-interceptor/src/main/java/org/jboss/interceptor/registry/
   projects/interceptors/trunk/jboss-interceptor/src/main/java/org/jboss/interceptor/registry/InterceptorMetadataRegistry.java
   projects/interceptors/trunk/jboss-interceptor/src/main/java/org/jboss/interceptor/registry/SimpleInterceptorMetadataRegistry.java
Removed:
   projects/interceptors/trunk/jboss-interceptor/src/main/java/org/jboss/interceptor/metadataregistry/
Modified:
   projects/interceptors/trunk/jboss-interceptor/src/main/java/org/jboss/interceptor/proxy/DirectClassInterceptionHandlerFactory.java
   projects/interceptors/trunk/jboss-interceptor/src/test/java/org/jboss/interceptors/metadata/InterceptorClassMetadataTestCase.java
   projects/interceptors/trunk/jboss-interceptor/src/test/java/org/jboss/interceptors/proxy/InterceptionTestCase.java
   projects/interceptors/trunk/jboss-interceptor/src/test/java/org/jboss/interceptors/proxy/SubclassingInterceptionTestCase.java
Log:
renamed registry package

Modified: projects/interceptors/trunk/jboss-interceptor/src/main/java/org/jboss/interceptor/proxy/DirectClassInterceptionHandlerFactory.java
===================================================================
--- projects/interceptors/trunk/jboss-interceptor/src/main/java/org/jboss/interceptor/proxy/DirectClassInterceptionHandlerFactory.java	2010-07-12 14:54:45 UTC (rev 106596)
+++ projects/interceptors/trunk/jboss-interceptor/src/main/java/org/jboss/interceptor/proxy/DirectClassInterceptionHandlerFactory.java	2010-07-12 15:03:30 UTC (rev 106597)
@@ -17,7 +17,7 @@
 
 package org.jboss.interceptor.proxy;
 
-import org.jboss.interceptor.metadataregistry.InterceptorMetadataRegistry;
+import org.jboss.interceptor.registry.InterceptorMetadataRegistry;
 import org.jboss.interceptor.reader.ReflectiveClassMetadata;
 import org.jboss.interceptor.spi.handler.InterceptionHandler;
 import org.jboss.interceptor.spi.handler.InterceptionHandlerFactory;

Copied: projects/interceptors/trunk/jboss-interceptor/src/main/java/org/jboss/interceptor/registry/InterceptorMetadataRegistry.java (from rev 106596, projects/interceptors/trunk/jboss-interceptor/src/main/java/org/jboss/interceptor/metadataregistry/InterceptorMetadataRegistry.java)
===================================================================
--- projects/interceptors/trunk/jboss-interceptor/src/main/java/org/jboss/interceptor/registry/InterceptorMetadataRegistry.java	                        (rev 0)
+++ projects/interceptors/trunk/jboss-interceptor/src/main/java/org/jboss/interceptor/registry/InterceptorMetadataRegistry.java	2010-07-12 15:03:30 UTC (rev 106597)
@@ -0,0 +1,18 @@
+package org.jboss.interceptor.registry;
+
+import org.jboss.interceptor.spi.metadata.ClassMetadata;
+import org.jboss.interceptor.spi.metadata.InterceptorMetadata;
+
+
+/**
+ * Acts as a repository of
+ * 
+ * @author Marius Bogoevici
+ */
+public interface InterceptorMetadataRegistry
+{
+   InterceptorMetadata getInterceptorClassMetadata(ClassMetadata interceptorClass);
+
+   InterceptorMetadata getInterceptorClassMetadata(ClassMetadata interceptorClass, boolean isInterceptorTargetClass);
+
+}

Copied: projects/interceptors/trunk/jboss-interceptor/src/main/java/org/jboss/interceptor/registry/SimpleInterceptorMetadataRegistry.java (from rev 106596, projects/interceptors/trunk/jboss-interceptor/src/main/java/org/jboss/interceptor/metadataregistry/SimpleInterceptorMetadataRegistry.java)
===================================================================
--- projects/interceptors/trunk/jboss-interceptor/src/main/java/org/jboss/interceptor/registry/SimpleInterceptorMetadataRegistry.java	                        (rev 0)
+++ projects/interceptors/trunk/jboss-interceptor/src/main/java/org/jboss/interceptor/registry/SimpleInterceptorMetadataRegistry.java	2010-07-12 15:03:30 UTC (rev 106597)
@@ -0,0 +1,123 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2009, Red Hat, Inc. and/or its affiliates, and individual
+ * contributors by the @authors tag. See the copyright.txt in the
+ * distribution for a full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.jboss.interceptor.registry;
+
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.locks.Lock;
+import java.util.concurrent.locks.ReentrantLock;
+
+import org.jboss.interceptor.reader.InterceptorMetadataUtils;
+import org.jboss.interceptor.spi.metadata.ClassMetadata;
+import org.jboss.interceptor.spi.metadata.InterceptorMetadata;
+
+
+/**
+ * @author <a href="mailto:mariusb at redhat.com">Marius Bogoevici</a>
+ */
+public class SimpleInterceptorMetadataRegistry implements InterceptorMetadataRegistry
+{
+   private final Map<Key, InterceptorMetadata> interceptorClassMetadataMap = new ConcurrentHashMap<Key, InterceptorMetadata>();
+
+   private final Lock lock = new ReentrantLock();
+
+   public InterceptorMetadata getInterceptorClassMetadata(ClassMetadata interceptorClass)
+   {
+      return this.getInterceptorClassMetadata(interceptorClass, false);
+   }
+
+   public InterceptorMetadata getInterceptorClassMetadata(ClassMetadata interceptorClass, boolean isInterceptorTargetClass)
+   {
+      Key key = new Key(interceptorClass, isInterceptorTargetClass);
+      if (!interceptorClassMetadataMap.containsKey(key))
+      {
+         try
+         {
+            lock.lock();
+            //verify that metadata hasn't been added while waiting for the lock
+            if (!interceptorClassMetadataMap.containsKey(key))
+            {
+               if (isInterceptorTargetClass)
+                  interceptorClassMetadataMap.put(key, InterceptorMetadataUtils.readMetadataForTargetClass(interceptorClass));
+               else
+                  interceptorClassMetadataMap.put(key, InterceptorMetadataUtils.readMetadataForInterceptorClass(interceptorClass));
+            }
+         }
+         finally
+         {
+            lock.unlock();
+         }
+      }
+
+      return interceptorClassMetadataMap.get(key);
+
+   }
+
+   public void cleanup()
+   {
+      this.interceptorClassMetadataMap.clear();
+   }
+
+   public static final class Key
+   {
+      private String className;
+
+      private boolean isInterceptorTargetClass;
+
+      private Key(ClassMetadata clazz, boolean interceptorTargetClass)
+      {
+         this.className = clazz.getClassName();
+         isInterceptorTargetClass = interceptorTargetClass;
+      }
+
+      @Override
+      public boolean equals(Object o)
+      {
+         if (this == o)
+         {
+            return true;
+         }
+         if (o == null || getClass() != o.getClass())
+         {
+            return false;
+         }
+
+         Key key = (Key) o;
+
+         if (isInterceptorTargetClass != key.isInterceptorTargetClass)
+         {
+            return false;
+         }
+         if (className != null ? !className.equals(key.className) : key.className != null)
+         {
+            return false;
+         }
+
+         return true;
+      }
+
+      @Override
+      public int hashCode()
+      {
+         int result = className != null ? className.hashCode() : 0;
+         result = 31 * result + (isInterceptorTargetClass ? 1 : 0);
+         return result;
+      }
+   }
+
+}

Modified: projects/interceptors/trunk/jboss-interceptor/src/test/java/org/jboss/interceptors/metadata/InterceptorClassMetadataTestCase.java
===================================================================
--- projects/interceptors/trunk/jboss-interceptor/src/test/java/org/jboss/interceptors/metadata/InterceptorClassMetadataTestCase.java	2010-07-12 14:54:45 UTC (rev 106596)
+++ projects/interceptors/trunk/jboss-interceptor/src/test/java/org/jboss/interceptors/metadata/InterceptorClassMetadataTestCase.java	2010-07-12 15:03:30 UTC (rev 106597)
@@ -20,8 +20,8 @@
 
 import java.util.List;
 
-import org.jboss.interceptor.metadataregistry.InterceptorMetadataRegistry;
-import org.jboss.interceptor.metadataregistry.SimpleInterceptorMetadataRegistry;
+import org.jboss.interceptor.registry.InterceptorMetadataRegistry;
+import org.jboss.interceptor.registry.SimpleInterceptorMetadataRegistry;
 import org.jboss.interceptor.reader.ReflectiveClassMetadata;
 import org.jboss.interceptor.spi.metadata.InterceptorMetadata;
 import org.jboss.interceptor.spi.metadata.MethodMetadata;

Modified: projects/interceptors/trunk/jboss-interceptor/src/test/java/org/jboss/interceptors/proxy/InterceptionTestCase.java
===================================================================
--- projects/interceptors/trunk/jboss-interceptor/src/test/java/org/jboss/interceptors/proxy/InterceptionTestCase.java	2010-07-12 14:54:45 UTC (rev 106596)
+++ projects/interceptors/trunk/jboss-interceptor/src/test/java/org/jboss/interceptors/proxy/InterceptionTestCase.java	2010-07-12 15:03:30 UTC (rev 106597)
@@ -26,8 +26,8 @@
 
 import javassist.util.proxy.MethodHandler;
 import org.jboss.interceptor.builder.InterceptionModelBuilder;
-import org.jboss.interceptor.metadataregistry.InterceptorMetadataRegistry;
-import org.jboss.interceptor.metadataregistry.SimpleInterceptorMetadataRegistry;
+import org.jboss.interceptor.registry.InterceptorMetadataRegistry;
+import org.jboss.interceptor.registry.SimpleInterceptorMetadataRegistry;
 import org.jboss.interceptor.proxy.DirectClassInterceptionHandlerFactory;
 import org.jboss.interceptor.proxy.InterceptorProxyCreator;
 import org.jboss.interceptor.proxy.InterceptorProxyCreatorImpl;

Modified: projects/interceptors/trunk/jboss-interceptor/src/test/java/org/jboss/interceptors/proxy/SubclassingInterceptionTestCase.java
===================================================================
--- projects/interceptors/trunk/jboss-interceptor/src/test/java/org/jboss/interceptors/proxy/SubclassingInterceptionTestCase.java	2010-07-12 14:54:45 UTC (rev 106596)
+++ projects/interceptors/trunk/jboss-interceptor/src/test/java/org/jboss/interceptors/proxy/SubclassingInterceptionTestCase.java	2010-07-12 15:03:30 UTC (rev 106597)
@@ -26,8 +26,8 @@
 
 import javassist.util.proxy.ProxyObject;
 import org.jboss.interceptor.builder.InterceptionModelBuilder;
-import org.jboss.interceptor.metadataregistry.InterceptorMetadataRegistry;
-import org.jboss.interceptor.metadataregistry.SimpleInterceptorMetadataRegistry;
+import org.jboss.interceptor.registry.InterceptorMetadataRegistry;
+import org.jboss.interceptor.registry.SimpleInterceptorMetadataRegistry;
 import org.jboss.interceptor.proxy.DirectClassInterceptionHandlerFactory;
 import org.jboss.interceptor.proxy.InterceptorProxyCreator;
 import org.jboss.interceptor.proxy.InterceptorProxyCreatorImpl;



More information about the jboss-cvs-commits mailing list