2012/9/4 Umesh Awasthi <umeshawas...@gmail.com>: > I am in process to create a plugin and i need to pass provider class as > well some other properties to the plugin bean class. > though i can define them in side the plugin's xml file but want these > properties to be configurable.
I know of several ways of doing this: 1) Defining the property as usual with its own setter/getter in the plugin class. This will let you configure it with the <param> tag when you define your interceptor stack. You should provide a sensitive default value in case no <param> tag is present. 2) Declaring a <bean> for injecting an instance of some class using the IoC container provided with Struts. In your plugin you need to annotate with @Inject the setter method that will be called to inject the instance. 3) Declare a <constant> that will specify the *name* of a bean to inject. This is what is annotated with @Inject. Also you need to inject an instance of the Container class. In the init() method of the plugin, just call: container.getInstance(MyClass.class, myInjectedString); to get the proper instantiation of a given type. This is most useful when you have different strategies of accomplish some functionality and you can choose one by declaring a constant. 4) Idem 3), but instead of declaring a global <constant> you use a property as in 1), then you can have different interceptor stacks with different values assigned to this particular functionality. > Since struts.xml loads after the plugin loading so i can not define the > properties there, any suggestion how to accomplish this ? The only constraint I know of is that a plugin must not depend on (nor interfere with) definitions done in other plugin. HTH, Gabriel --------------------------------------------------------------------- To unsubscribe, e-mail: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org