The second part would be a major change.
Each deployer would have to pass some id as it creates/modifies
attachments.
That is unless we hacked it such that the DeployerWrapper sets
a thread local for the AttachmentsImpl to look at?
Even then, unless we changed the Attachments spi,
there's no guarantee AttachmentsImpl gets used.
e.g. the predetermined stuff gets populated from the Deployment
passed to client api of the deployers.
But in general, the deployers should not be putting
anything in predetermined anyway. It defeats the point
and may not even be allowed with some implementations of
Attachments. ;-)
When I say I'm going to show which deployers process which
deployments, its basically going to be a re-calculation
of what gets done in DeployersImpl::isRelevant()
from the attachments/components that exist at the end of the deployment
processing.
On Fri, 2008-10-03 at 08:34 -0700, Scott Stark wrote:
Another runtime view is what the source of an attachment is involved
in the chain:
PredeterminedManagedObjects
TransientManagedObjects
TransientAttachments
and ideally which deployer set the current attachment at each level.
This relates to tracking whether the correct
attachment is being used when the profile service sets a
PredeterminedManagedObject.
Adrian Brock wrote:
> I'm currently working on tidying up the deployers in JBoss5
> as part of that I'm adding some JMX operations so
> you can query the deployer chains.
>
> The initial simple list (it doesn't look very good without the css
> which you get from the jmx console:-) is attached.
>
> A quick scan of this shows some funny things or at least
> some misunderstanding of the relative ordering parameter.
>
> The relative order parameter only applies when the deployers
> have similar input/outputs. It's there for when you have multiple
> "filter"s. i.e. a deployer that has the same input/output type
> and you need to control the order in which the filters run
> (you should try to design away such a requirement if possible).
>
> e.g. VFSClassLoaderClassPathDeployer is a filter
> it inputs and outputs ClassLoadingMetaData.
> So does the ClassLoadingDefaultDeployer.
>
> 1) Webservices
>
> org.jboss.wsf.container.jboss50.deployer.WebServiceDeployerPreJSE
> org.jboss.wsf.container.jboss50.deployer.WebServiceDeployerPostJSE
>
> Currently the ordering of these is pretty weak.
>
> i.e. there is no guarantee the PRE will run before the POST,
> except that the relative order of PRE is -1 compared with Tomcat
> and the POST must run after Tomcat.
>
> This is very brittle to changes in the Tomcat Deployer which
> might move it earlier in the chain due to changes in its requirements.
> i.e. The TomcatDeployer takes some additional metadata beyond
> JBossWebMetaData.
>
> Shouldn't the PRE deployer also output JBossWebMetaData
> to show it modifies or process it and therefore MUST run before Tomcat?
>
> 2) AOP ClassLoading
>
> A similar criticism applies for the AOPClassLoaderDeployer
> This has no chain definition at all? Only a relative order based
> on the main classloader deployer.
>
> Again this is brittle to a refactoring of how the classloader deployer
> works.
>
> 3) SEAM
>
> org.jboss.seam.integration.microcontainer.deployers.SeamWebUrlIntegrationDeployer
> doesn't specify any output.
> But I don't know where the source is for that?
> My guess is that this should really be in Describe and specify an
> output of ClassLoadingMetadata since that is where
> classloading dependencies should be constructed.
>
> 4) WEB CLUSTERING
>
> org.jboss.web.tomcat.service.deployers.ClusteringDependencyDeployer
> I don't know what this is doing in Describe since it is not
> establing a deployment dependency. Instead it is modifying the
> JBossWebMetaData.
> I'd guess this should be after the merge of annotations into that
> metadata? Although I don't think there is such an annotation
> currently? :-)
>
> 5+) There could be others. Like I said this is just a quick scan.
>
> TODO
>
> I'm going to be adding some other queries so you can display individual
> metadata chains for an attachment type and graphs so can see
> where attachments may have orginated from other attachments.
>
> Additionally you'll also be able to see deployers that were used
> for an individual deployment (including by subdeployment/component).
>
> Any other ideas?
>
>
>
> ____________________________________________________________________
>
> JMX MBean Operation View
> warjort
>
>
>
>
>
> Stage/Deployer
> top
> component
> parent last
> input
> output
> Real
> `--org.jboss.ejb.deployers.EjbDeployer@c221d7
>
>
>
> org.jboss.metadata.ejb.jboss.JBossMetaData
> org.jboss.ejb.deployers.EjbDeployment
>
>
>
>
>
> org.jboss.system.metadata.ServiceMetaData
>
>
>
>
>
> org.jboss.kernel.spi.deployment.KernelDeployment
> `--org.jboss.ejb3.deployers.Ejb3ClientDeployer@b40443
>
>
>
> org.jboss.metadata.client.jboss.JBossClientMetaData
> org.jboss.ejb3.clientmodule.ClientENCInjectionContainer
>
>
>
>
>
> org.jboss.kernel.spi.deployment.KernelDeployment
> `--org.jboss.ejb3.deployers.Ejb3Deployer@102abdb
>
>
>
> merged.org.jboss.metadata.ejb.jboss.JBossMetaData
> org.jboss.ejb3.Ejb3Deployment
>
>
>
>
> org.jboss.ejb3.metadata.jpa.spec.PersistenceUnitsMetaData
> org.jboss.kernel.spi.deployment.KernelDeployment
> `--org.jboss.deployers.vfs.deployer.kernel.AliasDeploymentDeployer@1aff012
>
>
>
> org.jboss.beans.metadata.spi.NamedAliasMetaData
> org.jboss.beans.metadata.spi.NamedAliasMetaData
>
>
>
>
> org.jboss.kernel.spi.deployment.KernelDeployment
>
> `--org.jboss.hibernate.deployers.HibernateDeployer@13dff89
>
>
>
> org.jboss.hibernate.deployers.metadata.HibernateMetaData
> org.jboss.beans.metadata.spi.BeanMetaData
> `--org.jboss.jpa.deployers.PersistenceDeployer@17fe89
>
>
>
> org.jboss.metadata.jpa.spec.PersistenceMetaData
>
> `--org.jboss.jpa.deployers.PersistenceUnitDeployer@a06824
>
> X
>
> org.jboss.metadata.jpa.spec.PersistenceUnitMetaData
> org.jboss.beans.metadata.spi.BeanMetaData
> `--org.jboss.deployers.vfs.deployer.kernel.KernelDeploymentDeployer@39ea58
>
>
>
> org.jboss.beans.metadata.spi.BeanMetaData
> org.jboss.beans.metadata.spi.BeanMetaData
>
>
>
>
> org.jboss.kernel.spi.deployment.KernelDeployment
>
> `--org.jboss.deployers.vfs.deployer.kernel.BeanMetaDataDeployer@10ff62a
>
> X
>
> org.jboss.beans.metadata.spi.BeanMetaData
>
> `--org.jboss.deployers.vfs.deployer.kernel.DeploymentAliasMetaDataDeployer@11ef9f6
>
> X
>
> org.jboss.beans.metadata.spi.NamedAliasMetaData
>
>
>
>
>
> org.jboss.beans.metadata.spi.BeanMetaData
>
> `--org.jboss.resource.deployers.ManagedConnectionFactoryDeployer@1b2601c
>
>
>
> org.jboss.resource.metadata.mcf.ManagedConnectionFactoryDeploymentGroup
> org.jboss.system.metadata.ServiceDeployment
> `--org.jboss.resource.deployers.RARDeployer@1ecda50
>
>
>
> org.jboss.resource.metadata.RARDeploymentMetaData
> org.jboss.system.metadata.ServiceMetaData
> `--org.jboss.varia.deployment.LegacyBeanShellScriptDeployer@f7ce53
>
>
>
> org.jboss.varia.deployment.BeanShellScript
>
> `--org.jboss.wsf.container.jboss50.deployer.WebServiceDeployerEJB@13be416
>
>
>
> merged.org.jboss.metadata.ejb.jboss.JBossMetaData
> org.jboss.wsf.spi.deployment.integration.WebServiceDeployment
>
>
>
>
> org.jboss.ejb.deployers.EjbDeployment
> org.jboss.metadata.web.jboss.JBossWebMetaData
>
>
>
>
> org.jboss.ejb3.Ejb3Deployment
>
> `--org.jboss.wsf.container.jboss50.deployer.WebServiceDeployerPreJSE@83cf00
>
>
>
> org.jboss.metadata.web.jboss.JBossWebMetaData
>
> `--org.jboss.web.tomcat.service.deployers.TomcatDeployer@dfa65c
>
>
>
> org.jboss.metadata.web.jboss.JBossWebMetaData
> org.jboss.web.deployers.WarDeployment
>
>
>
>
>
> org.jboss.system.metadata.ServiceMetaData
> `--org.jboss.system.deployers.ServiceDeploymentDeployer@bc6007
>
>
>
> org.jboss.system.metadata.ServiceMetaData
> org.jboss.system.metadata.ServiceMetaData
>
>
>
>
> org.jboss.system.metadata.ServiceDeployment
>
> `--org.jboss.system.deployers.ServiceDeployer@1a697a1
>
> X
>
> org.jboss.system.metadata.ServiceMetaData
>
> `--org.jboss.wsf.container.jboss50.deployer.WebServiceDeployerPostJSE@1560b81
>
>
>
> org.jboss.web.deployers.WarDeployment
>
> ClassLoader
>
`--org.jboss.deployers.plugins.classloading.AbstractLevelClassLoaderSystemDeployer@2726b2
>
>
>
> org.jboss.deployers.structure.spi.ClassLoaderFactory
>
> `--org.jboss.aop.asintegration.jboss5.AOPClassLoaderDeployer@19845fb
>
>
>
>
>
> PostClassLoader
> `--org.jboss.aop.asintegration.jboss5.AOPDeploymentAopMetaDataDeployer@1b88122
>
>
>
> org.jboss.aop.microcontainer.beans.metadata.AOPDeployment
> org.jboss.aop.asintegration.jboss5.AopMetaDataDeployerOutput
> `--org.jboss.aop.asintegration.jboss5.BeansDeploymentAopMetaDataDeployer@14f1726
>
>
>
> org.jboss.kernel.spi.deployment.KernelDeployment
> org.jboss.aop.asintegration.jboss5.AopMetaDataDeployerOutput
> `--org.jboss.deployment.EarLibExcludeDeployer@2957a4
> X
>
>
> org.jboss.metadata.ear.jboss.JBossAppMetaData
> org.jboss.classloading.spi.visitor.ResourceFilter.recurse
>
`--org.jboss.deployers.vfs.plugins.annotations.FilteredAnnotationEnvironmentDeployer@25502e
>
>
>
> org.jboss.classloading.spi.dependency.Module
> org.jboss.deployers.spi.annotations.AnnotationEnvironment
>
>
>
>
> org.jboss.classloading.spi.visitor.ResourceFilter.recurse
>
> `--org.jboss.deployment.EarSecurityDeployer@1fac352
>
>
>
> org.jboss.metadata.ear.jboss.JBossAppMetaData
> jboss.jacc
>
>
>
>
>
> org.jboss.system.metadata.ServiceMetaData
> `--org.jboss.deployment.OptAnnotationMetaDataDeployer@7f9e04
>
>
>
> org.jboss.metadata.web.spec.WebMetaData
> annotated.org.jboss.metadata.ejb.spec.EjbJarMetaData
>
>
>
>
> org.jboss.metadata.ejb.spec.EjbJarMetaData
> annotated.org.jboss.metadata.web.spec.WebMetaData
>
>
>
>
> org.jboss.metadata.client.spec.ApplicationClientMetaData
> annotated.org.jboss.metadata.client.spec.ApplicationClientMetaData
>
>
>
>
> org.jboss.deployers.spi.annotations.AnnotationEnvironment
>
> `--org.jboss.ejb.deployers.MergedJBossMetaDataDeployer@1ad552c
>
>
>
> annotated.org.jboss.metadata.ejb.spec.EjbJarMetaData
> merged.org.jboss.metadata.ejb.jboss.JBossMetaData
>
>
>
>
> org.jboss.metadata.ejb.jboss.JBossMetaData
> org.jboss.metadata.ejb.jboss.JBossMetaData
>
>
>
>
> org.jboss.metadata.ejb.spec.EjbJarMetaData
>
> `--org.jboss.ejb3.deployers.MergedJBossClientMetaDataDeployer@1219665
>
>
>
> annotated.org.jboss.metadata.client.spec.ApplicationClientMetaData
> merged.org.jboss.metadata.client.jboss.JBossClientMetaData
>
>
>
>
> org.jboss.metadata.client.jboss.JBossClientMetaData
> org.jboss.metadata.client.jboss.JBossClientMetaData
>
>
>
>
> org.jboss.metadata.client.spec.ApplicationClientMetaData
>
>
`--org.jboss.ha.framework.server.deployers.Ejb2HAPartitionDependencyDeployer@19bb448
>
>
>
> merged.org.jboss.metadata.ejb.jboss.JBossMetaData
> merged.org.jboss.metadata.ejb.jboss.JBossMetaData
>
`--org.jboss.ha.framework.server.deployers.Ejb3HAPartitionDependencyDeployer@1033c7e
>
>
>
> merged.org.jboss.metadata.ejb.jboss.JBossMetaData
> merged.org.jboss.metadata.ejb.jboss.JBossMetaData
> `--org.jboss.ejb.deployers.EjbMetadataJndiPolicyDecoratorDeployer@8ee94b
>
>
>
> merged.org.jboss.metadata.ejb.jboss.JBossMetaData
> EjbMetadataJndiPolicyDecoratorDeployer
> `--org.jboss.ejb.deployers.StandardJBossMetaDataDeployer@101f8f4
>
>
>
> merged.org.jboss.metadata.ejb.jboss.JBossMetaData
> org.jboss.metadata.ejb.jboss.JBossMetaData
>
>
>
>
> org.jboss.metadata.ejb.jboss.JBossMetaData
> raw.org.jboss.metadata.ejb.jboss.JBossMetaData
>
>
>
>
> standardjboss.xml
>
> `--org.jboss.ejb.deployers.EjbSecurityDeployer@514577
>
>
>
> merged.org.jboss.metadata.ejb.jboss.JBossMetaData
> jboss.jacc
>
>
>
>
> org.jboss.metadata.ejb.jboss.JBossMetaData
> org.jboss.system.metadata.ServiceMetaData
> `--org.jboss.web.deployers.MergedJBossWebMetaDataDeployer@1c9982e
>
>
>
> org.jboss.metadata.web.spec.WebMetaData
> org.jboss.metadata.web.jboss.JBossWebMetaData
>
>
>
>
> annotated.org.jboss.metadata.web.spec.WebMetaData
> merged.org.jboss.metadata.web.jboss.JBossWebMetaData
>
>
>
>
> org.jboss.metadata.web.jboss.JBossWebMetaData
>
> `--org.jboss.deployment.MappedReferenceMetaDataResolverDeployer@1908558
>
>
> X
> org.jboss.metadata.ejb.jboss.JBossMetaData
> org.jboss.deployment.spi.DeploymentEndpointResolver
>
>
>
>
> org.jboss.metadata.web.jboss.JBossWebMetaData
>
>
>
>
>
> org.jboss.metadata.client.jboss.JBossClientMetaData
>
> `--org.jboss.web.deployers.WarSecurityDeployer@18a4622
>
>
>
> org.jboss.metadata.web.jboss.JBossWebMetaData
> jboss.jacc
>
>
>
>
>
> org.jboss.system.metadata.ServiceMetaData
> Describe
> `--org.jboss.deployers.vfs.plugins.classloader.InMemoryClassesDeployer@4de3fe
> X
>
>
>
> org.jboss.classloading.spi.metadata.ClassLoadingMetaData
>
`--org.jboss.deployers.vfs.plugins.classloader.VFSClassLoaderClassPathDeployer@157b39f
>
>
>
> org.jboss.classloading.spi.metadata.ClassLoadingMetaData
> org.jboss.classloading.spi.metadata.ClassLoadingMetaData
>
`--org.jboss.deployers.vfs.plugins.classloader.VFSClassLoaderDescribeDeployer@e0d16b
>
>
>
> org.jboss.classloading.spi.metadata.ClassLoadingMetaData
>
> `--org.jboss.web.tomcat.service.deployers.ClusteringDependencyDeployer@ebdfff
>
>
>
> org.jboss.metadata.web.jboss.JBossWebMetaData
> org.jboss.metadata.web.jboss.JBossWebMetaData
> PreDescribe
> `--org.jboss.deployers.plugins.classloading.ClassLoadingDefaultDeployer@721965
> X
>
>
> org.jboss.classloading.spi.metadata.ClassLoadingMetaData
> org.jboss.classloading.spi.metadata.ClassLoadingMetaData
> PostParse
> `--org.jboss.resource.deployers.ManagedConnectionFactoryClassLoaderDeployer@11d00cf
>
>
>
> org.jboss.resource.metadata.mcf.ManagedConnectionFactoryDeploymentGroup
> org.jboss.classloading.spi.metadata.ClassLoadingMetaData
> `--org.jboss.system.deployers.HackClassloaderMetaDataDeployer@1eef2c
>
>
>
> org.jboss.mx.loading.LoaderRepositoryFactory$LoaderRepositoryConfig
> org.jboss.classloading.spi.metadata.ClassLoadingMetaData
> `--org.jboss.web.tomcat.service.deployers.ClusteringDefaultsDeployer@f8d6a6
>
>
>
> org.jboss.metadata.web.jboss.JBossWebMetaData
> org.jboss.metadata.web.jboss.JBossWebMetaData
> `--org.jboss.web.tomcat.service.deployers.WarClassLoaderDeployer@192c4c
>
>
>
> org.jboss.metadata.web.jboss.JBossWebMetaData
> org.jboss.classloading.spi.metadata.ClassLoadingMetaData
>
>
>
>
> org.jboss.classloading.spi.metadata.ClassLoadingMetaData
>
>
`--org.jboss.seam.integration.microcontainer.deployers.SeamWebUrlIntegrationDeployer@145240a
>
>
>
> org.jboss.metadata.web.jboss.JBossWebMetaData
>
> Parse
> `--org.jboss.deployers.vfs.deployer.kernel.BeanDeployer@57dc15
>
>
>
>
> org.jboss.kernel.spi.deployment.KernelDeployment
> `--org.jboss.deployers.vfs.spi.deployer.SchemaResolverDeployer@13bc30a
>
>
>
>
> org.jboss.classloading.spi.metadata.ClassLoadingMetaData
> `--org.jboss.deployers.vfs.spi.deployer.SchemaResolverDeployer@1ba1d9
>
>
>
>
> org.jboss.aop.microcontainer.beans.metadata.AOPDeployment
> `--org.jboss.deployers.vfs.spi.deployer.SchemaResolverDeployer@543937
>
>
>
>
> org.jboss.security.microcontainer.beans.metadata.SecurityPolicyMetaData
> `--org.jboss.deployers.vfs.spi.deployer.SchemaResolverDeployer@bbe4cf
>
>
>
>
> org.jboss.hibernate.deployers.metadata.HibernateMetaData
> `--org.jboss.deployment.AppParsingDeployer@97ed28
>
>
>
>
> org.jboss.metadata.ear.spec.EarMetaData
> `--org.jboss.deployment.JBossAppParsingDeployer@17a33f2
>
>
>
>
> org.jboss.metadata.ear.jboss.JBossAppMetaData
> `--org.jboss.ejb3.deployers.AppClientParsingDeployer@b11287
>
>
>
>
> org.jboss.metadata.client.spec.ApplicationClientMetaData
> `--org.jboss.ejb3.deployers.JBossClientParsingDeployer@18cecd
>
>
>
> org.jboss.metadata.client.spec.ApplicationClientMetaData
> org.jboss.metadata.client.jboss.JBossClientMetaData
> `--org.jboss.ejb3.deployers.PersistenceUnitParsingDeployer@d9c6e2
>
>
>
>
> org.jboss.metadata.jpa.spec.PersistenceMetaData
> `--org.jboss.jpa.deployers.PersistenceParsingDeployer@105e560
>
>
>
>
> org.jboss.metadata.jpa.spec.PersistenceMetaData
> `--org.jboss.resource.deployers.ManagedConnectionFactoryParserDeployer@1310e0a
>
>
>
>
> org.jboss.resource.metadata.mcf.ManagedConnectionFactoryDeploymentGroup
> `--org.jboss.resource.deployers.RARParserDeployer@1ba640
>
>
>
>
> org.jboss.resource.metadata.RARDeploymentMetaData
> `--org.jboss.system.deployers.SARDeployer@83e35b
>
>
>
>
> org.jboss.system.metadata.ServiceDeployment
> `--org.jboss.varia.deployment.LegacyBeanShellDeployer@4a4e31
>
>
>
>
> org.jboss.varia.deployment.BeanShellScript
> `--org.jboss.aop.asintegration.jboss5.AOPAnnotationMetaDataParserDeployer@1e40274
>
>
>
>
> org.jboss.aop.microcontainer.beans.metadata.AOPDeployment
> `--org.jboss.deployment.EARContentsDeployer@f003c1
>
>
>
>
> org.jboss.metadata.ear.jboss.JBossAppMetaData
> `--org.jboss.deployment.WebAppParsingDeployer@156cd93
>
>
>
>
> org.jboss.metadata.web.spec.WebMetaData
> `--org.jboss.deployment.JBossWebAppParsingDeployer@12b2f7f
>
>
>
> org.jboss.metadata.web.spec.WebMetaData
> org.jboss.metadata.web.jboss.JBossWebMetaData
> `--org.jboss.deployment.EjbParsingDeployer@1d1e765
>
>
>
>
> org.jboss.metadata.ejb.spec.EjbJarMetaData
> `--org.jboss.deployment.JBossEjbParsingDeployer@10725b4
>
>
>
> org.jboss.metadata.ejb.spec.EjbJarMetaData
> org.jboss.metadata.ejb.jboss.JBossMetaData
>
>
>
>
>
> org.jboss.metadata.ApplicationMetaData
>
>
>
>
>
> org.jboss.mx.loading.LoaderRepositoryFactory$LoaderRepositoryConfig
>
>
>
>
>
> standardjboss.xml
>
>
>
> ____________________________________________________________________
>
> _______________________________________________
> jboss-development mailing list
> jboss-development(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/jboss-development
>
_______________________________________________
jboss-development mailing list
jboss-development(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jboss-development --
xxxxxxxxxxxxxxxxxxxxxxxxxxxx
Adrian Brock
Chief Scientist
JBoss, a division of Red Hat
xxxxxxxxxxxxxxxxxxxxxxxxxxxx