Impala is simple to extend because Impala is simply a collection of Spring beans. This means you can easily add new Spring beans into the Impala environment, or override the definitions of existing beans. You simply need to understand two things: first, how does Impala's extension mechanism work, and secondly, you need to know a little bit about Impala's bean definitions to know what definitions to override.
1) Introduce new bean definitions
The easiest way to do this is to add new Spring bean definition files to the application class path, which at runtime corresponds to the /WEB-INF/classes directory. In terms of the development project structure, this would correspond to the resources directory in the applications 'host' project.
If you need to write new classes to support your bean definitions, you can add these to the src directory in the host project, and once again, they will be visible on the web application classpath from the /WEB-INF/classes directory.
2) Make new bean definitions visible to Impala
Suppose you add new bean definitions to a Spring configuration file called custom-config.xml
Simply add an entry to the impala.properties file.
extra.locations=custom-config.xml
Note that you can have multiple additional Spring configuration files - simply specify these as a comma-separated list.
Note that bean definitions in the custom configuration files will override any already present in one of the built-in Impala configuration files.
For more information:
Wiki: BootstrapContexts
Wiki: ExtendingImpala
Wiki: HowTo
Wiki: HowToReloadModulesUsingJMX
Wiki: InternalInterfaces
Wiki: WikiHome