[jboss-dev-forums] [Design the new POJO MicroContainer] - Re: DESCRIBE phase - Dependency builders for MC Beans
alesj
do-not-reply at jboss.com
Tue May 12 04:14:37 EDT 2009
"alesj" wrote :
| I'm thinking in the lines of putting DependencyBuilder into per bean instance scope in MetaData.
| If there is one present, use it, otherwise fall to default - from KernelConfig.
I've added this:
| protected DependencyBuilder getDependencyBuilder(MetaData md, Kernel kernel) throws Throwable
| {
| DependencyBuilder dependencyBuilder = md.getMetaData(DependencyBuilder.class);
| if (dependencyBuilder == null)
| {
| KernelConfig config = kernel.getConfig();
| dependencyBuilder = config.getDependencyBuilder();
| }
| return dependencyBuilder;
| }
|
| @SuppressWarnings("unchecked")
| protected void installActionInternal(KernelControllerContext context) throws Throwable
| {
| BeanInfo info = context.getBeanInfo();
| if (info != null)
| {
| KernelController controller = (KernelController)context.getController();
| Kernel kernel = controller.getKernel();
| KernelMetaDataRepository repository = kernel.getMetaDataRepository();
| MetaData md = repository.getMetaData(context);
| DependencyBuilder dependencyBuilder = getDependencyBuilder(md, kernel);
| // add custom dependencies (e.g. AOP layer).
| List<DependencyBuilderListItem> dependencies = dependencyBuilder.getDependencies(info, md);
|
can you try it out?
You will need to take an existing KernelControllerContext
and add DependencyBuilder metadata for its ScopeInfo's scope.
(see BasicKernelMetaDataRepository for actual usage)
This will (mostly) even add more penalty to the performance,
as we have to check MetaData for DependencyBuilder instance.
Although it shouldn't be much, as it's only a few Map entry checks.
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4230304#4230304
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4230304
More information about the jboss-dev-forums
mailing list