Browse Source

first commit

placidenduwayo 2 years ago
commit
5a2625cc83
100 changed files with 2841 additions and 0 deletions
  1. 0
    0
      README.md
  2. BIN
      address-microservice/.mvn/wrapper/maven-wrapper.jar
  3. 2
    0
      address-microservice/.mvn/wrapper/maven-wrapper.properties
  4. 32
    0
      address-microservice/Dockerfile
  5. 23
    0
      address-microservice/HELP.md
  6. 316
    0
      address-microservice/mvnw
  7. 188
    0
      address-microservice/mvnw.cmd
  8. 93
    0
      address-microservice/pom.xml
  9. 14
    0
      address-microservice/src/main/java/fr/natan/microservices/addressmicroservice/AddressMicroserviceApplication.java
  10. 4
    0
      address-microservice/src/main/java/fr/natan/microservices/addressmicroservice/exceptions/AddressAlreadyExistsException.java
  11. 4
    0
      address-microservice/src/main/java/fr/natan/microservices/addressmicroservice/exceptions/AddressFieldsEmptyException.java
  12. 4
    0
      address-microservice/src/main/java/fr/natan/microservices/addressmicroservice/exceptions/AddressNotFoundException.java
  13. 28
    0
      address-microservice/src/main/java/fr/natan/microservices/addressmicroservice/exceptions_handler/AddressExceptionsHandler.java
  14. 22
    0
      address-microservice/src/main/java/fr/natan/microservices/addressmicroservice/model/Address.java
  15. 10
    0
      address-microservice/src/main/java/fr/natan/microservices/addressmicroservice/repository/AddressRepository.java
  16. 19
    0
      address-microservice/src/main/java/fr/natan/microservices/addressmicroservice/service/contract/AddressContract.java
  17. 79
    0
      address-microservice/src/main/java/fr/natan/microservices/addressmicroservice/service/services/AddressService.java
  18. 28
    0
      address-microservice/src/main/java/fr/natan/microservices/addressmicroservice/service/utilities/AddressValidator.java
  19. 48
    0
      address-microservice/src/main/java/fr/natan/microservices/addressmicroservice/t_controller/AddressController.java
  20. 27
    0
      address-microservice/src/main/resources/application.yml
  21. 13
    0
      address-microservice/src/test/java/fr/natan/microservices/addressmicroservice/AddressMicroserviceApplicationTests.java
  22. BIN
      address-microservice/target/address-microservice-0.0.1-SNAPSHOT.jar
  23. BIN
      address-microservice/target/address-microservice-0.0.1-SNAPSHOT.jar.original
  24. 27
    0
      address-microservice/target/classes/application.yml
  25. BIN
      address-microservice/target/classes/fr/natan/microservices/addressmicroservice/AddressMicroserviceApplication.class
  26. BIN
      address-microservice/target/classes/fr/natan/microservices/addressmicroservice/exceptions/AddressAlreadyExistsException.class
  27. BIN
      address-microservice/target/classes/fr/natan/microservices/addressmicroservice/exceptions/AddressFieldsEmptyException.class
  28. BIN
      address-microservice/target/classes/fr/natan/microservices/addressmicroservice/exceptions/AddressNotFoundException.class
  29. BIN
      address-microservice/target/classes/fr/natan/microservices/addressmicroservice/exceptions_handler/AddressExceptionsHandler.class
  30. BIN
      address-microservice/target/classes/fr/natan/microservices/addressmicroservice/model/Address.class
  31. BIN
      address-microservice/target/classes/fr/natan/microservices/addressmicroservice/repository/AddressRepository.class
  32. BIN
      address-microservice/target/classes/fr/natan/microservices/addressmicroservice/service/contract/AddressContract.class
  33. BIN
      address-microservice/target/classes/fr/natan/microservices/addressmicroservice/service/services/AddressService.class
  34. BIN
      address-microservice/target/classes/fr/natan/microservices/addressmicroservice/service/utilities/AddressValidator.class
  35. BIN
      address-microservice/target/classes/fr/natan/microservices/addressmicroservice/t_controller/AddressController.class
  36. 3
    0
      address-microservice/target/maven-archiver/pom.properties
  37. 11
    0
      address-microservice/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
  38. 11
    0
      address-microservice/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
  39. 1
    0
      address-microservice/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
  40. 1
    0
      address-microservice/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
  41. BIN
      address-microservice/target/test-classes/fr/natan/microservices/addressmicroservice/AddressMicroserviceApplicationTests.class
  42. 90
    0
      application-deployment/docker-compose.yml
  43. BIN
      company-microservice/.mvn/wrapper/maven-wrapper.jar
  44. 2
    0
      company-microservice/.mvn/wrapper/maven-wrapper.properties
  45. 32
    0
      company-microservice/Dockerfile
  46. 28
    0
      company-microservice/HELP.md
  47. 316
    0
      company-microservice/mvnw
  48. 188
    0
      company-microservice/mvnw.cmd
  49. 93
    0
      company-microservice/pom.xml
  50. 13
    0
      company-microservice/src/main/java/fr/natan/microservices/companymicroservice/CompanyMicroserviceApplication.java
  51. 4
    0
      company-microservice/src/main/java/fr/natan/microservices/companymicroservice/exceptions/CompanyAlreadyExistsException.java
  52. 4
    0
      company-microservice/src/main/java/fr/natan/microservices/companymicroservice/exceptions/CompanyFieldsEmptyException.java
  53. 4
    0
      company-microservice/src/main/java/fr/natan/microservices/companymicroservice/exceptions/CompanyNotFoundException.java
  54. 4
    0
      company-microservice/src/main/java/fr/natan/microservices/companymicroservice/exceptions/CompanyTypesInvalidException.java
  55. 37
    0
      company-microservice/src/main/java/fr/natan/microservices/companymicroservice/exceptions_handler/CompanyExceptionHandler.java
  56. 71
    0
      company-microservice/src/main/java/fr/natan/microservices/companymicroservice/model/company/Company.java
  57. 6
    0
      company-microservice/src/main/java/fr/natan/microservices/companymicroservice/model/type/CompanyType1.java
  58. 6
    0
      company-microservice/src/main/java/fr/natan/microservices/companymicroservice/model/type/CompanyType2.java
  59. 10
    0
      company-microservice/src/main/java/fr/natan/microservices/companymicroservice/repository/CompanyRepository.java
  60. 19
    0
      company-microservice/src/main/java/fr/natan/microservices/companymicroservice/service/contract/CompanyContract.java
  61. 82
    0
      company-microservice/src/main/java/fr/natan/microservices/companymicroservice/service/services/CompanyService.java
  62. 27
    0
      company-microservice/src/main/java/fr/natan/microservices/companymicroservice/service/utilities/CompanyValidator.java
  63. 48
    0
      company-microservice/src/main/java/fr/natan/microservices/companymicroservice/t_controller/CompanyController.java
  64. 24
    0
      company-microservice/src/main/resources/application.yml
  65. 13
    0
      company-microservice/src/test/java/fr/natan/microservices/companymicroservice/CompanyMicroserviceApplicationTests.java
  66. 24
    0
      company-microservice/target/classes/application.yml
  67. BIN
      company-microservice/target/classes/fr/natan/microservices/companymicroservice/CompanyMicroserviceApplication.class
  68. BIN
      company-microservice/target/classes/fr/natan/microservices/companymicroservice/exceptions/CompanyAlreadyExistsException.class
  69. BIN
      company-microservice/target/classes/fr/natan/microservices/companymicroservice/exceptions/CompanyFieldsEmptyException.class
  70. BIN
      company-microservice/target/classes/fr/natan/microservices/companymicroservice/exceptions/CompanyNotFoundException.class
  71. BIN
      company-microservice/target/classes/fr/natan/microservices/companymicroservice/exceptions/CompanyTypesInvalidException.class
  72. BIN
      company-microservice/target/classes/fr/natan/microservices/companymicroservice/exceptions_handler/CompanyExceptionHandler.class
  73. BIN
      company-microservice/target/classes/fr/natan/microservices/companymicroservice/model/company/Company.class
  74. BIN
      company-microservice/target/classes/fr/natan/microservices/companymicroservice/model/type/CompanyType1.class
  75. BIN
      company-microservice/target/classes/fr/natan/microservices/companymicroservice/model/type/CompanyType2.class
  76. BIN
      company-microservice/target/classes/fr/natan/microservices/companymicroservice/repository/CompanyRepository.class
  77. BIN
      company-microservice/target/classes/fr/natan/microservices/companymicroservice/service/contract/CompanyContract.class
  78. BIN
      company-microservice/target/classes/fr/natan/microservices/companymicroservice/service/services/CompanyService.class
  79. BIN
      company-microservice/target/classes/fr/natan/microservices/companymicroservice/service/utilities/CompanyValidator.class
  80. BIN
      company-microservice/target/classes/fr/natan/microservices/companymicroservice/t_controller/CompanyController.class
  81. BIN
      company-microservice/target/company-microservice-0.0.1-SNAPSHOT.jar
  82. BIN
      company-microservice/target/company-microservice-0.0.1-SNAPSHOT.jar.original
  83. 3
    0
      company-microservice/target/maven-archiver/pom.properties
  84. 14
    0
      company-microservice/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
  85. 14
    0
      company-microservice/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
  86. 1
    0
      company-microservice/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
  87. 1
    0
      company-microservice/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
  88. BIN
      company-microservice/target/test-classes/fr/natan/microservices/companymicroservice/CompanyMicroserviceApplicationTests.class
  89. 33
    0
      eureka-discovery-server/.gitignore
  90. BIN
      eureka-discovery-server/.mvn/wrapper/maven-wrapper.jar
  91. 2
    0
      eureka-discovery-server/.mvn/wrapper/maven-wrapper.properties
  92. 32
    0
      eureka-discovery-server/Dockerfile
  93. 316
    0
      eureka-discovery-server/mvnw
  94. 188
    0
      eureka-discovery-server/mvnw.cmd
  95. 53
    0
      eureka-discovery-server/pom.xml
  96. 15
    0
      eureka-discovery-server/src/main/java/fr/natan/microservices/eurekadiscoveryserver/EurekaDiscoveryServerApplication.java
  97. 3
    0
      eureka-discovery-server/src/main/resources/application.properties
  98. 13
    0
      eureka-discovery-server/src/test/java/fr/natan/microservices/eurekadiscoveryserver/EurekaDiscoveryServerApplicationTests.java
  99. BIN
      project-microservice/.mvn/wrapper/maven-wrapper.jar
  100. 0
    0
      project-microservice/.mvn/wrapper/maven-wrapper.properties

+ 0
- 0
README.md View File


BIN
address-microservice/.mvn/wrapper/maven-wrapper.jar View File


+ 2
- 0
address-microservice/.mvn/wrapper/maven-wrapper.properties View File

@@ -0,0 +1,2 @@
1
+distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip
2
+wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar

+ 32
- 0
address-microservice/Dockerfile View File

@@ -0,0 +1,32 @@
1
+######
2
+##
3
+##  Stage 1: Building the app
4
+##
5
+#######
6
+
7
+FROM maven:3.8.3-adoptopenjdk-16 AS builder
8
+WORKDIR /build/
9
+COPY pom.xml /build/
10
+# fetch all dependencies
11
+#RUN mvn dependency:go-offline -B
12
+
13
+COPY src /build/src/
14
+RUN mvn package -DskipTests
15
+WORKDIR /build/target/
16
+RUN java -Djarmode=layertools -jar address-microservice-0.0.1-SNAPSHOT.jar extract
17
+######
18
+##
19
+##  Stage 2: Running the app
20
+##
21
+#######
22
+
23
+FROM adoptopenjdk:16_36-jre-hotspot
24
+RUN useradd -rm -d /home/zbook-pn-15-g3 -s /bin/bash -g root -G sudo -u 1001 simple-user
25
+USER simple-user
26
+WORKDIR application
27
+EXPOSE 8180
28
+ENTRYPOINT ["java", "org.springframework.boot.loader.JarLauncher"]
29
+COPY --from=builder /build/target/dependencies/ ./
30
+COPY --from=builder /build/target/spring-boot-loader/ ./
31
+COPY --from=builder /build/target/snapshot-dependencies/ ./
32
+COPY --from=builder /build/target/application/ ./

+ 23
- 0
address-microservice/HELP.md View File

@@ -0,0 +1,23 @@
1
+# Getting Started
2
+
3
+### Reference Documentation
4
+For further reference, please consider the following sections:
5
+
6
+* [Official Apache Maven documentation](https://maven.apache.org/guides/index.html)
7
+* [Spring Boot Maven Plugin Reference Guide](https://docs.spring.io/spring-boot/docs/2.7.3/maven-plugin/reference/html/)
8
+* [Create an OCI image](https://docs.spring.io/spring-boot/docs/2.7.3/maven-plugin/reference/html/#build-image)
9
+* [Spring Web](https://docs.spring.io/spring-boot/docs/2.7.3/reference/htmlsingle/#web)
10
+* [Spring Data JPA](https://docs.spring.io/spring-boot/docs/2.7.3/reference/htmlsingle/#data.sql.jpa-and-spring-data)
11
+* [Spring Boot DevTools](https://docs.spring.io/spring-boot/docs/2.7.3/reference/htmlsingle/#using.devtools)
12
+* [Eureka Discovery Client](https://docs.spring.io/spring-cloud-netflix/docs/current/reference/html/#service-discovery-eureka-clients)
13
+
14
+### Guides
15
+The following guides illustrate how to use some features concretely:
16
+
17
+* [Building a RESTful Web Service](https://spring.io/guides/gs/rest-service/)
18
+* [Serving Web Content with Spring MVC](https://spring.io/guides/gs/serving-web-content/)
19
+* [Building REST services with Spring](https://spring.io/guides/tutorials/rest/)
20
+* [Accessing Data with JPA](https://spring.io/guides/gs/accessing-data-jpa/)
21
+* [Service Registration and Discovery with Eureka and Spring Cloud](https://spring.io/guides/gs/service-registration-and-discovery/)
22
+* [Accessing data with MySQL](https://spring.io/guides/gs/accessing-data-mysql/)
23
+

+ 316
- 0
address-microservice/mvnw View File

@@ -0,0 +1,316 @@
1
+#!/bin/sh
2
+# ----------------------------------------------------------------------------
3
+# Licensed to the Apache Software Foundation (ASF) under one
4
+# or more contributor license agreements.  See the NOTICE file
5
+# distributed with this work for additional information
6
+# regarding copyright ownership.  The ASF licenses this file
7
+# to you under the Apache License, Version 2.0 (the
8
+# "License"); you may not use this file except in compliance
9
+# with the License.  You may obtain a copy of the License at
10
+#
11
+#    https://www.apache.org/licenses/LICENSE-2.0
12
+#
13
+# Unless required by applicable law or agreed to in writing,
14
+# software distributed under the License is distributed on an
15
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16
+# KIND, either express or implied.  See the License for the
17
+# specific language governing permissions and limitations
18
+# under the License.
19
+# ----------------------------------------------------------------------------
20
+
21
+# ----------------------------------------------------------------------------
22
+# Maven Start Up Batch script
23
+#
24
+# Required ENV vars:
25
+# ------------------
26
+#   JAVA_HOME - location of a JDK home dir
27
+#
28
+# Optional ENV vars
29
+# -----------------
30
+#   M2_HOME - location of maven2's installed home dir
31
+#   MAVEN_OPTS - parameters passed to the Java VM when running Maven
32
+#     e.g. to debug Maven itself, use
33
+#       set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
34
+#   MAVEN_SKIP_RC - flag to disable loading of mavenrc files
35
+# ----------------------------------------------------------------------------
36
+
37
+if [ -z "$MAVEN_SKIP_RC" ] ; then
38
+
39
+  if [ -f /usr/local/etc/mavenrc ] ; then
40
+    . /usr/local/etc/mavenrc
41
+  fi
42
+
43
+  if [ -f /etc/mavenrc ] ; then
44
+    . /etc/mavenrc
45
+  fi
46
+
47
+  if [ -f "$HOME/.mavenrc" ] ; then
48
+    . "$HOME/.mavenrc"
49
+  fi
50
+
51
+fi
52
+
53
+# OS specific support.  $var _must_ be set to either true or false.
54
+cygwin=false;
55
+darwin=false;
56
+mingw=false
57
+case "`uname`" in
58
+  CYGWIN*) cygwin=true ;;
59
+  MINGW*) mingw=true;;
60
+  Darwin*) darwin=true
61
+    # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
62
+    # See https://developer.apple.com/library/mac/qa/qa1170/_index.html
63
+    if [ -z "$JAVA_HOME" ]; then
64
+      if [ -x "/usr/libexec/java_home" ]; then
65
+        export JAVA_HOME="`/usr/libexec/java_home`"
66
+      else
67
+        export JAVA_HOME="/Library/Java/Home"
68
+      fi
69
+    fi
70
+    ;;
71
+esac
72
+
73
+if [ -z "$JAVA_HOME" ] ; then
74
+  if [ -r /etc/gentoo-release ] ; then
75
+    JAVA_HOME=`java-config --jre-home`
76
+  fi
77
+fi
78
+
79
+if [ -z "$M2_HOME" ] ; then
80
+  ## resolve links - $0 may be a link to maven's home
81
+  PRG="$0"
82
+
83
+  # need this for relative symlinks
84
+  while [ -h "$PRG" ] ; do
85
+    ls=`ls -ld "$PRG"`
86
+    link=`expr "$ls" : '.*-> \(.*\)$'`
87
+    if expr "$link" : '/.*' > /dev/null; then
88
+      PRG="$link"
89
+    else
90
+      PRG="`dirname "$PRG"`/$link"
91
+    fi
92
+  done
93
+
94
+  saveddir=`pwd`
95
+
96
+  M2_HOME=`dirname "$PRG"`/..
97
+
98
+  # make it fully qualified
99
+  M2_HOME=`cd "$M2_HOME" && pwd`
100
+
101
+  cd "$saveddir"
102
+  # echo Using m2 at $M2_HOME
103
+fi
104
+
105
+# For Cygwin, ensure paths are in UNIX format before anything is touched
106
+if $cygwin ; then
107
+  [ -n "$M2_HOME" ] &&
108
+    M2_HOME=`cygpath --unix "$M2_HOME"`
109
+  [ -n "$JAVA_HOME" ] &&
110
+    JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
111
+  [ -n "$CLASSPATH" ] &&
112
+    CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
113
+fi
114
+
115
+# For Mingw, ensure paths are in UNIX format before anything is touched
116
+if $mingw ; then
117
+  [ -n "$M2_HOME" ] &&
118
+    M2_HOME="`(cd "$M2_HOME"; pwd)`"
119
+  [ -n "$JAVA_HOME" ] &&
120
+    JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
121
+fi
122
+
123
+if [ -z "$JAVA_HOME" ]; then
124
+  javaExecutable="`which javac`"
125
+  if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
126
+    # readlink(1) is not available as standard on Solaris 10.
127
+    readLink=`which readlink`
128
+    if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
129
+      if $darwin ; then
130
+        javaHome="`dirname \"$javaExecutable\"`"
131
+        javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
132
+      else
133
+        javaExecutable="`readlink -f \"$javaExecutable\"`"
134
+      fi
135
+      javaHome="`dirname \"$javaExecutable\"`"
136
+      javaHome=`expr "$javaHome" : '\(.*\)/bin'`
137
+      JAVA_HOME="$javaHome"
138
+      export JAVA_HOME
139
+    fi
140
+  fi
141
+fi
142
+
143
+if [ -z "$JAVACMD" ] ; then
144
+  if [ -n "$JAVA_HOME"  ] ; then
145
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
146
+      # IBM's JDK on AIX uses strange locations for the executables
147
+      JAVACMD="$JAVA_HOME/jre/sh/java"
148
+    else
149
+      JAVACMD="$JAVA_HOME/bin/java"
150
+    fi
151
+  else
152
+    JAVACMD="`\\unset -f command; \\command -v java`"
153
+  fi
154
+fi
155
+
156
+if [ ! -x "$JAVACMD" ] ; then
157
+  echo "Error: JAVA_HOME is not defined correctly." >&2
158
+  echo "  We cannot execute $JAVACMD" >&2
159
+  exit 1
160
+fi
161
+
162
+if [ -z "$JAVA_HOME" ] ; then
163
+  echo "Warning: JAVA_HOME environment variable is not set."
164
+fi
165
+
166
+CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
167
+
168
+# traverses directory structure from process work directory to filesystem root
169
+# first directory with .mvn subdirectory is considered project base directory
170
+find_maven_basedir() {
171
+
172
+  if [ -z "$1" ]
173
+  then
174
+    echo "Path not specified to find_maven_basedir"
175
+    return 1
176
+  fi
177
+
178
+  basedir="$1"
179
+  wdir="$1"
180
+  while [ "$wdir" != '/' ] ; do
181
+    if [ -d "$wdir"/.mvn ] ; then
182
+      basedir=$wdir
183
+      break
184
+    fi
185
+    # workaround for JBEAP-8937 (on Solaris 10/Sparc)
186
+    if [ -d "${wdir}" ]; then
187
+      wdir=`cd "$wdir/.."; pwd`
188
+    fi
189
+    # end of workaround
190
+  done
191
+  echo "${basedir}"
192
+}
193
+
194
+# concatenates all lines of a file
195
+concat_lines() {
196
+  if [ -f "$1" ]; then
197
+    echo "$(tr -s '\n' ' ' < "$1")"
198
+  fi
199
+}
200
+
201
+BASE_DIR=`find_maven_basedir "$(pwd)"`
202
+if [ -z "$BASE_DIR" ]; then
203
+  exit 1;
204
+fi
205
+
206
+##########################################################################################
207
+# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
208
+# This allows using the maven wrapper in projects that prohibit checking in binary data.
209
+##########################################################################################
210
+if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
211
+    if [ "$MVNW_VERBOSE" = true ]; then
212
+      echo "Found .mvn/wrapper/maven-wrapper.jar"
213
+    fi
214
+else
215
+    if [ "$MVNW_VERBOSE" = true ]; then
216
+      echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
217
+    fi
218
+    if [ -n "$MVNW_REPOURL" ]; then
219
+      jarUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
220
+    else
221
+      jarUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
222
+    fi
223
+    while IFS="=" read key value; do
224
+      case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
225
+      esac
226
+    done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
227
+    if [ "$MVNW_VERBOSE" = true ]; then
228
+      echo "Downloading from: $jarUrl"
229
+    fi
230
+    wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
231
+    if $cygwin; then
232
+      wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"`
233
+    fi
234
+
235
+    if command -v wget > /dev/null; then
236
+        if [ "$MVNW_VERBOSE" = true ]; then
237
+          echo "Found wget ... using wget"
238
+        fi
239
+        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
240
+            wget "$jarUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath"
241
+        else
242
+            wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath"
243
+        fi
244
+    elif command -v curl > /dev/null; then
245
+        if [ "$MVNW_VERBOSE" = true ]; then
246
+          echo "Found curl ... using curl"
247
+        fi
248
+        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
249
+            curl -o "$wrapperJarPath" "$jarUrl" -f
250
+        else
251
+            curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f
252
+        fi
253
+
254
+    else
255
+        if [ "$MVNW_VERBOSE" = true ]; then
256
+          echo "Falling back to using Java to download"
257
+        fi
258
+        javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
259
+        # For Cygwin, switch paths to Windows format before running javac
260
+        if $cygwin; then
261
+          javaClass=`cygpath --path --windows "$javaClass"`
262
+        fi
263
+        if [ -e "$javaClass" ]; then
264
+            if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
265
+                if [ "$MVNW_VERBOSE" = true ]; then
266
+                  echo " - Compiling MavenWrapperDownloader.java ..."
267
+                fi
268
+                # Compiling the Java class
269
+                ("$JAVA_HOME/bin/javac" "$javaClass")
270
+            fi
271
+            if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
272
+                # Running the downloader
273
+                if [ "$MVNW_VERBOSE" = true ]; then
274
+                  echo " - Running MavenWrapperDownloader.java ..."
275
+                fi
276
+                ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
277
+            fi
278
+        fi
279
+    fi
280
+fi
281
+##########################################################################################
282
+# End of extension
283
+##########################################################################################
284
+
285
+export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
286
+if [ "$MVNW_VERBOSE" = true ]; then
287
+  echo $MAVEN_PROJECTBASEDIR
288
+fi
289
+MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
290
+
291
+# For Cygwin, switch paths to Windows format before running java
292
+if $cygwin; then
293
+  [ -n "$M2_HOME" ] &&
294
+    M2_HOME=`cygpath --path --windows "$M2_HOME"`
295
+  [ -n "$JAVA_HOME" ] &&
296
+    JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
297
+  [ -n "$CLASSPATH" ] &&
298
+    CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
299
+  [ -n "$MAVEN_PROJECTBASEDIR" ] &&
300
+    MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
301
+fi
302
+
303
+# Provide a "standardized" way to retrieve the CLI args that will
304
+# work with both Windows and non-Windows executions.
305
+MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
306
+export MAVEN_CMD_LINE_ARGS
307
+
308
+WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
309
+
310
+exec "$JAVACMD" \
311
+  $MAVEN_OPTS \
312
+  $MAVEN_DEBUG_OPTS \
313
+  -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
314
+  "-Dmaven.home=${M2_HOME}" \
315
+  "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
316
+  ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"

+ 188
- 0
address-microservice/mvnw.cmd View File

@@ -0,0 +1,188 @@
1
+@REM ----------------------------------------------------------------------------
2
+@REM Licensed to the Apache Software Foundation (ASF) under one
3
+@REM or more contributor license agreements.  See the NOTICE file
4
+@REM distributed with this work for additional information
5
+@REM regarding copyright ownership.  The ASF licenses this file
6
+@REM to you under the Apache License, Version 2.0 (the
7
+@REM "License"); you may not use this file except in compliance
8
+@REM with the License.  You may obtain a copy of the License at
9
+@REM
10
+@REM    https://www.apache.org/licenses/LICENSE-2.0
11
+@REM
12
+@REM Unless required by applicable law or agreed to in writing,
13
+@REM software distributed under the License is distributed on an
14
+@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15
+@REM KIND, either express or implied.  See the License for the
16
+@REM specific language governing permissions and limitations
17
+@REM under the License.
18
+@REM ----------------------------------------------------------------------------
19
+
20
+@REM ----------------------------------------------------------------------------
21
+@REM Maven Start Up Batch script
22
+@REM
23
+@REM Required ENV vars:
24
+@REM JAVA_HOME - location of a JDK home dir
25
+@REM
26
+@REM Optional ENV vars
27
+@REM M2_HOME - location of maven2's installed home dir
28
+@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
29
+@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending
30
+@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
31
+@REM     e.g. to debug Maven itself, use
32
+@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
33
+@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
34
+@REM ----------------------------------------------------------------------------
35
+
36
+@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
37
+@echo off
38
+@REM set title of command window
39
+title %0
40
+@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
41
+@if "%MAVEN_BATCH_ECHO%" == "on"  echo %MAVEN_BATCH_ECHO%
42
+
43
+@REM set %HOME% to equivalent of $HOME
44
+if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
45
+
46
+@REM Execute a user defined script before this one
47
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
48
+@REM check for pre script, once with legacy .bat ending and once with .cmd ending
49
+if exist "%USERPROFILE%\mavenrc_pre.bat" call "%USERPROFILE%\mavenrc_pre.bat" %*
50
+if exist "%USERPROFILE%\mavenrc_pre.cmd" call "%USERPROFILE%\mavenrc_pre.cmd" %*
51
+:skipRcPre
52
+
53
+@setlocal
54
+
55
+set ERROR_CODE=0
56
+
57
+@REM To isolate internal variables from possible post scripts, we use another setlocal
58
+@setlocal
59
+
60
+@REM ==== START VALIDATION ====
61
+if not "%JAVA_HOME%" == "" goto OkJHome
62
+
63
+echo.
64
+echo Error: JAVA_HOME not found in your environment. >&2
65
+echo Please set the JAVA_HOME variable in your environment to match the >&2
66
+echo location of your Java installation. >&2
67
+echo.
68
+goto error
69
+
70
+:OkJHome
71
+if exist "%JAVA_HOME%\bin\java.exe" goto init
72
+
73
+echo.
74
+echo Error: JAVA_HOME is set to an invalid directory. >&2
75
+echo JAVA_HOME = "%JAVA_HOME%" >&2
76
+echo Please set the JAVA_HOME variable in your environment to match the >&2
77
+echo location of your Java installation. >&2
78
+echo.
79
+goto error
80
+
81
+@REM ==== END VALIDATION ====
82
+
83
+:init
84
+
85
+@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
86
+@REM Fallback to current working directory if not found.
87
+
88
+set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
89
+IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
90
+
91
+set EXEC_DIR=%CD%
92
+set WDIR=%EXEC_DIR%
93
+:findBaseDir
94
+IF EXIST "%WDIR%"\.mvn goto baseDirFound
95
+cd ..
96
+IF "%WDIR%"=="%CD%" goto baseDirNotFound
97
+set WDIR=%CD%
98
+goto findBaseDir
99
+
100
+:baseDirFound
101
+set MAVEN_PROJECTBASEDIR=%WDIR%
102
+cd "%EXEC_DIR%"
103
+goto endDetectBaseDir
104
+
105
+:baseDirNotFound
106
+set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
107
+cd "%EXEC_DIR%"
108
+
109
+:endDetectBaseDir
110
+
111
+IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
112
+
113
+@setlocal EnableExtensions EnableDelayedExpansion
114
+for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
115
+@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
116
+
117
+:endReadAdditionalConfig
118
+
119
+SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
120
+set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
121
+set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
122
+
123
+set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
124
+
125
+FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
126
+    IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
127
+)
128
+
129
+@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
130
+@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
131
+if exist %WRAPPER_JAR% (
132
+    if "%MVNW_VERBOSE%" == "true" (
133
+        echo Found %WRAPPER_JAR%
134
+    )
135
+) else (
136
+    if not "%MVNW_REPOURL%" == "" (
137
+        SET DOWNLOAD_URL="%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
138
+    )
139
+    if "%MVNW_VERBOSE%" == "true" (
140
+        echo Couldn't find %WRAPPER_JAR%, downloading it ...
141
+        echo Downloading from: %DOWNLOAD_URL%
142
+    )
143
+
144
+    powershell -Command "&{"^
145
+		"$webclient = new-object System.Net.WebClient;"^
146
+		"if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
147
+		"$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
148
+		"}"^
149
+		"[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^
150
+		"}"
151
+    if "%MVNW_VERBOSE%" == "true" (
152
+        echo Finished downloading %WRAPPER_JAR%
153
+    )
154
+)
155
+@REM End of extension
156
+
157
+@REM Provide a "standardized" way to retrieve the CLI args that will
158
+@REM work with both Windows and non-Windows executions.
159
+set MAVEN_CMD_LINE_ARGS=%*
160
+
161
+%MAVEN_JAVA_EXE% ^
162
+  %JVM_CONFIG_MAVEN_PROPS% ^
163
+  %MAVEN_OPTS% ^
164
+  %MAVEN_DEBUG_OPTS% ^
165
+  -classpath %WRAPPER_JAR% ^
166
+  "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" ^
167
+  %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
168
+if ERRORLEVEL 1 goto error
169
+goto end
170
+
171
+:error
172
+set ERROR_CODE=1
173
+
174
+:end
175
+@endlocal & set ERROR_CODE=%ERROR_CODE%
176
+
177
+if not "%MAVEN_SKIP_RC%"=="" goto skipRcPost
178
+@REM check for post script, once with legacy .bat ending and once with .cmd ending
179
+if exist "%USERPROFILE%\mavenrc_post.bat" call "%USERPROFILE%\mavenrc_post.bat"
180
+if exist "%USERPROFILE%\mavenrc_post.cmd" call "%USERPROFILE%\mavenrc_post.cmd"
181
+:skipRcPost
182
+
183
+@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
184
+if "%MAVEN_BATCH_PAUSE%"=="on" pause
185
+
186
+if "%MAVEN_TERMINATE_CMD%"=="on" exit %ERROR_CODE%
187
+
188
+cmd /C exit /B %ERROR_CODE%

+ 93
- 0
address-microservice/pom.xml View File

@@ -0,0 +1,93 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
4
+	<modelVersion>4.0.0</modelVersion>
5
+	<parent>
6
+		<groupId>org.springframework.boot</groupId>
7
+		<artifactId>spring-boot-starter-parent</artifactId>
8
+		<version>2.7.3</version>
9
+		<relativePath/> <!-- lookup parent from repository -->
10
+	</parent>
11
+	<groupId>fr.natan.microservices</groupId>
12
+	<artifactId>address-microservice</artifactId>
13
+	<version>0.0.1-SNAPSHOT</version>
14
+	<name>address-microservice</name>
15
+	<description>Address microservice with spring cloud openfeign.</description>
16
+	<properties>
17
+		<java.version>11</java.version>
18
+		<spring-cloud.version>2021.0.4</spring-cloud.version>
19
+	</properties>
20
+	<dependencies>
21
+		<dependency>
22
+			<groupId>org.springframework.boot</groupId>
23
+			<artifactId>spring-boot-starter-data-jpa</artifactId>
24
+		</dependency>
25
+		<dependency>
26
+			<groupId>org.springframework.boot</groupId>
27
+			<artifactId>spring-boot-starter-web</artifactId>
28
+		</dependency>
29
+		<dependency>
30
+			<groupId>org.springframework.cloud</groupId>
31
+			<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
32
+		</dependency>
33
+
34
+		<dependency>
35
+			<groupId>org.springframework.boot</groupId>
36
+			<artifactId>spring-boot-devtools</artifactId>
37
+			<scope>runtime</scope>
38
+			<optional>true</optional>
39
+		</dependency>
40
+		<dependency>
41
+			<groupId>mysql</groupId>
42
+			<artifactId>mysql-connector-java</artifactId>
43
+			<scope>runtime</scope>
44
+		</dependency>
45
+		<dependency>
46
+			<groupId>org.projectlombok</groupId>
47
+			<artifactId>lombok</artifactId>
48
+			<optional>true</optional>
49
+		</dependency>
50
+		<dependency>
51
+			<groupId>org.springframework.boot</groupId>
52
+			<artifactId>spring-boot-starter-test</artifactId>
53
+			<scope>test</scope>
54
+		</dependency>
55
+	</dependencies>
56
+	<dependencyManagement>
57
+		<dependencies>
58
+			<dependency>
59
+				<groupId>org.springframework.cloud</groupId>
60
+				<artifactId>spring-cloud-dependencies</artifactId>
61
+				<version>${spring-cloud.version}</version>
62
+				<type>pom</type>
63
+				<scope>import</scope>
64
+			</dependency>
65
+		</dependencies>
66
+	</dependencyManagement>
67
+
68
+	<build>
69
+		<plugins>
70
+			<plugin>
71
+				<groupId>org.springframework.boot</groupId>
72
+				<artifactId>spring-boot-maven-plugin</artifactId>
73
+				<configuration>
74
+					<excludes>
75
+						<exclude>
76
+							<groupId>org.projectlombok</groupId>
77
+							<artifactId>lombok</artifactId>
78
+						</exclude>
79
+					</excludes>
80
+				</configuration>
81
+			</plugin>
82
+			<plugin>
83
+				<groupId>org.apache.maven.plugins</groupId>
84
+				<artifactId>maven-surefire-plugin</artifactId>
85
+				<version>2.12.4</version>
86
+				<configuration>
87
+					<skipTests>true</skipTests>
88
+				</configuration>
89
+			</plugin>
90
+		</plugins>
91
+	</build>
92
+
93
+</project>

+ 14
- 0
address-microservice/src/main/java/fr/natan/microservices/addressmicroservice/AddressMicroserviceApplication.java View File

@@ -0,0 +1,14 @@
1
+package fr.natan.microservices.addressmicroservice;
2
+
3
+import org.springframework.boot.SpringApplication;
4
+import org.springframework.boot.autoconfigure.SpringBootApplication;
5
+import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
6
+
7
+@SpringBootApplication
8
+public class AddressMicroserviceApplication {
9
+
10
+	public static void main(String[] args) {
11
+		SpringApplication.run(AddressMicroserviceApplication.class, args);
12
+	}
13
+
14
+}

+ 4
- 0
address-microservice/src/main/java/fr/natan/microservices/addressmicroservice/exceptions/AddressAlreadyExistsException.java View File

@@ -0,0 +1,4 @@
1
+package fr.natan.microservices.addressmicroservice.exceptions;
2
+
3
+public class AddressAlreadyExistsException extends Exception{
4
+}

+ 4
- 0
address-microservice/src/main/java/fr/natan/microservices/addressmicroservice/exceptions/AddressFieldsEmptyException.java View File

@@ -0,0 +1,4 @@
1
+package fr.natan.microservices.addressmicroservice.exceptions;
2
+
3
+public class AddressFieldsEmptyException  extends Exception{
4
+}

+ 4
- 0
address-microservice/src/main/java/fr/natan/microservices/addressmicroservice/exceptions/AddressNotFoundException.java View File

@@ -0,0 +1,4 @@
1
+package fr.natan.microservices.addressmicroservice.exceptions;
2
+
3
+public class AddressNotFoundException extends Exception{
4
+}

+ 28
- 0
address-microservice/src/main/java/fr/natan/microservices/addressmicroservice/exceptions_handler/AddressExceptionsHandler.java View File

@@ -0,0 +1,28 @@
1
+package fr.natan.microservices.addressmicroservice.exceptions_handler;
2
+
3
+import fr.natan.microservices.addressmicroservice.exceptions.AddressAlreadyExistsException;
4
+import fr.natan.microservices.addressmicroservice.exceptions.AddressFieldsEmptyException;
5
+import fr.natan.microservices.addressmicroservice.exceptions.AddressNotFoundException;
6
+import org.springframework.http.HttpStatus;
7
+import org.springframework.http.ResponseEntity;
8
+import org.springframework.web.bind.annotation.ControllerAdvice;
9
+import org.springframework.web.bind.annotation.ExceptionHandler;
10
+
11
+@ControllerAdvice
12
+public class AddressExceptionsHandler {
13
+
14
+    @ExceptionHandler(value = AddressNotFoundException.class)
15
+    private ResponseEntity<String> handleAddressNotFoundException(){
16
+        return new ResponseEntity<>("Address not found exception", HttpStatus.NOT_FOUND);
17
+    }
18
+
19
+    @ExceptionHandler(value = AddressAlreadyExistsException.class)
20
+    private ResponseEntity<String> handleAddressAlreadyExistsException(){
21
+        return new ResponseEntity<>("Address already exists exception", HttpStatus.NOT_ACCEPTABLE);
22
+    }
23
+
24
+    @ExceptionHandler(value = AddressFieldsEmptyException.class)
25
+    private ResponseEntity<String> handleAddressFieldsEmptyException(){
26
+        return new ResponseEntity<>("Address, some fields empty exception", HttpStatus.NOT_ACCEPTABLE);
27
+    }
28
+}

+ 22
- 0
address-microservice/src/main/java/fr/natan/microservices/addressmicroservice/model/Address.java View File

@@ -0,0 +1,22 @@
1
+package fr.natan.microservices.addressmicroservice.model;
2
+
3
+import lombok.AllArgsConstructor;
4
+import lombok.Getter;
5
+import lombok.NoArgsConstructor;
6
+import lombok.Setter;
7
+
8
+import javax.persistence.*;
9
+
10
+@Entity
11
+@Setter @Getter
12
+@AllArgsConstructor @NoArgsConstructor
13
+public class Address {
14
+    @Id
15
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
16
+    private Long addressID;
17
+    private String numHouse;
18
+    private String streetName;
19
+    private String pb;
20
+    private String city;
21
+    private String country;
22
+}

+ 10
- 0
address-microservice/src/main/java/fr/natan/microservices/addressmicroservice/repository/AddressRepository.java View File

@@ -0,0 +1,10 @@
1
+package fr.natan.microservices.addressmicroservice.repository;
2
+
3
+import fr.natan.microservices.addressmicroservice.model.Address;
4
+import org.springframework.data.jpa.repository.JpaRepository;
5
+
6
+import java.util.List;
7
+
8
+public interface AddressRepository extends JpaRepository<Address, Long> {
9
+    List<Address> findByNumHouseAndStreetNameAndPbAndCity(String numHouse, String streetName, String pb, String city);
10
+}

+ 19
- 0
address-microservice/src/main/java/fr/natan/microservices/addressmicroservice/service/contract/AddressContract.java View File

@@ -0,0 +1,19 @@
1
+package fr.natan.microservices.addressmicroservice.service.contract;
2
+
3
+import fr.natan.microservices.addressmicroservice.exceptions.AddressAlreadyExistsException;
4
+import fr.natan.microservices.addressmicroservice.exceptions.AddressFieldsEmptyException;
5
+import fr.natan.microservices.addressmicroservice.exceptions.AddressNotFoundException;
6
+import fr.natan.microservices.addressmicroservice.model.Address;
7
+
8
+import java.util.List;
9
+
10
+public interface AddressContract {
11
+
12
+    Address createAddress (Address address) throws AddressAlreadyExistsException, AddressFieldsEmptyException;
13
+    List<Address> getAddresses();
14
+    List<Address> getAddressByNumHouseStreetNamePBCity(
15
+            String numHouse, String streetName, String pb, String city);
16
+    Address getAddress(Long addressID) throws AddressNotFoundException;
17
+    void deleteAddress(Long addressID) throws AddressNotFoundException;
18
+    Address updateAddress(Long addressID, Address address) throws AddressNotFoundException;
19
+}

+ 79
- 0
address-microservice/src/main/java/fr/natan/microservices/addressmicroservice/service/services/AddressService.java View File

@@ -0,0 +1,79 @@
1
+package fr.natan.microservices.addressmicroservice.service.services;
2
+
3
+import fr.natan.microservices.addressmicroservice.exceptions.AddressAlreadyExistsException;
4
+import fr.natan.microservices.addressmicroservice.exceptions.AddressFieldsEmptyException;
5
+import fr.natan.microservices.addressmicroservice.exceptions.AddressNotFoundException;
6
+import fr.natan.microservices.addressmicroservice.model.Address;
7
+import fr.natan.microservices.addressmicroservice.repository.AddressRepository;
8
+import fr.natan.microservices.addressmicroservice.service.contract.AddressContract;
9
+import fr.natan.microservices.addressmicroservice.service.utilities.AddressValidator;
10
+import org.springframework.stereotype.Service;
11
+
12
+import javax.transaction.Transactional;
13
+import java.util.List;
14
+
15
+@Service
16
+public class AddressService implements AddressContract {
17
+    private final AddressRepository addressRepository;
18
+
19
+    public AddressService(AddressRepository addressRepository) {
20
+        this.addressRepository = addressRepository;
21
+    }
22
+
23
+
24
+    @Override
25
+    public List<Address> getAddressByNumHouseStreetNamePBCity(String numHouse, String streetName, String pb, String city) {
26
+
27
+        return addressRepository.findByNumHouseAndStreetNameAndPbAndCity(numHouse,
28
+                streetName, pb, city);
29
+    }
30
+
31
+    @Override
32
+    public Address createAddress(Address address) throws AddressAlreadyExistsException, AddressFieldsEmptyException {
33
+        if(!AddressValidator.isValidAddress(address)){
34
+            throw new AddressFieldsEmptyException();
35
+        }
36
+
37
+        Address formattedAddress = AddressValidator.formatAddress(address);
38
+        if (getAddressByNumHouseStreetNamePBCity(
39
+                formattedAddress.getNumHouse(),
40
+                formattedAddress.getStreetName(),
41
+                formattedAddress.getPb(),
42
+                formattedAddress.getCity() ).size() > 0) {
43
+
44
+            throw new AddressAlreadyExistsException();
45
+        }
46
+
47
+        return addressRepository.save(formattedAddress);
48
+    }
49
+
50
+    @Override
51
+    public List<Address> getAddresses() {
52
+        return addressRepository.findAll();
53
+    }
54
+
55
+    @Override
56
+    public Address getAddress(Long addressID) throws AddressNotFoundException {
57
+        return addressRepository.findById(addressID).orElseThrow(
58
+                AddressNotFoundException::new
59
+        );
60
+    }
61
+
62
+    @Override
63
+    public void deleteAddress(Long addressID) throws AddressNotFoundException {
64
+        addressRepository.delete(getAddress(addressID));
65
+    }
66
+
67
+    @Override
68
+    @Transactional
69
+    public Address updateAddress(Long addressID, Address address) throws AddressNotFoundException {
70
+        Address savedAddress = getAddress(addressID);
71
+        savedAddress.setNumHouse(address.getNumHouse());
72
+        savedAddress.setStreetName(address.getStreetName());
73
+        savedAddress.setPb(address.getPb());
74
+        savedAddress.setCity(address.getCity());
75
+        savedAddress.setCountry(address.getCountry());
76
+
77
+        return savedAddress;
78
+    }
79
+}

+ 28
- 0
address-microservice/src/main/java/fr/natan/microservices/addressmicroservice/service/utilities/AddressValidator.java View File

@@ -0,0 +1,28 @@
1
+package fr.natan.microservices.addressmicroservice.service.utilities;
2
+
3
+import fr.natan.microservices.addressmicroservice.model.Address;
4
+
5
+public class AddressValidator {
6
+
7
+    public static Address formatAddress(Address address) {
8
+        address.setNumHouse(address.getNumHouse().strip());
9
+        address.setStreetName(address.getStreetName().strip());
10
+        address.setPb(address.getPb().strip());
11
+        address.setCity(address.getCity().strip());
12
+        address.setCountry(address.getCountry().strip());
13
+
14
+        return address;
15
+    }
16
+
17
+    public static boolean isValidAddress(Address address) {
18
+        if (address.getNumHouse().isEmpty()
19
+                || address.getStreetName().isEmpty()
20
+                || address.getPb().isEmpty()
21
+                || address.getCity().isEmpty()
22
+                || address.getCountry().isEmpty()){
23
+            return false;
24
+        }
25
+        else
26
+            return true;
27
+    }
28
+}

+ 48
- 0
address-microservice/src/main/java/fr/natan/microservices/addressmicroservice/t_controller/AddressController.java View File

@@ -0,0 +1,48 @@
1
+package fr.natan.microservices.addressmicroservice.t_controller;
2
+
3
+import fr.natan.microservices.addressmicroservice.exceptions.AddressAlreadyExistsException;
4
+import fr.natan.microservices.addressmicroservice.exceptions.AddressFieldsEmptyException;
5
+import fr.natan.microservices.addressmicroservice.exceptions.AddressNotFoundException;
6
+import fr.natan.microservices.addressmicroservice.model.Address;
7
+import fr.natan.microservices.addressmicroservice.service.contract.AddressContract;
8
+import org.springframework.web.bind.annotation.*;
9
+
10
+import java.util.List;
11
+
12
+@RestController
13
+public class AddressController {
14
+    private final AddressContract addressContract;
15
+
16
+    public AddressController(AddressContract addressContract) {
17
+        this.addressContract = addressContract;
18
+    }
19
+
20
+    @RequestMapping(value = "/addresses", method = RequestMethod.POST)
21
+    private Address createAddress(@RequestBody Address address)
22
+            throws AddressFieldsEmptyException, AddressAlreadyExistsException {
23
+        return addressContract.createAddress(address);
24
+    }
25
+
26
+    @RequestMapping(value = "/addresses", method = RequestMethod.GET)
27
+    private List<Address> getAllAddresses(){
28
+        return addressContract.getAddresses();
29
+    }
30
+
31
+    @RequestMapping(value = "/addresses/{addressID}", method = RequestMethod.GET)
32
+    private Address getAddress(@PathVariable(name = "addressID") Long addressID) throws AddressNotFoundException {
33
+        return addressContract.getAddress(addressID);
34
+    }
35
+
36
+    @RequestMapping(value = "/addresses/{addressID}", method = RequestMethod.DELETE)
37
+    private void deleteAddress(@PathVariable(name = "addressID") Long addressID) throws AddressNotFoundException {
38
+        addressContract.deleteAddress(addressID);
39
+    }
40
+
41
+    @RequestMapping(value = "/addresses/{addressID}", method = RequestMethod.PUT)
42
+    private Address updateAddress(@PathVariable(name = "addressID") Long addressID, @RequestBody Address address)
43
+            throws AddressNotFoundException {
44
+        return addressContract.updateAddress(addressID, address);
45
+
46
+    }
47
+
48
+}

+ 27
- 0
address-microservice/src/main/resources/application.yml View File

@@ -0,0 +1,27 @@
1
+server:
2
+  port: 8180
3
+  error:
4
+    include-message: always
5
+spring:
6
+  datasource:
7
+    url: jdbc:mysql://mysql-db:3306/address_microservice_db?createDatabaseIfNotExist=true
8
+    #url: jdbc:mysql://localhost:3306/address_microservice_db?createDatabaseIfNotExist=true
9
+    username: root
10
+    password: root
11
+  jpa:
12
+    show-sql: true
13
+    hibernate:
14
+      ddl-auto: update
15
+    properties:
16
+      hibernate:
17
+        dialect: org.hibernate.dialect.MySQL8Dialect
18
+  application:
19
+    name: address-microservice
20
+  cloud:
21
+    discovery:
22
+      enabled: true
23
+eureka:
24
+  client:
25
+    service-url:
26
+      defaultZone: http://eureka-server:8761/eureka
27
+      #defaultZone: http://localhost:8761/eureka

+ 13
- 0
address-microservice/src/test/java/fr/natan/microservices/addressmicroservice/AddressMicroserviceApplicationTests.java View File

@@ -0,0 +1,13 @@
1
+package fr.natan.microservices.addressmicroservice;
2
+
3
+import org.junit.jupiter.api.Test;
4
+import org.springframework.boot.test.context.SpringBootTest;
5
+
6
+@SpringBootTest
7
+class AddressMicroserviceApplicationTests {
8
+
9
+	@Test
10
+	void contextLoads() {
11
+	}
12
+
13
+}

BIN
address-microservice/target/address-microservice-0.0.1-SNAPSHOT.jar View File


BIN
address-microservice/target/address-microservice-0.0.1-SNAPSHOT.jar.original View File


+ 27
- 0
address-microservice/target/classes/application.yml View File

@@ -0,0 +1,27 @@
1
+server:
2
+  port: 8180
3
+  error:
4
+    include-message: always
5
+spring:
6
+  datasource:
7
+    url: jdbc:mysql://mysql-db:3306/address_microservice_db?createDatabaseIfNotExist=true
8
+    #url: jdbc:mysql://localhost:3306/address_microservice_db?createDatabaseIfNotExist=true
9
+    username: root
10
+    password: root
11
+  jpa:
12
+    show-sql: true
13
+    hibernate:
14
+      ddl-auto: update
15
+    properties:
16
+      hibernate:
17
+        dialect: org.hibernate.dialect.MySQL8Dialect
18
+  application:
19
+    name: address-microservice
20
+  cloud:
21
+    discovery:
22
+      enabled: true
23
+eureka:
24
+  client:
25
+    service-url:
26
+      defaultZone: http://eureka-server:8761/eureka
27
+      #defaultZone: http://localhost:8761/eureka

BIN
address-microservice/target/classes/fr/natan/microservices/addressmicroservice/AddressMicroserviceApplication.class View File


BIN
address-microservice/target/classes/fr/natan/microservices/addressmicroservice/exceptions/AddressAlreadyExistsException.class View File


BIN
address-microservice/target/classes/fr/natan/microservices/addressmicroservice/exceptions/AddressFieldsEmptyException.class View File


BIN
address-microservice/target/classes/fr/natan/microservices/addressmicroservice/exceptions/AddressNotFoundException.class View File


BIN
address-microservice/target/classes/fr/natan/microservices/addressmicroservice/exceptions_handler/AddressExceptionsHandler.class View File


BIN
address-microservice/target/classes/fr/natan/microservices/addressmicroservice/model/Address.class View File


BIN
address-microservice/target/classes/fr/natan/microservices/addressmicroservice/repository/AddressRepository.class View File


BIN
address-microservice/target/classes/fr/natan/microservices/addressmicroservice/service/contract/AddressContract.class View File


BIN
address-microservice/target/classes/fr/natan/microservices/addressmicroservice/service/services/AddressService.class View File


BIN
address-microservice/target/classes/fr/natan/microservices/addressmicroservice/service/utilities/AddressValidator.class View File


BIN
address-microservice/target/classes/fr/natan/microservices/addressmicroservice/t_controller/AddressController.class View File


+ 3
- 0
address-microservice/target/maven-archiver/pom.properties View File

@@ -0,0 +1,3 @@
1
+artifactId=address-microservice
2
+groupId=fr.natan.microservices
3
+version=0.0.1-SNAPSHOT

+ 11
- 0
address-microservice/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst View File

@@ -0,0 +1,11 @@
1
+fr/natan/microservices/addressmicroservice/repository/AddressRepository.class
2
+fr/natan/microservices/addressmicroservice/exceptions/AddressNotFoundException.class
3
+fr/natan/microservices/addressmicroservice/model/Address.class
4
+fr/natan/microservices/addressmicroservice/service/services/AddressService.class
5
+fr/natan/microservices/addressmicroservice/exceptions/AddressAlreadyExistsException.class
6
+fr/natan/microservices/addressmicroservice/t_controller/AddressController.class
7
+fr/natan/microservices/addressmicroservice/exceptions_handler/AddressExceptionsHandler.class
8
+fr/natan/microservices/addressmicroservice/exceptions/AddressFieldsEmptyException.class
9
+fr/natan/microservices/addressmicroservice/service/utilities/AddressValidator.class
10
+fr/natan/microservices/addressmicroservice/AddressMicroserviceApplication.class
11
+fr/natan/microservices/addressmicroservice/service/contract/AddressContract.class

+ 11
- 0
address-microservice/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst View File

@@ -0,0 +1,11 @@
1
+/home/zbook-pn-15-g3/Bootcamp Java/users-projects-company-backend-frontend/users-projects-companies-springmvc-microservices-backend/address-microservice/src/main/java/fr/natan/microservices/addressmicroservice/exceptions_handler/AddressExceptionsHandler.java
2
+/home/zbook-pn-15-g3/Bootcamp Java/users-projects-company-backend-frontend/users-projects-companies-springmvc-microservices-backend/address-microservice/src/main/java/fr/natan/microservices/addressmicroservice/repository/AddressRepository.java
3
+/home/zbook-pn-15-g3/Bootcamp Java/users-projects-company-backend-frontend/users-projects-companies-springmvc-microservices-backend/address-microservice/src/main/java/fr/natan/microservices/addressmicroservice/service/utilities/AddressValidator.java
4
+/home/zbook-pn-15-g3/Bootcamp Java/users-projects-company-backend-frontend/users-projects-companies-springmvc-microservices-backend/address-microservice/src/main/java/fr/natan/microservices/addressmicroservice/service/contract/AddressContract.java
5
+/home/zbook-pn-15-g3/Bootcamp Java/users-projects-company-backend-frontend/users-projects-companies-springmvc-microservices-backend/address-microservice/src/main/java/fr/natan/microservices/addressmicroservice/exceptions/AddressFieldsEmptyException.java
6
+/home/zbook-pn-15-g3/Bootcamp Java/users-projects-company-backend-frontend/users-projects-companies-springmvc-microservices-backend/address-microservice/src/main/java/fr/natan/microservices/addressmicroservice/exceptions/AddressAlreadyExistsException.java
7
+/home/zbook-pn-15-g3/Bootcamp Java/users-projects-company-backend-frontend/users-projects-companies-springmvc-microservices-backend/address-microservice/src/main/java/fr/natan/microservices/addressmicroservice/exceptions/AddressNotFoundException.java
8
+/home/zbook-pn-15-g3/Bootcamp Java/users-projects-company-backend-frontend/users-projects-companies-springmvc-microservices-backend/address-microservice/src/main/java/fr/natan/microservices/addressmicroservice/model/Address.java
9
+/home/zbook-pn-15-g3/Bootcamp Java/users-projects-company-backend-frontend/users-projects-companies-springmvc-microservices-backend/address-microservice/src/main/java/fr/natan/microservices/addressmicroservice/service/services/AddressService.java
10
+/home/zbook-pn-15-g3/Bootcamp Java/users-projects-company-backend-frontend/users-projects-companies-springmvc-microservices-backend/address-microservice/src/main/java/fr/natan/microservices/addressmicroservice/AddressMicroserviceApplication.java
11
+/home/zbook-pn-15-g3/Bootcamp Java/users-projects-company-backend-frontend/users-projects-companies-springmvc-microservices-backend/address-microservice/src/main/java/fr/natan/microservices/addressmicroservice/t_controller/AddressController.java

+ 1
- 0
address-microservice/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst View File

@@ -0,0 +1 @@
1
+fr/natan/microservices/addressmicroservice/AddressMicroserviceApplicationTests.class

+ 1
- 0
address-microservice/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst View File

@@ -0,0 +1 @@
1
+/home/zbook-pn-15-g3/Bootcamp Java/users-projects-company-backend-frontend/users-projects-companies-springmvc-microservices-backend/address-microservice/src/test/java/fr/natan/microservices/addressmicroservice/AddressMicroserviceApplicationTests.java

BIN
address-microservice/target/test-classes/fr/natan/microservices/addressmicroservice/AddressMicroserviceApplicationTests.class View File


+ 90
- 0
application-deployment/docker-compose.yml View File

@@ -0,0 +1,90 @@
1
+version: '3.4'
2
+
3
+services:
4
+    
5
+    mysql-db:
6
+        image: mysql:8.0
7
+        container_name: mysql-db
8
+        restart: always
9
+        ports:
10
+          - "3036:3036"
11
+        networks:
12
+            - microservices
13
+        environment:
14
+            MYSQL_ROOT_PASSWORD: root
15
+    
16
+    eureka-server:
17
+        image: eureka-server:latest
18
+        container_name: eureka-server
19
+        build: ../eureka-discovery-server
20
+        ports:
21
+            - "8761:8761"
22
+        networks:
23
+            - microservices
24
+
25
+    service-gateway:
26
+        image: service-gateway:latest
27
+        container_name: service-gateway
28
+        build: ../spring-cloud-gateway-service
29
+        ports:
30
+            - "8888:8888"
31
+        links:
32
+            - eureka-server
33
+        networks:
34
+            - microservices
35
+        depends_on:
36
+            - eureka-server
37
+
38
+    address-microservice:
39
+        image: address-microservice:latest
40
+        container_name: address-microservice
41
+        build: ../address-microservice
42
+        ports:
43
+              - "8180:8180"
44
+        links:
45
+            - eureka-server
46
+        networks:
47
+            - microservices
48
+        depends_on:
49
+            - eureka-server
50
+
51
+    user-microservice:
52
+        image: user-microservice:latest
53
+        container_name: user-microservice
54
+        build: ../user-microservice
55
+        ports:
56
+              - "8181:8181"
57
+        links:
58
+            - eureka-server
59
+        networks:
60
+            - microservices
61
+        depends_on:
62
+            - eureka-server
63
+
64
+    company-microservice:
65
+        image: company-microservice:latest
66
+        container_name: company-microservice
67
+        build: ../company-microservice
68
+        ports:
69
+            - "8182:8182"
70
+        links:
71
+            - eureka-server
72
+        networks:
73
+            - microservices
74
+        depends_on:
75
+            - eureka-server
76
+
77
+    project-microservice:
78
+        image: project-microservice:latest
79
+        container_name: project-microservice
80
+        build: ../project-microservice
81
+        ports:
82
+            - "8183:8183"
83
+        links:
84
+            - eureka-server
85
+        networks:
86
+            - microservices
87
+        depends_on:
88
+            - eureka-server
89
+networks:
90
+    microservices:

BIN
company-microservice/.mvn/wrapper/maven-wrapper.jar View File


+ 2
- 0
company-microservice/.mvn/wrapper/maven-wrapper.properties View File

@@ -0,0 +1,2 @@
1
+distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip
2
+wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar

+ 32
- 0
company-microservice/Dockerfile View File

@@ -0,0 +1,32 @@
1
+######
2
+##
3
+##  Stage 1: Building the app
4
+##
5
+#######
6
+
7
+FROM maven:3.8.3-adoptopenjdk-16 AS builder
8
+WORKDIR /build/
9
+COPY pom.xml /build/
10
+# fetch all dependencies
11
+#RUN mvn dependency:go-offline -B
12
+
13
+COPY src /build/src/
14
+RUN mvn package -DskipTests
15
+WORKDIR /build/target/
16
+RUN java -Djarmode=layertools -jar company-microservice-0.0.1-SNAPSHOT.jar extract
17
+######
18
+##
19
+##  Stage 2: Running the app
20
+##
21
+#######
22
+
23
+FROM adoptopenjdk:16_36-jre-hotspot
24
+RUN useradd -rm -d /home/zbook-pn-15-g3 -s /bin/bash -g root -G sudo -u 1001 simple-user
25
+USER simple-user
26
+WORKDIR application
27
+EXPOSE 8182
28
+ENTRYPOINT ["java", "org.springframework.boot.loader.JarLauncher"]
29
+COPY --from=builder /build/target/dependencies/ ./
30
+COPY --from=builder /build/target/spring-boot-loader/ ./
31
+COPY --from=builder /build/target/snapshot-dependencies/ ./
32
+COPY --from=builder /build/target/application/ ./

+ 28
- 0
company-microservice/HELP.md View File

@@ -0,0 +1,28 @@
1
+# Read Me First
2
+The following was discovered as part of building this project:
3
+
4
+* The original package name 'fr.natan.microservices.company-microservice' is invalid and this project uses 'fr.natan.microservices.companymicroservice' instead.
5
+
6
+# Getting Started
7
+
8
+### Reference Documentation
9
+For further reference, please consider the following sections:
10
+
11
+* [Official Apache Maven documentation](https://maven.apache.org/guides/index.html)
12
+* [Spring Boot Maven Plugin Reference Guide](https://docs.spring.io/spring-boot/docs/2.7.3/maven-plugin/reference/html/)
13
+* [Create an OCI image](https://docs.spring.io/spring-boot/docs/2.7.3/maven-plugin/reference/html/#build-image)
14
+* [Spring Web](https://docs.spring.io/spring-boot/docs/2.7.3/reference/htmlsingle/#web)
15
+* [Spring Data JPA](https://docs.spring.io/spring-boot/docs/2.7.3/reference/htmlsingle/#data.sql.jpa-and-spring-data)
16
+* [Spring Boot DevTools](https://docs.spring.io/spring-boot/docs/2.7.3/reference/htmlsingle/#using.devtools)
17
+* [Eureka Discovery Client](https://docs.spring.io/spring-cloud-netflix/docs/current/reference/html/#service-discovery-eureka-clients)
18
+
19
+### Guides
20
+The following guides illustrate how to use some features concretely:
21
+
22
+* [Building a RESTful Web Service](https://spring.io/guides/gs/rest-service/)
23
+* [Serving Web Content with Spring MVC](https://spring.io/guides/gs/serving-web-content/)
24
+* [Building REST services with Spring](https://spring.io/guides/tutorials/rest/)
25
+* [Accessing Data with JPA](https://spring.io/guides/gs/accessing-data-jpa/)
26
+* [Service Registration and Discovery with Eureka and Spring Cloud](https://spring.io/guides/gs/service-registration-and-discovery/)
27
+* [Accessing data with MySQL](https://spring.io/guides/gs/accessing-data-mysql/)
28
+

+ 316
- 0
company-microservice/mvnw View File

@@ -0,0 +1,316 @@
1
+#!/bin/sh
2
+# ----------------------------------------------------------------------------
3
+# Licensed to the Apache Software Foundation (ASF) under one
4
+# or more contributor license agreements.  See the NOTICE file
5
+# distributed with this work for additional information
6
+# regarding copyright ownership.  The ASF licenses this file
7
+# to you under the Apache License, Version 2.0 (the
8
+# "License"); you may not use this file except in compliance
9
+# with the License.  You may obtain a copy of the License at
10
+#
11
+#    https://www.apache.org/licenses/LICENSE-2.0
12
+#
13
+# Unless required by applicable law or agreed to in writing,
14
+# software distributed under the License is distributed on an
15
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16
+# KIND, either express or implied.  See the License for the
17
+# specific language governing permissions and limitations
18
+# under the License.
19
+# ----------------------------------------------------------------------------
20
+
21
+# ----------------------------------------------------------------------------
22
+# Maven Start Up Batch script
23
+#
24
+# Required ENV vars:
25
+# ------------------
26
+#   JAVA_HOME - location of a JDK home dir
27
+#
28
+# Optional ENV vars
29
+# -----------------
30
+#   M2_HOME - location of maven2's installed home dir
31
+#   MAVEN_OPTS - parameters passed to the Java VM when running Maven
32
+#     e.g. to debug Maven itself, use
33
+#       set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
34
+#   MAVEN_SKIP_RC - flag to disable loading of mavenrc files
35
+# ----------------------------------------------------------------------------
36
+
37
+if [ -z "$MAVEN_SKIP_RC" ] ; then
38
+
39
+  if [ -f /usr/local/etc/mavenrc ] ; then
40
+    . /usr/local/etc/mavenrc
41
+  fi
42
+
43
+  if [ -f /etc/mavenrc ] ; then
44
+    . /etc/mavenrc
45
+  fi
46
+
47
+  if [ -f "$HOME/.mavenrc" ] ; then
48
+    . "$HOME/.mavenrc"
49
+  fi
50
+
51
+fi
52
+
53
+# OS specific support.  $var _must_ be set to either true or false.
54
+cygwin=false;
55
+darwin=false;
56
+mingw=false
57
+case "`uname`" in
58
+  CYGWIN*) cygwin=true ;;
59
+  MINGW*) mingw=true;;
60
+  Darwin*) darwin=true
61
+    # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
62
+    # See https://developer.apple.com/library/mac/qa/qa1170/_index.html
63
+    if [ -z "$JAVA_HOME" ]; then
64
+      if [ -x "/usr/libexec/java_home" ]; then
65
+        export JAVA_HOME="`/usr/libexec/java_home`"
66
+      else
67
+        export JAVA_HOME="/Library/Java/Home"
68
+      fi
69
+    fi
70
+    ;;
71
+esac
72
+
73
+if [ -z "$JAVA_HOME" ] ; then
74
+  if [ -r /etc/gentoo-release ] ; then
75
+    JAVA_HOME=`java-config --jre-home`
76
+  fi
77
+fi
78
+
79
+if [ -z "$M2_HOME" ] ; then
80
+  ## resolve links - $0 may be a link to maven's home
81
+  PRG="$0"
82
+
83
+  # need this for relative symlinks
84
+  while [ -h "$PRG" ] ; do
85
+    ls=`ls -ld "$PRG"`
86
+    link=`expr "$ls" : '.*-> \(.*\)$'`
87
+    if expr "$link" : '/.*' > /dev/null; then
88
+      PRG="$link"
89
+    else
90
+      PRG="`dirname "$PRG"`/$link"
91
+    fi
92
+  done
93
+
94
+  saveddir=`pwd`
95
+
96
+  M2_HOME=`dirname "$PRG"`/..
97
+
98
+  # make it fully qualified
99
+  M2_HOME=`cd "$M2_HOME" && pwd`
100
+
101
+  cd "$saveddir"
102
+  # echo Using m2 at $M2_HOME
103
+fi
104
+
105
+# For Cygwin, ensure paths are in UNIX format before anything is touched
106
+if $cygwin ; then
107
+  [ -n "$M2_HOME" ] &&
108
+    M2_HOME=`cygpath --unix "$M2_HOME"`
109
+  [ -n "$JAVA_HOME" ] &&
110
+    JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
111
+  [ -n "$CLASSPATH" ] &&
112
+    CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
113
+fi
114
+
115
+# For Mingw, ensure paths are in UNIX format before anything is touched
116
+if $mingw ; then
117
+  [ -n "$M2_HOME" ] &&
118
+    M2_HOME="`(cd "$M2_HOME"; pwd)`"
119
+  [ -n "$JAVA_HOME" ] &&
120
+    JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
121
+fi
122
+
123
+if [ -z "$JAVA_HOME" ]; then
124
+  javaExecutable="`which javac`"
125
+  if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
126
+    # readlink(1) is not available as standard on Solaris 10.
127
+    readLink=`which readlink`
128
+    if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
129
+      if $darwin ; then
130
+        javaHome="`dirname \"$javaExecutable\"`"
131
+        javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
132
+      else
133
+        javaExecutable="`readlink -f \"$javaExecutable\"`"
134
+      fi
135
+      javaHome="`dirname \"$javaExecutable\"`"
136
+      javaHome=`expr "$javaHome" : '\(.*\)/bin'`
137
+      JAVA_HOME="$javaHome"
138
+      export JAVA_HOME
139
+    fi
140
+  fi
141
+fi
142
+
143
+if [ -z "$JAVACMD" ] ; then
144
+  if [ -n "$JAVA_HOME"  ] ; then
145
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
146
+      # IBM's JDK on AIX uses strange locations for the executables
147
+      JAVACMD="$JAVA_HOME/jre/sh/java"
148
+    else
149
+      JAVACMD="$JAVA_HOME/bin/java"
150
+    fi
151
+  else
152
+    JAVACMD="`\\unset -f command; \\command -v java`"
153
+  fi
154
+fi
155
+
156
+if [ ! -x "$JAVACMD" ] ; then
157
+  echo "Error: JAVA_HOME is not defined correctly." >&2
158
+  echo "  We cannot execute $JAVACMD" >&2
159
+  exit 1
160
+fi
161
+
162
+if [ -z "$JAVA_HOME" ] ; then
163
+  echo "Warning: JAVA_HOME environment variable is not set."
164
+fi
165
+
166
+CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
167
+
168
+# traverses directory structure from process work directory to filesystem root
169
+# first directory with .mvn subdirectory is considered project base directory
170
+find_maven_basedir() {
171
+
172
+  if [ -z "$1" ]
173
+  then
174
+    echo "Path not specified to find_maven_basedir"
175
+    return 1
176
+  fi
177
+
178
+  basedir="$1"
179
+  wdir="$1"
180
+  while [ "$wdir" != '/' ] ; do
181
+    if [ -d "$wdir"/.mvn ] ; then
182
+      basedir=$wdir
183
+      break
184
+    fi
185
+    # workaround for JBEAP-8937 (on Solaris 10/Sparc)
186
+    if [ -d "${wdir}" ]; then
187
+      wdir=`cd "$wdir/.."; pwd`
188
+    fi
189
+    # end of workaround
190
+  done
191
+  echo "${basedir}"
192
+}
193
+
194
+# concatenates all lines of a file
195
+concat_lines() {
196
+  if [ -f "$1" ]; then
197
+    echo "$(tr -s '\n' ' ' < "$1")"
198
+  fi
199
+}
200
+
201
+BASE_DIR=`find_maven_basedir "$(pwd)"`
202
+if [ -z "$BASE_DIR" ]; then
203
+  exit 1;
204
+fi
205
+
206
+##########################################################################################
207
+# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
208
+# This allows using the maven wrapper in projects that prohibit checking in binary data.
209
+##########################################################################################
210
+if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
211
+    if [ "$MVNW_VERBOSE" = true ]; then
212
+      echo "Found .mvn/wrapper/maven-wrapper.jar"
213
+    fi
214
+else
215
+    if [ "$MVNW_VERBOSE" = true ]; then
216
+      echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
217
+    fi
218
+    if [ -n "$MVNW_REPOURL" ]; then
219
+      jarUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
220
+    else
221
+      jarUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
222
+    fi
223
+    while IFS="=" read key value; do
224
+      case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
225
+      esac
226
+    done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
227
+    if [ "$MVNW_VERBOSE" = true ]; then
228
+      echo "Downloading from: $jarUrl"
229
+    fi
230
+    wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
231
+    if $cygwin; then
232
+      wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"`
233
+    fi
234
+
235
+    if command -v wget > /dev/null; then
236
+        if [ "$MVNW_VERBOSE" = true ]; then
237
+          echo "Found wget ... using wget"
238
+        fi
239
+        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
240
+            wget "$jarUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath"
241
+        else
242
+            wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath"
243
+        fi
244
+    elif command -v curl > /dev/null; then
245
+        if [ "$MVNW_VERBOSE" = true ]; then
246
+          echo "Found curl ... using curl"
247
+        fi
248
+        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
249
+            curl -o "$wrapperJarPath" "$jarUrl" -f
250
+        else
251
+            curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f
252
+        fi
253
+
254
+    else
255
+        if [ "$MVNW_VERBOSE" = true ]; then
256
+          echo "Falling back to using Java to download"
257
+        fi
258
+        javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
259
+        # For Cygwin, switch paths to Windows format before running javac
260
+        if $cygwin; then
261
+          javaClass=`cygpath --path --windows "$javaClass"`
262
+        fi
263
+        if [ -e "$javaClass" ]; then
264
+            if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
265
+                if [ "$MVNW_VERBOSE" = true ]; then
266
+                  echo " - Compiling MavenWrapperDownloader.java ..."
267
+                fi
268
+                # Compiling the Java class
269
+                ("$JAVA_HOME/bin/javac" "$javaClass")
270
+            fi
271
+            if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
272
+                # Running the downloader
273
+                if [ "$MVNW_VERBOSE" = true ]; then
274
+                  echo " - Running MavenWrapperDownloader.java ..."
275
+                fi
276
+                ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
277
+            fi
278
+        fi
279
+    fi
280
+fi
281
+##########################################################################################
282
+# End of extension
283
+##########################################################################################
284
+
285
+export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
286
+if [ "$MVNW_VERBOSE" = true ]; then
287
+  echo $MAVEN_PROJECTBASEDIR
288
+fi
289
+MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
290
+
291
+# For Cygwin, switch paths to Windows format before running java
292
+if $cygwin; then
293
+  [ -n "$M2_HOME" ] &&
294
+    M2_HOME=`cygpath --path --windows "$M2_HOME"`
295
+  [ -n "$JAVA_HOME" ] &&
296
+    JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
297
+  [ -n "$CLASSPATH" ] &&
298
+    CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
299
+  [ -n "$MAVEN_PROJECTBASEDIR" ] &&
300
+    MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
301
+fi
302
+
303
+# Provide a "standardized" way to retrieve the CLI args that will
304
+# work with both Windows and non-Windows executions.
305
+MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
306
+export MAVEN_CMD_LINE_ARGS
307
+
308
+WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
309
+
310
+exec "$JAVACMD" \
311
+  $MAVEN_OPTS \
312
+  $MAVEN_DEBUG_OPTS \
313
+  -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
314
+  "-Dmaven.home=${M2_HOME}" \
315
+  "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
316
+  ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"

+ 188
- 0
company-microservice/mvnw.cmd View File

@@ -0,0 +1,188 @@
1
+@REM ----------------------------------------------------------------------------
2
+@REM Licensed to the Apache Software Foundation (ASF) under one
3
+@REM or more contributor license agreements.  See the NOTICE file
4
+@REM distributed with this work for additional information
5
+@REM regarding copyright ownership.  The ASF licenses this file
6
+@REM to you under the Apache License, Version 2.0 (the
7
+@REM "License"); you may not use this file except in compliance
8
+@REM with the License.  You may obtain a copy of the License at
9
+@REM
10
+@REM    https://www.apache.org/licenses/LICENSE-2.0
11
+@REM
12
+@REM Unless required by applicable law or agreed to in writing,
13
+@REM software distributed under the License is distributed on an
14
+@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15
+@REM KIND, either express or implied.  See the License for the
16
+@REM specific language governing permissions and limitations
17
+@REM under the License.
18
+@REM ----------------------------------------------------------------------------
19
+
20
+@REM ----------------------------------------------------------------------------
21
+@REM Maven Start Up Batch script
22
+@REM
23
+@REM Required ENV vars:
24
+@REM JAVA_HOME - location of a JDK home dir
25
+@REM
26
+@REM Optional ENV vars
27
+@REM M2_HOME - location of maven2's installed home dir
28
+@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
29
+@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending
30
+@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
31
+@REM     e.g. to debug Maven itself, use
32
+@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
33
+@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
34
+@REM ----------------------------------------------------------------------------
35
+
36
+@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
37
+@echo off
38
+@REM set title of command window
39
+title %0
40
+@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
41
+@if "%MAVEN_BATCH_ECHO%" == "on"  echo %MAVEN_BATCH_ECHO%
42
+
43
+@REM set %HOME% to equivalent of $HOME
44
+if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
45
+
46
+@REM Execute a user defined script before this one
47
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
48
+@REM check for pre script, once with legacy .bat ending and once with .cmd ending
49
+if exist "%USERPROFILE%\mavenrc_pre.bat" call "%USERPROFILE%\mavenrc_pre.bat" %*
50
+if exist "%USERPROFILE%\mavenrc_pre.cmd" call "%USERPROFILE%\mavenrc_pre.cmd" %*
51
+:skipRcPre
52
+
53
+@setlocal
54
+
55
+set ERROR_CODE=0
56
+
57
+@REM To isolate internal variables from possible post scripts, we use another setlocal
58
+@setlocal
59
+
60
+@REM ==== START VALIDATION ====
61
+if not "%JAVA_HOME%" == "" goto OkJHome
62
+
63
+echo.
64
+echo Error: JAVA_HOME not found in your environment. >&2
65
+echo Please set the JAVA_HOME variable in your environment to match the >&2
66
+echo location of your Java installation. >&2
67
+echo.
68
+goto error
69
+
70
+:OkJHome
71
+if exist "%JAVA_HOME%\bin\java.exe" goto init
72
+
73
+echo.
74
+echo Error: JAVA_HOME is set to an invalid directory. >&2
75
+echo JAVA_HOME = "%JAVA_HOME%" >&2
76
+echo Please set the JAVA_HOME variable in your environment to match the >&2
77
+echo location of your Java installation. >&2
78
+echo.
79
+goto error
80
+
81
+@REM ==== END VALIDATION ====
82
+
83
+:init
84
+
85
+@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
86
+@REM Fallback to current working directory if not found.
87
+
88
+set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
89
+IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
90
+
91
+set EXEC_DIR=%CD%
92
+set WDIR=%EXEC_DIR%
93
+:findBaseDir
94
+IF EXIST "%WDIR%"\.mvn goto baseDirFound
95
+cd ..
96
+IF "%WDIR%"=="%CD%" goto baseDirNotFound
97
+set WDIR=%CD%
98
+goto findBaseDir
99
+
100
+:baseDirFound
101
+set MAVEN_PROJECTBASEDIR=%WDIR%
102
+cd "%EXEC_DIR%"
103
+goto endDetectBaseDir
104
+
105
+:baseDirNotFound
106
+set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
107
+cd "%EXEC_DIR%"
108
+
109
+:endDetectBaseDir
110
+
111
+IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
112
+
113
+@setlocal EnableExtensions EnableDelayedExpansion
114
+for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
115
+@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
116
+
117
+:endReadAdditionalConfig
118
+
119
+SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
120
+set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
121
+set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
122
+
123
+set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
124
+
125
+FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
126
+    IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
127
+)
128
+
129
+@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
130
+@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
131
+if exist %WRAPPER_JAR% (
132
+    if "%MVNW_VERBOSE%" == "true" (
133
+        echo Found %WRAPPER_JAR%
134
+    )
135
+) else (
136
+    if not "%MVNW_REPOURL%" == "" (
137
+        SET DOWNLOAD_URL="%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
138
+    )
139
+    if "%MVNW_VERBOSE%" == "true" (
140
+        echo Couldn't find %WRAPPER_JAR%, downloading it ...
141
+        echo Downloading from: %DOWNLOAD_URL%
142
+    )
143
+
144
+    powershell -Command "&{"^
145
+		"$webclient = new-object System.Net.WebClient;"^
146
+		"if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
147
+		"$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
148
+		"}"^
149
+		"[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^
150
+		"}"
151
+    if "%MVNW_VERBOSE%" == "true" (
152
+        echo Finished downloading %WRAPPER_JAR%
153
+    )
154
+)
155
+@REM End of extension
156
+
157
+@REM Provide a "standardized" way to retrieve the CLI args that will
158
+@REM work with both Windows and non-Windows executions.
159
+set MAVEN_CMD_LINE_ARGS=%*
160
+
161
+%MAVEN_JAVA_EXE% ^
162
+  %JVM_CONFIG_MAVEN_PROPS% ^
163
+  %MAVEN_OPTS% ^
164
+  %MAVEN_DEBUG_OPTS% ^
165
+  -classpath %WRAPPER_JAR% ^
166
+  "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" ^
167
+  %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
168
+if ERRORLEVEL 1 goto error
169
+goto end
170
+
171
+:error
172
+set ERROR_CODE=1
173
+
174
+:end
175
+@endlocal & set ERROR_CODE=%ERROR_CODE%
176
+
177
+if not "%MAVEN_SKIP_RC%"=="" goto skipRcPost
178
+@REM check for post script, once with legacy .bat ending and once with .cmd ending
179
+if exist "%USERPROFILE%\mavenrc_post.bat" call "%USERPROFILE%\mavenrc_post.bat"
180
+if exist "%USERPROFILE%\mavenrc_post.cmd" call "%USERPROFILE%\mavenrc_post.cmd"
181
+:skipRcPost
182
+
183
+@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
184
+if "%MAVEN_BATCH_PAUSE%"=="on" pause
185
+
186
+if "%MAVEN_TERMINATE_CMD%"=="on" exit %ERROR_CODE%
187
+
188
+cmd /C exit /B %ERROR_CODE%

+ 93
- 0
company-microservice/pom.xml View File

@@ -0,0 +1,93 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
4
+	<modelVersion>4.0.0</modelVersion>
5
+	<parent>
6
+		<groupId>org.springframework.boot</groupId>
7
+		<artifactId>spring-boot-starter-parent</artifactId>
8
+		<version>2.7.3</version>
9
+		<relativePath/> <!-- lookup parent from repository -->
10
+	</parent>
11
+	<groupId>fr.natan.microservices</groupId>
12
+	<artifactId>company-microservice</artifactId>
13
+	<version>0.0.1-SNAPSHOT</version>
14
+	<name>company-microservice</name>
15
+	<description>company microservice with spring cloud openfeign.</description>
16
+	<properties>
17
+		<java.version>11</java.version>
18
+		<spring-cloud.version>2021.0.4</spring-cloud.version>
19
+	</properties>
20
+	<dependencies>
21
+		<dependency>
22
+			<groupId>org.springframework.boot</groupId>
23
+			<artifactId>spring-boot-starter-data-jpa</artifactId>
24
+		</dependency>
25
+		<dependency>
26
+			<groupId>org.springframework.boot</groupId>
27
+			<artifactId>spring-boot-starter-web</artifactId>
28
+		</dependency>
29
+		<dependency>
30
+			<groupId>org.springframework.cloud</groupId>
31
+			<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
32
+		</dependency>
33
+
34
+		<dependency>
35
+			<groupId>org.springframework.boot</groupId>
36
+			<artifactId>spring-boot-devtools</artifactId>
37
+			<scope>runtime</scope>
38
+			<optional>true</optional>
39
+		</dependency>
40
+		<dependency>
41
+			<groupId>mysql</groupId>
42
+			<artifactId>mysql-connector-java</artifactId>
43
+			<scope>runtime</scope>
44
+		</dependency>
45
+		<dependency>
46
+			<groupId>org.projectlombok</groupId>
47
+			<artifactId>lombok</artifactId>
48
+			<optional>true</optional>
49
+		</dependency>
50
+		<dependency>
51
+			<groupId>org.springframework.boot</groupId>
52
+			<artifactId>spring-boot-starter-test</artifactId>
53
+			<scope>test</scope>
54
+		</dependency>
55
+	</dependencies>
56
+	<dependencyManagement>
57
+		<dependencies>
58
+			<dependency>
59
+				<groupId>org.springframework.cloud</groupId>
60
+				<artifactId>spring-cloud-dependencies</artifactId>
61
+				<version>${spring-cloud.version}</version>
62
+				<type>pom</type>
63
+				<scope>import</scope>
64
+			</dependency>
65
+		</dependencies>
66
+	</dependencyManagement>
67
+
68
+	<build>
69
+		<plugins>
70
+			<plugin>
71
+				<groupId>org.springframework.boot</groupId>
72
+				<artifactId>spring-boot-maven-plugin</artifactId>
73
+				<configuration>
74
+					<excludes>
75
+						<exclude>
76
+							<groupId>org.projectlombok</groupId>
77
+							<artifactId>lombok</artifactId>
78
+						</exclude>
79
+					</excludes>
80
+				</configuration>
81
+			</plugin>
82
+			<plugin>
83
+				<groupId>org.apache.maven.plugins</groupId>
84
+				<artifactId>maven-surefire-plugin</artifactId>
85
+				<version>2.12.4</version>
86
+				<configuration>
87
+					<skipTests>true</skipTests>
88
+				</configuration>
89
+			</plugin>
90
+		</plugins>
91
+	</build>
92
+
93
+</project>

+ 13
- 0
company-microservice/src/main/java/fr/natan/microservices/companymicroservice/CompanyMicroserviceApplication.java View File

@@ -0,0 +1,13 @@
1
+package fr.natan.microservices.companymicroservice;
2
+
3
+import org.springframework.boot.SpringApplication;
4
+import org.springframework.boot.autoconfigure.SpringBootApplication;
5
+
6
+@SpringBootApplication
7
+public class CompanyMicroserviceApplication {
8
+
9
+	public static void main(String[] args) {
10
+		SpringApplication.run(CompanyMicroserviceApplication.class, args);
11
+	}
12
+
13
+}

+ 4
- 0
company-microservice/src/main/java/fr/natan/microservices/companymicroservice/exceptions/CompanyAlreadyExistsException.java View File

@@ -0,0 +1,4 @@
1
+package fr.natan.microservices.companymicroservice.exceptions;
2
+
3
+public class CompanyAlreadyExistsException extends Exception{
4
+}

+ 4
- 0
company-microservice/src/main/java/fr/natan/microservices/companymicroservice/exceptions/CompanyFieldsEmptyException.java View File

@@ -0,0 +1,4 @@
1
+package fr.natan.microservices.companymicroservice.exceptions;
2
+
3
+public class CompanyFieldsEmptyException extends Exception{
4
+}

+ 4
- 0
company-microservice/src/main/java/fr/natan/microservices/companymicroservice/exceptions/CompanyNotFoundException.java View File

@@ -0,0 +1,4 @@
1
+package fr.natan.microservices.companymicroservice.exceptions;
2
+
3
+public class CompanyNotFoundException  extends Exception{
4
+}

+ 4
- 0
company-microservice/src/main/java/fr/natan/microservices/companymicroservice/exceptions/CompanyTypesInvalidException.java View File

@@ -0,0 +1,4 @@
1
+package fr.natan.microservices.companymicroservice.exceptions;
2
+
3
+public class CompanyTypesInvalidException extends Exception {
4
+}

+ 37
- 0
company-microservice/src/main/java/fr/natan/microservices/companymicroservice/exceptions_handler/CompanyExceptionHandler.java View File

@@ -0,0 +1,37 @@
1
+package fr.natan.microservices.companymicroservice.exceptions_handler;
2
+
3
+import fr.natan.microservices.companymicroservice.exceptions.CompanyAlreadyExistsException;
4
+import fr.natan.microservices.companymicroservice.exceptions.CompanyFieldsEmptyException;
5
+import fr.natan.microservices.companymicroservice.exceptions.CompanyNotFoundException;
6
+import fr.natan.microservices.companymicroservice.exceptions.CompanyTypesInvalidException;
7
+import org.springframework.http.HttpStatus;
8
+import org.springframework.http.ResponseEntity;
9
+import org.springframework.web.bind.annotation.ControllerAdvice;
10
+import org.springframework.web.bind.annotation.ExceptionHandler;
11
+
12
+@ControllerAdvice
13
+public class CompanyExceptionHandler {
14
+
15
+    @ExceptionHandler(value = CompanyAlreadyExistsException.class)
16
+    private ResponseEntity<String> handleCompanyAlreadyExistsException(){
17
+        return new ResponseEntity<>("Company already exists exception",
18
+                HttpStatus.NOT_ACCEPTABLE);
19
+    }
20
+
21
+    @ExceptionHandler(value = CompanyNotFoundException.class)
22
+    private ResponseEntity<String> handleCompanyNotFoundException(){
23
+        return new ResponseEntity<>("Company not found exception",
24
+                HttpStatus.NOT_FOUND);
25
+    }
26
+
27
+    @ExceptionHandler(value = CompanyFieldsEmptyException.class)
28
+    private ResponseEntity<String> handleCompanyFieldsEmptyException(){
29
+        return new ResponseEntity<>("Company, some fields empty exception",
30
+                HttpStatus.NOT_ACCEPTABLE);
31
+    }
32
+
33
+    @ExceptionHandler(value = CompanyTypesInvalidException.class)
34
+    private ResponseEntity<String> handleCompanyTypesInvalidException(){
35
+        return new ResponseEntity<>("Company types invalid Exception", HttpStatus.NOT_ACCEPTABLE);
36
+    }
37
+}

+ 71
- 0
company-microservice/src/main/java/fr/natan/microservices/companymicroservice/model/company/Company.java View File

@@ -0,0 +1,71 @@
1
+package fr.natan.microservices.companymicroservice.model.company;
2
+
3
+import fr.natan.microservices.companymicroservice.model.type.CompanyType1;
4
+import fr.natan.microservices.companymicroservice.model.type.CompanyType2;
5
+
6
+import javax.persistence.*;
7
+
8
+@Entity
9
+public class Company {
10
+    @Id
11
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
12
+    private Long companyID;
13
+    private String companyName;
14
+    @Enumerated(value = EnumType.STRING)
15
+    private CompanyType1 companyType1;
16
+    @Enumerated(value = EnumType.STRING)
17
+    private CompanyType2 companyType2;
18
+    private String connectionDate;
19
+
20
+
21
+    public Company() {
22
+    }
23
+
24
+    public Company(Long companyID, String companyName, CompanyType1 companyType, String connectionDate, CompanyType2 structure) {
25
+        this.companyID = companyID;
26
+        this.companyName = companyName;
27
+        this.companyType1 = companyType;
28
+        this.connectionDate = connectionDate;
29
+        this.companyType2 = structure;
30
+    }
31
+
32
+    public Long getCompanyID() {
33
+        return companyID;
34
+    }
35
+
36
+    public void setCompanyID(Long companyID) {
37
+        this.companyID = companyID;
38
+    }
39
+
40
+    public String getCompanyName() {
41
+        return companyName;
42
+    }
43
+
44
+    public void setCompanyName(String companyName) {
45
+        this.companyName = companyName;
46
+    }
47
+
48
+    public CompanyType1 getCompanyType1() {
49
+        return companyType1;
50
+    }
51
+
52
+    public void setCompanyType1(CompanyType1 companyType1) {
53
+        this.companyType1 = companyType1;
54
+    }
55
+
56
+    public String getConnectionDate() {
57
+        return connectionDate;
58
+    }
59
+
60
+    public void setConnectionDate(String connectionDate) {
61
+        this.connectionDate = connectionDate;
62
+    }
63
+
64
+    public CompanyType2 getCompanyType2() {
65
+        return companyType2;
66
+    }
67
+
68
+    public void setCompanyType2(CompanyType2 companyType2) {
69
+        this.companyType2 = companyType2;
70
+    }
71
+}

+ 6
- 0
company-microservice/src/main/java/fr/natan/microservices/companymicroservice/model/type/CompanyType1.java View File

@@ -0,0 +1,6 @@
1
+package fr.natan.microservices.companymicroservice.model.type;
2
+
3
+public enum CompanyType1 {
4
+    CLIENT,
5
+    PROSPECT
6
+}

+ 6
- 0
company-microservice/src/main/java/fr/natan/microservices/companymicroservice/model/type/CompanyType2.java View File

@@ -0,0 +1,6 @@
1
+package fr.natan.microservices.companymicroservice.model.type;
2
+
3
+public enum CompanyType2 {
4
+    ESN,
5
+    CONSEIL
6
+}

+ 10
- 0
company-microservice/src/main/java/fr/natan/microservices/companymicroservice/repository/CompanyRepository.java View File

@@ -0,0 +1,10 @@
1
+package fr.natan.microservices.companymicroservice.repository;
2
+
3
+import fr.natan.microservices.companymicroservice.model.company.Company;
4
+import org.springframework.data.jpa.repository.JpaRepository;
5
+
6
+import java.util.List;
7
+
8
+public interface CompanyRepository extends JpaRepository<Company, Long> {
9
+    List<Company> findByCompanyName(String companyName);
10
+}

+ 19
- 0
company-microservice/src/main/java/fr/natan/microservices/companymicroservice/service/contract/CompanyContract.java View File

@@ -0,0 +1,19 @@
1
+package fr.natan.microservices.companymicroservice.service.contract;
2
+
3
+import fr.natan.microservices.companymicroservice.exceptions.CompanyAlreadyExistsException;
4
+import fr.natan.microservices.companymicroservice.exceptions.CompanyFieldsEmptyException;
5
+import fr.natan.microservices.companymicroservice.exceptions.CompanyNotFoundException;
6
+import fr.natan.microservices.companymicroservice.exceptions.CompanyTypesInvalidException;
7
+import fr.natan.microservices.companymicroservice.model.company.Company;
8
+
9
+import java.util.Collection;
10
+import java.util.List;
11
+
12
+public interface CompanyContract {
13
+    Company createCompany(Company company) throws CompanyAlreadyExistsException, CompanyFieldsEmptyException, CompanyTypesInvalidException;
14
+    Collection<Company> getCompanies();
15
+    List<Company> getCompanyByName(String companyName);
16
+    Company getCompany(Long companyID) throws CompanyNotFoundException;
17
+    void deleteCompany(Long companyID) throws CompanyNotFoundException;
18
+    Company updateCompany(Long companyID, Company company) throws CompanyNotFoundException, CompanyFieldsEmptyException;
19
+}

+ 82
- 0
company-microservice/src/main/java/fr/natan/microservices/companymicroservice/service/services/CompanyService.java View File

@@ -0,0 +1,82 @@
1
+package fr.natan.microservices.companymicroservice.service.services;
2
+
3
+import fr.natan.microservices.companymicroservice.exceptions.CompanyAlreadyExistsException;
4
+import fr.natan.microservices.companymicroservice.exceptions.CompanyFieldsEmptyException;
5
+import fr.natan.microservices.companymicroservice.exceptions.CompanyNotFoundException;
6
+import fr.natan.microservices.companymicroservice.exceptions.CompanyTypesInvalidException;
7
+import fr.natan.microservices.companymicroservice.model.company.Company;
8
+import fr.natan.microservices.companymicroservice.repository.CompanyRepository;
9
+import fr.natan.microservices.companymicroservice.service.contract.CompanyContract;
10
+import fr.natan.microservices.companymicroservice.service.utilities.CompanyValidator;
11
+import org.springframework.stereotype.Service;
12
+
13
+import javax.transaction.Transactional;
14
+import java.sql.Date;
15
+import java.sql.Time;
16
+import java.util.Collection;
17
+import java.util.List;
18
+
19
+@Service
20
+public class CompanyService implements CompanyContract {
21
+
22
+    private final CompanyRepository companyRepository;
23
+
24
+    public CompanyService(CompanyRepository companyRepository) {
25
+        this.companyRepository = companyRepository;
26
+    }
27
+
28
+    @Override
29
+    public List<Company> getCompanyByName(String companyName) {
30
+        return companyRepository.findByCompanyName(companyName);
31
+    }
32
+    @Override
33
+    public Company createCompany(Company company) throws CompanyAlreadyExistsException, CompanyFieldsEmptyException,
34
+            CompanyTypesInvalidException {
35
+        if(! CompanyValidator.isValidCompany(company)){
36
+            throw new CompanyFieldsEmptyException();
37
+        }
38
+        else if(!CompanyValidator.validCompanyTypes(company)){
39
+            throw new CompanyTypesInvalidException();
40
+        }
41
+        Company formattedCompany = CompanyValidator.formatCompany(company);
42
+        if(getCompanyByName(formattedCompany.getCompanyName()).size()>0){
43
+            throw new CompanyAlreadyExistsException();
44
+        }
45
+
46
+        company.setConnectionDate(new Date(System.currentTimeMillis())+" : "+new Time(System.currentTimeMillis()));
47
+
48
+        return companyRepository.save(formattedCompany);
49
+    }
50
+
51
+    @Override
52
+    public Collection<Company> getCompanies() {
53
+        return companyRepository.findAll();
54
+    }
55
+
56
+    @Override
57
+    public Company getCompany(Long companyID) throws CompanyNotFoundException {
58
+        return companyRepository.findById(companyID).orElseThrow(
59
+                ()-> new CompanyNotFoundException()
60
+        );
61
+    }
62
+
63
+    @Override
64
+    public void deleteCompany(Long companyID) throws CompanyNotFoundException {
65
+        companyRepository.delete(getCompany(companyID));
66
+    }
67
+
68
+    @Override
69
+    @Transactional
70
+    public Company updateCompany(Long companyID, Company company) throws CompanyNotFoundException,
71
+            CompanyFieldsEmptyException {
72
+        if(!CompanyValidator.isValidCompany(company))
73
+            throw new CompanyFieldsEmptyException();
74
+
75
+       Company savedCompany = getCompany(companyID);
76
+       savedCompany.setCompanyName(company.getCompanyName());
77
+       savedCompany.setCompanyType1(company.getCompanyType1());
78
+       savedCompany.setCompanyType2(company.getCompanyType2());
79
+
80
+        return savedCompany;
81
+    }
82
+}

+ 27
- 0
company-microservice/src/main/java/fr/natan/microservices/companymicroservice/service/utilities/CompanyValidator.java View File

@@ -0,0 +1,27 @@
1
+package fr.natan.microservices.companymicroservice.service.utilities;
2
+
3
+import fr.natan.microservices.companymicroservice.model.company.Company;
4
+
5
+public class CompanyValidator {
6
+
7
+    public static Company formatCompany(Company company){
8
+        company.setCompanyName(company.getCompanyName().strip().toUpperCase());
9
+        return company;
10
+    }
11
+
12
+    public static boolean isValidCompany(Company company){
13
+        if(company.getCompanyName().isEmpty()){
14
+            return false;
15
+        }
16
+        else
17
+            return true;
18
+    }
19
+
20
+    public static boolean validCompanyTypes(Company company){
21
+        if(company.getCompanyType1()==null || company.getCompanyType2()==null){
22
+            return false;
23
+        }
24
+        else
25
+            return true;
26
+    }
27
+}

+ 48
- 0
company-microservice/src/main/java/fr/natan/microservices/companymicroservice/t_controller/CompanyController.java View File

@@ -0,0 +1,48 @@
1
+package fr.natan.microservices.companymicroservice.t_controller;
2
+
3
+import fr.natan.microservices.companymicroservice.exceptions.CompanyAlreadyExistsException;
4
+import fr.natan.microservices.companymicroservice.exceptions.CompanyFieldsEmptyException;
5
+import fr.natan.microservices.companymicroservice.exceptions.CompanyNotFoundException;
6
+import fr.natan.microservices.companymicroservice.exceptions.CompanyTypesInvalidException;
7
+import fr.natan.microservices.companymicroservice.model.company.Company;
8
+import fr.natan.microservices.companymicroservice.service.contract.CompanyContract;
9
+import org.springframework.web.bind.annotation.*;
10
+
11
+import java.util.Collection;
12
+
13
+@RestController
14
+public class CompanyController {
15
+
16
+    private final CompanyContract companyContract;
17
+
18
+    public CompanyController(CompanyContract companyContract) {
19
+        this.companyContract = companyContract;
20
+    }
21
+
22
+    @RequestMapping(value = "/companies", method = RequestMethod.POST)
23
+    private Company createCompany(@RequestBody Company company) throws CompanyAlreadyExistsException,
24
+            CompanyFieldsEmptyException, CompanyTypesInvalidException {
25
+        return companyContract.createCompany(company);
26
+    }
27
+    @RequestMapping(value = "/companies", method = RequestMethod.GET)
28
+    private Collection<Company> getAllCompanies(){
29
+        return companyContract.getCompanies();
30
+    }
31
+    @RequestMapping(value = "/companies/{id}", method = RequestMethod.GET)
32
+    private Company getCompany(@PathVariable (name = "id") Long id) throws CompanyNotFoundException {
33
+        return companyContract.getCompany(id);
34
+    }
35
+
36
+    @RequestMapping(value = "/companies/{id}", method = RequestMethod.DELETE)
37
+    private void deleteCompany(@PathVariable(name = "id") Long id) throws CompanyNotFoundException {
38
+        companyContract.deleteCompany(id);
39
+    }
40
+
41
+    @RequestMapping(value = "/companies/{companyID}", method = RequestMethod.PUT)
42
+    private Company updateCompany(@PathVariable(name = "companyID") Long companyID, @RequestBody Company company)
43
+            throws CompanyNotFoundException, CompanyFieldsEmptyException {
44
+
45
+        return companyContract.updateCompany(companyID, company);
46
+    }
47
+
48
+}

+ 24
- 0
company-microservice/src/main/resources/application.yml View File

@@ -0,0 +1,24 @@
1
+server:
2
+  port: 8182
3
+  error:
4
+    include-message: always
5
+spring:
6
+  application:
7
+    name: company-microservice
8
+  datasource:
9
+    url: jdbc:mysql://mysql-db:3306/company_microservice_db?createDatabaseIfNotExist=true
10
+    #url: jdbc:mysql://localhost:3306/company_microservice_db?createDatabaseIfNotExist=true
11
+    username: root
12
+    password: root
13
+  jpa:
14
+    show-sql: true
15
+    hibernate:
16
+      ddl-auto: update
17
+    properties:
18
+      hibernate:
19
+        dialect: org.hibernate.dialect.MySQL8Dialect
20
+eureka:
21
+  client:
22
+    service-url:
23
+      defaultZone: http://eureka-server:8761/eureka
24
+      #defaultZone: http://localhost:8761/eureka

+ 13
- 0
company-microservice/src/test/java/fr/natan/microservices/companymicroservice/CompanyMicroserviceApplicationTests.java View File

@@ -0,0 +1,13 @@
1
+package fr.natan.microservices.companymicroservice;
2
+
3
+import org.junit.jupiter.api.Test;
4
+import org.springframework.boot.test.context.SpringBootTest;
5
+
6
+@SpringBootTest
7
+class CompanyMicroserviceApplicationTests {
8
+
9
+	@Test
10
+	void contextLoads() {
11
+	}
12
+
13
+}

+ 24
- 0
company-microservice/target/classes/application.yml View File

@@ -0,0 +1,24 @@
1
+server:
2
+  port: 8182
3
+  error:
4
+    include-message: always
5
+spring:
6
+  application:
7
+    name: company-microservice
8
+  datasource:
9
+    url: jdbc:mysql://mysql-db:3306/company_microservice_db?createDatabaseIfNotExist=true
10
+    #url: jdbc:mysql://localhost:3306/company_microservice_db?createDatabaseIfNotExist=true
11
+    username: root
12
+    password: root
13
+  jpa:
14
+    show-sql: true
15
+    hibernate:
16
+      ddl-auto: update
17
+    properties:
18
+      hibernate:
19
+        dialect: org.hibernate.dialect.MySQL8Dialect
20
+eureka:
21
+  client:
22
+    service-url:
23
+      defaultZone: http://eureka-server:8761/eureka
24
+      #defaultZone: http://localhost:8761/eureka

BIN
company-microservice/target/classes/fr/natan/microservices/companymicroservice/CompanyMicroserviceApplication.class View File


BIN
company-microservice/target/classes/fr/natan/microservices/companymicroservice/exceptions/CompanyAlreadyExistsException.class View File


BIN
company-microservice/target/classes/fr/natan/microservices/companymicroservice/exceptions/CompanyFieldsEmptyException.class View File


BIN
company-microservice/target/classes/fr/natan/microservices/companymicroservice/exceptions/CompanyNotFoundException.class View File


BIN
company-microservice/target/classes/fr/natan/microservices/companymicroservice/exceptions/CompanyTypesInvalidException.class View File


BIN
company-microservice/target/classes/fr/natan/microservices/companymicroservice/exceptions_handler/CompanyExceptionHandler.class View File


BIN
company-microservice/target/classes/fr/natan/microservices/companymicroservice/model/company/Company.class View File


BIN
company-microservice/target/classes/fr/natan/microservices/companymicroservice/model/type/CompanyType1.class View File


BIN
company-microservice/target/classes/fr/natan/microservices/companymicroservice/model/type/CompanyType2.class View File


BIN
company-microservice/target/classes/fr/natan/microservices/companymicroservice/repository/CompanyRepository.class View File


BIN
company-microservice/target/classes/fr/natan/microservices/companymicroservice/service/contract/CompanyContract.class View File


BIN
company-microservice/target/classes/fr/natan/microservices/companymicroservice/service/services/CompanyService.class View File


BIN
company-microservice/target/classes/fr/natan/microservices/companymicroservice/service/utilities/CompanyValidator.class View File


BIN
company-microservice/target/classes/fr/natan/microservices/companymicroservice/t_controller/CompanyController.class View File


BIN
company-microservice/target/company-microservice-0.0.1-SNAPSHOT.jar View File


BIN
company-microservice/target/company-microservice-0.0.1-SNAPSHOT.jar.original View File


+ 3
- 0
company-microservice/target/maven-archiver/pom.properties View File

@@ -0,0 +1,3 @@
1
+artifactId=company-microservice
2
+groupId=fr.natan.microservices
3
+version=0.0.1-SNAPSHOT

+ 14
- 0
company-microservice/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst View File

@@ -0,0 +1,14 @@
1
+fr/natan/microservices/companymicroservice/exceptions_handler/CompanyExceptionHandler.class
2
+fr/natan/microservices/companymicroservice/service/utilities/CompanyValidator.class
3
+fr/natan/microservices/companymicroservice/t_controller/CompanyController.class
4
+fr/natan/microservices/companymicroservice/model/company/Company.class
5
+fr/natan/microservices/companymicroservice/exceptions/CompanyTypesInvalidException.class
6
+fr/natan/microservices/companymicroservice/exceptions/CompanyFieldsEmptyException.class
7
+fr/natan/microservices/companymicroservice/CompanyMicroserviceApplication.class
8
+fr/natan/microservices/companymicroservice/model/type/CompanyType1.class
9
+fr/natan/microservices/companymicroservice/service/services/CompanyService.class
10
+fr/natan/microservices/companymicroservice/exceptions/CompanyNotFoundException.class
11
+fr/natan/microservices/companymicroservice/service/contract/CompanyContract.class
12
+fr/natan/microservices/companymicroservice/exceptions/CompanyAlreadyExistsException.class
13
+fr/natan/microservices/companymicroservice/repository/CompanyRepository.class
14
+fr/natan/microservices/companymicroservice/model/type/CompanyType2.class

+ 14
- 0
company-microservice/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst View File

@@ -0,0 +1,14 @@
1
+/home/zbook-pn-15-g3/Bootcamp Java/users-projects-company-backend-frontend/users-projects-companies-springmvc-microservices-backend/company-microservice/src/main/java/fr/natan/microservices/companymicroservice/CompanyMicroserviceApplication.java
2
+/home/zbook-pn-15-g3/Bootcamp Java/users-projects-company-backend-frontend/users-projects-companies-springmvc-microservices-backend/company-microservice/src/main/java/fr/natan/microservices/companymicroservice/exceptions/CompanyAlreadyExistsException.java
3
+/home/zbook-pn-15-g3/Bootcamp Java/users-projects-company-backend-frontend/users-projects-companies-springmvc-microservices-backend/company-microservice/src/main/java/fr/natan/microservices/companymicroservice/t_controller/CompanyController.java
4
+/home/zbook-pn-15-g3/Bootcamp Java/users-projects-company-backend-frontend/users-projects-companies-springmvc-microservices-backend/company-microservice/src/main/java/fr/natan/microservices/companymicroservice/model/company/Company.java
5
+/home/zbook-pn-15-g3/Bootcamp Java/users-projects-company-backend-frontend/users-projects-companies-springmvc-microservices-backend/company-microservice/src/main/java/fr/natan/microservices/companymicroservice/exceptions/CompanyNotFoundException.java
6
+/home/zbook-pn-15-g3/Bootcamp Java/users-projects-company-backend-frontend/users-projects-companies-springmvc-microservices-backend/company-microservice/src/main/java/fr/natan/microservices/companymicroservice/model/type/CompanyType1.java
7
+/home/zbook-pn-15-g3/Bootcamp Java/users-projects-company-backend-frontend/users-projects-companies-springmvc-microservices-backend/company-microservice/src/main/java/fr/natan/microservices/companymicroservice/exceptions/CompanyFieldsEmptyException.java
8
+/home/zbook-pn-15-g3/Bootcamp Java/users-projects-company-backend-frontend/users-projects-companies-springmvc-microservices-backend/company-microservice/src/main/java/fr/natan/microservices/companymicroservice/service/services/CompanyService.java
9
+/home/zbook-pn-15-g3/Bootcamp Java/users-projects-company-backend-frontend/users-projects-companies-springmvc-microservices-backend/company-microservice/src/main/java/fr/natan/microservices/companymicroservice/repository/CompanyRepository.java
10
+/home/zbook-pn-15-g3/Bootcamp Java/users-projects-company-backend-frontend/users-projects-companies-springmvc-microservices-backend/company-microservice/src/main/java/fr/natan/microservices/companymicroservice/exceptions_handler/CompanyExceptionHandler.java
11
+/home/zbook-pn-15-g3/Bootcamp Java/users-projects-company-backend-frontend/users-projects-companies-springmvc-microservices-backend/company-microservice/src/main/java/fr/natan/microservices/companymicroservice/model/type/CompanyType2.java
12
+/home/zbook-pn-15-g3/Bootcamp Java/users-projects-company-backend-frontend/users-projects-companies-springmvc-microservices-backend/company-microservice/src/main/java/fr/natan/microservices/companymicroservice/service/utilities/CompanyValidator.java
13
+/home/zbook-pn-15-g3/Bootcamp Java/users-projects-company-backend-frontend/users-projects-companies-springmvc-microservices-backend/company-microservice/src/main/java/fr/natan/microservices/companymicroservice/exceptions/CompanyTypesInvalidException.java
14
+/home/zbook-pn-15-g3/Bootcamp Java/users-projects-company-backend-frontend/users-projects-companies-springmvc-microservices-backend/company-microservice/src/main/java/fr/natan/microservices/companymicroservice/service/contract/CompanyContract.java

+ 1
- 0
company-microservice/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst View File

@@ -0,0 +1 @@
1
+fr/natan/microservices/companymicroservice/CompanyMicroserviceApplicationTests.class

+ 1
- 0
company-microservice/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst View File

@@ -0,0 +1 @@
1
+/home/zbook-pn-15-g3/Bootcamp Java/users-projects-company-backend-frontend/users-projects-companies-springmvc-microservices-backend/company-microservice/src/test/java/fr/natan/microservices/companymicroservice/CompanyMicroserviceApplicationTests.java

BIN
company-microservice/target/test-classes/fr/natan/microservices/companymicroservice/CompanyMicroserviceApplicationTests.class View File


+ 33
- 0
eureka-discovery-server/.gitignore View File

@@ -0,0 +1,33 @@
1
+HELP.md
2
+target/
3
+!.mvn/wrapper/maven-wrapper.jar
4
+!**/src/main/**/target/
5
+!**/src/test/**/target/
6
+
7
+### STS ###
8
+.apt_generated
9
+.classpath
10
+.factorypath
11
+.project
12
+.settings
13
+.springBeans
14
+.sts4-cache
15
+
16
+### IntelliJ IDEA ###
17
+.idea
18
+*.iws
19
+*.iml
20
+*.ipr
21
+
22
+### NetBeans ###
23
+/nbproject/private/
24
+/nbbuild/
25
+/dist/
26
+/nbdist/
27
+/.nb-gradle/
28
+build/
29
+!**/src/main/**/build/
30
+!**/src/test/**/build/
31
+
32
+### VS Code ###
33
+.vscode/

BIN
eureka-discovery-server/.mvn/wrapper/maven-wrapper.jar View File


+ 2
- 0
eureka-discovery-server/.mvn/wrapper/maven-wrapper.properties View File

@@ -0,0 +1,2 @@
1
+distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip
2
+wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar

+ 32
- 0
eureka-discovery-server/Dockerfile View File

@@ -0,0 +1,32 @@
1
+######
2
+##
3
+##  Stage 1: Building the app
4
+##
5
+#######
6
+
7
+FROM maven:3.8.3-adoptopenjdk-16 AS builder
8
+WORKDIR /build/
9
+COPY pom.xml /build/
10
+# fetch all dependencies
11
+#RUN mvn dependency:go-offline -B
12
+
13
+COPY src /build/src/
14
+RUN mvn package -DskipTests
15
+WORKDIR /build/target/
16
+RUN java -Djarmode=layertools -jar eureka-discovery-server-0.0.1-SNAPSHOT.jar extract
17
+######
18
+##
19
+##  Stage 2: Running the app
20
+##
21
+#######
22
+
23
+FROM adoptopenjdk:16_36-jre-hotspot
24
+RUN useradd -rm -d /home/zbook-pn-15-g3 -s /bin/bash -g root -G sudo -u 1001 simple-user
25
+USER simple-user
26
+WORKDIR application
27
+EXPOSE 8761
28
+ENTRYPOINT ["java", "org.springframework.boot.loader.JarLauncher"]
29
+COPY --from=builder /build/target/dependencies/ ./
30
+COPY --from=builder /build/target/spring-boot-loader/ ./
31
+COPY --from=builder /build/target/snapshot-dependencies/ ./
32
+COPY --from=builder /build/target/application/ ./

+ 316
- 0
eureka-discovery-server/mvnw View File

@@ -0,0 +1,316 @@
1
+#!/bin/sh
2
+# ----------------------------------------------------------------------------
3
+# Licensed to the Apache Software Foundation (ASF) under one
4
+# or more contributor license agreements.  See the NOTICE file
5
+# distributed with this work for additional information
6
+# regarding copyright ownership.  The ASF licenses this file
7
+# to you under the Apache License, Version 2.0 (the
8
+# "License"); you may not use this file except in compliance
9
+# with the License.  You may obtain a copy of the License at
10
+#
11
+#    https://www.apache.org/licenses/LICENSE-2.0
12
+#
13
+# Unless required by applicable law or agreed to in writing,
14
+# software distributed under the License is distributed on an
15
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16
+# KIND, either express or implied.  See the License for the
17
+# specific language governing permissions and limitations
18
+# under the License.
19
+# ----------------------------------------------------------------------------
20
+
21
+# ----------------------------------------------------------------------------
22
+# Maven Start Up Batch script
23
+#
24
+# Required ENV vars:
25
+# ------------------
26
+#   JAVA_HOME - location of a JDK home dir
27
+#
28
+# Optional ENV vars
29
+# -----------------
30
+#   M2_HOME - location of maven2's installed home dir
31
+#   MAVEN_OPTS - parameters passed to the Java VM when running Maven
32
+#     e.g. to debug Maven itself, use
33
+#       set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
34
+#   MAVEN_SKIP_RC - flag to disable loading of mavenrc files
35
+# ----------------------------------------------------------------------------
36
+
37
+if [ -z "$MAVEN_SKIP_RC" ] ; then
38
+
39
+  if [ -f /usr/local/etc/mavenrc ] ; then
40
+    . /usr/local/etc/mavenrc
41
+  fi
42
+
43
+  if [ -f /etc/mavenrc ] ; then
44
+    . /etc/mavenrc
45
+  fi
46
+
47
+  if [ -f "$HOME/.mavenrc" ] ; then
48
+    . "$HOME/.mavenrc"
49
+  fi
50
+
51
+fi
52
+
53
+# OS specific support.  $var _must_ be set to either true or false.
54
+cygwin=false;
55
+darwin=false;
56
+mingw=false
57
+case "`uname`" in
58
+  CYGWIN*) cygwin=true ;;
59
+  MINGW*) mingw=true;;
60
+  Darwin*) darwin=true
61
+    # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
62
+    # See https://developer.apple.com/library/mac/qa/qa1170/_index.html
63
+    if [ -z "$JAVA_HOME" ]; then
64
+      if [ -x "/usr/libexec/java_home" ]; then
65
+        export JAVA_HOME="`/usr/libexec/java_home`"
66
+      else
67
+        export JAVA_HOME="/Library/Java/Home"
68
+      fi
69
+    fi
70
+    ;;
71
+esac
72
+
73
+if [ -z "$JAVA_HOME" ] ; then
74
+  if [ -r /etc/gentoo-release ] ; then
75
+    JAVA_HOME=`java-config --jre-home`
76
+  fi
77
+fi
78
+
79
+if [ -z "$M2_HOME" ] ; then
80
+  ## resolve links - $0 may be a link to maven's home
81
+  PRG="$0"
82
+
83
+  # need this for relative symlinks
84
+  while [ -h "$PRG" ] ; do
85
+    ls=`ls -ld "$PRG"`
86
+    link=`expr "$ls" : '.*-> \(.*\)$'`
87
+    if expr "$link" : '/.*' > /dev/null; then
88
+      PRG="$link"
89
+    else
90
+      PRG="`dirname "$PRG"`/$link"
91
+    fi
92
+  done
93
+
94
+  saveddir=`pwd`
95
+
96
+  M2_HOME=`dirname "$PRG"`/..
97
+
98
+  # make it fully qualified
99
+  M2_HOME=`cd "$M2_HOME" && pwd`
100
+
101
+  cd "$saveddir"
102
+  # echo Using m2 at $M2_HOME
103
+fi
104
+
105
+# For Cygwin, ensure paths are in UNIX format before anything is touched
106
+if $cygwin ; then
107
+  [ -n "$M2_HOME" ] &&
108
+    M2_HOME=`cygpath --unix "$M2_HOME"`
109
+  [ -n "$JAVA_HOME" ] &&
110
+    JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
111
+  [ -n "$CLASSPATH" ] &&
112
+    CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
113
+fi
114
+
115
+# For Mingw, ensure paths are in UNIX format before anything is touched
116
+if $mingw ; then
117
+  [ -n "$M2_HOME" ] &&
118
+    M2_HOME="`(cd "$M2_HOME"; pwd)`"
119
+  [ -n "$JAVA_HOME" ] &&
120
+    JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
121
+fi
122
+
123
+if [ -z "$JAVA_HOME" ]; then
124
+  javaExecutable="`which javac`"
125
+  if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
126
+    # readlink(1) is not available as standard on Solaris 10.
127
+    readLink=`which readlink`
128
+    if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
129
+      if $darwin ; then
130
+        javaHome="`dirname \"$javaExecutable\"`"
131
+        javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
132
+      else
133
+        javaExecutable="`readlink -f \"$javaExecutable\"`"
134
+      fi
135
+      javaHome="`dirname \"$javaExecutable\"`"
136
+      javaHome=`expr "$javaHome" : '\(.*\)/bin'`
137
+      JAVA_HOME="$javaHome"
138
+      export JAVA_HOME
139
+    fi
140
+  fi
141
+fi
142
+
143
+if [ -z "$JAVACMD" ] ; then
144
+  if [ -n "$JAVA_HOME"  ] ; then
145
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
146
+      # IBM's JDK on AIX uses strange locations for the executables
147
+      JAVACMD="$JAVA_HOME/jre/sh/java"
148
+    else
149
+      JAVACMD="$JAVA_HOME/bin/java"
150
+    fi
151
+  else
152
+    JAVACMD="`\\unset -f command; \\command -v java`"
153
+  fi
154
+fi
155
+
156
+if [ ! -x "$JAVACMD" ] ; then
157
+  echo "Error: JAVA_HOME is not defined correctly." >&2
158
+  echo "  We cannot execute $JAVACMD" >&2
159
+  exit 1
160
+fi
161
+
162
+if [ -z "$JAVA_HOME" ] ; then
163
+  echo "Warning: JAVA_HOME environment variable is not set."
164
+fi
165
+
166
+CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
167
+
168
+# traverses directory structure from process work directory to filesystem root
169
+# first directory with .mvn subdirectory is considered project base directory
170
+find_maven_basedir() {
171
+
172
+  if [ -z "$1" ]
173
+  then
174
+    echo "Path not specified to find_maven_basedir"
175
+    return 1
176
+  fi
177
+
178
+  basedir="$1"
179
+  wdir="$1"
180
+  while [ "$wdir" != '/' ] ; do
181
+    if [ -d "$wdir"/.mvn ] ; then
182
+      basedir=$wdir
183
+      break
184
+    fi
185
+    # workaround for JBEAP-8937 (on Solaris 10/Sparc)
186
+    if [ -d "${wdir}" ]; then
187
+      wdir=`cd "$wdir/.."; pwd`
188
+    fi
189
+    # end of workaround
190
+  done
191
+  echo "${basedir}"
192
+}
193
+
194
+# concatenates all lines of a file
195
+concat_lines() {
196
+  if [ -f "$1" ]; then
197
+    echo "$(tr -s '\n' ' ' < "$1")"
198
+  fi
199
+}
200
+
201
+BASE_DIR=`find_maven_basedir "$(pwd)"`
202
+if [ -z "$BASE_DIR" ]; then
203
+  exit 1;
204
+fi
205
+
206
+##########################################################################################
207
+# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
208
+# This allows using the maven wrapper in projects that prohibit checking in binary data.
209
+##########################################################################################
210
+if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
211
+    if [ "$MVNW_VERBOSE" = true ]; then
212
+      echo "Found .mvn/wrapper/maven-wrapper.jar"
213
+    fi
214
+else
215
+    if [ "$MVNW_VERBOSE" = true ]; then
216
+      echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
217
+    fi
218
+    if [ -n "$MVNW_REPOURL" ]; then
219
+      jarUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
220
+    else
221
+      jarUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
222
+    fi
223
+    while IFS="=" read key value; do
224
+      case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
225
+      esac
226
+    done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
227
+    if [ "$MVNW_VERBOSE" = true ]; then
228
+      echo "Downloading from: $jarUrl"
229
+    fi
230
+    wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
231
+    if $cygwin; then
232
+      wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"`
233
+    fi
234
+
235
+    if command -v wget > /dev/null; then
236
+        if [ "$MVNW_VERBOSE" = true ]; then
237
+          echo "Found wget ... using wget"
238
+        fi
239
+        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
240
+            wget "$jarUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath"
241
+        else
242
+            wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath"
243
+        fi
244
+    elif command -v curl > /dev/null; then
245
+        if [ "$MVNW_VERBOSE" = true ]; then
246
+          echo "Found curl ... using curl"
247
+        fi
248
+        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
249
+            curl -o "$wrapperJarPath" "$jarUrl" -f
250
+        else
251
+            curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f
252
+        fi
253
+
254
+    else
255
+        if [ "$MVNW_VERBOSE" = true ]; then
256
+          echo "Falling back to using Java to download"
257
+        fi
258
+        javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
259
+        # For Cygwin, switch paths to Windows format before running javac
260
+        if $cygwin; then
261
+          javaClass=`cygpath --path --windows "$javaClass"`
262
+        fi
263
+        if [ -e "$javaClass" ]; then
264
+            if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
265
+                if [ "$MVNW_VERBOSE" = true ]; then
266
+                  echo " - Compiling MavenWrapperDownloader.java ..."
267
+                fi
268
+                # Compiling the Java class
269
+                ("$JAVA_HOME/bin/javac" "$javaClass")
270
+            fi
271
+            if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
272
+                # Running the downloader
273
+                if [ "$MVNW_VERBOSE" = true ]; then
274
+                  echo " - Running MavenWrapperDownloader.java ..."
275
+                fi
276
+                ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
277
+            fi
278
+        fi
279
+    fi
280
+fi
281
+##########################################################################################
282
+# End of extension
283
+##########################################################################################
284
+
285
+export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
286
+if [ "$MVNW_VERBOSE" = true ]; then
287
+  echo $MAVEN_PROJECTBASEDIR
288
+fi
289
+MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
290
+
291
+# For Cygwin, switch paths to Windows format before running java
292
+if $cygwin; then
293
+  [ -n "$M2_HOME" ] &&
294
+    M2_HOME=`cygpath --path --windows "$M2_HOME"`
295
+  [ -n "$JAVA_HOME" ] &&
296
+    JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
297
+  [ -n "$CLASSPATH" ] &&
298
+    CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
299
+  [ -n "$MAVEN_PROJECTBASEDIR" ] &&
300
+    MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
301
+fi
302
+
303
+# Provide a "standardized" way to retrieve the CLI args that will
304
+# work with both Windows and non-Windows executions.
305
+MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
306
+export MAVEN_CMD_LINE_ARGS
307
+
308
+WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
309
+
310
+exec "$JAVACMD" \
311
+  $MAVEN_OPTS \
312
+  $MAVEN_DEBUG_OPTS \
313
+  -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
314
+  "-Dmaven.home=${M2_HOME}" \
315
+  "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
316
+  ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"

+ 188
- 0
eureka-discovery-server/mvnw.cmd View File

@@ -0,0 +1,188 @@
1
+@REM ----------------------------------------------------------------------------
2
+@REM Licensed to the Apache Software Foundation (ASF) under one
3
+@REM or more contributor license agreements.  See the NOTICE file
4
+@REM distributed with this work for additional information
5
+@REM regarding copyright ownership.  The ASF licenses this file
6
+@REM to you under the Apache License, Version 2.0 (the
7
+@REM "License"); you may not use this file except in compliance
8
+@REM with the License.  You may obtain a copy of the License at
9
+@REM
10
+@REM    https://www.apache.org/licenses/LICENSE-2.0
11
+@REM
12
+@REM Unless required by applicable law or agreed to in writing,
13
+@REM software distributed under the License is distributed on an
14
+@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15
+@REM KIND, either express or implied.  See the License for the
16
+@REM specific language governing permissions and limitations
17
+@REM under the License.
18
+@REM ----------------------------------------------------------------------------
19
+
20
+@REM ----------------------------------------------------------------------------
21
+@REM Maven Start Up Batch script
22
+@REM
23
+@REM Required ENV vars:
24
+@REM JAVA_HOME - location of a JDK home dir
25
+@REM
26
+@REM Optional ENV vars
27
+@REM M2_HOME - location of maven2's installed home dir
28
+@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
29
+@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending
30
+@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
31
+@REM     e.g. to debug Maven itself, use
32
+@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
33
+@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
34
+@REM ----------------------------------------------------------------------------
35
+
36
+@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
37
+@echo off
38
+@REM set title of command window
39
+title %0
40
+@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
41
+@if "%MAVEN_BATCH_ECHO%" == "on"  echo %MAVEN_BATCH_ECHO%
42
+
43
+@REM set %HOME% to equivalent of $HOME
44
+if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
45
+
46
+@REM Execute a user defined script before this one
47
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
48
+@REM check for pre script, once with legacy .bat ending and once with .cmd ending
49
+if exist "%USERPROFILE%\mavenrc_pre.bat" call "%USERPROFILE%\mavenrc_pre.bat" %*
50
+if exist "%USERPROFILE%\mavenrc_pre.cmd" call "%USERPROFILE%\mavenrc_pre.cmd" %*
51
+:skipRcPre
52
+
53
+@setlocal
54
+
55
+set ERROR_CODE=0
56
+
57
+@REM To isolate internal variables from possible post scripts, we use another setlocal
58
+@setlocal
59
+
60
+@REM ==== START VALIDATION ====
61
+if not "%JAVA_HOME%" == "" goto OkJHome
62
+
63
+echo.
64
+echo Error: JAVA_HOME not found in your environment. >&2
65
+echo Please set the JAVA_HOME variable in your environment to match the >&2
66
+echo location of your Java installation. >&2
67
+echo.
68
+goto error
69
+
70
+:OkJHome
71
+if exist "%JAVA_HOME%\bin\java.exe" goto init
72
+
73
+echo.
74
+echo Error: JAVA_HOME is set to an invalid directory. >&2
75
+echo JAVA_HOME = "%JAVA_HOME%" >&2
76
+echo Please set the JAVA_HOME variable in your environment to match the >&2
77
+echo location of your Java installation. >&2
78
+echo.
79
+goto error
80
+
81
+@REM ==== END VALIDATION ====
82
+
83
+:init
84
+
85
+@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
86
+@REM Fallback to current working directory if not found.
87
+
88
+set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
89
+IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
90
+
91
+set EXEC_DIR=%CD%
92
+set WDIR=%EXEC_DIR%
93
+:findBaseDir
94
+IF EXIST "%WDIR%"\.mvn goto baseDirFound
95
+cd ..
96
+IF "%WDIR%"=="%CD%" goto baseDirNotFound
97
+set WDIR=%CD%
98
+goto findBaseDir
99
+
100
+:baseDirFound
101
+set MAVEN_PROJECTBASEDIR=%WDIR%
102
+cd "%EXEC_DIR%"
103
+goto endDetectBaseDir
104
+
105
+:baseDirNotFound
106
+set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
107
+cd "%EXEC_DIR%"
108
+
109
+:endDetectBaseDir
110
+
111
+IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
112
+
113
+@setlocal EnableExtensions EnableDelayedExpansion
114
+for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
115
+@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
116
+
117
+:endReadAdditionalConfig
118
+
119
+SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
120
+set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
121
+set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
122
+
123
+set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
124
+
125
+FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
126
+    IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
127
+)
128
+
129
+@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
130
+@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
131
+if exist %WRAPPER_JAR% (
132
+    if "%MVNW_VERBOSE%" == "true" (
133
+        echo Found %WRAPPER_JAR%
134
+    )
135
+) else (
136
+    if not "%MVNW_REPOURL%" == "" (
137
+        SET DOWNLOAD_URL="%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
138
+    )
139
+    if "%MVNW_VERBOSE%" == "true" (
140
+        echo Couldn't find %WRAPPER_JAR%, downloading it ...
141
+        echo Downloading from: %DOWNLOAD_URL%
142
+    )
143
+
144
+    powershell -Command "&{"^
145
+		"$webclient = new-object System.Net.WebClient;"^
146
+		"if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
147
+		"$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
148
+		"}"^
149
+		"[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^
150
+		"}"
151
+    if "%MVNW_VERBOSE%" == "true" (
152
+        echo Finished downloading %WRAPPER_JAR%
153
+    )
154
+)
155
+@REM End of extension
156
+
157
+@REM Provide a "standardized" way to retrieve the CLI args that will
158
+@REM work with both Windows and non-Windows executions.
159
+set MAVEN_CMD_LINE_ARGS=%*
160
+
161
+%MAVEN_JAVA_EXE% ^
162
+  %JVM_CONFIG_MAVEN_PROPS% ^
163
+  %MAVEN_OPTS% ^
164
+  %MAVEN_DEBUG_OPTS% ^
165
+  -classpath %WRAPPER_JAR% ^
166
+  "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" ^
167
+  %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
168
+if ERRORLEVEL 1 goto error
169
+goto end
170
+
171
+:error
172
+set ERROR_CODE=1
173
+
174
+:end
175
+@endlocal & set ERROR_CODE=%ERROR_CODE%
176
+
177
+if not "%MAVEN_SKIP_RC%"=="" goto skipRcPost
178
+@REM check for post script, once with legacy .bat ending and once with .cmd ending
179
+if exist "%USERPROFILE%\mavenrc_post.bat" call "%USERPROFILE%\mavenrc_post.bat"
180
+if exist "%USERPROFILE%\mavenrc_post.cmd" call "%USERPROFILE%\mavenrc_post.cmd"
181
+:skipRcPost
182
+
183
+@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
184
+if "%MAVEN_BATCH_PAUSE%"=="on" pause
185
+
186
+if "%MAVEN_TERMINATE_CMD%"=="on" exit %ERROR_CODE%
187
+
188
+cmd /C exit /B %ERROR_CODE%

+ 53
- 0
eureka-discovery-server/pom.xml View File

@@ -0,0 +1,53 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
4
+	<modelVersion>4.0.0</modelVersion>
5
+	<parent>
6
+		<groupId>org.springframework.boot</groupId>
7
+		<artifactId>spring-boot-starter-parent</artifactId>
8
+		<version>2.7.3</version>
9
+		<relativePath/> <!-- lookup parent from repository -->
10
+	</parent>
11
+	<groupId>fr.natan.microservices</groupId>
12
+	<artifactId>eureka-discovery-server</artifactId>
13
+	<version>0.0.1-SNAPSHOT</version>
14
+	<name>eureka-discovery-server</name>
15
+	<description>Service Eureka pour l&apos;enregistrement des microservices</description>
16
+	<properties>
17
+		<java.version>11</java.version>
18
+		<spring-cloud.version>2021.0.4</spring-cloud.version>
19
+	</properties>
20
+	<dependencies>
21
+		<dependency>
22
+			<groupId>org.springframework.cloud</groupId>
23
+			<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
24
+		</dependency>
25
+
26
+		<dependency>
27
+			<groupId>org.springframework.boot</groupId>
28
+			<artifactId>spring-boot-starter-test</artifactId>
29
+			<scope>test</scope>
30
+		</dependency>
31
+	</dependencies>
32
+	<dependencyManagement>
33
+		<dependencies>
34
+			<dependency>
35
+				<groupId>org.springframework.cloud</groupId>
36
+				<artifactId>spring-cloud-dependencies</artifactId>
37
+				<version>${spring-cloud.version}</version>
38
+				<type>pom</type>
39
+				<scope>import</scope>
40
+			</dependency>
41
+		</dependencies>
42
+	</dependencyManagement>
43
+
44
+	<build>
45
+		<plugins>
46
+			<plugin>
47
+				<groupId>org.springframework.boot</groupId>
48
+				<artifactId>spring-boot-maven-plugin</artifactId>
49
+			</plugin>
50
+		</plugins>
51
+	</build>
52
+
53
+</project>

+ 15
- 0
eureka-discovery-server/src/main/java/fr/natan/microservices/eurekadiscoveryserver/EurekaDiscoveryServerApplication.java View File

@@ -0,0 +1,15 @@
1
+package fr.natan.microservices.eurekadiscoveryserver;
2
+
3
+import org.springframework.boot.SpringApplication;
4
+import org.springframework.boot.autoconfigure.SpringBootApplication;
5
+import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
6
+
7
+@SpringBootApplication
8
+@EnableEurekaServer
9
+public class EurekaDiscoveryServerApplication {
10
+
11
+	public static void main(String[] args) {
12
+		SpringApplication.run(EurekaDiscoveryServerApplication.class, args);
13
+	}
14
+
15
+}

+ 3
- 0
eureka-discovery-server/src/main/resources/application.properties View File

@@ -0,0 +1,3 @@
1
+server.port = 8761
2
+eureka.client.register-with-eureka=false
3
+eureka.client.fetch-registry=false

+ 13
- 0
eureka-discovery-server/src/test/java/fr/natan/microservices/eurekadiscoveryserver/EurekaDiscoveryServerApplicationTests.java View File

@@ -0,0 +1,13 @@
1
+package fr.natan.microservices.eurekadiscoveryserver;
2
+
3
+import org.junit.jupiter.api.Test;
4
+import org.springframework.boot.test.context.SpringBootTest;
5
+
6
+@SpringBootTest
7
+class EurekaDiscoveryServerApplicationTests {
8
+
9
+	@Test
10
+	void contextLoads() {
11
+	}
12
+
13
+}

BIN
project-microservice/.mvn/wrapper/maven-wrapper.jar View File


+ 0
- 0
project-microservice/.mvn/wrapper/maven-wrapper.properties View File


Some files were not shown because too many files changed in this diff

Powered by TurnKey Linux.