[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