generator-jhipster-multitenancy
Version:
A JHipster blueprint for creating multitenant applications
53 lines (47 loc) • 2.1 kB
JavaScript
const mtUtils = require('../multitenancy-utils');
const entityTenantAwareTemplates = ['Entity.java'];
const tenantTemplates = ['_TenantResource', '_Tenant.java'];
module.exports = {
writeFiles,
partials: {
entityTenantAwareTemplates: context =>
mtUtils.requireTemplates('./entity-server/partials/server/', entityTenantAwareTemplates, context),
tenantTemplates: context => mtUtils.requireTemplates('./entity-server/partials/server/', tenantTemplates, context)
}
};
function writeFiles() {
this.tenantisedEntityServices = `@Before("execution(* ${this.packageName}.service.UserService.*(..))`;
if (this.configOptions.tenantAwareEntities) {
this.configOptions.tenantAwareEntities.forEach(tenantAwareEntity => {
this.tenantisedEntityServices = `${this.tenantisedEntityServices} || execution(* ${this.packageName}.service.${tenantAwareEntity}Service.*(..))`;
});
}
this.tenantisedEntityServices = `${this.tenantisedEntityServices}")`;
const files = {
templates: [
{
condition: generator => generator.tenantAware,
path: this.SERVER_MAIN_SRC_DIR,
templates: [
{
file: 'package/_EntityAspect.java',
renameTo: generator => `${this.packageFolder}/aop/${this.tenantNameLowerFirst}/${this.entityClass}Aspect.java`
}
]
},
{
condition: generator => generator.tenantAware,
path: this.SERVER_MAIN_SRC_DIR,
templates: [
{
file: 'package/aop/_tenant/_TenantAspect.java',
renameTo: generator =>
`${this.packageFolder}/aop/${this.tenantNameLowerFirst}/${this.tenantNameUpperFirst}Aspect.java`
}
]
}
]
};
// parse the templates and write files to the appropriate locations
this.writeFilesToDisk(files, this, false);
}