[jboss-jira] [JBoss JIRA] (WFLY-776) Inject POJO to MBean by using <inject bean="XXX"> in jboss-service.xml does not work in SAR
Romain Pelisse (JIRA)
issues at jboss.org
Fri Dec 5 06:32:39 EST 2014
[ https://issues.jboss.org/browse/WFLY-776?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13025434#comment-13025434 ]
Romain Pelisse commented on WFLY-776:
-------------------------------------
Regarding the two technical issues raised by Tomasz (and I've discussed with him over IRC):
1) dependency between the mbean service and the pojo service seems to be OK - it's not far fetch to think that MBean would need to access POJO just for this purpose (looking up dependency)
2) rather than chaning the XML syntax, we could change the content of the bean attribute, by adding a prefix:
{code:xml}
<mbean code="com.redhat.jboss.support.HelloService"
name="example:type=HelloService,service=Hello">
<attribute name="Message">Hello!!</attribute>
<attribute name="Task"><inject bean="pojo:myTask"/></attribute>
</mbean>
{code}
Which leads to no prefix, default behavior, prefix load some factories/resolver based on the prefix. On top of not arming the current syntax, it also reuse an usual practice (like URL) to specifiy other mechanism to inject dependency.
> Inject POJO to MBean by using <inject bean="XXX"> in jboss-service.xml does not work in SAR
> -------------------------------------------------------------------------------------------
>
> Key: WFLY-776
> URL: https://issues.jboss.org/browse/WFLY-776
> Project: WildFly
> Issue Type: Bug
> Components: JMX, POJO
> Reporter: Masafumi Miura
> Attachments: HelloService-AS7-inject-reproducer.tar.gz
>
>
> When injecting POJO to MBean by using {{<inject bean="myTask"/>}} in {{jboss-service.xml}} of SAR like the following:
> * META-INF/jboss-service.xml:
> {code:xml}
> <server>
> <mbean code="com.redhat.jboss.support.HelloService"
> name="example:type=HelloService,service=Hello">
> <attribute name="Message">Hello!!</attribute>
> <attribute name="Task"><inject bean="myTask"/></attribute>
> </mbean>
> </server>
> {code}
> * META-INF/jboss-beans.xml:
> {code:xml}
> <?xml version="1.0" encoding="UTF-8"?>
> <deployment ... >
> <bean name="myTask" class="com.redhat.jboss.support.SimpleTask">
> </bean>
> </deployment>
> {code}
> Then the following ERROR is happened at deployment of SAR:
> {noformat:title=7.1.4.Final}
> ERROR [org.jboss.as.server.deployment.scanner] (DeploymentScanner-threads - 1) {"JBAS014653: Composite operation failed and was rolled back. Steps that failed:" => {"Operation step-2" => {"JBAS014771: Services with missing/unavailable dependencies" => ["jboss.mbean.service.example:type=HelloService,service=Hello.start Missing[jboss.mbean.service.myTask.start]","jboss.mbean.registration.example:type=HelloService,service=Hello Missing[JBAS014861: <one or more transitive dependencies>]","jboss.mbean.service.example:type=HelloService,service=Hello.create Missing[jboss.mbean.service.myTask.create]"]}}}
> {noformat}
> {noformat:title=7.2.0.Alpha1}
> ERROR [org.jboss.as.server] (DeploymentScanner-threads - 2) JBAS015870: Deploy of deployment "HelloService.sar" was rolled back with the following failure message:
> {"JBAS014771: Services with missing/unavailable dependencies" => [
> "jboss.mbean.service.example:type=HelloService,service=Hello.start is missing [jboss.mbean.service.myTask.start]",
> "jboss.mbean.service.example:type=HelloService,service=Hello.create is missing [jboss.mbean.service.myTask.create]"
> ]}
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.3.8#6338)
More information about the jboss-jira
mailing list