Closed shwabnitz closed 4 years ago
Please try dev branch.
npm install -g mshima/generator-jhipster-tenantview#dev
I didn’t had time to finish 6.6.0 support.
The dev branch causes another exception:
<homedir>/data/dev/projects/multi3/src/main/webapp/app/company-admin/company-admin-routing.module.ts
============= ==========
events.js:174
throw er; // Unhandled 'error' event
^
Error: Error applying templates
at Environment.error (<homedir>/.npm/lib/node_modules/generator-jhipster/node_modules/yeoman-environment/lib/environment.js:176:40)
at module.exports.error (<homedir>/.npm/lib/node_modules/generator-jhipster/generators/generator-base.js:1478:18)
at Patcher.patch (<homedir>/.npm/lib/node_modules/generator-jhipster-tenantview/node_modules/generator-jhipster-customizer/lib/patcher.js:92:28)
at module.exports.applyPatcher (<homedir>/.npm/lib/node_modules/generator-jhipster-tenantview/node_modules/generator-jhipster-customizer/lib/environment.js:123:33)
at Object.<anonymous> (<homedir>/.npm/lib/node_modules/generator-jhipster-tenantview/node_modules/yeoman-generator/lib/index.js:438:23)
at <homedir>/.npm/lib/node_modules/generator-jhipster-tenantview/node_modules/run-async/index.js:25:25
at new Promise (<anonymous>)
at <homedir>/.npm/lib/node_modules/generator-jhipster-tenantview/node_modules/run-async/index.js:24:19
at self.env.runLoop.add.completed (<homedir>/.npm/lib/node_modules/generator-jhipster-tenantview/node_modules/yeoman-generator/lib/index.js:439:9)
at runCallback (timers.js:705:18)
at tryOnImmediate (timers.js:676:5)
at processImmediate (timers.js:658:5)
Emitted 'error' event at:
at Immediate.setImmediate (<homedir>/.npm/lib/node_modules/generator-jhipster-tenantview/node_modules/yeoman-generator/lib/index.js:451:18)
at runCallback (timers.js:705:18)
at tryOnImmediate (timers.js:676:5)
at processImmediate (timers.js:658:5)
Just tried with master and looks ok.
Released 0.4.0.
Still does not work:
npm install -g mshima/generator-jhipster-tenantview#master
npm WARN generator-jhipster-tenantview@0.4.0 requires a peer of generator-jhipster@^6.3.0 but none is installed. You must install peer dependencies yourself.
npm WARN generator-jhipster-customizer@0.2.1 requires a peer of generator-jhipster@^6.3.0 but none is installed. You must install peer dependencies yourself.
+ generator-jhipster-tenantview@0.4.0
After that: jhipster --blueprints tenantview
throws with all standard and gradle:
<homedir>/data/dev/projects/multi6/README.md
<homedir>/data/dev/projects/multi6/.gitignore
<homedir>/.npm/lib/node_modules/generator-jhipster/generators/common/templates/gitattributes.ejs
<homedir>/data/dev/projects/multi6/.gitattributes
<homedir>/.npm/lib/node_modules/generator-jhipster/generators/common/templates/editorconfig.ejs
<homedir>/data/dev/projects/multi6/.editorconfig
<homedir>/data/dev/projects/multi6/sonar-project.properties
<homedir>/data/dev/projects/multi6/src/main/java/com/mycompany/myapp/aop/tenant/UserAspect.java
<homedir>/data/dev/projects/multi6/src/main/webapp/app/tenant-admin/tenant-admin-routing.module.ts
============= ==========
events.js:174
throw er; // Unhandled 'error' event
^
Error: Error applying templates
at Environment.error (<homedir>/.npm/lib/node_modules/generator-jhipster/node_modules/yeoman-environment/lib/environment.js:176:40)
at module.exports.error (<homedir>/.npm/lib/node_modules/generator-jhipster/generators/generator-base.js:1478:18)
at Patcher.patch (<homedir>/.npm/lib/node_modules/generator-jhipster-tenantview/node_modules/generator-jhipster-customizer/lib/patcher.js:92:28)
at module.exports.applyPatcher (<homedir>/.npm/lib/node_modules/generator-jhipster-tenantview/node_modules/generator-jhipster-customizer/lib/environment.js:123:33)
at Object.<anonymous> (<homedir>/.npm/lib/node_modules/generator-jhipster-tenantview/node_modules/yeoman-generator/lib/index.js:438:23)
at <homedir>/.npm/lib/node_modules/generator-jhipster-tenantview/node_modules/run-async/index.js:25:25
at new Promise (<anonymous>)
at <homedir>/.npm/lib/node_modules/generator-jhipster-tenantview/node_modules/run-async/index.js:24:19
at self.env.runLoop.add.completed (<homedir>/.npm/lib/node_modules/generator-jhipster-tenantview/node_modules/yeoman-generator/lib/index.js:439:9)
at runCallback (timers.js:705:18)
at tryOnImmediate (timers.js:676:5)
at processImmediate (timers.js:658:5)
Emitted 'error' event at:
at Immediate.setImmediate (<homedir>/.npm/lib/node_modules/generator-jhipster-tenantview/node_modules/yeoman-generator/lib/index.js:451:18)
at runCallback (timers.js:705:18)
at tryOnImmediate (timers.js:676:5)
at processImmediate (timers.js:658:5)
I need more log information. There is a patch error above the log you posted.
Found it:
...
? What is the alias given tenants in your application? Tenant
? Would you like to enable internationalization support? No
Found the .jhipster/Tenant.json configuration file, entity can be automatically generated!
The entity tenant is being updated.
? Do you want to update the entity? This will replace the existing files for this entity, all your custom code will be overwritten Yes, re generate the entity
Not needed for 6.6.0, tenantClientRootFolder => clientRootFolder
WARNING! jpaMetamodelFiltering is missing in .jhipster/tenant.json, using 'no' as fallback
WARNING! pagination is missing in .jhipster/tenant.json, using no as fallback
Not needed for 6.6.0, tenantFolderName => entityFolderName
Not needed for 6.6.0, tenantFolderName => entityModelFileName
? Besides JUnit and Jest, which testing frameworks would you like to use? (Press <space> to select, <a> to toggle all, <i> to invert selection)
? Would you like to install other generators from the JHipster Marketplace? No
Git repository initialized.
KeyStore 'src/main/resources/config/tls/keystore.p12' generated successfully.
info Using blueprint generator-jhipster-tenantview for entity-server subgenerator
info Using blueprint generator-jhipster-tenantview for entity-client subgenerator
info Using blueprint generator-jhipster-tenantview for entity-i18n subgenerator
✖ Template: user-management-update.component.html
✖ Target: /((.*)<div class="form-group">\n(\s*)<label jhiTranslate="userManagement\.profiles">Profiles<\/label>)/g
✖ Match:
✖ null
✖ Body:
✖ <div class="row justify-content-center">
<div class="col-8">
<form name="editForm" role="form" novalidate (ngSubmit)="save()" [formGroup]="editForm">
<h2 id="myUserLabel">
Create or edit a User
</h2>
<div *ngIf="user">
<jhi-alert-error></jhi-alert-error>
<div class="form-group" [hidden]="!user.id">
<label>ID</label>
<input type="text" class="form-control" name="id" formControlName="id" readonly>
</div>
<div class="form-group">
<label class="form-control-label">Login</label>
<input type="text" class="form-control" name="login"
formControlName="login">
<div *ngIf="editForm.get('login')!.invalid && (editForm.get('login')!.dirty || editForm.get('login')!.touched)">
<small class="form-text text-danger"
*ngIf="editForm.get('login')?.errors?.required">
This field is required.
</small>
<small class="form-text text-danger"
*ngIf="editForm.get('login')?.errors?.maxlength"
>
This field cannot be longer than 50 characters.
</small>
<small class="form-text text-danger"
*ngIf="editForm.get('login')?.errors?.pattern">
This field can only contain letters, digits and e-mail addresses.
</small>
</div>
</div>
<div class="form-group">
<label class="form-control-label">First Name</label>
<input type="text" class="form-control" name="firstName"
formControlName="firstName">
<div *ngIf="editForm.get('firstName')!.invalid && (editForm.get('firstName')!.dirty || editForm.get('firstName')!.touched)">
<small class="form-text text-danger"
*ngIf="editForm.get('firstName')?.errors?.maxlength"
>
This field cannot be longer than 50 characters.
</small>
</div>
</div>
<div class="form-group">
<label>Last Name</label>
<input type="text" class="form-control" name="lastName"
formControlName="lastName">
<div *ngIf="editForm.get('lastName')!.invalid && (editForm.get('lastName')!.dirty || editForm.get('lastName')!.touched)">
<small class="form-text text-danger"
*ngIf="editForm.get('lastName')?.errors?.maxlength"
>
This field cannot be longer than 50 characters.
</small>
</div>
</div>
<div class="form-group">
<label class="form-control-label">Email</label>
<input type="email" class="form-control" name="email" formControlName="email">
<div *ngIf="editForm.get('email')!.invalid && (editForm.get('email')!.dirty || editForm.get('email')!.touched)">
<small class="form-text text-danger"
*ngIf="editForm.get('email')?.errors?.required">
This field is required.
</small>
<small class="form-text text-danger"
*ngIf="editForm.get('email')?.errors?.maxlength"
>
This field cannot be longer than 100 characters.
</small>
<small class="form-text text-danger"
*ngIf="editForm.get('email')?.errors?.minlength"
>
This field is required to be at least 5 characters.
</small>
<small class="form-text text-danger"
*ngIf="editForm.get('email')?.errors?.email">
Your email is invalid.
</small>
</div>
</div>
<div class="form-check">
<label class="form-check-label" for="activated">
<input class="form-check-input" [attr.disabled]="user.id === undefined ? 'disabled' : null"
type="checkbox" id="activated" name="activated" formControlName="activated">
<span>Activated</span>
</label>
</div>
<div class="form-group">
<label>Profiles</label>
<select class="form-control" multiple name="authority" formControlName="authorities">
<option *ngFor="let authority of authorities" [value]="authority">{{authority}}</option>
</select>
</div>
</div>
<div *ngIf="user">
<button type="button" class="btn btn-secondary" (click)="previousState()">
<fa-icon [icon]="'ban'"></fa-icon> <span
>Cancel</span>
</button>
<button type="submit" [disabled]="editForm.invalid || isSaving" class="btn btn-primary">
<fa-icon [icon]="'save'"></fa-icon> <span>Save</span>
</button>
</div>
</form>
</div>
</div>
✖ Template: user-management.component.html
✖ Target: ((.*)<th(.*)>\s*<span jhiTranslate="userManagement.profiles">)
✖ Match:
✖ null
✖ Body:
✖ <div>
<h2>
<span id="user-management-page-heading">Users</span>
<button class="btn btn-primary float-right jh-create-entity" [routerLink]="['./new']">
<fa-icon [icon]="'plus'"></fa-icon> <span>Create a new User</span>
</button>
</h2>
<jhi-alert-error></jhi-alert-error>
<jhi-alert></jhi-alert>
<div class="table-responsive" *ngIf="users">
<table class="table table-striped" aria-describedby="user-management-page-heading">
<thead>
<tr jhiSort [(predicate)]="predicate" [(ascending)]="ascending" [callback]="transition.bind(this)">
<th scope="col" jhiSortBy="id"><span>ID</span> <fa-icon [icon]="'sort'"></fa-icon></th>
<th scope="col" jhiSortBy="login"><span>Login</span> <fa-icon [icon]="'sort'"></fa-icon></th>
<th scope="col" jhiSortBy="email"><span>Email</span> <fa-icon [icon]="'sort'"></fa-icon></th>
<th scope="col"></th>
<th scope="col"><span>Profiles</span></th>
<th scope="col" jhiSortBy="createdDate"><span>Created Date</span> <fa-icon [icon]="'sort'"></fa-icon></th>
<th scope="col" jhiSortBy="lastModifiedBy"><span>Last Modified By</span> <fa-icon [icon]="'sort'"></fa-icon></th>
<th scope="col" jhiSortBy="lastModifiedDate"><span>Last Modified Date</span> <fa-icon [icon]="'sort'"></fa-icon></th>
<th scope="col"></th>
</tr>
</thead>
<tbody *ngIf ="users">
<tr *ngFor="let user of users; trackBy: trackIdentity">
<td><a [routerLink]="['./', user.login, 'view']">{{user.id}}</a></td>
<td>{{user.login}}</td>
<td>{{user.email}}</td>
<td>
<button class="btn btn-danger btn-sm" (click)="setActive(user, true)" *ngIf="!user.activated"
>Deactivated</button>
<button class="btn btn-success btn-sm" (click)="setActive(user, false)" *ngIf="user.activated"
[disabled]="!currentAccount || currentAccount.login === user.login">Activated</button>
</td>
<td>
<div *ngFor="let authority of user.authorities">
<span class="badge badge-info">{{ authority }}</span>
</div>
</td>
<td>{{user.createdDate | date:'dd/MM/yy HH:mm'}}</td>
<td>{{user.lastModifiedBy}}</td>
<td>{{user.lastModifiedDate | date:'dd/MM/yy HH:mm'}}</td>
<td class="text-right">
<div class="btn-group">
<button type="submit"
[routerLink]="['./', user.login, 'view']"
class="btn btn-info btn-sm">
<fa-icon [icon]="'eye'"></fa-icon>
<span class="d-none d-md-inline">View</span>
</button>
<button type="submit"
[routerLink]="['./', user.login, 'edit']"
queryParamsHandling="merge"
class="btn btn-primary btn-sm">
<fa-icon [icon]="'pencil-alt'"></fa-icon>
<span class="d-none d-md-inline">Edit</span>
</button>
<button type="button" (click)="deleteUser(user)"
class="btn btn-danger btn-sm" [disabled]="!currentAccount || currentAccount.login === user.login">
<fa-icon [icon]="'times'"></fa-icon>
<span class="d-none d-md-inline">Delete</span>
</button>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div *ngIf="users">
<div class="row justify-content-center">
<jhi-item-count [page]="page" [total]="totalItems" [itemsPerPage]="itemsPerPage"></jhi-item-count>
</div>
<div class="row justify-content-center">
<ngb-pagination [collectionSize]="totalItems" [(page)]="page" [pageSize]="itemsPerPage" [maxSize]="5" [rotate]="true" [boundaryLinks]="true" (pageChange)="loadPage(page)"></ngb-pagination>
</div>
</div>
</div>
✖ Template: package.json
✖ Target: /("typescript": "[\w.]*",)(.*),(\n\s*"webdriver-manager": "[\w.]*".*"generator-jhipster": "[\w.]*")/s
✖ Match:
✖ null
✖ Body:
✖ {
"name": "multi-7",
"version": "0.0.1-SNAPSHOT",
"description": "Description for multi7",
"private": true,
"license": "UNLICENSED",
"cacheDirectories": [
"node_modules"
],
"dependencies": {
"@angular/common": "8.2.14",
"@angular/compiler": "8.2.14",
"@angular/core": "8.2.14",
"@angular/forms": "8.2.14",
"@angular/platform-browser": "8.2.14",
"@angular/platform-browser-dynamic": "8.2.14",
"@angular/router": "8.2.14",
"@fortawesome/angular-fontawesome": "0.5.0",
"@fortawesome/fontawesome-svg-core": "1.2.26",
"@fortawesome/free-solid-svg-icons": "5.12.0",
"@ng-bootstrap/ng-bootstrap": "5.1.4",
"@ngx-translate/core": "11.0.1",
"@ngx-translate/http-loader": "4.0.0",
"bootstrap": "4.4.1",
"core-js": "3.5.0",
"moment": "2.24.0",
"ng-jhipster": "0.11.5",
"ngx-cookie": "4.0.2",
"ngx-infinite-scroll": "8.0.1",
"ngx-webstorage": "4.0.1",
"rxjs": "6.5.3",
"swagger-ui-dist": "3.24.3",
"tslib": "1.10.0",
"zone.js": "0.10.2"
},
"devDependencies": {
"@angular/cli": "8.3.20",
"@angular/compiler-cli": "8.2.14",
"@ngtools/webpack": "8.3.20",
"@types/jest": "24.0.23",
"@types/node": "12.12.17",
"@typescript-eslint/eslint-plugin": "2.11.0",
"@typescript-eslint/eslint-plugin-tslint": "2.11.0",
"@typescript-eslint/parser": "2.11.0",
"angular2-template-loader": "0.6.2",
"autoprefixer": "9.7.3",
"base-href-webpack-plugin": "2.0.0",
"browser-sync": "2.26.7",
"browser-sync-webpack-plugin": "2.2.2",
"cache-loader": "4.1.0",
"codelyzer": "5.2.0",
"copy-webpack-plugin": "5.1.1",
"css-loader": "3.3.2",
"eslint": "6.7.2",
"eslint-config-jhipster": "0.0.1",
"eslint-config-prettier": "6.7.0",
"eslint-loader": "3.0.3",
"file-loader": "5.0.2",
"fork-ts-checker-webpack-plugin": "3.1.1",
"friendly-errors-webpack-plugin": "1.7.0",
"html-loader": "0.5.5",
"html-webpack-plugin": "3.2.0",
"husky": "3.1.0",
"jest": "24.9.0",
"jest-date-mock": "1.0.7",
"jest-junit": "10.0.0",
"jest-preset-angular": "8.0.0",
"jest-sonar-reporter": "2.0.0",
"lint-staged": "8.2.1",
"mini-css-extract-plugin": "0.8.0",
"moment-locales-webpack-plugin": "1.1.2",
"optimize-css-assets-webpack-plugin": "5.0.3",
"postcss-loader": "3.0.0",
"prettier": "1.19.1",
"reflect-metadata": "0.1.13",
"rimraf": "3.0.0",
"sass": "1.23.7",
"sass-loader": "8.0.0",
"simple-progress-webpack-plugin": "1.1.2",
"style-loader": "1.0.1",
"terser-webpack-plugin": "2.3.0",
"thread-loader": "2.1.3",
"to-string-loader": "1.1.6",
"ts-loader": "6.2.1",
"tslint": "5.20.1",
"typescript": "3.4.5",
"generator-jhipster-tenantview": "0.4.0",
"@openapitools/openapi-generator-cli": "0.0.14-4.0.2",
"webpack": "4.41.2",
"webpack-cli": "3.3.10",
"webpack-dev-server": "3.9.0",
"webpack-merge": "4.2.2",
"webpack-notifier": "1.8.0",
"webpack-visualizer-plugin": "0.1.11",
"workbox-webpack-plugin": "4.3.1",
"write-file-webpack-plugin": "4.5.1"
},
"peerDependencies": {
"generator-jhipster": "6.6.0"
},
"engines": {
"node": ">=8.9.0"
},
"scripts": {
"prettier:format": "prettier --write \"{,src/**/}*.{md,json,ts,css,scss,yml}\"",
"lint": "eslint . --ext .js,.ts",
"lint:fix": "npm run lint -- --fix",
"ngc": "ngc -p tsconfig-aot.json",
"cleanup": "rimraf build/resources/main/static/ build/resources/main/aot",
"clean-www": "rimraf build/resources/main/static/app/{src,build/}",
"start": "npm run webpack:dev",
"start-tls": "npm run webpack:dev -- --env.tls",
"serve": "npm run start",
"build": "npm run webpack:prod",
"test": "npm run lint && jest --coverage --logHeapUsage -w=2 --config src/test/javascript/jest.conf.js",
"test:watch": "npm run test -- --watch",
"webpack:dev": "npm run webpack-dev-server -- --config webpack/webpack.dev.js --inline --hot --port=9060 --watch-content-base --env.stats=minimal",
"webpack:dev-verbose": "npm run webpack-dev-server -- --config webpack/webpack.dev.js --inline --hot --port=9060 --watch-content-base --profile --progress --env.stats=normal",
"webpack:build:main": "npm run webpack -- --config webpack/webpack.dev.js --env.stats=minimal",
"webpack:build": "npm run cleanup && npm run webpack:build:main",
"webpack:prod:main": "npm run webpack -- --config webpack/webpack.prod.js --profile",
"webpack:prod": "npm run cleanup && npm run webpack:prod:main && npm run clean-www",
"webpack:test": "npm run test",
"webpack-dev-server": "node --max_old_space_size=4096 node_modules/webpack-dev-server/bin/webpack-dev-server.js",
"webpack": "node --max_old_space_size=4096 node_modules/webpack/bin/webpack.js"
},
"jestSonar": {
"reportPath": "build/test-results/jest",
"reportFile": "TESTS-results-sonar.xml"
}
}
✖ Error ignored
============= Files queued to be written ==========
<homedir>/data/dev/projects/multi7/bower.json
<homedir>/data/dev/projects/multi7/package.json
...
Should be fixed on master
Commands:
Environment: Using the following environment: openjdk 11.0.5 npm version 6.13.6 yo version 3.1.0 node version 10.18.1 jhipster 6.6.0 Entity Audit Generator: 3.1.1 Ubuntu 18.04
When generating an standard application (no elasticsearch) the following TypeError is thrown before any generation: