Apache Rave has been designed with extension in mind and provides many different ways to override, supplement or modify out of the box components. Apache Rave leverages a combination of well defined interfaces and the Spring Framework as a mechanism of extensibility. This powerful approach gives developers the ability to override Apache Rave bean implementations, inject Apache Rave beans into custom code and wire additional components into Apache Rave beans that depend on lists.
You will find guides for extending Apache Rave in common ways below, but if you are unfamiliar with Spring's inversion of control (IoC), it is recommended that you read the Overview of the Spring Framework here.