[jboss-dev-forums] [Design the new POJO MicroContainer] - fromContext dependency regression

adrian@jboss.org do-not-reply at jboss.com
Fri Apr 18 10:21:32 EDT 2008


I'm seeing a horrible regression in the fromContext dependency injection.

e.g. this config from the system-jmx tests in the appserver

  | <?xml version="1.0" encoding="UTF-8"?>
  | 
  | <deployment xmlns="urn:jboss:bean-deployer:2.0">
  | 
  |    <!-- The legacy JMX kernel -->
  |    <bean name="ServiceControllerLocator" class="org.jboss.test.system.controller.integration.support.ServiceControllerLocator" />
  | 
  |    <bean name="ServiceLifecycle" class="org.jboss.test.system.controller.integration.support.TestServiceControllerLifecycleCallback">
  |       <property name="mbeanServer">
  |          <inject bean="ServiceControllerLocator" property="mbeanServer"/>
  |       </property>
  |       <property name="serviceController">
  |          <inject bean="ServiceControllerLocator" property="serviceController"/>
  |       </property>
  |    </bean>
  | 
  |    <bean name="TransactionManager" class="org.jboss.test.system.controller.integration.support.MockTransactionManager">
  |       <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss:service=TransactionManager", exposedInterface=org.jboss.test.system.controller.integration.support.MockTransactionManagerMBean.class, registerDirectly=true)</annotation>
  |       <property name="transactionTimeout">300</property>
  |       <property name="objectStoreDir">${jboss.server.data.dir}/tx-object-store</property>
  |       <install bean="ServiceLifecycle" method="install">
  |          <parameter><inject fromContext="context"/></parameter>
  |       </install>
  |       <uninstall bean="ServiceLifecycle" method="uninstall">
  |          <parameter><inject fromContext="context"/></parameter>
  |       </uninstall>
  |    </bean>
  | 
  | </deployment>
  | 

is causing a circular dependency of the bean on itself.

  | AbstractDependencyItem at e59e40{name=TransactionManager dependsOn=TransactionManager whenRequired=Installed dependentState=Installed resolved=false}
  | 

Each FromContext enumeration value should have an associated state
when it becomes valid. Most will be PreInstall, but some like BeanInfo
will Instantiated.

Something like:
[code
public enum FromContext
{
   ...
   BEANINFO(FromContextDelegate.BEANINFO, ControllerState.INSTANTIATED),


View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4145168#4145168

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4145168



More information about the jboss-dev-forums mailing list