[jboss-cvs] JBossAS SVN: r74871 - in projects/microcontainer/trunk: kernel/src/main/org/jboss/kernel/plugins/annotations and 2 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Fri Jun 20 04:33:05 EDT 2008
Author: alesj
Date: 2008-06-20 04:33:05 -0400 (Fri, 20 Jun 2008)
New Revision: 74871
Modified:
projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/aspects/jmx/JMX.java
projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/annotations/CommonAnnotationAdapter.java
projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/annotations/support/TestAnnotationPlugin.java
projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/annotations/support/TestApplyOnlyBean.java
projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/annotations/support/TestCleanupBean.java
projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/annotations/support/TestCleanupOnlyBean.java
projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/annotations/test/FactoryMethodBadTestCase.java
Log:
Make @JMX applicable on methods, fields.
Handle annotations on getters.
Fix FMBTC, error type.
Modified: projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/aspects/jmx/JMX.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/aspects/jmx/JMX.java 2008-06-20 06:03:32 UTC (rev 74870)
+++ projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/aspects/jmx/JMX.java 2008-06-20 08:33:05 UTC (rev 74871)
@@ -37,7 +37,7 @@
* @version $Revision$
*/
@Retention(RetentionPolicy.RUNTIME)
- at Target(ElementType.TYPE)
+ at Target({ElementType.TYPE, ElementType.METHOD, ElementType.FIELD})
@InstanceAnnotation(false)
public @interface JMX
{
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/annotations/CommonAnnotationAdapter.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/annotations/CommonAnnotationAdapter.java 2008-06-20 06:03:32 UTC (rev 74870)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/annotations/CommonAnnotationAdapter.java 2008-06-20 08:33:05 UTC (rev 74871)
@@ -235,29 +235,9 @@
{
for(PropertyInfo pi : properties)
{
- MethodInfo setter = pi.getSetter();
FieldInfo field = pi.getFieldInfo();
-
- if (setter != null)
+ if (field != null)
{
- visitedMethods.add(setter);
- Signature sis = new MethodSignature(setter);
- MetaData cmdr = retrieval.getComponentMetaData(sis);
- if (cmdr != null)
- {
- for(T plugin : propertyAnnotationPlugins)
- {
- if (isApplyPhase)
- applyPlugin(plugin, pi, cmdr, handle);
- else
- cleanPlugin(plugin, pi, cmdr, handle);
- }
- }
- else if (trace)
- log.trace("No annotations for property " + pi.getName());
- }
- else if (field != null)
- {
Signature sis = new FieldSignature(field);
MetaData cmdr = retrieval.getComponentMetaData(sis);
if (cmdr != null)
@@ -273,6 +253,11 @@
else if (trace)
log.trace("No annotations for field " + field.getName());
}
+ else
+ {
+ handleMethod(retrieval, handle, isApplyPhase, trace, visitedMethods, pi, pi.getSetter(), "setter");
+ handleMethod(retrieval, handle, isApplyPhase, trace, visitedMethods, pi, pi.getGetter(), "getter");
+ }
}
}
else if (trace)
@@ -338,6 +323,50 @@
}
/**
+ * Handle setter or getter on property.
+ *
+ * @param retrieval the metadata
+ * @param handle the handle
+ * @param isApplyPhase is apply phase
+ * @param trace is trace enabled
+ * @param visitedMethods visited methods
+ * @param pi the property info
+ * @param method the method info
+ * @param type method type
+ * @throws Throwable for any error
+ */
+ protected void handleMethod(
+ MetaData retrieval,
+ U handle,
+ boolean isApplyPhase,
+ boolean trace,
+ Set<MethodInfo> visitedMethods,
+ PropertyInfo pi,
+ MethodInfo method,
+ String type)
+ throws Throwable
+ {
+ if (method == null)
+ return;
+
+ visitedMethods.add(method);
+ Signature sis = new MethodSignature(method);
+ MetaData cmdr = retrieval.getComponentMetaData(sis);
+ if (cmdr != null)
+ {
+ for(T plugin : propertyAnnotationPlugins)
+ {
+ if (isApplyPhase)
+ applyPlugin(plugin, pi, cmdr, handle);
+ else
+ cleanPlugin(plugin, pi, cmdr, handle);
+ }
+ }
+ else if (trace)
+ log.trace("No annotations for " + type + ": " + pi.getName());
+ }
+
+ /**
* Get the static methods of class info.
*
* @param classInfo the class info
Modified: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/annotations/support/TestAnnotationPlugin.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/annotations/support/TestAnnotationPlugin.java 2008-06-20 06:03:32 UTC (rev 74870)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/annotations/support/TestAnnotationPlugin.java 2008-06-20 08:33:05 UTC (rev 74871)
@@ -21,21 +21,22 @@
*/
package org.jboss.test.kernel.annotations.support;
+import java.lang.annotation.Annotation;
import java.lang.annotation.ElementType;
-import java.lang.annotation.Annotation;
import java.util.List;
-import org.jboss.reflect.spi.MethodInfo;
+import org.jboss.beans.info.spi.PropertyInfo;
+import org.jboss.beans.metadata.spi.MetaDataVisitorNode;
import org.jboss.kernel.plugins.annotations.AbstractAnnotationPlugin;
+import org.jboss.kernel.plugins.annotations.PropertyAware;
import org.jboss.kernel.spi.dependency.KernelControllerContext;
-import org.jboss.beans.metadata.spi.MetaDataVisitorNode;
import org.jboss.metadata.spi.MetaData;
/**
* @param <T> the annotation type
* @author <a href="mailto:ales.justin at jboss.com">Ales Justin</a>
*/
-public class TestAnnotationPlugin<T extends Annotation> extends AbstractAnnotationPlugin<MethodInfo, T>
+public class TestAnnotationPlugin<T extends Annotation> extends AbstractAnnotationPlugin<PropertyInfo, T> implements PropertyAware
{
private boolean applied;
private boolean cleaned;
@@ -47,16 +48,16 @@
protected boolean isElementTypeSupported(ElementType type)
{
- return true;
+ return ElementType.METHOD == type;
}
- protected List<? extends MetaDataVisitorNode> internalApplyAnnotation(MethodInfo info, MetaData retrieval, T annotation, KernelControllerContext context) throws Throwable
+ protected List<? extends MetaDataVisitorNode> internalApplyAnnotation(PropertyInfo info, MetaData retrieval, T annotation, KernelControllerContext context) throws Throwable
{
applied = true;
return null;
}
- protected void internalCleanAnnotation(MethodInfo info, MetaData retrieval, T annotation, KernelControllerContext context) throws Throwable
+ protected void internalCleanAnnotation(PropertyInfo info, MetaData retrieval, T annotation, KernelControllerContext context) throws Throwable
{
cleaned = true;
}
Modified: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/annotations/support/TestApplyOnlyBean.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/annotations/support/TestApplyOnlyBean.java 2008-06-20 06:03:32 UTC (rev 74870)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/annotations/support/TestApplyOnlyBean.java 2008-06-20 08:33:05 UTC (rev 74871)
@@ -27,8 +27,7 @@
public class TestApplyOnlyBean
{
@TestApplyOnly
- public String getName()
+ public void setName(String name)
{
- return null;
}
}
Modified: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/annotations/support/TestCleanupBean.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/annotations/support/TestCleanupBean.java 2008-06-20 06:03:32 UTC (rev 74870)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/annotations/support/TestCleanupBean.java 2008-06-20 08:33:05 UTC (rev 74871)
@@ -27,8 +27,7 @@
public class TestCleanupBean
{
@TestCleanup
- public String getName()
+ public void setName(String param)
{
- return null;
}
}
Modified: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/annotations/support/TestCleanupOnlyBean.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/annotations/support/TestCleanupOnlyBean.java 2008-06-20 06:03:32 UTC (rev 74870)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/annotations/support/TestCleanupOnlyBean.java 2008-06-20 08:33:05 UTC (rev 74871)
@@ -27,8 +27,7 @@
public class TestCleanupOnlyBean
{
@TestCleanupOnly
- public String getName()
+ public void setName(String name)
{
- return null;
}
}
Modified: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/annotations/test/FactoryMethodBadTestCase.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/annotations/test/FactoryMethodBadTestCase.java 2008-06-20 06:03:32 UTC (rev 74870)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/annotations/test/FactoryMethodBadTestCase.java 2008-06-20 08:33:05 UTC (rev 74871)
@@ -23,6 +23,7 @@
import junit.framework.Test;
import org.jboss.dependency.spi.ControllerState;
+import org.jboss.joinpoint.spi.JoinpointException;
import org.jboss.kernel.spi.dependency.KernelControllerContext;
import org.jboss.test.kernel.deployment.test.AbstractOnDemandDeploymentTest;
@@ -47,6 +48,6 @@
change(context, ControllerState.INSTALLED);
assertEquals(ControllerState.ERROR, context.getState());
assertNotNull(context.getError());
- assertInstanceOf(context.getError(), IllegalArgumentException.class);
+ assertInstanceOf(context.getError(), JoinpointException.class);
}
}
More information about the jboss-cvs-commits
mailing list