I am just coming up to speed on the use of Features in CXF and I like the 
concept of having a single class responsible for managing all the pieces of a 
particular behaviour. What would make this feature even better would be to 
create the infrastructure to manage these features via JMX. So for instance if 
I had a series of interceptors that comprised a performance metrics feature, I 
would like to be able to toggle this capability on an off at runtime. Currently 
the AbstractFeature class does not have the appropriate life-cycle methods for 
doing this. It would be good if there was a toggleFeature() method or a 
turnOffFeature() method. This might need to be accompanied by a reinitialize() 
method as well.

In addition, it would be nice if a user could dynamically deploy a feature at 
runtime even if it had not previously been deployed. The key to doing this 
would be to be able to get access the Spring ApplicationContext and pass it a 
Spring configuration file, url, etc. in order to create the Feature. Once the 
user had a handle to the feature they could initialize it with the desired 
InterceptorProvider. On a slight tangent, there have been many times that I 
would have liked to have access the the Spring ApplicationContext at runtime. 
What about making the Spring ApplicationContext available via a Bus extensor?

Also from a management perspective it would be nice to be able to query what 
Features were currently deployed to an InterceptorProvidor. This might require 
adding a getName() method to the AbstractFeature class in order for a user to 
identify the particular desired feature.

Regards,
Seumas

Reply via email to