[
https://issues.jboss.org/browse/AS7-3148?page=com.atlassian.jira.plugin.s...
]
Jye Tucker edited comment on AS7-3148 at 2/1/12 1:16 AM:
---------------------------------------------------------
Just flagging that I believe there is still an issue with dependencies and deployment
scanner - specifically with dependencies between deployed OSGi bundles. I've been
tracking this down for the last week, but I think it may be to do with how the dependency
management explained in the URL above (using Dependencies header in MANIFEST.MF) relates
to the actual OSGi bundle state.
It has been occurring randomly so I'm attempting to reproduce consistently at the
moment - but I believe the deployment scanner is managing the dependencies only up to the
point where the OSGi bundle is installed, but may not yet be exporting packages via the
OSGi subsystem and making it's classpath available to dependencies.
For example, if I have an API and Implementation bundle in the deployments dir at startup
(Implementation has a dependency specified in the manifest on API -
deployment.bundle-api:0.0.0) the API bundle seems to be correctly picked up first by the
deployment scanner, but the deployment of the implementation bundle can randomly fail with
a ClassNotFoundException on an API class.
Manually starting the Implementation bundle later will then work - presumably because the
API bundle is fully resolved and started at this point.
Deploying manually or via script in the order of classpath dependencies always works.
Brian - would you mind commenting on whether you think this theory makes sense? If so,
I'm happy to keep chasing down this path. Also let me know if you'd prefer to keep
this issue closed and have a new one created. Thanks.
was (Author: jye.tucker):
Just flagging that I believe there is still an issue with dependencies and deployment
scanner - specifically with dependencies between deployed OSGi bundles. I've been
tracking this down for the last week, but I think it may be to do with how the dependency
management explained in the URL above (using Dependencies header in MANIFEST.MF) relates
to the actual OSGi bundle state.
It has been occurring randomly so I'm attempting to reproduce consistently at the
moment - but I believe the deployment scanner is managing the dependencies only up to the
point where the OSGi bundle is installed, but may not yet be exporting packages via the
OSGi subsystem and making it's classpath available to dependencies.
For example, if I have an API and Implementation bundle in the deployments dir at startup
(Implementation has a dependency specified in the manifest on API -
deployments.bundle-api:0.0.0) the API bundle seems to be correctly picked up first by the
deployment scanner, but the deployment of the implementation bundle can randomly fail with
a ClassNotFoundException on an API class.
Manually starting the Implementation bundle later will then work - presumably because the
API bundle is fully resolved and started at this point.
Deploying manually or via script in the order of classpath dependencies always works.
Brian - would you mind commenting on whether you think this theory makes sense? If so,
I'm happy to keep chasing down this path. Also let me know if you'd prefer to keep
this issue closed and have a new one created. Thanks.
Allow dependency configuration for deployment scanner
-----------------------------------------------------
Key: AS7-3148
URL:
https://issues.jboss.org/browse/AS7-3148
Project: Application Server 7
Issue Type: Feature Request
Affects Versions: 7.1.0.CR1
Environment: AS7.1.0.Final-SNAPSHOT in standalone using standalone-ha.xml
Reporter: Brent Douglas
Fix For: No Release
Attachments: deployment-scanner.log
It would be really handy to be able to specify dependencies for the deployment scanner to
abide by. E.g. I have an application with the following structure:
{code}
A.ear
|-B.jar
\-C.war
D.war
{code}
If D has a dependency on B and they are deployed at the same time I'll get:
JBAS014775: New missing/unsatisfied dependencies:
service jboss.module.spec.service."deployment.A.ear".main (missing)
dependants: [service jboss.module.service."deployment.D.war".main, service
jboss.deployment.unit."D.war".POST_MODULE]
service jboss.module.spec.service."deployment.A.ear.B.jar".main (missing)
dependants: [service jboss.module.service."deployment.D.war".main, service
jboss.deployment.unit."D.war".POST_MODULE]
It would be great though if I could specify that I don't want to deploy D until A is
deployed.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see:
http://www.atlassian.com/software/jira