...
When examining the source code, you will notice that the FastQuote subsystems (e.g. aggregation, pricing, and publishing) are decomposed as Maven modules. Each subsystem has an API module and an implementation module. The API modules are used by client modules to pass prices for further processing. API module dependencies are managed using OSGi import/export directives (for more information, see Contribution Modularity). For example, the aggregation implementation module imports the pricing API module, which contains the PricingService
interface. Note that even though the subsystems are contained in separate modules, at runtime Fabric3 will optimize wires between the services to be by-reference calls. This means that modularity incurs no runtime invocation overhead.
Let's now look more closely at the FastQuote modules.
Aggregation
Pricing
Publishing