Come creare un nuovo microservizio

  • all’interno della shell di ubuntu creare una nuova cartella con il nome desiderato, spostarsi nella nuova directory ed avviare jhipster utilizzando il comando jhipster
  • all’avvio di jhipster selezionare il tipo “microservice application, selezionare No alla selezione della reattività e inserire il nome, inserire una porta libera, scegliere nessun servizio di discovery, selezionare il tipo di autenticazione JWT(stateless,with a token), selezionare il tipo di database (SQL) seguito dalla production e dal development entrambi MySQL,selezionare sì alla domanda sull’utilizzo della spring cache abstraction (implementare con Hazelcast) e sì anche alla domanda successiva ,selezionare maven per la costruzione del backend,  alla selezione di altre tecnologie da utilizzare selezionare “API first development using  OpenAPI-generator”, selezionare sì per l’international support e selezionare la lingua nativa e addizionale infine rispondere No alla domanda di installazioni aggiuntive dal market di jHipster
  • Da riga di comando creare un branch attraverso il codice git branch develop e spostarsi su di esso attraverso il comando gich develop
  • In seguito alla generazione, la prima cosa da fare è la formattazione del POM, si può utilizzare un formattatore di file XML (ad esempio XML tools se si utilizza visual studio code)
  • Il passo successivo è la configuazione del Pom, all’interno del tls nel file application-dev.yml modificare l’url inserendo il nome desiderato (Esempiojdbc:mysql://localhost:3306/aig_ca_pippo_default?…….) ed inserire una password;
  • Creare un nuovo profilo (<profile.stage /> <id>stage</id> ed all’interno delle properties dei profile inserire:

+                                          <properties>

+                                                         <stage>,stage</stage>

+                                          </properties>

+                           </profile>

+                           <profile>

  •  inserire nel Pom, all’interno dei plugin inserire quello dedicato a gitflow

<groupId>com.amashchenko.maven.plugin</groupId>

+                                                         <artifactId>gitflow-maven-plugin</artifactId>

+                                                         <version>1.13.0</version>

+                                                         <configuration>

+                                                                       <gitFlowConfig>

+                                                                                      <productionBranch>master</productionBranch>

+                                                                                      <developmentBranch>develop</developmentBranch>

+                                                                                      <featureBranchPrefix>feature/</featureBranchPrefix>

+                                                                                      <releaseBranchPrefix>release/</releaseBranchPrefix>

+                                                                                      <hotfixBranchPrefix>hotfix/</hotfixBranchPrefix>

+                                                                                      <supportBranchPrefix>support/</supportBranchPrefix>

+                                                                                      <versionTagPrefix>v</versionTagPrefix>

+                                                                                      <origin>origin</origin>

+                                                                       </gitFlowConfig>

+                                                         </configuration>

+                                          </plugin>

+                                          <plugin>

  • Nelle configurazioni creare un nuovo file application -stage.yml +aig:

+  profile: stage

+application-config:

+  database:

+    prefix: aig_stage_ca_pippo _default

  • Aggiornare la versione dello snapshot, rimuovere le limitazione della ram (cercare Xmx256m e cancellarlo)  e all’interno del groupId, modificare il codice autogenerato cancellando il nome inserito-Xmx25
  • Dopo aver eseguito questi passaggi si può già creare il primo commit eseguendo il comando        “git add .” -> “git commit -m “initial configuration”
  • L’ultima parte riguarda la security, per prima cosa bisogna inserire il seguente codice nelle depencency <dependency>

+                                          <groupId>com.eneasys.apigest</groupId>

+                                          <artifactId>security</artifactId>

+                                          <version>1.1.0</version>

+                           </dependency>

  • Importare +@Import({SecurityProblemSupport.class, TokenProvider.class}) all’interno di src/main/java/com/eneasys/apigest/contexts_apps/commerce/config/SecurityConfiguration.java ed eliminare quello autogenerato
  • Cancellare la cartella security di default generata da jhipster, ma prima spostare SpringSecurityAuditorWave in config e in seguito modificare gli import dei package in securityConfiguration lasciando solo “com.eneasys.apigest.security.*” e “com.eneasys.apigest.security.jwt”