Spring Boot rest only implementation of geodataApp.
This application was generated using JHipster 7.5.0, you can find documentation and help at https://www.jhipster.tech/documentation-archive/v7.5.0.
Node is required for generation and recommended for development. package.json is always generated for a better development experience with prettier, commit hooks, scripts and so on.
In the project root, JHipster generates configuration files for tools like git, prettier, eslint, husk, and others that are well known and you can find references in the web.
/src/* structure follows default Java structure.
.yo-rc.json- Yeoman configuration file JHipster configuration is stored in this file atgenerator-jhipsterkey. You may findgenerator-jhipster-*for specific blueprints configuration..yo-resolve(optional) - Yeoman conflict resolver Allows to use a specific action when conflicts are found skipping prompts for files that matches a pattern. Each line should match[pattern] [action]with pattern been a Minimatch pattern and action been one of skip (default if ommited) or force. Lines starting with#are considered comments and are ignored..jhipster/*.json- JHipster entity configuration filesnpmw- wrapper to use locally installed npm. JHipster installs Node and npm locally using the build tool by default. This wrapper makes sure npm is installed locally and uses it avoiding some differences different versions can cause. By using./npmwinstead of the traditionalnpmyou can configure a Node-less environment to develop or test your application./src/main/docker- Docker configurations for the application and services that the application depends on
This step needs to be performed only if you have not already done it while preparing geodataApp.
If you already do not have it, create a database named: ag04. Connect to database with user that has sufficient privileges and execute:
CREATE DATABASE ag04;The next step is to create geodata user and his corresponding schema. To do so execute the following sql commands:
CREATE ROLE geodata NOSUPERUSER NOCREATEDB NOCREATEROLE NOINHERIT LOGIN PASSWORD 'geodatapwd';
GRANT ALL PRIVILEGES ON DATABASE ag04 TO geodata;Disconnect from "default" database, and connect to ag04 database using the same user as in the previous steps.
CREATE SCHEMA IF NOT EXISTS AUTHORIZATION "geodata";For geodata-rest-sb application to be run you need to specify one runtime env variable GR_LIQUIBASE_ENABLED with value set to true or false.
This variable controls if geodata-rest-sb liquibase is enabled or not.
It should not be enabled if you have already created all database objects and populated them (for example while running geodataApp).
Once, you have this env var in place start your application in the dev profile by running:
./gradlew
For further instructions on how to develop with JHipster, have a look at Using JHipster in development.
JHipster Control Center can help you manage and control your application(s). You can start a local control center server (accessible on http://localhost:7419) with:
docker-compose -f src/main/docker/jhipster-control-center.yml up
To build the final jar and optimize the geodataSbRest application for production, run:
./gradlew -Pprod clean bootJar
To ensure everything worked, run:
java -jar build/libs/*.jar
Refer to Using JHipster in production for more details.
To package your application as a war in order to deploy it to an application server, run:
./gradlew -Pprod -Pwar clean bootWar
To launch your application's tests, run:
./gradlew test integrationTest jacocoTestReport
For more information, refer to the Running tests page.
Sonar is used to analyse code quality. You can start a local Sonar server (accessible on http://localhost:9001) with:
docker-compose -f src/main/docker/sonar.yml up -d
Note: we have turned off authentication in src/main/docker/sonar.yml for out of the box experience while trying out SonarQube, for real use cases turn it back on.
You can run a Sonar analysis with using the sonar-scanner or by using the gradle plugin.
Then, run a Sonar analysis:
./gradlew -Pprod clean check jacocoTestReport sonarqube
For more information, refer to the Code quality page.
You can use Docker to improve your JHipster development experience. A number of docker-compose configuration are available in the src/main/docker folder to launch required third party services.
You can fully dockerize your application and all the services that it depends on. To achieve this, you first need to build a docker image of geodata-rest-sb app (for more see section below).
Then run:
docker-compose -f src/main/docker/app.yml up -d
This will start, inside the docker container, the following services:
- geodata-rest-sb
- geodata angular frontend
- postgres database
Now, you can access the application by openning http://localhost:9000/ in your browser.
To start only geodata-rest-sb and geodata-ng applications, which connect to local host Postgres database, run:
docker-compose -f src/main/docker/app-host.yml up -d
For more information refer to Using Docker and Docker-Compose, this page also contains information on the docker-compose sub-generator (jhipster docker-compose), which is able to generate docker configurations for one or several JHipster applications.
JIB plugin is used to build geodata-rest-sb application docker image.
To build local image use the following command:
./gradlew bootJar -Pprod jibDockerBuildThis will build image named ag04/geodata-rest-sb in your local registry with the tag same as the current project version.
On the other hand, the command:
./gradlew bootJar -Pprod jibwill build image named ag04/geodata-rest-sb in docker.io registry, also with the tag same as the project version.
Image name, version and docker Registry used in container image build can be customized by passing these arguments:
| Argument name | Description |
|---|---|
| imageName | Name of the image to be built |
| imageVersion | Image tag to be used insted of project version |
| dockerRegistryUrl | URL of the docker registry this image should be pushed to (applicable only for jib command) |
For example, to build (local) image wiht the latest tag run:
./gradlew bootJar -Pprod jibDockerBuild -PimageVersion=latestFor all other parameters available (docker registry authentication etc) for jib plugin please see official plugin docs: https://github.com/GoogleContainerTools/jib/tree/master/jib-gradle-plugin
To configure CI for your project, run the ci-cd sub-generator (jhipster ci-cd), this will let you generate configuration files for a number of Continuous Integration systems. Consult the Setting up Continuous Integration page for more information.