com.github.ffremont.microservices.springboot:pojo

Spring Boot Starter Parent

License

License

Categories

Categories

Microservices Container
GroupId

GroupId

com.github.ffremont.microservices.springboot
ArtifactId

ArtifactId

pojo
Last Version

Last Version

1.1.0
Release Date

Release Date

Type

Type

jar
Description

Description

Spring Boot Starter Parent
Project Organization

Project Organization

Pivotal Software, Inc.

Download pojo

How to add to project

<!-- https://jarcasting.com/artifacts/com.github.ffremont.microservices.springboot/pojo/ -->
<dependency>
    <groupId>com.github.ffremont.microservices.springboot</groupId>
    <artifactId>pojo</artifactId>
    <version>1.1.0</version>
</dependency>
// https://jarcasting.com/artifacts/com.github.ffremont.microservices.springboot/pojo/
implementation 'com.github.ffremont.microservices.springboot:pojo:1.1.0'
// https://jarcasting.com/artifacts/com.github.ffremont.microservices.springboot/pojo/
implementation ("com.github.ffremont.microservices.springboot:pojo:1.1.0")
'com.github.ffremont.microservices.springboot:pojo:jar:1.1.0'
<dependency org="com.github.ffremont.microservices.springboot" name="pojo" rev="1.1.0">
  <artifact name="pojo" type="jar" />
</dependency>
@Grapes(
@Grab(group='com.github.ffremont.microservices.springboot', module='pojo', version='1.1.0')
)
libraryDependencies += "com.github.ffremont.microservices.springboot" % "pojo" % "1.1.0"
[com.github.ffremont.microservices.springboot/pojo "1.1.0"]

Dependencies

compile (1)

Group / Artifact Type Version
org.glassfish.jersey.ext : jersey-bean-validation jar 2.16

Project Modules

There are no modules declared in this project.

SbDeployer

Application Java décomposée en 2 permettant de livrer / relivrer des micro services Spring boot.

  • manager : micro service maître gérant les micro services et connecté à MongoDb
  • node : micro service hébergé sur l'instance hébergeant les micro services

Fonctionnalités

  • Définition des microservices à déployer dans MongoDb
  • Cibler le déploiement d'un microservice sur un instant précise
  • Accès sécurisé (BASIC) au manager

Pré-requis

  • MongoDb
  • Une instance pour héberger le micro service "manager"
  • Des instances pour héberger les micro services "node"

Manager

Installation

$ wget "https://oss.sonatype.org/service/local/artifact/maven/redirect?r=releases&g=com.github.ffremont.microservices.springboot&a=manager&v=X.X.X&e=zip&c=package" -O manager_X.X.X.zip
$ unzip manager_X.X.X.zip
$ java -jar manager_X.X.X.jar

Configuration

  • Fichier de configuration "config/application.properties"
server.port=8888

logging.file=logs/sb-manager.log

# Nexus config
nexus.baseurl=http://nexus.local:8081/nexus
# Nexus repo used
nexus.repo[0]=snapshots
nexus.repo[1]=releases

# Security access
app.security.users.admin.pwd=secret
app.security.users.admin.role=ADMIN
app.security.users.nodeUser.pwd=azerty
app.security.users.nodeUser.role=USER

spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017
spring.data.mongodb.database=test

error.whitelabel.enabled=false

API Rest

Récupération des micro services

  • Description : Retourne la liste de tous les micro services du cluster
  • Verbe : GET
  • Accept : application/vnd.microservice+json
  • Chemin : /
  • Habilitation : ADMIN , USER
  • Retour : MicroServiceRest[]

Récupération d'un micro service

  • Description : Retourne les données sur le micro service
  • Verbe : GET
  • Accept : application/vnd.microservice+json
  • Chemin : /{msName}
  • Habilitation : ADMIN , USER
  • Retour : MicroServiceRest[]

Récupération du jar

  • Description : Retourne le jar venant de Nexus
  • Verbe : GET
  • Accept : application/java-archive
  • Chemin : /{msName}/binary
  • Cache : cache par validation avec etag
  • Habilitation : ADMIN , USER
  • Retour : le binaire (content-type = application/java-archive)

Récupération du fichier de propriétés

  • Description : Retourne le contenu du fichier de propriété. Il contient les properties du "namespaceProperties" du micro service. Cette liste peut être affimée via une "whitelist" qui se nomme "properties". Si la liste est null, tout le namespace sera utilisé.
  • Verbe : GET
  • Accept : text/plain"
  • Chemin : /{msName}/properties
  • Cache par expiration : 86400
  • Habilitation : ADMIN , USER
  • Retour : le binaire (content-type = application/java-archive)

Ajout d'un micro service

  • Description : Permet d'ajouter un micro service à un node sur un cluster.
  • Verbe : POST
  • Contenu : json de l'objet "MicroServiceRest"
  • Accept : application/vnd.microservice+json
  • Chemin : /
  • Habilitation : ADMIN
  • Retour : code 200

Modification d'un micro service

  • Description : Permet de modifier un micro service existant.
  • Verbe : PUT
  • Contenu : json de l'objet "MicroServiceRest"
  • Accept : application/vnd.microservice+json
  • Chemin : /{msName}
  • Habilitation : ADMIN
  • Retour : code 200

Suppression d'un micro service

  • Description : Permet de supprimer un micro service sur un node d'un cluster. Le micro service doit être "inactif" depuis au moins 3 minutes pour être supprimé.
  • Verbe : DELETE
  • Contenu : json de l'objet "MicroServiceRest"
  • Chemin : /{msName}
  • Habilitation : ADMIN
  • Retour : code 200

Node

Installation

$ wget "https://oss.sonatype.org/service/local/artifact/maven/redirect?r=releases&g=com.github.ffremont.microservices.springboot&a=node&v=X.X.X&e=zip&c=package" -O node_X.X.X.zip
$ unzip node_X.X.X.zip
$ java -jar node_X.X.X.jar

Configuration

  • Fichier de configuration "config/application.properties"
server.port=8889

# debug
logging.level.com.github.ffremont=DEBUG

# Possibilité de définir la version de java à utiliser, sinon JAVA_HOME par défaut
#app.java.exec=/home/florent/Applications/jdk1.8.0_20/bin/java

logging.file=logs/sb-manager.log
logging.config=config/logback.xml

# Master config
app.master.host=localhost
app.master.port=8888
app.master.contextRoot=manager

# Master access
app.master.user=nodeUser
app.master.pwd=azerty

# Node config
app.node=myNodeA
app.cluster=myCluster
# Répertoire où seront stockés les livrables
app.base=/tmp/testSbNode

error.whitelabel.enabled=false

Limitations

  • Unix
  • MongoDb
  • Java 8

Versions

Version
1.1.0
1.0.5