Skip to content

dmadunic/geodata-sb-rest

Repository files navigation

geodataRestSb

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.

Project Structure

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 at generator-jhipster key. You may find generator-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 files
  • npmw - 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 ./npmw instead of the traditional npm you 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

Development

1. Database setup (optional)

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";

Running geodata-rest-sb application

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

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

Building for production

Packaging as jar

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.

Packaging as war

To package your application as a war in order to deploy it to an application server, run:

./gradlew -Pprod -Pwar clean bootWar

Testing

To launch your application's tests, run:

./gradlew test integrationTest jacocoTestReport

For more information, refer to the Running tests page.

Code quality

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.

Using Docker to simplify development (optional)

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.

Buidling docker image

JIB plugin is used to build geodata-rest-sb application docker image.

To build local image use the following command:

./gradlew bootJar -Pprod jibDockerBuild

This 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 jib

will 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=latest

For 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

Continuous Integration (optional)

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.

About

Spring boot rest-api of geodata service

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages