[jboss-cvs] JBossAS SVN: r73534 - in projects/microcontainer/trunk/kernel/src: tests/org/jboss/test/kernel/dependency/support and 1 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue May 20 12:11:12 EDT 2008
Author: alesj
Date: 2008-05-20 12:11:12 -0400 (Tue, 20 May 2008)
New Revision: 73534
Added:
projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/AutowireAction.java
projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/dependency/support/BVBTester.java
projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/dependency/support/MockBeanValidatorBridge.java
projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/dependency/test/BeanValidatorBridgeTestCase.java
Modified:
projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/InstantiateAction.java
projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/KernelControllerContextActions.java
projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/dependency/test/DependencyTestSuite.java
Log:
Bean validation test.
Autowire bug fix.
Copied: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/AutowireAction.java (from rev 73531, projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/InstantiateAction.java)
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/AutowireAction.java (rev 0)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/AutowireAction.java 2008-05-20 16:11:12 UTC (rev 73534)
@@ -0,0 +1,70 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2005, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.kernel.plugins.dependency;
+
+import org.jboss.dependency.spi.ControllerState;
+import org.jboss.dependency.spi.DependencyInfo;
+import org.jboss.kernel.spi.dependency.InstantiateKernelControllerContextAware;
+import org.jboss.kernel.spi.dependency.KernelController;
+import org.jboss.kernel.spi.dependency.KernelControllerContext;
+import org.jboss.kernel.spi.dependency.KernelControllerContextAware;
+
+/**
+ * AutowireAction.
+ *
+ * @author <a href="ales.justin at jboss.com">Ales Justin</a>
+ */
+public class AutowireAction extends InstallsAwareAction
+{
+ protected void installActionInternal(KernelControllerContext context) throws Throwable
+ {
+ KernelController controller = (KernelController)context.getController();
+ DependencyInfo dependencyInfo = context.getDependencyInfo();
+ if (dependencyInfo != null && dependencyInfo.isAutowireCandidate())
+ controller.addInstantiatedContext(context);
+ }
+
+ protected void uninstallActionInternal(KernelControllerContext context)
+ {
+ try
+ {
+ KernelController controller = (KernelController)context.getController();
+ DependencyInfo dependencyInfo = context.getDependencyInfo();
+ if (dependencyInfo != null && dependencyInfo.isAutowireCandidate())
+ controller.removeInstantiatedContext(context);
+ }
+ catch (Throwable ignored)
+ {
+ log.debug("Ignored error unsetting context ", ignored);
+ }
+ }
+
+ protected ControllerState getState()
+ {
+ return ControllerState.INSTANTIATED;
+ }
+
+ protected Class<? extends KernelControllerContextAware> getActionAwareInterface()
+ {
+ return InstantiateKernelControllerContextAware.class;
+ }
+}
\ No newline at end of file
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/InstantiateAction.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/InstantiateAction.java 2008-05-20 14:49:48 UTC (rev 73533)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/InstantiateAction.java 2008-05-20 16:11:12 UTC (rev 73534)
@@ -105,14 +105,10 @@
{
try
{
- Object object = context.getTarget();
- if (object != null)
- {
- KernelController controller = (KernelController) context.getController();
- DependencyInfo dependencyInfo = context.getDependencyInfo();
- if (dependencyInfo != null && dependencyInfo.isAutowireCandidate())
- controller.removeInstantiatedContext(context);
- }
+ KernelController controller = (KernelController)context.getController();
+ DependencyInfo dependencyInfo = context.getDependencyInfo();
+ if (dependencyInfo != null && dependencyInfo.isAutowireCandidate())
+ controller.removeInstantiatedContext(context);
}
catch (Throwable ignored)
{
Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/KernelControllerContextActions.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/KernelControllerContextActions.java 2008-05-20 14:49:48 UTC (rev 73533)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/dependency/KernelControllerContextActions.java 2008-05-20 16:11:12 UTC (rev 73534)
@@ -81,6 +81,7 @@
Map<ControllerState, ControllerContextAction> actions = new HashMap<ControllerState, ControllerContextAction>();
actions.put(ControllerState.PRE_INSTALL, new PreInstallAction());
actions.put(ControllerState.DESCRIBED, new DescribeAction());
+ actions.put(ControllerState.INSTANTIATED, new AutowireAction());
actions.put(ControllerState.CONFIGURED, new ConfigureAction());
actions.put(ControllerState.CREATE, new CreateDestroyLifecycleAction());
actions.put(ControllerState.START, new StartStopLifecycleAction());
Added: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/dependency/support/BVBTester.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/dependency/support/BVBTester.java (rev 0)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/dependency/support/BVBTester.java 2008-05-20 16:11:12 UTC (rev 73534)
@@ -0,0 +1,35 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.test.kernel.dependency.support;
+
+/**
+ * @author <a href="mailto:ales.justin at jboss.com">Ales Justin</a>
+ */
+public class BVBTester
+{
+ public void setSomething(Object object)
+ {
+ }
+ public void invokeSomething(Object object)
+ {
+ }
+}
\ No newline at end of file
Added: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/dependency/support/MockBeanValidatorBridge.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/dependency/support/MockBeanValidatorBridge.java (rev 0)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/dependency/support/MockBeanValidatorBridge.java 2008-05-20 16:11:12 UTC (rev 73534)
@@ -0,0 +1,79 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.test.kernel.dependency.support;
+
+import org.jboss.kernel.plugins.dependency.BeanValidatorBridge;
+import org.jboss.kernel.spi.dependency.KernelControllerContext;
+import org.jboss.joinpoint.spi.Joinpoint;
+import org.jboss.beans.info.spi.PropertyInfo;
+import org.jboss.reflect.spi.MethodInfo;
+
+/**
+ * @author <a href="mailto:ales.justin at jboss.com">Ales Justin</a>
+ */
+public class MockBeanValidatorBridge implements BeanValidatorBridge
+{
+ private Joinpoint joinpoint;
+ private Object target;
+ private String property;
+ private String method;
+
+ public Joinpoint getJoinpoint()
+ {
+ return joinpoint;
+ }
+
+ public Object getTarget()
+ {
+ return target;
+ }
+
+ public String getProperty()
+ {
+ return property;
+ }
+
+ public String getMethod()
+ {
+ return method;
+ }
+
+ public void validateConstructorValues(KernelControllerContext context, Joinpoint joinpoint) throws Throwable
+ {
+ this.joinpoint = joinpoint;
+ }
+
+ public void validateInstance(KernelControllerContext context, Object target) throws Throwable
+ {
+ this.target = target;
+ }
+
+ public void validatePropertyValue(KernelControllerContext context, Object target, PropertyInfo propertyInfo, Object value) throws Throwable
+ {
+ property = propertyInfo.getName();
+ }
+
+ public void validateMethodValues(KernelControllerContext context, Object target, MethodInfo methodInfo, Object[] parameters) throws Throwable
+ {
+ method = methodInfo.getName();
+ }
+}
Added: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/dependency/test/BeanValidatorBridgeTestCase.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/dependency/test/BeanValidatorBridgeTestCase.java (rev 0)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/dependency/test/BeanValidatorBridgeTestCase.java 2008-05-20 16:11:12 UTC (rev 73534)
@@ -0,0 +1,68 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.test.kernel.dependency.test;
+
+import junit.framework.Test;
+import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
+import org.jboss.beans.metadata.spi.builder.BeanMetaDataBuilder;
+import org.jboss.kernel.Kernel;
+import org.jboss.kernel.spi.dependency.KernelController;
+import org.jboss.test.kernel.AbstractKernelTest;
+import org.jboss.test.kernel.dependency.support.BVBTester;
+import org.jboss.test.kernel.dependency.support.MockBeanValidatorBridge;
+
+/**
+ * BVB test.
+ *
+ * @author <a href="mailto:ales.justin at jboss.com">Ales Justin</a>
+ */
+public class BeanValidatorBridgeTestCase extends AbstractKernelTest
+{
+ public BeanValidatorBridgeTestCase(String name)
+ {
+ super(name);
+ }
+
+ public static Test suite()
+ {
+ return suite(BeanValidatorBridgeTestCase.class);
+ }
+
+ public void testBVBLookup() throws Throwable
+ {
+ Kernel kernel = bootstrap();
+ KernelController controller = kernel.getController();
+
+ MockBeanValidatorBridge bridge = new MockBeanValidatorBridge();
+ controller.install(new AbstractBeanMetaData("bvb", MockBeanValidatorBridge.class.getName()), bridge);
+
+ BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder("tester", BVBTester.class.getName());
+ builder.addPropertyMetaData("something", 123);
+ builder.addInstall("invokeSomething", Object.class.getName(), "123");
+ controller.install(builder.getBeanMetaData());
+
+ assertNotNull(bridge.getJoinpoint());
+ assertInstanceOf(bridge.getTarget(), BVBTester.class);
+ assertEquals("something", bridge.getProperty());
+ assertEquals("invokeSomething", bridge.getMethod());
+ }
+}
Modified: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/dependency/test/DependencyTestSuite.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/dependency/test/DependencyTestSuite.java 2008-05-20 14:49:48 UTC (rev 73533)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/dependency/test/DependencyTestSuite.java 2008-05-20 16:11:12 UTC (rev 73534)
@@ -110,6 +110,7 @@
suite.addTest(MatcherDemandSupplyAnnotationTestCase.suite());
suite.addTest(NestedPropertyTestCase.suite());
suite.addTest(NestedPropertyXMLTestCase.suite());
+ suite.addTest(BeanValidatorBridgeTestCase.suite());
return suite;
}
}
More information about the jboss-cvs-commits
mailing list