Site ==> Invoke Servlets ==> Use Services (Through @reference annotation) ==> many internal services use a common configuration service ( @Designate(ocd) incorporated in a dedicate implementation service itself)
Now we are asked to white label the site. (ie. change the logo, address, footer ...) but keep the functionality the same. The configuration OCD has references to file location of email templates, database connection parameters, templates, ... All these need to be review and probably need to change too, but the actual services itself will be the same. (ie. email service, pickup the email template from disk format and send this to the client. The template for each white label site will be different OR database connection will point to a different schema, but the db will have the same structure.)
In this scenario we will create a separate site using the same body components, and customize the header and footer for each page template. Question is how we can reuse the same services without copying the whole maven project form com.company.project1 to com.comopany.project2 with the only difference to be in the configuration setup.