From b42ba8a983acb16a8102b9303281bca35ca79327 Mon Sep 17 00:00:00 2001
From: Colin DAMON <cdamon@ippon.fr>
Date: Sun, 12 Jul 2020 14:53:35 +0200
Subject: [PATCH] Ignore coverage for generated classes

---
 pom.xml                                       |   5 +
 .../com/ippon/pouet/ApplicationWebXml.java    |   3 +
 src/main/java/com/ippon/pouet/PouetApp.java   |   2 +
 .../pouet/aop/logging/LoggingAspect.java      |   3 +
 .../ippon/pouet/common/domain/Generated.java  |  11 +
 .../pouet/config/ApplicationProperties.java   |   3 +
 .../pouet/config/AsyncConfiguration.java      |   5 +-
 .../config/CloudDatabaseConfiguration.java    |   4 +-
 .../com/ippon/pouet/config/Constants.java     |   3 +
 .../pouet/config/DatabaseConfiguration.java   |   3 +
 .../config/DateTimeFormatConfiguration.java   |   3 +
 .../pouet/config/JacksonConfiguration.java    |   2 +
 .../pouet/config/LiquibaseConfiguration.java  |   3 +
 .../pouet/config/LocaleConfiguration.java     |   3 +
 .../config/LoggingAspectConfiguration.java    |   2 +
 .../pouet/config/LoggingConfiguration.java    |   3 +
 .../pouet/config/SecurityConfiguration.java   |   2 +
 .../StaticResourcesWebConfiguration.java      |   3 +
 .../com/ippon/pouet/config/WebConfigurer.java |   3 +
 .../config/audit/AuditEventConverter.java     |   2 +
 .../pouet/domain/AbstractAuditingEntity.java  |   3 +
 .../com/ippon/pouet/domain/Authority.java     |   4 +
 .../java/com/ippon/pouet/domain/User.java     |   2 +
 .../CustomAuditEventRepository.java           |   2 +
 .../pouet/security/AuthoritiesConstants.java  |   3 +
 .../security/DomainUserDetailsService.java    |   2 +
 .../ippon/pouet/security/SecurityUtils.java   |   3 +
 .../security/SpringSecurityAuditorAware.java  |   2 +
 .../security/UserNotActivatedException.java   |   3 +
 .../pouet/security/jwt/JWTConfigurer.java     |   3 +
 .../ippon/pouet/security/jwt/JWTFilter.java   |   3 +
 .../pouet/security/jwt/TokenProvider.java     |   3 +
 .../pouet/service/AuditEventService.java      |   3 +
 .../service/EmailAlreadyUsedException.java    |   3 +
 .../service/InvalidPasswordException.java     |   3 +
 .../com/ippon/pouet/service/MailService.java  |   2 +
 .../com/ippon/pouet/service/UserService.java  |   2 +
 .../service/UsernameAlreadyUsedException.java |   3 +
 .../pouet/service/dto/PasswordChangeDTO.java  |   3 +
 .../com/ippon/pouet/service/dto/UserDTO.java  |   2 +
 .../pouet/service/mapper/UserMapper.java      |   2 +
 .../ippon/pouet/web/rest/AccountResource.java | 321 ++++++++++--------
 .../ippon/pouet/web/rest/AuditResource.java   |   2 +
 .../web/rest/ClientForwardController.java     |   3 +
 .../pouet/web/rest/UserJWTController.java     |   3 +
 .../ippon/pouet/web/rest/UserResource.java    |   2 +
 .../rest/errors/BadRequestAlertException.java |   3 +
 .../errors/EmailAlreadyUsedException.java     |   3 +
 .../pouet/web/rest/errors/ErrorConstants.java |   3 +
 .../web/rest/errors/ExceptionTranslator.java  |   3 +
 .../pouet/web/rest/errors/FieldErrorVM.java   |   3 +
 .../rest/errors/InvalidPasswordException.java |   3 +
 .../errors/LoginAlreadyUsedException.java     |   3 +
 .../pouet/web/rest/vm/KeyAndPasswordVM.java   |   3 +
 .../com/ippon/pouet/web/rest/vm/LoginVM.java  |   3 +
 .../pouet/web/rest/vm/ManagedUserVM.java      |   2 +
 56 files changed, 337 insertions(+), 147 deletions(-)
 create mode 100644 src/main/java/com/ippon/pouet/common/domain/Generated.java

diff --git a/pom.xml b/pom.xml
index 743572b..32a90a7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -497,6 +497,11 @@
           <groupId>org.jacoco</groupId>
           <artifactId>jacoco-maven-plugin</artifactId>
           <version>${jacoco-maven-plugin.version}</version>
+          <configuration>
+          <excludes>
+              <exclude>com/ippon/pouet/domain/*</exclude>
+            </excludes>
+          </configuration>
           <executions>
             <execution>
               <id>pre-unit-tests</id>
diff --git a/src/main/java/com/ippon/pouet/ApplicationWebXml.java b/src/main/java/com/ippon/pouet/ApplicationWebXml.java
index 0e1c84e..b3efc8d 100644
--- a/src/main/java/com/ippon/pouet/ApplicationWebXml.java
+++ b/src/main/java/com/ippon/pouet/ApplicationWebXml.java
@@ -5,10 +5,13 @@ import io.github.jhipster.config.DefaultProfileUtil;
 import org.springframework.boot.builder.SpringApplicationBuilder;
 import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
 
+import com.ippon.pouet.common.domain.Generated;
+
 /**
  * This is a helper Java class that provides an alternative to creating a {@code web.xml}.
  * This will be invoked only when the application is deployed to a Servlet container like Tomcat, JBoss etc.
  */
+@Generated
 public class ApplicationWebXml extends SpringBootServletInitializer {
 
     @Override
diff --git a/src/main/java/com/ippon/pouet/PouetApp.java b/src/main/java/com/ippon/pouet/PouetApp.java
index db65644..6d77037 100644
--- a/src/main/java/com/ippon/pouet/PouetApp.java
+++ b/src/main/java/com/ippon/pouet/PouetApp.java
@@ -1,5 +1,6 @@
 package com.ippon.pouet;
 
+import com.ippon.pouet.common.domain.Generated;
 import com.ippon.pouet.config.ApplicationProperties;
 
 import io.github.jhipster.config.DefaultProfileUtil;
@@ -20,6 +21,7 @@ import java.net.UnknownHostException;
 import java.util.Arrays;
 import java.util.Collection;
 
+@Generated
 @SpringBootApplication
 @EnableConfigurationProperties({LiquibaseProperties.class, ApplicationProperties.class})
 public class PouetApp {
diff --git a/src/main/java/com/ippon/pouet/aop/logging/LoggingAspect.java b/src/main/java/com/ippon/pouet/aop/logging/LoggingAspect.java
index ca46e97..5828e3b 100644
--- a/src/main/java/com/ippon/pouet/aop/logging/LoggingAspect.java
+++ b/src/main/java/com/ippon/pouet/aop/logging/LoggingAspect.java
@@ -13,6 +13,8 @@ import org.slf4j.LoggerFactory;
 import org.springframework.core.env.Environment;
 import org.springframework.core.env.Profiles;
 
+import com.ippon.pouet.common.domain.Generated;
+
 import java.util.Arrays;
 
 /**
@@ -21,6 +23,7 @@ import java.util.Arrays;
  * By default, it only runs with the "dev" profile.
  */
 @Aspect
+@Generated
 public class LoggingAspect {
 
     private final Environment env;
diff --git a/src/main/java/com/ippon/pouet/common/domain/Generated.java b/src/main/java/com/ippon/pouet/common/domain/Generated.java
new file mode 100644
index 0000000..4111b2c
--- /dev/null
+++ b/src/main/java/com/ippon/pouet/common/domain/Generated.java
@@ -0,0 +1,11 @@
+package com.ippon.pouet.common.domain;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Retention(RetentionPolicy.RUNTIME)
+@Target({ ElementType.METHOD, ElementType.TYPE, ElementType.CONSTRUCTOR })
+public @interface Generated {
+}
diff --git a/src/main/java/com/ippon/pouet/config/ApplicationProperties.java b/src/main/java/com/ippon/pouet/config/ApplicationProperties.java
index 61edeb4..c02aef9 100644
--- a/src/main/java/com/ippon/pouet/config/ApplicationProperties.java
+++ b/src/main/java/com/ippon/pouet/config/ApplicationProperties.java
@@ -2,12 +2,15 @@ package com.ippon.pouet.config;
 
 import org.springframework.boot.context.properties.ConfigurationProperties;
 
+import com.ippon.pouet.common.domain.Generated;
+
 /**
  * Properties specific to Pouet.
  * <p>
  * Properties are configured in the {@code application.yml} file.
  * See {@link io.github.jhipster.config.JHipsterProperties} for a good example.
  */
+@Generated
 @ConfigurationProperties(prefix = "application", ignoreUnknownFields = false)
 public class ApplicationProperties {
 }
diff --git a/src/main/java/com/ippon/pouet/config/AsyncConfiguration.java b/src/main/java/com/ippon/pouet/config/AsyncConfiguration.java
index e5061de..9263c50 100644
--- a/src/main/java/com/ippon/pouet/config/AsyncConfiguration.java
+++ b/src/main/java/com/ippon/pouet/config/AsyncConfiguration.java
@@ -13,10 +13,13 @@ import org.springframework.scheduling.annotation.EnableAsync;
 import org.springframework.scheduling.annotation.EnableScheduling;
 import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
 
+import com.ippon.pouet.common.domain.Generated;
+
 import java.util.concurrent.Executor;
 
-@Configuration
+@Generated
 @EnableAsync
+@Configuration
 @EnableScheduling
 public class AsyncConfiguration implements AsyncConfigurer {
 
diff --git a/src/main/java/com/ippon/pouet/config/CloudDatabaseConfiguration.java b/src/main/java/com/ippon/pouet/config/CloudDatabaseConfiguration.java
index 09966d9..8e91698 100644
--- a/src/main/java/com/ippon/pouet/config/CloudDatabaseConfiguration.java
+++ b/src/main/java/com/ippon/pouet/config/CloudDatabaseConfiguration.java
@@ -7,10 +7,12 @@ import org.slf4j.LoggerFactory;
 import org.springframework.cloud.config.java.AbstractCloudConfig;
 import org.springframework.context.annotation.*;
 
+import com.ippon.pouet.common.domain.Generated;
+
 import javax.sql.DataSource;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 
-
+@Generated
 @Configuration
 @Profile(JHipsterConstants.SPRING_PROFILE_CLOUD)
 public class CloudDatabaseConfiguration extends AbstractCloudConfig {
diff --git a/src/main/java/com/ippon/pouet/config/Constants.java b/src/main/java/com/ippon/pouet/config/Constants.java
index b4c758f..26d6410 100644
--- a/src/main/java/com/ippon/pouet/config/Constants.java
+++ b/src/main/java/com/ippon/pouet/config/Constants.java
@@ -1,8 +1,11 @@
 package com.ippon.pouet.config;
 
+import com.ippon.pouet.common.domain.Generated;
+
 /**
  * Application constants.
  */
+@Generated
 public final class Constants {
 
     // Regex for acceptable logins
diff --git a/src/main/java/com/ippon/pouet/config/DatabaseConfiguration.java b/src/main/java/com/ippon/pouet/config/DatabaseConfiguration.java
index ef0b1ee..6569087 100644
--- a/src/main/java/com/ippon/pouet/config/DatabaseConfiguration.java
+++ b/src/main/java/com/ippon/pouet/config/DatabaseConfiguration.java
@@ -13,8 +13,11 @@ import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
 import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
 import org.springframework.transaction.annotation.EnableTransactionManagement;
 
+import com.ippon.pouet.common.domain.Generated;
+
 import java.sql.SQLException;
 
+@Generated
 @Configuration
 @EnableJpaRepositories("com.ippon.pouet.repository")
 @EnableJpaAuditing(auditorAwareRef = "springSecurityAuditorAware")
diff --git a/src/main/java/com/ippon/pouet/config/DateTimeFormatConfiguration.java b/src/main/java/com/ippon/pouet/config/DateTimeFormatConfiguration.java
index 66590b7..c3caedc 100644
--- a/src/main/java/com/ippon/pouet/config/DateTimeFormatConfiguration.java
+++ b/src/main/java/com/ippon/pouet/config/DateTimeFormatConfiguration.java
@@ -5,9 +5,12 @@ import org.springframework.format.FormatterRegistry;
 import org.springframework.format.datetime.standard.DateTimeFormatterRegistrar;
 import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
 
+import com.ippon.pouet.common.domain.Generated;
+
 /**
  * Configure the converters to use the ISO format for dates by default.
  */
+@Generated
 @Configuration
 public class DateTimeFormatConfiguration implements WebMvcConfigurer {
 
diff --git a/src/main/java/com/ippon/pouet/config/JacksonConfiguration.java b/src/main/java/com/ippon/pouet/config/JacksonConfiguration.java
index aa144f2..7253000 100644
--- a/src/main/java/com/ippon/pouet/config/JacksonConfiguration.java
+++ b/src/main/java/com/ippon/pouet/config/JacksonConfiguration.java
@@ -3,12 +3,14 @@ package com.ippon.pouet.config;
 import com.fasterxml.jackson.datatype.hibernate5.Hibernate5Module;
 import com.fasterxml.jackson.datatype.jdk8.Jdk8Module;
 import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
+import com.ippon.pouet.common.domain.Generated;
 
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.zalando.problem.ProblemModule;
 import org.zalando.problem.violations.ConstraintViolationProblemModule;
 
+@Generated
 @Configuration
 public class JacksonConfiguration {
 
diff --git a/src/main/java/com/ippon/pouet/config/LiquibaseConfiguration.java b/src/main/java/com/ippon/pouet/config/LiquibaseConfiguration.java
index 653bac0..73a7bc0 100644
--- a/src/main/java/com/ippon/pouet/config/LiquibaseConfiguration.java
+++ b/src/main/java/com/ippon/pouet/config/LiquibaseConfiguration.java
@@ -15,9 +15,12 @@ import org.springframework.context.annotation.Configuration;
 import org.springframework.core.env.Environment;
 import org.springframework.core.env.Profiles;
 
+import com.ippon.pouet.common.domain.Generated;
+
 import javax.sql.DataSource;
 import java.util.concurrent.Executor;
 
+@Generated
 @Configuration
 public class LiquibaseConfiguration {
 
diff --git a/src/main/java/com/ippon/pouet/config/LocaleConfiguration.java b/src/main/java/com/ippon/pouet/config/LocaleConfiguration.java
index 9095574..a6f32b4 100644
--- a/src/main/java/com/ippon/pouet/config/LocaleConfiguration.java
+++ b/src/main/java/com/ippon/pouet/config/LocaleConfiguration.java
@@ -8,6 +8,9 @@ import org.springframework.web.servlet.LocaleResolver;
 import org.springframework.web.servlet.config.annotation.*;
 import org.springframework.web.servlet.i18n.LocaleChangeInterceptor;
 
+import com.ippon.pouet.common.domain.Generated;
+
+@Generated
 @Configuration
 public class LocaleConfiguration implements WebMvcConfigurer {
 
diff --git a/src/main/java/com/ippon/pouet/config/LoggingAspectConfiguration.java b/src/main/java/com/ippon/pouet/config/LoggingAspectConfiguration.java
index 30cdfa5..acc5c11 100644
--- a/src/main/java/com/ippon/pouet/config/LoggingAspectConfiguration.java
+++ b/src/main/java/com/ippon/pouet/config/LoggingAspectConfiguration.java
@@ -1,12 +1,14 @@
 package com.ippon.pouet.config;
 
 import com.ippon.pouet.aop.logging.LoggingAspect;
+import com.ippon.pouet.common.domain.Generated;
 
 import io.github.jhipster.config.JHipsterConstants;
 
 import org.springframework.context.annotation.*;
 import org.springframework.core.env.Environment;
 
+@Generated
 @Configuration
 @EnableAspectJAutoProxy
 public class LoggingAspectConfiguration {
diff --git a/src/main/java/com/ippon/pouet/config/LoggingConfiguration.java b/src/main/java/com/ippon/pouet/config/LoggingConfiguration.java
index 326aea4..98a1722 100644
--- a/src/main/java/com/ippon/pouet/config/LoggingConfiguration.java
+++ b/src/main/java/com/ippon/pouet/config/LoggingConfiguration.java
@@ -3,6 +3,8 @@ package com.ippon.pouet.config;
 import ch.qos.logback.classic.LoggerContext;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
+import com.ippon.pouet.common.domain.Generated;
+
 import io.github.jhipster.config.JHipsterProperties;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Value;
@@ -16,6 +18,7 @@ import static io.github.jhipster.config.logging.LoggingUtils.*;
 /*
  * Configures the console and Logstash log appenders from the app properties
  */
+@Generated
 @Configuration
 public class LoggingConfiguration {
 
diff --git a/src/main/java/com/ippon/pouet/config/SecurityConfiguration.java b/src/main/java/com/ippon/pouet/config/SecurityConfiguration.java
index 20bdb70..8a63274 100644
--- a/src/main/java/com/ippon/pouet/config/SecurityConfiguration.java
+++ b/src/main/java/com/ippon/pouet/config/SecurityConfiguration.java
@@ -1,5 +1,6 @@
 package com.ippon.pouet.config;
 
+import com.ippon.pouet.common.domain.Generated;
 import com.ippon.pouet.security.*;
 import com.ippon.pouet.security.jwt.*;
 
@@ -19,6 +20,7 @@ import org.springframework.security.web.header.writers.ReferrerPolicyHeaderWrite
 import org.springframework.web.filter.CorsFilter;
 import org.zalando.problem.spring.web.advice.security.SecurityProblemSupport;
 
+@Generated
 @EnableWebSecurity
 @EnableGlobalMethodSecurity(prePostEnabled = true, securedEnabled = true)
 @Import(SecurityProblemSupport.class)
diff --git a/src/main/java/com/ippon/pouet/config/StaticResourcesWebConfiguration.java b/src/main/java/com/ippon/pouet/config/StaticResourcesWebConfiguration.java
index c3126c0..c59a94d 100644
--- a/src/main/java/com/ippon/pouet/config/StaticResourcesWebConfiguration.java
+++ b/src/main/java/com/ippon/pouet/config/StaticResourcesWebConfiguration.java
@@ -9,8 +9,11 @@ import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistra
 import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
 import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
 
+import com.ippon.pouet.common.domain.Generated;
+
 import java.util.concurrent.TimeUnit;
 
+@Generated
 @Configuration
 @Profile({JHipsterConstants.SPRING_PROFILE_PRODUCTION})
 public class StaticResourcesWebConfiguration implements WebMvcConfigurer {
diff --git a/src/main/java/com/ippon/pouet/config/WebConfigurer.java b/src/main/java/com/ippon/pouet/config/WebConfigurer.java
index 388f1da..f3461ea 100644
--- a/src/main/java/com/ippon/pouet/config/WebConfigurer.java
+++ b/src/main/java/com/ippon/pouet/config/WebConfigurer.java
@@ -17,6 +17,8 @@ import org.springframework.web.cors.CorsConfiguration;
 import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
 import org.springframework.web.filter.CorsFilter;
 
+import com.ippon.pouet.common.domain.Generated;
+
 import javax.servlet.*;
 import java.io.File;
 import java.io.UnsupportedEncodingException;
@@ -28,6 +30,7 @@ import static java.net.URLDecoder.decode;
 /**
  * Configuration of web application with Servlet 3.0 APIs.
  */
+@Generated
 @Configuration
 public class WebConfigurer implements ServletContextInitializer, WebServerFactoryCustomizer<WebServerFactory> {
 
diff --git a/src/main/java/com/ippon/pouet/config/audit/AuditEventConverter.java b/src/main/java/com/ippon/pouet/config/audit/AuditEventConverter.java
index e0bc400..2b39471 100644
--- a/src/main/java/com/ippon/pouet/config/audit/AuditEventConverter.java
+++ b/src/main/java/com/ippon/pouet/config/audit/AuditEventConverter.java
@@ -1,5 +1,6 @@
 package com.ippon.pouet.config.audit;
 
+import com.ippon.pouet.common.domain.Generated;
 import com.ippon.pouet.domain.PersistentAuditEvent;
 
 import org.springframework.boot.actuate.audit.AuditEvent;
@@ -8,6 +9,7 @@ import org.springframework.stereotype.Component;
 
 import java.util.*;
 
+@Generated
 @Component
 public class AuditEventConverter {
 
diff --git a/src/main/java/com/ippon/pouet/domain/AbstractAuditingEntity.java b/src/main/java/com/ippon/pouet/domain/AbstractAuditingEntity.java
index 063d711..6ef947c 100644
--- a/src/main/java/com/ippon/pouet/domain/AbstractAuditingEntity.java
+++ b/src/main/java/com/ippon/pouet/domain/AbstractAuditingEntity.java
@@ -1,6 +1,8 @@
 package com.ippon.pouet.domain;
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.ippon.pouet.common.domain.Generated;
+
 import org.springframework.data.annotation.CreatedBy;
 import org.springframework.data.annotation.CreatedDate;
 import org.springframework.data.annotation.LastModifiedBy;
@@ -17,6 +19,7 @@ import javax.persistence.MappedSuperclass;
  * Base abstract class for entities which will hold definitions for created, last modified, created by,
  * last modified by attributes.
  */
+@Generated
 @MappedSuperclass
 @EntityListeners(AuditingEntityListener.class)
 public abstract class AbstractAuditingEntity implements Serializable {
diff --git a/src/main/java/com/ippon/pouet/domain/Authority.java b/src/main/java/com/ippon/pouet/domain/Authority.java
index 9a83dfd..8d645de 100644
--- a/src/main/java/com/ippon/pouet/domain/Authority.java
+++ b/src/main/java/com/ippon/pouet/domain/Authority.java
@@ -6,6 +6,9 @@ import javax.persistence.Table;
 import javax.persistence.Column;
 import javax.validation.constraints.NotNull;
 import javax.validation.constraints.Size;
+
+import com.ippon.pouet.common.domain.Generated;
+
 import java.io.Serializable;
 import java.util.Objects;
 
@@ -13,6 +16,7 @@ import java.util.Objects;
  * An authority (a security role) used by Spring Security.
  */
 @Entity
+@Generated
 @Table(name = "jhi_authority")
 public class Authority implements Serializable {
 
diff --git a/src/main/java/com/ippon/pouet/domain/User.java b/src/main/java/com/ippon/pouet/domain/User.java
index 700a99d..f967248 100644
--- a/src/main/java/com/ippon/pouet/domain/User.java
+++ b/src/main/java/com/ippon/pouet/domain/User.java
@@ -1,5 +1,6 @@
 package com.ippon.pouet.domain;
 
+import com.ippon.pouet.common.domain.Generated;
 import com.ippon.pouet.config.Constants;
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
@@ -21,6 +22,7 @@ import java.util.Set;
  * A user.
  */
 @Entity
+@Generated
 @Table(name = "jhi_user")
 public class User extends AbstractAuditingEntity implements Serializable {
 
diff --git a/src/main/java/com/ippon/pouet/repository/CustomAuditEventRepository.java b/src/main/java/com/ippon/pouet/repository/CustomAuditEventRepository.java
index f7d0bb1..8071827 100644
--- a/src/main/java/com/ippon/pouet/repository/CustomAuditEventRepository.java
+++ b/src/main/java/com/ippon/pouet/repository/CustomAuditEventRepository.java
@@ -1,5 +1,6 @@
 package com.ippon.pouet.repository;
 
+import com.ippon.pouet.common.domain.Generated;
 import com.ippon.pouet.config.Constants;
 import com.ippon.pouet.config.audit.AuditEventConverter;
 import com.ippon.pouet.domain.PersistentAuditEvent;
@@ -18,6 +19,7 @@ import java.util.*;
 /**
  * An implementation of Spring Boot's {@link AuditEventRepository}.
  */
+@Generated
 @Repository
 public class CustomAuditEventRepository implements AuditEventRepository {
 
diff --git a/src/main/java/com/ippon/pouet/security/AuthoritiesConstants.java b/src/main/java/com/ippon/pouet/security/AuthoritiesConstants.java
index 54bd03b..9e08f0f 100644
--- a/src/main/java/com/ippon/pouet/security/AuthoritiesConstants.java
+++ b/src/main/java/com/ippon/pouet/security/AuthoritiesConstants.java
@@ -1,8 +1,11 @@
 package com.ippon.pouet.security;
 
+import com.ippon.pouet.common.domain.Generated;
+
 /**
  * Constants for Spring Security authorities.
  */
+@Generated
 public final class AuthoritiesConstants {
 
     public static final String ADMIN = "ROLE_ADMIN";
diff --git a/src/main/java/com/ippon/pouet/security/DomainUserDetailsService.java b/src/main/java/com/ippon/pouet/security/DomainUserDetailsService.java
index 62d14a3..a254894 100644
--- a/src/main/java/com/ippon/pouet/security/DomainUserDetailsService.java
+++ b/src/main/java/com/ippon/pouet/security/DomainUserDetailsService.java
@@ -1,5 +1,6 @@
 package com.ippon.pouet.security;
 
+import com.ippon.pouet.common.domain.Generated;
 import com.ippon.pouet.domain.User;
 import com.ippon.pouet.repository.UserRepository;
 import org.hibernate.validator.internal.constraintvalidators.hv.EmailValidator;
@@ -19,6 +20,7 @@ import java.util.stream.Collectors;
 /**
  * Authenticate a user from the database.
  */
+@Generated
 @Component("userDetailsService")
 public class DomainUserDetailsService implements UserDetailsService {
 
diff --git a/src/main/java/com/ippon/pouet/security/SecurityUtils.java b/src/main/java/com/ippon/pouet/security/SecurityUtils.java
index b4a9dad..db5a533 100644
--- a/src/main/java/com/ippon/pouet/security/SecurityUtils.java
+++ b/src/main/java/com/ippon/pouet/security/SecurityUtils.java
@@ -6,12 +6,15 @@ import org.springframework.security.core.context.SecurityContext;
 import org.springframework.security.core.context.SecurityContextHolder;
 import org.springframework.security.core.userdetails.UserDetails;
 
+import com.ippon.pouet.common.domain.Generated;
+
 import java.util.Optional;
 import java.util.stream.Stream;
 
 /**
  * Utility class for Spring Security.
  */
+@Generated
 public final class SecurityUtils {
 
     private SecurityUtils() {
diff --git a/src/main/java/com/ippon/pouet/security/SpringSecurityAuditorAware.java b/src/main/java/com/ippon/pouet/security/SpringSecurityAuditorAware.java
index 5fc8b0f..658ae97 100644
--- a/src/main/java/com/ippon/pouet/security/SpringSecurityAuditorAware.java
+++ b/src/main/java/com/ippon/pouet/security/SpringSecurityAuditorAware.java
@@ -1,5 +1,6 @@
 package com.ippon.pouet.security;
 
+import com.ippon.pouet.common.domain.Generated;
 import com.ippon.pouet.config.Constants;
 
 import java.util.Optional;
@@ -11,6 +12,7 @@ import org.springframework.stereotype.Component;
  * Implementation of {@link AuditorAware} based on Spring Security.
  */
 @Component
+@Generated
 public class SpringSecurityAuditorAware implements AuditorAware<String> {
 
     @Override
diff --git a/src/main/java/com/ippon/pouet/security/UserNotActivatedException.java b/src/main/java/com/ippon/pouet/security/UserNotActivatedException.java
index 1dc6e20..a240abf 100644
--- a/src/main/java/com/ippon/pouet/security/UserNotActivatedException.java
+++ b/src/main/java/com/ippon/pouet/security/UserNotActivatedException.java
@@ -2,9 +2,12 @@ package com.ippon.pouet.security;
 
 import org.springframework.security.core.AuthenticationException;
 
+import com.ippon.pouet.common.domain.Generated;
+
 /**
  * This exception is thrown in case of a not activated user trying to authenticate.
  */
+@Generated
 public class UserNotActivatedException extends AuthenticationException {
 
     private static final long serialVersionUID = 1L;
diff --git a/src/main/java/com/ippon/pouet/security/jwt/JWTConfigurer.java b/src/main/java/com/ippon/pouet/security/jwt/JWTConfigurer.java
index 2fca4f7..6da0303 100644
--- a/src/main/java/com/ippon/pouet/security/jwt/JWTConfigurer.java
+++ b/src/main/java/com/ippon/pouet/security/jwt/JWTConfigurer.java
@@ -5,6 +5,9 @@ import org.springframework.security.config.annotation.web.builders.HttpSecurity;
 import org.springframework.security.web.DefaultSecurityFilterChain;
 import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
 
+import com.ippon.pouet.common.domain.Generated;
+
+@Generated
 public class JWTConfigurer extends SecurityConfigurerAdapter<DefaultSecurityFilterChain, HttpSecurity> {
 
     private final TokenProvider tokenProvider;
diff --git a/src/main/java/com/ippon/pouet/security/jwt/JWTFilter.java b/src/main/java/com/ippon/pouet/security/jwt/JWTFilter.java
index 7eaaf5d..394a7f3 100644
--- a/src/main/java/com/ippon/pouet/security/jwt/JWTFilter.java
+++ b/src/main/java/com/ippon/pouet/security/jwt/JWTFilter.java
@@ -5,6 +5,8 @@ import org.springframework.security.core.context.SecurityContextHolder;
 import org.springframework.util.StringUtils;
 import org.springframework.web.filter.GenericFilterBean;
 
+import com.ippon.pouet.common.domain.Generated;
+
 import javax.servlet.FilterChain;
 import javax.servlet.ServletException;
 import javax.servlet.ServletRequest;
@@ -16,6 +18,7 @@ import java.io.IOException;
  * Filters incoming requests and installs a Spring Security principal if a header corresponding to a valid user is
  * found.
  */
+@Generated
 public class JWTFilter extends GenericFilterBean {
 
     public static final String AUTHORIZATION_HEADER = "Authorization";
diff --git a/src/main/java/com/ippon/pouet/security/jwt/TokenProvider.java b/src/main/java/com/ippon/pouet/security/jwt/TokenProvider.java
index 9052626..c2ee37e 100644
--- a/src/main/java/com/ippon/pouet/security/jwt/TokenProvider.java
+++ b/src/main/java/com/ippon/pouet/security/jwt/TokenProvider.java
@@ -16,12 +16,15 @@ import org.springframework.security.core.userdetails.User;
 import org.springframework.stereotype.Component;
 import org.springframework.util.StringUtils;
 
+import com.ippon.pouet.common.domain.Generated;
+
 import io.github.jhipster.config.JHipsterProperties;
 import io.jsonwebtoken.*;
 import io.jsonwebtoken.io.Decoders;
 import io.jsonwebtoken.security.Keys;
 
 @Component
+@Generated
 public class TokenProvider {
 
     private final Logger log = LoggerFactory.getLogger(TokenProvider.class);
diff --git a/src/main/java/com/ippon/pouet/service/AuditEventService.java b/src/main/java/com/ippon/pouet/service/AuditEventService.java
index 071689e..6e0469a 100644
--- a/src/main/java/com/ippon/pouet/service/AuditEventService.java
+++ b/src/main/java/com/ippon/pouet/service/AuditEventService.java
@@ -1,6 +1,8 @@
 package com.ippon.pouet.service;
 
 import io.github.jhipster.config.JHipsterProperties;
+
+import com.ippon.pouet.common.domain.Generated;
 import com.ippon.pouet.config.audit.AuditEventConverter;
 import com.ippon.pouet.repository.PersistenceAuditEventRepository;
 import org.slf4j.Logger;
@@ -22,6 +24,7 @@ import java.util.Optional;
  * This is the default implementation to support SpringBoot Actuator {@code AuditEventRepository}.
  */
 @Service
+@Generated
 @Transactional
 public class AuditEventService {
 
diff --git a/src/main/java/com/ippon/pouet/service/EmailAlreadyUsedException.java b/src/main/java/com/ippon/pouet/service/EmailAlreadyUsedException.java
index 60bea43..abd46c5 100644
--- a/src/main/java/com/ippon/pouet/service/EmailAlreadyUsedException.java
+++ b/src/main/java/com/ippon/pouet/service/EmailAlreadyUsedException.java
@@ -1,5 +1,8 @@
 package com.ippon.pouet.service;
 
+import com.ippon.pouet.common.domain.Generated;
+
+@Generated
 public class EmailAlreadyUsedException extends RuntimeException {
 
     private static final long serialVersionUID = 1L;
diff --git a/src/main/java/com/ippon/pouet/service/InvalidPasswordException.java b/src/main/java/com/ippon/pouet/service/InvalidPasswordException.java
index ea7eafa..5d31335 100644
--- a/src/main/java/com/ippon/pouet/service/InvalidPasswordException.java
+++ b/src/main/java/com/ippon/pouet/service/InvalidPasswordException.java
@@ -1,5 +1,8 @@
 package com.ippon.pouet.service;
 
+import com.ippon.pouet.common.domain.Generated;
+
+@Generated
 public class InvalidPasswordException extends RuntimeException {
 
     private static final long serialVersionUID = 1L;
diff --git a/src/main/java/com/ippon/pouet/service/MailService.java b/src/main/java/com/ippon/pouet/service/MailService.java
index d501278..0594d1a 100644
--- a/src/main/java/com/ippon/pouet/service/MailService.java
+++ b/src/main/java/com/ippon/pouet/service/MailService.java
@@ -1,5 +1,6 @@
 package com.ippon.pouet.service;
 
+import com.ippon.pouet.common.domain.Generated;
 import com.ippon.pouet.domain.User;
 
 import io.github.jhipster.config.JHipsterProperties;
@@ -26,6 +27,7 @@ import org.thymeleaf.spring5.SpringTemplateEngine;
  * We use the {@link Async} annotation to send emails asynchronously.
  */
 @Service
+@Generated
 public class MailService {
 
     private final Logger log = LoggerFactory.getLogger(MailService.class);
diff --git a/src/main/java/com/ippon/pouet/service/UserService.java b/src/main/java/com/ippon/pouet/service/UserService.java
index 3b7a860..b5f611c 100644
--- a/src/main/java/com/ippon/pouet/service/UserService.java
+++ b/src/main/java/com/ippon/pouet/service/UserService.java
@@ -1,5 +1,6 @@
 package com.ippon.pouet.service;
 
+import com.ippon.pouet.common.domain.Generated;
 import com.ippon.pouet.config.Constants;
 import com.ippon.pouet.domain.Authority;
 import com.ippon.pouet.domain.User;
@@ -29,6 +30,7 @@ import java.util.stream.Collectors;
  * Service class for managing users.
  */
 @Service
+@Generated
 @Transactional
 public class UserService {
 
diff --git a/src/main/java/com/ippon/pouet/service/UsernameAlreadyUsedException.java b/src/main/java/com/ippon/pouet/service/UsernameAlreadyUsedException.java
index 2a80f84..4829408 100644
--- a/src/main/java/com/ippon/pouet/service/UsernameAlreadyUsedException.java
+++ b/src/main/java/com/ippon/pouet/service/UsernameAlreadyUsedException.java
@@ -1,5 +1,8 @@
 package com.ippon.pouet.service;
 
+import com.ippon.pouet.common.domain.Generated;
+
+@Generated
 public class UsernameAlreadyUsedException extends RuntimeException {
 
     private static final long serialVersionUID = 1L;
diff --git a/src/main/java/com/ippon/pouet/service/dto/PasswordChangeDTO.java b/src/main/java/com/ippon/pouet/service/dto/PasswordChangeDTO.java
index 187f262..cfdf659 100644
--- a/src/main/java/com/ippon/pouet/service/dto/PasswordChangeDTO.java
+++ b/src/main/java/com/ippon/pouet/service/dto/PasswordChangeDTO.java
@@ -1,8 +1,11 @@
 package com.ippon.pouet.service.dto;
 
+import com.ippon.pouet.common.domain.Generated;
+
 /**
  * A DTO representing a password change required data - current and new password.
  */
+@Generated
 public class PasswordChangeDTO {
     private String currentPassword;
     private String newPassword;
diff --git a/src/main/java/com/ippon/pouet/service/dto/UserDTO.java b/src/main/java/com/ippon/pouet/service/dto/UserDTO.java
index 6bbf95b..83abeea 100644
--- a/src/main/java/com/ippon/pouet/service/dto/UserDTO.java
+++ b/src/main/java/com/ippon/pouet/service/dto/UserDTO.java
@@ -1,5 +1,6 @@
 package com.ippon.pouet.service.dto;
 
+import com.ippon.pouet.common.domain.Generated;
 import com.ippon.pouet.config.Constants;
 
 import com.ippon.pouet.domain.Authority;
@@ -13,6 +14,7 @@ import java.util.stream.Collectors;
 /**
  * A DTO representing a user, with his authorities.
  */
+@Generated
 public class UserDTO {
 
     private Long id;
diff --git a/src/main/java/com/ippon/pouet/service/mapper/UserMapper.java b/src/main/java/com/ippon/pouet/service/mapper/UserMapper.java
index 7768959..baa0280 100644
--- a/src/main/java/com/ippon/pouet/service/mapper/UserMapper.java
+++ b/src/main/java/com/ippon/pouet/service/mapper/UserMapper.java
@@ -1,5 +1,6 @@
 package com.ippon.pouet.service.mapper;
 
+import com.ippon.pouet.common.domain.Generated;
 import com.ippon.pouet.domain.Authority;
 import com.ippon.pouet.domain.User;
 import com.ippon.pouet.service.dto.UserDTO;
@@ -16,6 +17,7 @@ import java.util.stream.Collectors;
  * support is still in beta, and requires a manual step with an IDE.
  */
 @Service
+@Generated
 public class UserMapper {
 
     public List<UserDTO> usersToUserDTOs(List<User> users) {
diff --git a/src/main/java/com/ippon/pouet/web/rest/AccountResource.java b/src/main/java/com/ippon/pouet/web/rest/AccountResource.java
index c1bdb58..6f9ea73 100644
--- a/src/main/java/com/ippon/pouet/web/rest/AccountResource.java
+++ b/src/main/java/com/ippon/pouet/web/rest/AccountResource.java
@@ -1,5 +1,6 @@
 package com.ippon.pouet.web.rest;
 
+import com.ippon.pouet.common.domain.Generated;
 import com.ippon.pouet.domain.User;
 import com.ippon.pouet.repository.UserRepository;
 import com.ippon.pouet.security.SecurityUtils;
@@ -24,164 +25,194 @@ import java.util.*;
 /**
  * REST controller for managing the current user's account.
  */
+@Generated
 @RestController
 @RequestMapping("/api")
 public class AccountResource {
 
-    private static class AccountResourceException extends RuntimeException {
-        private AccountResourceException(String message) {
-            super(message);
-        }
+  @Generated
+  private static class AccountResourceException extends RuntimeException {
+    private AccountResourceException(String message) {
+      super(message);
     }
-
-    private final Logger log = LoggerFactory.getLogger(AccountResource.class);
-
-    private final UserRepository userRepository;
-
-    private final UserService userService;
-
-    private final MailService mailService;
-
-    public AccountResource(UserRepository userRepository, UserService userService, MailService mailService) {
-
-        this.userRepository = userRepository;
-        this.userService = userService;
-        this.mailService = mailService;
+  }
+
+  private final Logger log = LoggerFactory.getLogger(AccountResource.class);
+
+  private final UserRepository userRepository;
+
+  private final UserService userService;
+
+  private final MailService mailService;
+
+  public AccountResource(UserRepository userRepository, UserService userService,
+      MailService mailService) {
+
+    this.userRepository = userRepository;
+    this.userService = userService;
+    this.mailService = mailService;
+  }
+
+  /**
+   * {@code POST  /register} : register the user.
+   *
+   * @param managedUserVM
+   *          the managed user View Model.
+   * @throws InvalidPasswordException
+   *           {@code 400 (Bad Request)} if the password is incorrect.
+   * @throws EmailAlreadyUsedException
+   *           {@code 400 (Bad Request)} if the email is already used.
+   * @throws LoginAlreadyUsedException
+   *           {@code 400 (Bad Request)} if the login is already used.
+   */
+  @PostMapping("/register")
+  @ResponseStatus(HttpStatus.CREATED)
+  public void registerAccount(@Valid @RequestBody ManagedUserVM managedUserVM) {
+    if (!checkPasswordLength(managedUserVM.getPassword())) {
+      throw new InvalidPasswordException();
     }
-
-    /**
-     * {@code POST  /register} : register the user.
-     *
-     * @param managedUserVM the managed user View Model.
-     * @throws InvalidPasswordException {@code 400 (Bad Request)} if the password is incorrect.
-     * @throws EmailAlreadyUsedException {@code 400 (Bad Request)} if the email is already used.
-     * @throws LoginAlreadyUsedException {@code 400 (Bad Request)} if the login is already used.
-     */
-    @PostMapping("/register")
-    @ResponseStatus(HttpStatus.CREATED)
-    public void registerAccount(@Valid @RequestBody ManagedUserVM managedUserVM) {
-        if (!checkPasswordLength(managedUserVM.getPassword())) {
-            throw new InvalidPasswordException();
-        }
-        User user = userService.registerUser(managedUserVM, managedUserVM.getPassword());
-        mailService.sendActivationEmail(user);
+    User user = userService.registerUser(managedUserVM,
+        managedUserVM.getPassword());
+    mailService.sendActivationEmail(user);
+  }
+
+  /**
+   * {@code GET  /activate} : activate the registered user.
+   *
+   * @param key
+   *          the activation key.
+   * @throws RuntimeException
+   *           {@code 500 (Internal Server Error)} if the user couldn't be activated.
+   */
+  @GetMapping("/activate")
+  public void activateAccount(@RequestParam(value = "key") String key) {
+    Optional<User> user = userService.activateRegistration(key);
+    if (!user.isPresent()) {
+      throw new AccountResourceException(
+          "No user was found for this activation key");
     }
-
-    /**
-     * {@code GET  /activate} : activate the registered user.
-     *
-     * @param key the activation key.
-     * @throws RuntimeException {@code 500 (Internal Server Error)} if the user couldn't be activated.
-     */
-    @GetMapping("/activate")
-    public void activateAccount(@RequestParam(value = "key") String key) {
-        Optional<User> user = userService.activateRegistration(key);
-        if (!user.isPresent()) {
-            throw new AccountResourceException("No user was found for this activation key");
-        }
+  }
+
+  /**
+   * {@code GET  /authenticate} : check if the user is authenticated, and return its login.
+   *
+   * @param request
+   *          the HTTP request.
+   * @return the login if the user is authenticated.
+   */
+  @GetMapping("/authenticate")
+  public String isAuthenticated(HttpServletRequest request) {
+    log.debug("REST request to check if the current user is authenticated");
+    return request.getRemoteUser();
+  }
+
+  /**
+   * {@code GET  /account} : get the current user.
+   *
+   * @return the current user.
+   * @throws RuntimeException
+   *           {@code 500 (Internal Server Error)} if the user couldn't be returned.
+   */
+  @GetMapping("/account")
+  public UserDTO getAccount() {
+    return userService.getUserWithAuthorities()
+        .map(UserDTO::new)
+        .orElseThrow(
+            () -> new AccountResourceException("User could not be found"));
+  }
+
+  /**
+   * {@code POST  /account} : update the current user information.
+   *
+   * @param userDTO
+   *          the current user information.
+   * @throws EmailAlreadyUsedException
+   *           {@code 400 (Bad Request)} if the email is already used.
+   * @throws RuntimeException
+   *           {@code 500 (Internal Server Error)} if the user login wasn't found.
+   */
+  @PostMapping("/account")
+  public void saveAccount(@Valid @RequestBody UserDTO userDTO) {
+    String userLogin = SecurityUtils.getCurrentUserLogin()
+        .orElseThrow(
+            () -> new AccountResourceException("Current user login not found"));
+    Optional<User> existingUser = userRepository
+        .findOneByEmailIgnoreCase(userDTO.getEmail());
+    if (existingUser.isPresent()
+        && (!existingUser.get().getLogin().equalsIgnoreCase(userLogin))) {
+      throw new EmailAlreadyUsedException();
     }
-
-    /**
-     * {@code GET  /authenticate} : check if the user is authenticated, and return its login.
-     *
-     * @param request the HTTP request.
-     * @return the login if the user is authenticated.
-     */
-    @GetMapping("/authenticate")
-    public String isAuthenticated(HttpServletRequest request) {
-        log.debug("REST request to check if the current user is authenticated");
-        return request.getRemoteUser();
+    Optional<User> user = userRepository.findOneByLogin(userLogin);
+    if (!user.isPresent()) {
+      throw new AccountResourceException("User could not be found");
     }
-
-    /**
-     * {@code GET  /account} : get the current user.
-     *
-     * @return the current user.
-     * @throws RuntimeException {@code 500 (Internal Server Error)} if the user couldn't be returned.
-     */
-    @GetMapping("/account")
-    public UserDTO getAccount() {
-        return userService.getUserWithAuthorities()
-            .map(UserDTO::new)
-            .orElseThrow(() -> new AccountResourceException("User could not be found"));
+    userService.updateUser(userDTO.getFirstName(), userDTO.getLastName(),
+        userDTO.getEmail(), userDTO.getLangKey(), userDTO.getImageUrl());
+  }
+
+  /**
+   * {@code POST  /account/change-password} : changes the current user's password.
+   *
+   * @param passwordChangeDto
+   *          current and new password.
+   * @throws InvalidPasswordException
+   *           {@code 400 (Bad Request)} if the new password is incorrect.
+   */
+  @PostMapping(path = "/account/change-password")
+  public void changePassword(@RequestBody PasswordChangeDTO passwordChangeDto) {
+    if (!checkPasswordLength(passwordChangeDto.getNewPassword())) {
+      throw new InvalidPasswordException();
     }
-
-    /**
-     * {@code POST  /account} : update the current user information.
-     *
-     * @param userDTO the current user information.
-     * @throws EmailAlreadyUsedException {@code 400 (Bad Request)} if the email is already used.
-     * @throws RuntimeException {@code 500 (Internal Server Error)} if the user login wasn't found.
-     */
-    @PostMapping("/account")
-    public void saveAccount(@Valid @RequestBody UserDTO userDTO) {
-        String userLogin = SecurityUtils.getCurrentUserLogin().orElseThrow(() -> new AccountResourceException("Current user login not found"));
-        Optional<User> existingUser = userRepository.findOneByEmailIgnoreCase(userDTO.getEmail());
-        if (existingUser.isPresent() && (!existingUser.get().getLogin().equalsIgnoreCase(userLogin))) {
-            throw new EmailAlreadyUsedException();
-        }
-        Optional<User> user = userRepository.findOneByLogin(userLogin);
-        if (!user.isPresent()) {
-            throw new AccountResourceException("User could not be found");
-        }
-        userService.updateUser(userDTO.getFirstName(), userDTO.getLastName(), userDTO.getEmail(),
-            userDTO.getLangKey(), userDTO.getImageUrl());
+    userService.changePassword(passwordChangeDto.getCurrentPassword(),
+        passwordChangeDto.getNewPassword());
+  }
+
+  /**
+   * {@code POST   /account/reset-password/init} : Send an email to reset the password of the user.
+   *
+   * @param mail
+   *          the mail of the user.
+   */
+  @PostMapping(path = "/account/reset-password/init")
+  public void requestPasswordReset(@RequestBody String mail) {
+    Optional<User> user = userService.requestPasswordReset(mail);
+    if (user.isPresent()) {
+      mailService.sendPasswordResetMail(user.get());
+    } else {
+      // Pretend the request has been successful to prevent checking which emails really exist
+      // but log that an invalid attempt has been made
+      log.warn("Password reset requested for non existing mail");
     }
-
-    /**
-     * {@code POST  /account/change-password} : changes the current user's password.
-     *
-     * @param passwordChangeDto current and new password.
-     * @throws InvalidPasswordException {@code 400 (Bad Request)} if the new password is incorrect.
-     */
-    @PostMapping(path = "/account/change-password")
-    public void changePassword(@RequestBody PasswordChangeDTO passwordChangeDto) {
-        if (!checkPasswordLength(passwordChangeDto.getNewPassword())) {
-            throw new InvalidPasswordException();
-        }
-        userService.changePassword(passwordChangeDto.getCurrentPassword(), passwordChangeDto.getNewPassword());
+  }
+
+  /**
+   * {@code POST   /account/reset-password/finish} : Finish to reset the password of the user.
+   *
+   * @param keyAndPassword
+   *          the generated key and the new password.
+   * @throws InvalidPasswordException
+   *           {@code 400 (Bad Request)} if the password is incorrect.
+   * @throws RuntimeException
+   *           {@code 500 (Internal Server Error)} if the password could not be reset.
+   */
+  @PostMapping(path = "/account/reset-password/finish")
+  public void finishPasswordReset(
+      @RequestBody KeyAndPasswordVM keyAndPassword) {
+    if (!checkPasswordLength(keyAndPassword.getNewPassword())) {
+      throw new InvalidPasswordException();
     }
+    Optional<User> user = userService.completePasswordReset(
+        keyAndPassword.getNewPassword(), keyAndPassword.getKey());
 
-    /**
-     * {@code POST   /account/reset-password/init} : Send an email to reset the password of the user.
-     *
-     * @param mail the mail of the user.
-     */
-    @PostMapping(path = "/account/reset-password/init")
-    public void requestPasswordReset(@RequestBody String mail) {
-        Optional<User> user = userService.requestPasswordReset(mail);
-        if (user.isPresent()) {
-            mailService.sendPasswordResetMail(user.get());
-        } else {
-            // Pretend the request has been successful to prevent checking which emails really exist
-            // but log that an invalid attempt has been made
-            log.warn("Password reset requested for non existing mail");
-        }
+    if (!user.isPresent()) {
+      throw new AccountResourceException(
+          "No user was found for this reset key");
     }
+  }
 
-    /**
-     * {@code POST   /account/reset-password/finish} : Finish to reset the password of the user.
-     *
-     * @param keyAndPassword the generated key and the new password.
-     * @throws InvalidPasswordException {@code 400 (Bad Request)} if the password is incorrect.
-     * @throws RuntimeException {@code 500 (Internal Server Error)} if the password could not be reset.
-     */
-    @PostMapping(path = "/account/reset-password/finish")
-    public void finishPasswordReset(@RequestBody KeyAndPasswordVM keyAndPassword) {
-        if (!checkPasswordLength(keyAndPassword.getNewPassword())) {
-            throw new InvalidPasswordException();
-        }
-        Optional<User> user =
-            userService.completePasswordReset(keyAndPassword.getNewPassword(), keyAndPassword.getKey());
-
-        if (!user.isPresent()) {
-            throw new AccountResourceException("No user was found for this reset key");
-        }
-    }
-
-    private static boolean checkPasswordLength(String password) {
-        return !StringUtils.isEmpty(password) &&
-            password.length() >= ManagedUserVM.PASSWORD_MIN_LENGTH &&
-            password.length() <= ManagedUserVM.PASSWORD_MAX_LENGTH;
-    }
+  private static boolean checkPasswordLength(String password) {
+    return !StringUtils.isEmpty(password)
+        && password.length() >= ManagedUserVM.PASSWORD_MIN_LENGTH
+        && password.length() <= ManagedUserVM.PASSWORD_MAX_LENGTH;
+  }
 }
diff --git a/src/main/java/com/ippon/pouet/web/rest/AuditResource.java b/src/main/java/com/ippon/pouet/web/rest/AuditResource.java
index f15e51d..294b61b 100644
--- a/src/main/java/com/ippon/pouet/web/rest/AuditResource.java
+++ b/src/main/java/com/ippon/pouet/web/rest/AuditResource.java
@@ -1,5 +1,6 @@
 package com.ippon.pouet.web.rest;
 
+import com.ippon.pouet.common.domain.Generated;
 import com.ippon.pouet.service.AuditEventService;
 
 import io.github.jhipster.web.util.PaginationUtil;
@@ -21,6 +22,7 @@ import java.util.List;
 /**
  * REST controller for getting the {@link AuditEvent}s.
  */
+@Generated
 @RestController
 @RequestMapping("/management/audits")
 public class AuditResource {
diff --git a/src/main/java/com/ippon/pouet/web/rest/ClientForwardController.java b/src/main/java/com/ippon/pouet/web/rest/ClientForwardController.java
index 90babe1..e559632 100644
--- a/src/main/java/com/ippon/pouet/web/rest/ClientForwardController.java
+++ b/src/main/java/com/ippon/pouet/web/rest/ClientForwardController.java
@@ -3,6 +3,9 @@ package com.ippon.pouet.web.rest;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.GetMapping;
 
+import com.ippon.pouet.common.domain.Generated;
+
+@Generated
 @Controller
 public class ClientForwardController {
 
diff --git a/src/main/java/com/ippon/pouet/web/rest/UserJWTController.java b/src/main/java/com/ippon/pouet/web/rest/UserJWTController.java
index bfb0397..e92423f 100644
--- a/src/main/java/com/ippon/pouet/web/rest/UserJWTController.java
+++ b/src/main/java/com/ippon/pouet/web/rest/UserJWTController.java
@@ -1,5 +1,6 @@
 package com.ippon.pouet.web.rest;
 
+import com.ippon.pouet.common.domain.Generated;
 import com.ippon.pouet.security.jwt.JWTFilter;
 import com.ippon.pouet.security.jwt.TokenProvider;
 import com.ippon.pouet.web.rest.vm.LoginVM;
@@ -20,6 +21,7 @@ import javax.validation.Valid;
 /**
  * Controller to authenticate users.
  */
+@Generated
 @RestController
 @RequestMapping("/api")
 public class UserJWTController {
@@ -50,6 +52,7 @@ public class UserJWTController {
     /**
      * Object to return as body in JWT Authentication.
      */
+    @Generated
     static class JWTToken {
 
         private String idToken;
diff --git a/src/main/java/com/ippon/pouet/web/rest/UserResource.java b/src/main/java/com/ippon/pouet/web/rest/UserResource.java
index 9f9d9bd..5569c24 100644
--- a/src/main/java/com/ippon/pouet/web/rest/UserResource.java
+++ b/src/main/java/com/ippon/pouet/web/rest/UserResource.java
@@ -1,5 +1,6 @@
 package com.ippon.pouet.web.rest;
 
+import com.ippon.pouet.common.domain.Generated;
 import com.ippon.pouet.config.Constants;
 import com.ippon.pouet.domain.User;
 import com.ippon.pouet.repository.UserRepository;
@@ -56,6 +57,7 @@ import java.util.*;
  * <p>
  * Another option would be to have a specific JPA entity graph to handle this case.
  */
+@Generated
 @RestController
 @RequestMapping("/api")
 public class UserResource {
diff --git a/src/main/java/com/ippon/pouet/web/rest/errors/BadRequestAlertException.java b/src/main/java/com/ippon/pouet/web/rest/errors/BadRequestAlertException.java
index ec4bba0..ded6041 100644
--- a/src/main/java/com/ippon/pouet/web/rest/errors/BadRequestAlertException.java
+++ b/src/main/java/com/ippon/pouet/web/rest/errors/BadRequestAlertException.java
@@ -3,10 +3,13 @@ package com.ippon.pouet.web.rest.errors;
 import org.zalando.problem.AbstractThrowableProblem;
 import org.zalando.problem.Status;
 
+import com.ippon.pouet.common.domain.Generated;
+
 import java.net.URI;
 import java.util.HashMap;
 import java.util.Map;
 
+@Generated
 public class BadRequestAlertException extends AbstractThrowableProblem {
 
     private static final long serialVersionUID = 1L;
diff --git a/src/main/java/com/ippon/pouet/web/rest/errors/EmailAlreadyUsedException.java b/src/main/java/com/ippon/pouet/web/rest/errors/EmailAlreadyUsedException.java
index 55ac802..a77acbb 100644
--- a/src/main/java/com/ippon/pouet/web/rest/errors/EmailAlreadyUsedException.java
+++ b/src/main/java/com/ippon/pouet/web/rest/errors/EmailAlreadyUsedException.java
@@ -1,5 +1,8 @@
 package com.ippon.pouet.web.rest.errors;
 
+import com.ippon.pouet.common.domain.Generated;
+
+@Generated
 public class EmailAlreadyUsedException extends BadRequestAlertException {
 
     private static final long serialVersionUID = 1L;
diff --git a/src/main/java/com/ippon/pouet/web/rest/errors/ErrorConstants.java b/src/main/java/com/ippon/pouet/web/rest/errors/ErrorConstants.java
index fd8a1e1..6e6ba6c 100644
--- a/src/main/java/com/ippon/pouet/web/rest/errors/ErrorConstants.java
+++ b/src/main/java/com/ippon/pouet/web/rest/errors/ErrorConstants.java
@@ -2,6 +2,9 @@ package com.ippon.pouet.web.rest.errors;
 
 import java.net.URI;
 
+import com.ippon.pouet.common.domain.Generated;
+
+@Generated
 public final class ErrorConstants {
 
     public static final String ERR_CONCURRENCY_FAILURE = "error.concurrencyFailure";
diff --git a/src/main/java/com/ippon/pouet/web/rest/errors/ExceptionTranslator.java b/src/main/java/com/ippon/pouet/web/rest/errors/ExceptionTranslator.java
index 81a44cd..09a605e 100644
--- a/src/main/java/com/ippon/pouet/web/rest/errors/ExceptionTranslator.java
+++ b/src/main/java/com/ippon/pouet/web/rest/errors/ExceptionTranslator.java
@@ -18,6 +18,8 @@ import org.zalando.problem.spring.web.advice.ProblemHandling;
 import org.zalando.problem.spring.web.advice.security.SecurityAdviceTrait;
 import org.zalando.problem.violations.ConstraintViolationProblem;
 
+import com.ippon.pouet.common.domain.Generated;
+
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 import javax.servlet.http.HttpServletRequest;
@@ -28,6 +30,7 @@ import java.util.stream.Collectors;
  * Controller advice to translate the server side exceptions to client-friendly json structures.
  * The error response follows RFC7807 - Problem Details for HTTP APIs (https://tools.ietf.org/html/rfc7807).
  */
+@Generated
 @ControllerAdvice
 public class ExceptionTranslator implements ProblemHandling, SecurityAdviceTrait {
 
diff --git a/src/main/java/com/ippon/pouet/web/rest/errors/FieldErrorVM.java b/src/main/java/com/ippon/pouet/web/rest/errors/FieldErrorVM.java
index 489524e..a307b76 100644
--- a/src/main/java/com/ippon/pouet/web/rest/errors/FieldErrorVM.java
+++ b/src/main/java/com/ippon/pouet/web/rest/errors/FieldErrorVM.java
@@ -2,6 +2,9 @@ package com.ippon.pouet.web.rest.errors;
 
 import java.io.Serializable;
 
+import com.ippon.pouet.common.domain.Generated;
+
+@Generated
 public class FieldErrorVM implements Serializable {
 
     private static final long serialVersionUID = 1L;
diff --git a/src/main/java/com/ippon/pouet/web/rest/errors/InvalidPasswordException.java b/src/main/java/com/ippon/pouet/web/rest/errors/InvalidPasswordException.java
index bdc80e7..9f0f59d 100644
--- a/src/main/java/com/ippon/pouet/web/rest/errors/InvalidPasswordException.java
+++ b/src/main/java/com/ippon/pouet/web/rest/errors/InvalidPasswordException.java
@@ -3,6 +3,9 @@ package com.ippon.pouet.web.rest.errors;
 import org.zalando.problem.AbstractThrowableProblem;
 import org.zalando.problem.Status;
 
+import com.ippon.pouet.common.domain.Generated;
+
+@Generated
 public class InvalidPasswordException extends AbstractThrowableProblem {
 
     private static final long serialVersionUID = 1L;
diff --git a/src/main/java/com/ippon/pouet/web/rest/errors/LoginAlreadyUsedException.java b/src/main/java/com/ippon/pouet/web/rest/errors/LoginAlreadyUsedException.java
index 5b8263c..00e777f 100644
--- a/src/main/java/com/ippon/pouet/web/rest/errors/LoginAlreadyUsedException.java
+++ b/src/main/java/com/ippon/pouet/web/rest/errors/LoginAlreadyUsedException.java
@@ -1,5 +1,8 @@
 package com.ippon.pouet.web.rest.errors;
 
+import com.ippon.pouet.common.domain.Generated;
+
+@Generated
 public class LoginAlreadyUsedException extends BadRequestAlertException {
 
     private static final long serialVersionUID = 1L;
diff --git a/src/main/java/com/ippon/pouet/web/rest/vm/KeyAndPasswordVM.java b/src/main/java/com/ippon/pouet/web/rest/vm/KeyAndPasswordVM.java
index cef036e..14d8ea1 100644
--- a/src/main/java/com/ippon/pouet/web/rest/vm/KeyAndPasswordVM.java
+++ b/src/main/java/com/ippon/pouet/web/rest/vm/KeyAndPasswordVM.java
@@ -1,8 +1,11 @@
 package com.ippon.pouet.web.rest.vm;
 
+import com.ippon.pouet.common.domain.Generated;
+
 /**
  * View Model object for storing the user's key and password.
  */
+@Generated
 public class KeyAndPasswordVM {
 
     private String key;
diff --git a/src/main/java/com/ippon/pouet/web/rest/vm/LoginVM.java b/src/main/java/com/ippon/pouet/web/rest/vm/LoginVM.java
index 63710da..1a6d844 100644
--- a/src/main/java/com/ippon/pouet/web/rest/vm/LoginVM.java
+++ b/src/main/java/com/ippon/pouet/web/rest/vm/LoginVM.java
@@ -3,9 +3,12 @@ package com.ippon.pouet.web.rest.vm;
 import javax.validation.constraints.NotNull;
 import javax.validation.constraints.Size;
 
+import com.ippon.pouet.common.domain.Generated;
+
 /**
  * View Model object for storing a user's credentials.
  */
+@Generated
 public class LoginVM {
 
     @NotNull
diff --git a/src/main/java/com/ippon/pouet/web/rest/vm/ManagedUserVM.java b/src/main/java/com/ippon/pouet/web/rest/vm/ManagedUserVM.java
index 58414c8..d7cdaca 100644
--- a/src/main/java/com/ippon/pouet/web/rest/vm/ManagedUserVM.java
+++ b/src/main/java/com/ippon/pouet/web/rest/vm/ManagedUserVM.java
@@ -1,11 +1,13 @@
 package com.ippon.pouet.web.rest.vm;
 
+import com.ippon.pouet.common.domain.Generated;
 import com.ippon.pouet.service.dto.UserDTO;
 import javax.validation.constraints.Size;
 
 /**
  * View Model extending the UserDTO, which is meant to be used in the user management UI.
  */
+@Generated
 public class ManagedUserVM extends UserDTO {
 
     public static final int PASSWORD_MIN_LENGTH = 4;
-- 
GitLab