https://github.com/pascalgrimaud/jhipster-gateway
https://github.com/pascalgrimaud/jhipster-gateway
Last synced: 8 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/pascalgrimaud/jhipster-gateway
- Owner: pascalgrimaud
- Created: 2016-07-11T06:20:37.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2016-10-01T23:04:58.000Z (over 9 years ago)
- Last Synced: 2025-07-11T11:34:38.049Z (10 months ago)
- Language: Java
- Size: 3.87 MB
- Stars: 0
- Watchers: 2
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# jhgateway
This application was generated using JHipster, you can find documentation and help at [https://jhipster.github.io](https://jhipster.github.io).
~~~
/-------------\
| Browser |
\------+------/
|
|
V 8080
/-----------------------------------------------------\
| Gateway |
| +-----------+ +--------------+ +----------+ |
| | | | Zuul Proxy | | | | +-------+
| | Angular | | | | Access +-|---->| |
| | App | +--------------+ | Control | | | Users |
| | | | Ribbon | | | | | Roles |
| +-----------+ +---+------+---+ +----------+ | +-------+
| | | |
\-+---------------------------------------------------/
| | |
| | |
| | |
| +-----------/ \----------------+
/-----------------------\ | | |
| JHipster Registry | | V 8081 V 8082
| | | /-------------\ +-----+ /-------------\ +-----+
| +-----------------+ | | | | | | | | | |
| | Eureka Server | | | | Service 1 +---->| DB1 | | Service 2 +---->| DB2 |
| +-----------------+ | | | | | | | | | |
| | Config Server | | | \--+-----+----/ +-----+ +--+------+---/ +-----+
| +--------+--------+ | 8761 | | | | |
| | |<-------+----+-----------------------------------/ |
\-----------------------/ | |
| \-------------+----------------------/
V |
+-------+ |
| | /------------------------------------------------\
| Git | | ELK | |
| Repo | | V 5000 |
+-------+ | +---------+ +----------+ +--------+ |
| | Elastic | | Logstash | | Kibana | |
| | Search |<-----| | | | |
| +---------+ +----------+ +--------+ |
\------------------------------------------------/
~~~
## Development
Before you can build this project, you must install and configure the following dependencies on your machine:
1. [Node.js][]: We use Node to run a development web server and build the project.
Depending on your system, you can install Node either from source or as a pre-packaged bundle.
After installing Node, you should be able to run the following command to install development tools (like
[Bower][] and [BrowserSync][]). You will only need to run this command when dependencies change in package.json.
npm install
We use [Gulp][] as our build system. Install the Gulp command-line tool globally with:
npm install -g gulp
Run the following commands in two separate terminals to create a blissful development experience where your browser
auto-refreshes when files change on your hard drive.
./mvnw
gulp
Bower is used to manage CSS and JavaScript dependencies used in this application. You can upgrade dependencies by
specifying a newer version in `bower.json`. You can also run `bower update` and `bower install` to manage dependencies.
Add the `-h` flag on any command to see how you can use it. For example, `bower update -h`.
## Building for production
To optimize the jhgateway client for production, run:
./mvnw -Pprod clean package
This will concatenate and minify CSS and JavaScript files. It will also modify `index.html` so it references
these new files.
To ensure everything worked, run:
java -jar target/*.war
Then navigate to [http://localhost:8080](http://localhost:8080) in your browser.
## Testing
Unit tests are run by [Karma][] and written with [Jasmine][]. They're located in `src/test/javascript/` and can be run with:
gulp test
UI end-to-end tests are powered by [Protractor][], which is built on top of WebDriverJS. They're located in `src/test/javascript/e2e`
and can be run by starting Spring Boot in one terminal (`./mvnw spring-boot:run`) and running the tests (`gulp itest`) in a second one.
## Continuous Integration
To setup this project in Jenkins, use the following configuration:
* Project name: `jhgateway`
* Source Code Management
* Git Repository: `git@github.com:xxxx/jhgateway.git`
* Branches to build: `*/master`
* Additional Behaviours: `Wipe out repository & force clone`
* Build Triggers
* Poll SCM / Schedule: `H/5 * * * *`
* Build
* Invoke Maven / Tasks: `-Pprod clean package`
* Execute Shell / Command:
````
./mvnw spring-boot:run &
bootPid=$!
sleep 30s
gulp itest
kill $bootPid
````
* Post-build Actions
* Publish JUnit test result report / Test Report XMLs: `build/test-results/*.xml,build/reports/e2e/*.xml`
[JHipster]: https://jhipster.github.io/
[Node.js]: https://nodejs.org/
[Bower]: http://bower.io/
[Gulp]: http://gulpjs.com/
[BrowserSync]: http://www.browsersync.io/
[Karma]: http://karma-runner.github.io/
[Jasmine]: http://jasmine.github.io/2.0/introduction.html
[Protractor]: https://angular.github.io/protractor/