Sign inSign up

pascalgrimaud/jhipster-gateway

By pascalgrimaud

•Updated almost 10 years ago

experimental

Image
0

855

pascalgrimaud/jhipster-gateway repository overview

⁠jhgateway

This application was generated using JHipster, you can find documentation and help at 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⁠ 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: [email protected]: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

Tag summary

Content type

Image

Digest

Size

404.3 MB

Last updated

almost 10 years ago

docker pull pascalgrimaud/jhipster-gateway