"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#...
Reply to the post :
http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&a...