Guys, I briefly mentioned that to Anatole and maybe we get a chance to talk about it in today's hangout, but since not many seem to be available today, let me give you a brief overview here.
Java EE 7 already had some high hopes and goals for "multitenancy", so Thomas Kurian's announcement that Java EE 8 should support that to be "fit for the Cloud" isn't entirely new. As other wishes expressed in the EE Umbrella EG like more than just 2 profiles, etc. One comparison of early configuration tools Anatole had in his slides is remarkable, as it was done in 2004, when even Spring was still in its infancy and Web Services meant either nothing or SOAP. The Agile Manifesto also was fairly recent and Agile only started to be discovered. http://www.mail-archive.com/[email protected]/msg37597.html It pointed out, JFig as one of the first had the notion of "config" Allowing different config files to be loaded dependent on the environment they are in i.e. development, test, uat or production. I don't think Commons Config has introduced with V2, but e.g. Netflix Archaius built something around it based on a "DeploymentContext". Spring has the @Profile (probably inspired by e.g. the same term in Maven builds) which is a pretty lose term but is often used for staging. DeltaSpike knows a ProjectStage slightly more flexible than e.g. JSF until now, but that's about it. However, modern enterprises and projects especially if they practice rapid development and delivery need more than that. The Environment or "Profile" dimensions contain at least 3 dimensions: - Tenant (not only Customer, can be Project, Service, etc.) - Stage (Dev, Test, UAT, Prod,...) - Version (can be Sprint, Iteration, Week,...) Some cases also may have other needs e.g. "architecture", or similar, in a Web based server At least a single construct should be there to tell them apart. Whether it's @Profile("tenantA_v2_uat") I'd say in Spring this can be modeled using the profile. A combination of stage and version I guess could be done with DeltaSpike's ProjectStage, but it would stretch it very far to apply the same to a tenant, product or service. Guess a framework, API or standard really capable of multi-tenancy should find a different term. Regards, Werner Keil | JCP Executive Committee Member, JSR 363 Co Spec Lead | Eclipse UOMo Lead, Babel Language Champion | Apache Committer Twitter @wernerkeil | @UnitAPI | @JSR354 | @AgoravaProj | @DeviceMap | #DevOps | #EclipseUOMo Skype werner.keil | Google+ gplus.to/wernerkeil
