This is an automated email from the ASF dual-hosted git repository.

arnold pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/fineract.git


The following commit(s) were added to refs/heads/develop by this push:
     new 9b039ff13 refactor: add lombok to emailcampaigns module
9b039ff13 is described below

commit 9b039ff1365065af69c9a54156d053e870e9ca9c
Author: Hemant Gupta <[email protected]>
AuthorDate: Sat Sep 10 00:22:03 2022 +0530

    refactor: add lombok to emailcampaigns module
---
 .../email/data/EmailBusinessRulesData.java         |  51 ++-----
 .../campaigns/email/data/EmailCampaignData.java    | 129 ++++-------------
 .../email/data/EmailCampaignTimeLine.java          |  27 ++--
 .../email/data/EmailConfigurationData.java         |  40 ++----
 .../campaigns/email/data/EmailData.java            | 156 ++++-----------------
 .../email/data/EmailMessageWithAttachmentData.java |  38 ++---
 .../email/data/PreviewCampaignMessage.java         |  23 ++-
 .../campaigns/email/domain/EmailCampaign.java      | 154 +++-----------------
 .../campaigns/email/domain/EmailConfiguration.java |  33 ++---
 .../campaigns/email/domain/EmailMessage.java       |  84 ++---------
 .../EmailCampaignReadPlatformServiceImpl.java      |   5 +-
 ...ailCampaignWritePlatformCommandHandlerImpl.java |  21 +--
 .../EmailConfigurationReadPlatformServiceImpl.java |   2 +
 ...EmailConfigurationWritePlatformServiceImpl.java |  11 +-
 .../service/EmailMessageJobEmailServiceImpl.java   |   8 +-
 .../service/EmailReadPlatformServiceImpl.java      |  11 +-
 ...EmailWritePlatformServiceJpaRepositoryImpl.java |  11 +-
 .../jobs/executeemail/ExecuteEmailTasklet.java     |   2 +-
 ...ateEmailOutboundWithCampaignMessageTasklet.java |   2 +-
 .../dataqueries/data/ReportData.java               |   2 +-
 20 files changed, 185 insertions(+), 625 deletions(-)

diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/EmailBusinessRulesData.java
 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/EmailBusinessRulesData.java
index 1223b910e..d4611e79f 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/EmailBusinessRulesData.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/EmailBusinessRulesData.java
@@ -19,60 +19,37 @@
 package org.apache.fineract.infrastructure.campaigns.email.data;
 
 import java.util.Map;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
 
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
 public class EmailBusinessRulesData {
 
     @SuppressWarnings("unused")
-    private final Long reportId;
+    private Long reportId;
 
     @SuppressWarnings("unused")
-    private final String reportName;
+    private String reportName;
 
     @SuppressWarnings("unused")
-    private final String reportType;
+    private String reportType;
 
     @SuppressWarnings("unused")
-    private final String reportSubType;
+    private String reportSubType;
 
     @SuppressWarnings("unused")
-    private final String reportDescription;
+    private String reportDescription;
 
     @SuppressWarnings("unused")
-    private final Map<String, Object> reportParamName;
-
-    public EmailBusinessRulesData(final Long reportId, final String 
reportName, final String reportType,
-            final Map<String, Object> reportParamName, final String 
reportSubType, final String reportDescription) {
-        this.reportId = reportId;
-        this.reportName = reportName;
-        this.reportType = reportType;
-        this.reportParamName = reportParamName;
-        this.reportDescription = reportDescription;
-        this.reportSubType = reportSubType;
-    }
+    private Map<String, Object> reportParamName;
 
     public static EmailBusinessRulesData instance(final Long reportId, final 
String reportName, final String reportType,
             final Map<String, Object> reportParamName, final String 
reportSubType, final String reportDescription) {
-        return new EmailBusinessRulesData(reportId, reportName, reportType, 
reportParamName, reportSubType, reportDescription);
-    }
-
-    public Map<String, Object> getReportParamName() {
-        return reportParamName;
-    }
-
-    public String getReportType() {
-        return reportType;
-    }
-
-    public String getReportName() {
-        return reportName;
-    }
-
-    public Long getReportId() {
-        return reportId;
-    }
-
-    public String getReportDescription() {
-        return reportDescription;
+        return new 
EmailBusinessRulesData().setReportId(reportId).setReportName(reportName).setReportType(reportType)
+                
.setReportParamName(reportParamName).setReportSubType(reportSubType).setReportDescription(reportDescription);
     }
 
     @Override
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/EmailCampaignData.java
 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/EmailCampaignData.java
index 097b0e666..b46c4502b 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/EmailCampaignData.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/EmailCampaignData.java
@@ -20,130 +20,59 @@ package 
org.apache.fineract.infrastructure.campaigns.email.data;
 
 import java.time.LocalDate;
 import java.time.ZonedDateTime;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
 import org.apache.fineract.infrastructure.core.data.EnumOptionData;
 
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
 public final class EmailCampaignData {
 
     @SuppressWarnings("unused")
     private Long id;
     @SuppressWarnings("unused")
-    private final String campaignName;
+    private String campaignName;
     @SuppressWarnings("unused")
-    private final Integer campaignType;
+    private Integer campaignType;
     @SuppressWarnings("unused")
-    private final Long businessRuleId;
+    private Long businessRuleId;
     @SuppressWarnings("unused")
-    private final String paramValue;
+    private String paramValue;
     @SuppressWarnings("unused")
-    private final EnumOptionData campaignStatus;
+    private EnumOptionData campaignStatus;
     @SuppressWarnings("unused")
-    private final String emailSubject;
+    private String emailSubject;
     @SuppressWarnings("unused")
-    private final String emailMessage;
+    private String emailMessage;
     @SuppressWarnings("unused")
-    private final String emailAttachmentFileFormat;
+    private String emailAttachmentFileFormat;
     @SuppressWarnings("unused")
-    private final Long stretchyReportId;
+    private Long stretchyReportId;
     @SuppressWarnings("unused")
-    private final String stretchyReportParamMap;
+    private String stretchyReportParamMap;
     @SuppressWarnings("unused")
-    private final ZonedDateTime nextTriggerDate;
+    private ZonedDateTime nextTriggerDate;
     @SuppressWarnings("unused")
-    private final LocalDate lastTriggerDate;
+    private LocalDate lastTriggerDate;
     @SuppressWarnings("unused")
-    private final EmailCampaignTimeLine emailCampaignTimeLine;
+    private EmailCampaignTimeLine emailCampaignTimeLine;
 
     @SuppressWarnings("unused")
-    private final ZonedDateTime recurrenceStartDate;
+    private ZonedDateTime recurrenceStartDate;
 
-    private final String recurrence;
+    private String recurrence;
 
-    private EmailCampaignData(final Long id, final String campaignName, final 
Integer campaignType, final Long businessRuleId,
-            final String paramValue, final EnumOptionData campaignStatus, 
final String emailSubject, final String message,
-            final String emailAttachmentFileFormat, final Long 
stretchyReportId, final String stretchyReportParamMap,
+    public static EmailCampaignData instance(final Long id, final String 
campaignName, final Integer campaignType,
+            final Long businessRuleId, final String paramValue, final 
EnumOptionData campaignStatus, final String emailSubject,
+            final String message, final String emailAttachmentFileFormat, 
final Long stretchyReportId, final String stretchyReportParamMap,
             final ZonedDateTime nextTriggerDate, final LocalDate 
lastTriggerDate, final EmailCampaignTimeLine emailCampaignTimeLine,
             final ZonedDateTime recurrenceStartDate, final String recurrence) {
-        this.id = id;
-        this.campaignName = campaignName;
-        this.campaignType = campaignType;
-        this.businessRuleId = businessRuleId;
-        this.paramValue = paramValue;
-        this.campaignStatus = campaignStatus;
-        this.emailSubject = emailSubject;
-        this.emailMessage = message;
-        this.emailAttachmentFileFormat = emailAttachmentFileFormat;
-        this.stretchyReportId = stretchyReportId;
-        this.stretchyReportParamMap = stretchyReportParamMap;
-        if (nextTriggerDate != null) {
-            this.nextTriggerDate = nextTriggerDate;
-        } else {
-            this.nextTriggerDate = null;
-        }
-        if (lastTriggerDate != null) {
-            this.lastTriggerDate = lastTriggerDate;
-        } else {
-            this.lastTriggerDate = null;
-        }
-        this.emailCampaignTimeLine = emailCampaignTimeLine;
-        this.recurrenceStartDate = recurrenceStartDate;
-        this.recurrence = recurrence;
-    }
-
-    public static EmailCampaignData instance(final Long id, final String 
campaignName, final Integer campaignType, final Long runReportId,
-            final String paramValue, final EnumOptionData campaignStatus, 
final String emailSubject, final String message,
-            final String emailAttachmentFileFormat, final Long 
stretchyReportId, final String stretchyReportParamMap,
-            final ZonedDateTime nextTriggerDate, final LocalDate 
lastTriggerDate, final EmailCampaignTimeLine emailCampaignTimeLine,
-            final ZonedDateTime recurrenceStartDate, final String recurrence) {
-        return new EmailCampaignData(id, campaignName, campaignType, 
runReportId, paramValue, campaignStatus, emailSubject, message,
-                emailAttachmentFileFormat, stretchyReportId, 
stretchyReportParamMap, nextTriggerDate, lastTriggerDate,
-                emailCampaignTimeLine, recurrenceStartDate, recurrence);
-    }
-
-    public Long getId() {
-        return id;
-    }
-
-    public String getCampaignName() {
-        return this.campaignName;
-    }
-
-    public Integer getCampaignType() {
-        return this.campaignType;
-    }
-
-    public Long getRunReportId() {
-        return this.businessRuleId;
-    }
-
-    public String getParamValue() {
-        return this.paramValue;
-    }
-
-    public EnumOptionData getCampaignStatus() {
-        return this.campaignStatus;
-    }
-
-    public String getEmailSubject() {
-        return this.emailSubject;
-    }
-
-    public String getMessage() {
-        return this.emailMessage;
-    }
-
-    public ZonedDateTime getNextTriggerDate() {
-        return this.nextTriggerDate;
-    }
-
-    public LocalDate getLastTriggerDate() {
-        return this.lastTriggerDate;
-    }
-
-    public String getRecurrence() {
-        return this.recurrence;
-    }
-
-    public ZonedDateTime getRecurrenceStartDate() {
-        return this.recurrenceStartDate;
+        return new 
EmailCampaignData().setId(id).setCampaignName(campaignName).setCampaignType(campaignType)
+                
.setBusinessRuleId(businessRuleId).setParamValue(paramValue).setCampaignStatus(campaignStatus).setEmailSubject(emailSubject)
+                
.setEmailMessage(message).setEmailAttachmentFileFormat(emailAttachmentFileFormat).setStretchyReportId(stretchyReportId)
+                
.setStretchyReportParamMap(stretchyReportParamMap).setNextTriggerDate(nextTriggerDate).setLastTriggerDate(lastTriggerDate)
+                
.setEmailCampaignTimeLine(emailCampaignTimeLine).setRecurrenceStartDate(recurrenceStartDate).setRecurrence(recurrence);
     }
 }
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/EmailCampaignTimeLine.java
 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/EmailCampaignTimeLine.java
index 80da3399a..3f2ed8f85 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/EmailCampaignTimeLine.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/EmailCampaignTimeLine.java
@@ -19,23 +19,20 @@
 package org.apache.fineract.infrastructure.campaigns.email.data;
 
 import java.time.LocalDate;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
 
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
 public class EmailCampaignTimeLine {
 
-    private final LocalDate submittedOnDate;
-    private final String submittedByUsername;
-    private final LocalDate activatedOnDate;
-    private final String activatedByUsername;
-    private final LocalDate closedOnDate;
-    private final String closedByUsername;
+    private LocalDate submittedOnDate;
+    private String submittedByUsername;
+    private LocalDate activatedOnDate;
+    private String activatedByUsername;
+    private LocalDate closedOnDate;
+    private String closedByUsername;
 
-    public EmailCampaignTimeLine(final LocalDate submittedOnDate, final String 
submittedByUsername, final LocalDate activatedOnDate,
-            final String activatedByUsername, final LocalDate closedOnDate, 
final String closedByUsername) {
-        this.submittedOnDate = submittedOnDate;
-        this.submittedByUsername = submittedByUsername;
-        this.activatedOnDate = activatedOnDate;
-        this.activatedByUsername = activatedByUsername;
-        this.closedOnDate = closedOnDate;
-        this.closedByUsername = closedByUsername;
-    }
 }
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/EmailConfigurationData.java
 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/EmailConfigurationData.java
index c77522a36..05d6b22ae 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/EmailConfigurationData.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/EmailConfigurationData.java
@@ -18,47 +18,31 @@
  */
 package org.apache.fineract.infrastructure.campaigns.email.data;
 
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+
 /**
  * Immutable data object representing an Email configuration.
  */
+
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
 public final class EmailConfigurationData {
 
     @SuppressWarnings("unused")
-    private final Long id;
+    private Long id;
 
-    private final String name;
+    private String name;
 
-    private final String value;
+    private String value;
 
     /**
      * @return an instance of the EmailConfigurationData class
      **/
     public static EmailConfigurationData instance(Long id, String name, String 
value) {
-        return new EmailConfigurationData(id, name, value);
-    }
-
-    /**
-     * EmailConfigurationData constructor
-     **/
-    private EmailConfigurationData(Long id, String name, String value) {
-        this.id = id;
-        this.name = name;
-        this.value = value;
-    }
-
-    /**
-     * @return the id
-     */
-    public Long getId() {
-        return id;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public String getValue() {
-        return value;
+        return new 
EmailConfigurationData().setId(id).setName(name).setValue(value);
     }
 
 }
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/EmailData.java
 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/EmailData.java
index 9f12955a1..00d306103 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/EmailData.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/EmailData.java
@@ -20,146 +20,48 @@ package 
org.apache.fineract.infrastructure.campaigns.email.data;
 
 import java.time.LocalDate;
 import java.util.List;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
 import org.apache.fineract.infrastructure.core.data.EnumOptionData;
 import org.apache.fineract.infrastructure.dataqueries.data.ReportData;
 
 /**
  * Immutable data object representing a SMS message.
  */
+
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
 public final class EmailData {
 
-    private final Long id;
-    private final Long groupId;
-    private final Long clientId;
-    private final Long staffId;
-    private final EnumOptionData status;
-    private final String emailAddress;
-    private final String emailSubject;
-    private final String emailMessage;
-    private final EnumOptionData emailAttachmentFileFormat;
-    private final ReportData stretchyReport;
-    private final String stretchyReportParamMap;
-    private final List<EnumOptionData> emailAttachmentFileFormatOptions;
-    private final List<EnumOptionData> stretchyReportParamDateOptions;
-    private final String campaignName;
-    private final LocalDate sentDate;
-    private final String errorMessage;
+    private Long id;
+    private Long groupId;
+    private Long clientId;
+    private Long staffId;
+    private EnumOptionData status;
+    private String emailAddress;
+    private String emailSubject;
+    private String emailMessage;
+    private EnumOptionData emailAttachmentFileFormat;
+    private ReportData stretchyReport;
+    private String stretchyReportParamMap;
+    private List<EnumOptionData> emailAttachmentFileFormatOptions;
+    private List<EnumOptionData> stretchyReportParamDateOptions;
+    private String campaignName;
+    private LocalDate sentDate;
+    private String errorMessage;
 
     public static EmailData instance(final Long id, final Long groupId, final 
Long clientId, final Long staffId,
             final EnumOptionData status, final String emailAddress, final 
String emailSubject, final String message,
             final EnumOptionData emailAttachmentFileFormat, final ReportData 
stretchyReport, final String stretchyReportParamMap,
             final List<EnumOptionData> emailAttachmentFileFormatOptions, final 
List<EnumOptionData> stretchyReportParamDateOptions,
             final String campaignName, final LocalDate sentDate, final String 
errorMessage) {
-        return new EmailData(id, groupId, clientId, staffId, status, 
emailAddress, emailSubject, message, emailAttachmentFileFormat,
-                stretchyReport, stretchyReportParamMap, 
emailAttachmentFileFormatOptions, stretchyReportParamDateOptions, campaignName,
-                sentDate, errorMessage);
-    }
-
-    private EmailData(final Long id, final Long groupId, final Long clientId, 
final Long staffId, final EnumOptionData status,
-            final String emailAddress, final String emailSubject, final String 
message, final EnumOptionData emailAttachmentFileFormat,
-            final ReportData stretchyReport, final String 
stretchyReportParamMap,
-            final List<EnumOptionData> emailAttachmentFileFormatOptions, final 
List<EnumOptionData> stretchyReportParamDateOptions,
-            final String campaignName, final LocalDate sentDate, final String 
errorMessage) {
-        this.id = id;
-        this.groupId = groupId;
-        this.clientId = clientId;
-        this.staffId = staffId;
-        this.status = status;
-        this.emailAddress = emailAddress;
-        this.emailSubject = emailSubject;
-        this.emailMessage = message;
-        this.emailAttachmentFileFormat = emailAttachmentFileFormat;
-        this.stretchyReport = stretchyReport;
-        this.stretchyReportParamMap = stretchyReportParamMap;
-        this.emailAttachmentFileFormatOptions = 
emailAttachmentFileFormatOptions;
-        this.stretchyReportParamDateOptions = stretchyReportParamDateOptions;
-        this.campaignName = campaignName;
-        this.sentDate = sentDate;
-        this.errorMessage = errorMessage;
-    }
-
-    /**
-     * @return the id
-     */
-    public Long getId() {
-        return id;
-    }
-
-    /**
-     * @return the groupId
-     */
-    public Long getGroupId() {
-        return groupId;
-    }
-
-    /**
-     * @return the clientId
-     */
-    public Long getClientId() {
-        return clientId;
-    }
-
-    /**
-     * @return the staffId
-     */
-    public Long getStaffId() {
-        return staffId;
-    }
-
-    /**
-     * @return the status
-     */
-    public EnumOptionData getStatus() {
-        return status;
-    }
-
-    public String getErrorMessage() {
-        return this.errorMessage;
-    }
-
-    /**
-     * @return the emailAddress
-     */
-    public String getEmailAddress() {
-        return emailAddress;
-    }
-
-    /**
-     * @return the message
-     */
-    public String getMessage() {
-        return emailMessage;
-    }
-
-    public String getCampaignName() {
-        return this.campaignName;
-    }
-
-    public LocalDate getSentDate() {
-        return this.sentDate;
-    }
-
-    public String getEmailSubject() {
-        return emailSubject;
-    }
-
-    public EnumOptionData getEmailAttachmentFileFormat() {
-        return emailAttachmentFileFormat;
-    }
-
-    public ReportData getStretchyReport() {
-        return stretchyReport;
-    }
-
-    public String getStretchyReportParamMap() {
-        return stretchyReportParamMap;
-    }
-
-    public List<EnumOptionData> getEmailAttachmentFileFormatOptions() {
-        return emailAttachmentFileFormatOptions;
-    }
-
-    public List<EnumOptionData> getStretchyReportParamDateOptions() {
-        return stretchyReportParamDateOptions;
+        return new 
EmailData().setId(id).setGroupId(groupId).setClientId(clientId).setStaffId(staffId).setStatus(status)
+                
.setEmailAddress(emailAddress).setEmailSubject(emailSubject).setEmailMessage(message)
+                
.setEmailAttachmentFileFormat(emailAttachmentFileFormat).setStretchyReport(stretchyReport)
+                
.setStretchyReportParamMap(stretchyReportParamMap).setEmailAttachmentFileFormatOptions(emailAttachmentFileFormatOptions)
+                
.setStretchyReportParamDateOptions(stretchyReportParamDateOptions).setCampaignName(campaignName).setSentDate(sentDate)
+                .setErrorMessage(errorMessage);
     }
 }
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/EmailMessageWithAttachmentData.java
 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/EmailMessageWithAttachmentData.java
index a67ebf20b..091c2314a 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/EmailMessageWithAttachmentData.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/EmailMessageWithAttachmentData.java
@@ -20,39 +20,23 @@ package 
org.apache.fineract.infrastructure.campaigns.email.data;
 
 import java.io.File;
 import java.util.List;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
 
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
 public final class EmailMessageWithAttachmentData {
 
-    private final String to;
-    private final String text;
-    private final String subject;
-    private final List<File> attachments;
-
-    private EmailMessageWithAttachmentData(final String to, final String text, 
final String subject, final List<File> attachments) {
-        this.to = to;
-        this.text = text;
-        this.subject = subject;
-        this.attachments = attachments;
-    }
+    private String to;
+    private String text;
+    private String subject;
+    private List<File> attachments;
 
     public static EmailMessageWithAttachmentData createNew(final String to, 
final String text, final String subject,
             final List<File> attachments) {
-        return new EmailMessageWithAttachmentData(to, text, subject, 
attachments);
+        return new 
EmailMessageWithAttachmentData().setTo(to).setText(text).setSubject(subject).setAttachments(attachments);
     }
 
-    public String getTo() {
-        return this.to;
-    }
-
-    public String getText() {
-        return this.text;
-    }
-
-    public String getSubject() {
-        return this.subject;
-    }
-
-    public List<File> getAttachments() {
-        return this.attachments;
-    }
 }
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/PreviewCampaignMessage.java
 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/PreviewCampaignMessage.java
index 06ff76455..7d4a1392e 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/PreviewCampaignMessage.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/PreviewCampaignMessage.java
@@ -18,23 +18,18 @@
  */
 package org.apache.fineract.infrastructure.campaigns.email.data;
 
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
 public class PreviewCampaignMessage {
 
     @SuppressWarnings("unused")
-    private final String campaignMessage;
-
-    private final Integer totalNumberOfMessages;
-
-    public PreviewCampaignMessage(String campaignMessage, Integer 
totalNumberOfMessages) {
-        this.campaignMessage = campaignMessage;
-        this.totalNumberOfMessages = totalNumberOfMessages;
-    }
+    private String campaignMessage;
 
-    public String getCampaignMessage() {
-        return campaignMessage;
-    }
+    private Integer totalNumberOfMessages;
 
-    public Integer getTotalNumberOfMessages() {
-        return totalNumberOfMessages;
-    }
 }
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/domain/EmailCampaign.java
 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/domain/EmailCampaign.java
index bd61c8638..81ca5887e 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/domain/EmailCampaign.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/domain/EmailCampaign.java
@@ -31,6 +31,10 @@ import javax.persistence.Entity;
 import javax.persistence.JoinColumn;
 import javax.persistence.ManyToOne;
 import javax.persistence.Table;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import lombok.experimental.Accessors;
 import org.apache.commons.lang3.StringUtils;
 import 
org.apache.fineract.infrastructure.campaigns.email.ScheduledEmailConstants;
 import 
org.apache.fineract.infrastructure.campaigns.email.data.EmailCampaignValidator;
@@ -45,6 +49,10 @@ import org.apache.fineract.useradministration.domain.AppUser;
 
 @Entity
 @Table(name = "scheduled_email_campaign")
+@Getter
+@Setter
+@NoArgsConstructor
+@Accessors(chain = true)
 public class EmailCampaign extends AbstractPersistableCustom {
 
     @Column(name = "campaign_name", nullable = false)
@@ -124,36 +132,6 @@ public class EmailCampaign extends 
AbstractPersistableCustom {
     @Column(name = "previous_run_error_message", nullable = true)
     private String previousRunErrorMessage;
 
-    public EmailCampaign() {}
-
-    private EmailCampaign(final String campaignName, final Integer 
campaignType, final Report businessRuleId, final String paramValue,
-            final String emailSubject, final String emailMessage, final 
LocalDate submittedOnDate, final AppUser submittedBy,
-            final Report stretchyReport, final String stretchyReportParamMap,
-            final ScheduledEmailAttachmentFileFormat 
emailAttachmentFileFormat, final String recurrence,
-            final LocalDateTime localDateTime) {
-        this.campaignName = campaignName;
-        this.campaignType = EmailCampaignType.fromInt(campaignType).getValue();
-        this.businessRuleId = businessRuleId;
-        this.paramValue = paramValue;
-        this.status = EmailCampaignStatus.PENDING.getValue();
-        this.emailSubject = emailSubject;
-        this.emailMessage = emailMessage;
-        this.emailAttachmentFileFormat = emailAttachmentFileFormat.getValue();
-        this.stretchyReport = stretchyReport;
-        this.stretchyReportParamMap = stretchyReportParamMap;
-        this.submittedOnDate = submittedOnDate;
-        this.submittedBy = submittedBy;
-        this.recurrence = recurrence;
-        LocalDateTime recurrenceStartDate = 
LocalDateTime.now(DateUtils.getDateTimeZoneOfTenant());
-        this.isVisible = true;
-        if (localDateTime != null) {
-            this.recurrenceStartDate = localDateTime;
-        } else {
-            this.recurrenceStartDate = recurrenceStartDate;
-        }
-
-    }
-
     public static EmailCampaign instance(final AppUser submittedBy, final 
Report businessRuleId, final Report stretchyReport,
             final JsonCommand command) {
 
@@ -192,9 +170,11 @@ public class EmailCampaign extends 
AbstractPersistableCustom {
             recurrenceStartDate = null;
         }
 
-        return new EmailCampaign(campaignName, campaignType.intValue(), 
businessRuleId, paramValue, emailSubject, emailMessage,
-                submittedOnDate, submittedBy, stretchyReport, 
stretchyReportParamMap, emailAttachmentFileFormat, recurrence,
-                recurrenceStartDate);
+        return new 
EmailCampaign().setCampaignName(campaignName).setCampaignType(campaignType.intValue()).setBusinessRuleId(businessRuleId)
+                
.setParamValue(paramValue).setStatus(EmailCampaignStatus.PENDING.getValue()).setEmailSubject(emailSubject)
+                
.setEmailMessage(emailMessage).setSubmittedOnDate(submittedOnDate).setSubmittedBy(submittedBy)
+                
.setStretchyReport(stretchyReport).setEmailAttachmentFileFormat(emailAttachmentFileFormat.getValue())
+                
.setRecurrence(recurrence).setRecurrenceStartDate(recurrenceStartDate).setStretchyReportParamMap(stretchyReportParamMap);
     }
 
     public Map<String, Object> update(JsonCommand command) {
@@ -236,7 +216,7 @@ public class EmailCampaign extends 
AbstractPersistableCustom {
         final Locale locale = command.extractLocale();
         final DateTimeFormatter fmt = 
DateTimeFormatter.ofPattern(command.dateFormat()).withLocale(locale);
 
-        if 
(command.isChangeInLocalDateTimeParameterNamed(EmailCampaignValidator.recurrenceStartDate,
 getRecurrenceStartDateTime())) {
+        if 
(command.isChangeInLocalDateTimeParameterNamed(EmailCampaignValidator.recurrenceStartDate,
 getRecurrenceStartDate())) {
             final String valueAsInput = 
command.stringValueOfParameterNamed(EmailCampaignValidator.recurrenceStartDate);
             actualChanges.put(EmailCampaignValidator.recurrenceStartDate, 
valueAsInput);
             actualChanges.put(ClientApiConstants.dateFormatParamName, 
dateFormatAsInput);
@@ -307,9 +287,7 @@ public class EmailCampaign extends 
AbstractPersistableCustom {
         this.approvedOnDate = reactivateLocalDate;
         this.status = EmailCampaignStatus.ACTIVE.getValue();
         this.approvedBy = currentUser;
-        this.closureDate = null;
         this.isVisible = true;
-        this.closedBy = null;
 
         validateReactivate();
     }
@@ -384,7 +362,7 @@ public class EmailCampaign extends 
AbstractPersistableCustom {
             dataValidationErrors.add(error);
         }
 
-        if (getActivationLocalDate() != null && getSubmittedOnDate() != null 
&& getSubmittedOnDate().isAfter(getActivationLocalDate())) {
+        if (getApprovedOnDate() != null && getSubmittedOnDate() != null && 
getSubmittedOnDate().isAfter(getApprovedOnDate())) {
 
             final String defaultUserMessage = "submitted date cannot be after 
the activation date";
             final ApiParameterError error = 
ApiParameterError.parameterError("error.msg.campaign.submittedOnDate.after.activation.date",
@@ -393,11 +371,11 @@ public class EmailCampaign extends 
AbstractPersistableCustom {
             dataValidationErrors.add(error);
         }
 
-        if (getActivationLocalDate() != null && 
isDateInTheFuture(getActivationLocalDate())) {
+        if (getApprovedOnDate() != null && 
isDateInTheFuture(getApprovedOnDate())) {
 
             final String defaultUserMessage = "Activation date cannot be in 
the future.";
             final ApiParameterError error = 
ApiParameterError.parameterError("error.msg.campaign.activationDate.in.the.future",
-                    defaultUserMessage, 
EmailCampaignValidator.activationDateParamName, getActivationLocalDate());
+                    defaultUserMessage, 
EmailCampaignValidator.activationDateParamName, getApprovedOnDate());
 
             dataValidationErrors.add(error);
         }
@@ -405,15 +383,15 @@ public class EmailCampaign extends 
AbstractPersistableCustom {
     }
 
     private void validateReactivationDate(final List<ApiParameterError> 
dataValidationErrors) {
-        if (getActivationLocalDate() != null && 
isDateInTheFuture(getActivationLocalDate())) {
+        if (getApprovedOnDate() != null && 
isDateInTheFuture(getApprovedOnDate())) {
 
             final String defaultUserMessage = "Activation date cannot be in 
the future.";
             final ApiParameterError error = 
ApiParameterError.parameterError("error.msg.campaign.activationDate.in.the.future",
-                    defaultUserMessage, 
EmailCampaignValidator.activationDateParamName, getActivationLocalDate());
+                    defaultUserMessage, 
EmailCampaignValidator.activationDateParamName, getApprovedOnDate());
 
             dataValidationErrors.add(error);
         }
-        if (getActivationLocalDate() != null && getSubmittedOnDate() != null 
&& getSubmittedOnDate().isAfter(getActivationLocalDate())) {
+        if (getApprovedOnDate() != null && getSubmittedOnDate() != null && 
getSubmittedOnDate().isAfter(getApprovedOnDate())) {
 
             final String defaultUserMessage = "submitted date cannot be after 
the activation date";
             final ApiParameterError error = 
ApiParameterError.parameterError("error.msg.campaign.submittedOnDate.after.activation.date",
@@ -442,100 +420,8 @@ public class EmailCampaign extends 
AbstractPersistableCustom {
         }
     }
 
-    public LocalDate getSubmittedOnDate() {
-        return this.submittedOnDate;
-
-    }
-
-    public LocalDate getClosureDate() {
-        return this.closureDate;
-    }
-
-    public LocalDate getActivationLocalDate() {
-        return this.approvedOnDate;
-    }
-
     private boolean isDateInTheFuture(final LocalDate localDate) {
         return localDate.isAfter(DateUtils.getBusinessLocalDate());
     }
 
-    public Report getBusinessRuleId() {
-        return this.businessRuleId;
-    }
-
-    public String getCampaignName() {
-        return this.campaignName;
-    }
-
-    public String getEmailSubject() {
-        return this.emailSubject;
-    }
-
-    public String getEmailMessage() {
-        return this.emailMessage;
-    }
-
-    public String getParamValue() {
-        return this.paramValue;
-    }
-
-    public String getRecurrence() {
-        return this.recurrence;
-    }
-
-    public LocalDateTime getRecurrenceStartDateTime() {
-        return this.recurrenceStartDate;
-    }
-
-    public void setLastTriggerDate(LocalDateTime lastTriggerDate) {
-        this.lastTriggerDate = lastTriggerDate;
-    }
-
-    public void setNextTriggerDate(LocalDateTime nextTriggerDate) {
-        this.nextTriggerDate = nextTriggerDate;
-    }
-
-    public LocalDateTime getNextTriggerDate() {
-        return this.nextTriggerDate;
-    }
-
-    public LocalDateTime getNextTriggerDateInDate() {
-        return this.nextTriggerDate;
-    }
-
-    public LocalDateTime getLastTriggerDate() {
-        return this.lastTriggerDate;
-    }
-
-    public void updateIsVisible(boolean isVisible) {
-        this.isVisible = isVisible;
-    }
-
-    public void updateBusinessRuleId(final Report report) {
-        this.businessRuleId = report;
-    }
-
-    public String getEmailAttachmentFileFormat() {
-        return this.emailAttachmentFileFormat;
-    }
-
-    public Report getStretchyReport() {
-        return this.stretchyReport;
-    }
-
-    public String getStretchyReportParamMap() {
-        return this.stretchyReportParamMap;
-    }
-
-    public void setStretchyReportParamMap(String stretchyReportParamMap) {
-        this.stretchyReportParamMap = stretchyReportParamMap;
-    }
-
-    public AppUser getApprovedBy() {
-        return this.approvedBy;
-    }
-
-    public AppUser getClosedBy() {
-        return this.closedBy;
-    }
 }
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/domain/EmailConfiguration.java
 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/domain/EmailConfiguration.java
index 8153b2371..329ab3920 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/domain/EmailConfiguration.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/domain/EmailConfiguration.java
@@ -21,10 +21,18 @@ package 
org.apache.fineract.infrastructure.campaigns.email.domain;
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.Table;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import lombok.experimental.Accessors;
 import 
org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
 
 @Entity
 @Table(name = "scheduled_email_configuration")
+@Getter
+@Setter
+@NoArgsConstructor
+@Accessors(chain = true)
 public class EmailConfiguration extends AbstractPersistableCustom {
 
     @Column(name = "name", nullable = false)
@@ -32,29 +40,4 @@ public class EmailConfiguration extends 
AbstractPersistableCustom {
 
     @Column(name = "value", nullable = false)
     private String value;
-
-    /**
-     * EmailConfiguration constructor
-     **/
-    protected EmailConfiguration() {}
-
-    /**
-     * EmailConfiguration constructor
-     **/
-    public EmailConfiguration(String name, String value) {
-        this.name = name;
-        this.value = value;
-    }
-
-    public void setValue(String value) {
-        this.value = value;
-    }
-
-    public String getName() {
-        return this.name;
-    }
-
-    public String getValue() {
-        return this.value;
-    }
 }
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/domain/EmailMessage.java
 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/domain/EmailMessage.java
index cc732c4a7..76aa732ff 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/domain/EmailMessage.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/domain/EmailMessage.java
@@ -26,17 +26,24 @@ import javax.persistence.Entity;
 import javax.persistence.JoinColumn;
 import javax.persistence.ManyToOne;
 import javax.persistence.Table;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import lombok.experimental.Accessors;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.fineract.infrastructure.campaigns.email.EmailApiConstants;
 import org.apache.fineract.infrastructure.core.api.JsonCommand;
 import 
org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom;
-import org.apache.fineract.infrastructure.core.service.DateUtils;
 import org.apache.fineract.organisation.staff.domain.Staff;
 import org.apache.fineract.portfolio.client.domain.Client;
 import org.apache.fineract.portfolio.group.domain.Group;
 
 @Entity
 @Table(name = "scheduled_email_messages_outbound")
+@Getter
+@Setter
+@NoArgsConstructor
+@Accessors(chain = true)
 public class EmailMessage extends AbstractPersistableCustom {
 
     @ManyToOne
@@ -78,33 +85,18 @@ public class EmailMessage extends AbstractPersistableCustom 
{
 
     public static EmailMessage pendingEmail(final Group group, final Client 
client, final Staff staff, final EmailCampaign emailCampaign,
             final String emailSubject, final String message, final String 
emailAddress, final String campaignName) {
-        return new EmailMessage(group, client, staff, emailCampaign, 
EmailMessageStatusType.PENDING, emailSubject, message, emailAddress,
-                campaignName);
+        return new 
EmailMessage().setGroup(group).setClient(client).setStaff(staff).setEmailCampaign(emailCampaign)
+                
.setStatusType(emailCampaign.getStatus()).setEmailSubject(emailSubject).setMessage(message).setEmailAddress(emailAddress)
+                .setCampaignName(campaignName);
     }
 
     public static EmailMessage instance(final Group group, final Client 
client, final Staff staff, final EmailCampaign emailCampaign,
             final EmailMessageStatusType statusType, final String 
emailSubject, final String message, final String sourceAddress,
             final String emailAddress, final String campaignName) {
-        return new EmailMessage(group, client, staff, emailCampaign, 
statusType, emailSubject, message, emailAddress, campaignName);
-    }
-
-    protected EmailMessage() {
-        //
-    }
+        return new 
EmailMessage().setGroup(group).setClient(client).setStaff(staff).setEmailCampaign(emailCampaign)
+                
.setEmailSubject(emailSubject).setMessage(message).setEmailAddress(emailAddress).setCampaignName(campaignName)
+                .setStatusType(statusType.getValue());
 
-    private EmailMessage(final Group group, final Client client, final Staff 
staff, final EmailCampaign emailCampaign,
-            final EmailMessageStatusType statusType, final String 
emailSubject, final String message, final String emailAddress,
-            final String campaignName) {
-        this.group = group;
-        this.client = client;
-        this.staff = staff;
-        this.emailCampaign = emailCampaign;
-        this.statusType = statusType.getValue();
-        this.emailAddress = emailAddress;
-        this.emailSubject = emailSubject;
-        this.message = message;
-        this.campaignName = campaignName;
-        this.submittedOnDate = DateUtils.getBusinessLocalDate();
     }
 
     public Map<String, Object> update(final JsonCommand command) {
@@ -120,54 +112,6 @@ public class EmailMessage extends 
AbstractPersistableCustom {
         return actualChanges;
     }
 
-    public Group getGroup() {
-        return group;
-    }
-
-    public Client getClient() {
-        return client;
-    }
-
-    public Staff getStaff() {
-        return staff;
-    }
-
-    public Integer getStatusType() {
-        return statusType;
-    }
-
-    public String getEmailAddress() {
-        return this.emailAddress;
-    }
-
-    public String getEmailSubject() {
-        return emailSubject;
-    }
-
-    public String getMessage() {
-        return message;
-    }
-
-    public void setStatusType(final Integer statusType) {
-        this.statusType = statusType;
-    }
-
-    public String getCampaignName() {
-        return this.campaignName;
-    }
-
-    public LocalDate getSubmittedOnDate() {
-        return this.submittedOnDate;
-    }
-
-    public EmailCampaign getEmailCampaign() {
-        return this.emailCampaign;
-    }
-
-    public void updateErrorMessage(final String errorMessage) {
-        this.errorMessage = errorMessage;
-    }
-
     public boolean isPending() {
         return EmailMessageStatusType.fromInt(this.statusType).isPending();
     }
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailCampaignReadPlatformServiceImpl.java
 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailCampaignReadPlatformServiceImpl.java
index 95976a2ed..0ef6b2bd0 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailCampaignReadPlatformServiceImpl.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailCampaignReadPlatformServiceImpl.java
@@ -150,8 +150,9 @@ public class EmailCampaignReadPlatformServiceImpl 
implements EmailCampaignReadPl
             final String activatedByUsername = 
rs.getString("activatedByUsername");
             final String recurrence = rs.getString("recurrence");
             final ZonedDateTime recurrenceStartDate = 
JdbcSupport.getDateTime(rs, "recurrenceStartDate");
-            final EmailCampaignTimeLine emailCampaignTimeLine = new 
EmailCampaignTimeLine(submittedOnDate, submittedByUsername,
-                    activatedOnDate, activatedByUsername, closedOnDate, 
closedByUsername);
+            final EmailCampaignTimeLine emailCampaignTimeLine = new 
EmailCampaignTimeLine().setSubmittedOnDate(submittedOnDate)
+                    
.setActivatedByUsername(submittedByUsername).setActivatedOnDate(activatedOnDate)
+                    
.setActivatedByUsername(activatedByUsername).setClosedOnDate(closedOnDate).setClosedByUsername(closedByUsername);
 
             return EmailCampaignData.instance(id, campaignName, campaignType, 
businessRuleId, paramValue, status, emailSubject,
                     emailMessage, emailAttachmentFileFormatString, reportId, 
stretchyReportParamMap, nextTriggerDate, lastTriggerDate,
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailCampaignWritePlatformCommandHandlerImpl.java
 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailCampaignWritePlatformCommandHandlerImpl.java
index 81be30c16..e27421300 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailCampaignWritePlatformCommandHandlerImpl.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailCampaignWritePlatformCommandHandlerImpl.java
@@ -151,7 +151,7 @@ public class EmailCampaignWritePlatformCommandHandlerImpl 
implements EmailCampai
             if (changes.containsKey(EmailCampaignValidator.businessRuleId)) {
                 final Long newValue = 
command.longValueOfParameterNamed(EmailCampaignValidator.businessRuleId);
                 final Report reportId = 
this.reportRepository.findById(newValue).orElseThrow(() -> new 
ReportNotFoundException(newValue));
-                emailCampaign.updateBusinessRuleId(reportId);
+                emailCampaign.setBusinessRuleId(reportId);
 
             }
 
@@ -294,11 +294,11 @@ public class EmailCampaignWritePlatformCommandHandlerImpl 
implements EmailCampai
                  * date us next trigger date when activating
                  */
                 LocalDateTime nextTriggerDateWithTime;
-                if 
(emailCampaign.getRecurrenceStartDateTime().isBefore(tenantDateTime())) {
+                if 
(emailCampaign.getRecurrenceStartDate().isBefore(tenantDateTime())) {
                     nextTriggerDateWithTime = 
CalendarUtils.getNextRecurringDate(emailCampaign.getRecurrence(),
-                            emailCampaign.getRecurrenceStartDateTime(), 
DateUtils.getLocalDateTimeOfTenant());
+                            emailCampaign.getRecurrenceStartDate(), 
DateUtils.getLocalDateTimeOfTenant());
                 } else {
-                    nextTriggerDateWithTime = 
emailCampaign.getRecurrenceStartDateTime();
+                    nextTriggerDateWithTime = 
emailCampaign.getRecurrenceStartDate();
                 }
 
                 emailCampaign.setNextTriggerDate(nextTriggerDateWithTime);
@@ -403,7 +403,8 @@ public class EmailCampaignWritePlatformCommandHandlerImpl 
implements EmailCampai
                     String textMessage = 
this.compileEmailTemplate(textMessageTemplate, "EmailCampaign", entry);
                     if (!textMessage.isEmpty()) {
                         final Integer totalMessage = runReportObject.size();
-                        campaignMessage = new 
PreviewCampaignMessage(textMessage, totalMessage);
+                        campaignMessage = new 
PreviewCampaignMessage().setCampaignMessage(textMessage)
+                                .setTotalNumberOfMessages(totalMessage);
                         break;
                     }
                 }
@@ -438,14 +439,14 @@ public class EmailCampaignWritePlatformCommandHandlerImpl 
implements EmailCampai
              * next trigger date when activating
              */
             LocalDateTime nextTriggerDate = null;
-            if 
(emailCampaign.getRecurrenceStartDateTime().isBefore(tenantDateTime())) {
-                nextTriggerDate = 
CalendarUtils.getNextRecurringDate(emailCampaign.getRecurrence(),
-                        emailCampaign.getRecurrenceStartDateTime(), 
DateUtils.getLocalDateTimeOfTenant());
+            if 
(emailCampaign.getRecurrenceStartDate().isBefore(tenantDateTime())) {
+                nextTriggerDate = 
CalendarUtils.getNextRecurringDate(emailCampaign.getRecurrence(), 
emailCampaign.getRecurrenceStartDate(),
+                        DateUtils.getLocalDateTimeOfTenant());
             } else {
-                nextTriggerDate = emailCampaign.getRecurrenceStartDateTime();
+                nextTriggerDate = emailCampaign.getRecurrenceStartDate();
             }
             // to get time of tenant
-            final LocalDateTime getTime = 
emailCampaign.getRecurrenceStartDateTime();
+            final LocalDateTime getTime = 
emailCampaign.getRecurrenceStartDate();
 
             final String dateString = nextTriggerDate.toString() + " " + 
getTime.getHour() + ":" + getTime.getMinute() + ":"
                     + getTime.getSecond();
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailConfigurationReadPlatformServiceImpl.java
 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailConfigurationReadPlatformServiceImpl.java
index 1fba60460..2c274607d 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailConfigurationReadPlatformServiceImpl.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailConfigurationReadPlatformServiceImpl.java
@@ -21,6 +21,7 @@ package 
org.apache.fineract.infrastructure.campaigns.email.service;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.util.Collection;
+import lombok.RequiredArgsConstructor;
 import 
org.apache.fineract.infrastructure.campaigns.email.data.EmailConfigurationData;
 import 
org.apache.fineract.infrastructure.campaigns.email.exception.EmailConfigurationNotFoundException;
 import org.apache.fineract.infrastructure.core.domain.JdbcSupport;
@@ -31,6 +32,7 @@ import org.springframework.jdbc.core.RowMapper;
 import org.springframework.stereotype.Service;
 
 @Service
+@RequiredArgsConstructor
 public class EmailConfigurationReadPlatformServiceImpl implements 
EmailConfigurationReadPlatformService {
 
     private final JdbcTemplate jdbcTemplate;
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailConfigurationWritePlatformServiceImpl.java
 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailConfigurationWritePlatformServiceImpl.java
index 7720d8b7d..21f7a6cf5 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailConfigurationWritePlatformServiceImpl.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailConfigurationWritePlatformServiceImpl.java
@@ -21,6 +21,7 @@ package 
org.apache.fineract.infrastructure.campaigns.email.service;
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.Map;
+import lombok.RequiredArgsConstructor;
 import 
org.apache.fineract.infrastructure.campaigns.email.data.EmailConfigurationValidator;
 import 
org.apache.fineract.infrastructure.campaigns.email.domain.EmailConfiguration;
 import 
org.apache.fineract.infrastructure.campaigns.email.domain.EmailConfigurationRepository;
@@ -30,24 +31,16 @@ import 
org.apache.fineract.infrastructure.core.data.CommandProcessingResult;
 import 
org.apache.fineract.infrastructure.core.data.CommandProcessingResultBuilder;
 import 
org.apache.fineract.infrastructure.security.service.PlatformSecurityContext;
 import org.apache.fineract.useradministration.domain.AppUser;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 @Service
+@RequiredArgsConstructor
 public class EmailConfigurationWritePlatformServiceImpl implements 
EmailConfigurationWritePlatformService {
 
     private final PlatformSecurityContext context;
     private final EmailConfigurationRepository repository;
     private final EmailConfigurationValidator emailConfigurationValidator;
 
-    @Autowired
-    public EmailConfigurationWritePlatformServiceImpl(final 
PlatformSecurityContext context, final EmailConfigurationRepository repository,
-            final EmailConfigurationValidator emailConfigurationValidator) {
-        this.context = context;
-        this.repository = repository;
-        this.emailConfigurationValidator = emailConfigurationValidator;
-    }
-
     @Override
     public CommandProcessingResult update(final JsonCommand command) {
 
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailMessageJobEmailServiceImpl.java
 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailMessageJobEmailServiceImpl.java
index 363e89b4f..c1fbd1a68 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailMessageJobEmailServiceImpl.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailMessageJobEmailServiceImpl.java
@@ -23,27 +23,23 @@ import java.util.List;
 import java.util.Properties;
 import javax.mail.MessagingException;
 import javax.mail.internet.MimeMessage;
+import lombok.RequiredArgsConstructor;
 import 
org.apache.fineract.infrastructure.campaigns.email.data.EmailMessageWithAttachmentData;
 import 
org.apache.fineract.infrastructure.configuration.data.SMTPCredentialsData;
 import 
org.apache.fineract.infrastructure.configuration.service.ExternalServicesPropertiesReadPlatformService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.mail.javamail.JavaMailSenderImpl;
 import org.springframework.mail.javamail.MimeMessageHelper;
 import org.springframework.stereotype.Service;
 
 @Service
+@RequiredArgsConstructor
 public final class EmailMessageJobEmailServiceImpl implements 
EmailMessageJobEmailService {
 
     private static final Logger LOG = 
LoggerFactory.getLogger(EmailMessageJobEmailServiceImpl.class);
     private final ExternalServicesPropertiesReadPlatformService 
externalServicesReadPlatformService;
 
-    @Autowired
-    public 
EmailMessageJobEmailServiceImpl(ExternalServicesPropertiesReadPlatformService 
externalServicesReadPlatformService) {
-        this.externalServicesReadPlatformService = 
externalServicesReadPlatformService;
-    }
-
     @Override
     public void sendEmailWithAttachment(EmailMessageWithAttachmentData 
emailMessageWithAttachmentData) {
         final SMTPCredentialsData smtpCredentialsData = 
this.externalServicesReadPlatformService.getSMTPCredentials();
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailReadPlatformServiceImpl.java
 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailReadPlatformServiceImpl.java
index f8c51c93a..f17fdf8ce 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailReadPlatformServiceImpl.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailReadPlatformServiceImpl.java
@@ -23,6 +23,7 @@ import java.sql.SQLException;
 import java.time.LocalDate;
 import java.util.Collection;
 import java.util.List;
+import lombok.RequiredArgsConstructor;
 import org.apache.fineract.infrastructure.campaigns.email.data.EmailData;
 import 
org.apache.fineract.infrastructure.campaigns.email.domain.EmailMessageEnumerations;
 import 
org.apache.fineract.infrastructure.campaigns.email.domain.EmailMessageStatusType;
@@ -34,13 +35,13 @@ import org.apache.fineract.infrastructure.core.service.Page;
 import org.apache.fineract.infrastructure.core.service.PaginationHelper;
 import org.apache.fineract.infrastructure.core.service.SearchParameters;
 import 
org.apache.fineract.infrastructure.core.service.database.DatabaseSpecificSQLGenerator;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.dao.EmptyResultDataAccessException;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.jdbc.core.RowMapper;
 import org.springframework.stereotype.Service;
 
 @Service
+@RequiredArgsConstructor
 public class EmailReadPlatformServiceImpl implements EmailReadPlatformService {
 
     private final JdbcTemplate jdbcTemplate;
@@ -48,14 +49,6 @@ public class EmailReadPlatformServiceImpl implements 
EmailReadPlatformService {
     private final EmailMapper emailRowMapper = new EmailMapper();
     private final PaginationHelper paginationHelper;
 
-    @Autowired
-    public EmailReadPlatformServiceImpl(final JdbcTemplate jdbcTemplate, 
DatabaseSpecificSQLGenerator sqlGenerator,
-            PaginationHelper paginationHelper) {
-        this.jdbcTemplate = jdbcTemplate;
-        this.sqlGenerator = sqlGenerator;
-        this.paginationHelper = paginationHelper;
-    }
-
     private static final class EmailMapper implements RowMapper<EmailData> {
 
         final String schema;
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailWritePlatformServiceJpaRepositoryImpl.java
 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailWritePlatformServiceJpaRepositoryImpl.java
index 0c412d718..181f36a30 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailWritePlatformServiceJpaRepositoryImpl.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailWritePlatformServiceJpaRepositoryImpl.java
@@ -19,6 +19,7 @@
 package org.apache.fineract.infrastructure.campaigns.email.service;
 
 import java.util.Map;
+import lombok.RequiredArgsConstructor;
 import 
org.apache.fineract.infrastructure.campaigns.email.data.EmailDataValidator;
 import org.apache.fineract.infrastructure.campaigns.email.domain.EmailMessage;
 import 
org.apache.fineract.infrastructure.campaigns.email.domain.EmailMessageAssembler;
@@ -29,7 +30,6 @@ import 
org.apache.fineract.infrastructure.core.data.CommandProcessingResultBuild
 import 
org.apache.fineract.infrastructure.core.exception.PlatformDataIntegrityException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.dao.DataIntegrityViolationException;
 import org.springframework.dao.NonTransientDataAccessException;
 import org.springframework.orm.jpa.JpaSystemException;
@@ -37,6 +37,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 @Service
+@RequiredArgsConstructor
 public class EmailWritePlatformServiceJpaRepositoryImpl implements 
EmailWritePlatformService {
 
     private static final Logger LOG = 
LoggerFactory.getLogger(EmailWritePlatformServiceJpaRepositoryImpl.class);
@@ -45,14 +46,6 @@ public class EmailWritePlatformServiceJpaRepositoryImpl 
implements EmailWritePla
     private final EmailMessageRepository repository;
     private final EmailDataValidator validator;
 
-    @Autowired
-    public EmailWritePlatformServiceJpaRepositoryImpl(final 
EmailMessageAssembler assembler, final EmailMessageRepository repository,
-            final EmailDataValidator validator) {
-        this.assembler = assembler;
-        this.repository = repository;
-        this.validator = validator;
-    }
-
     @Transactional
     @Override
     public CommandProcessingResult create(final JsonCommand command) {
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/jobs/executeemail/ExecuteEmailTasklet.java
 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/jobs/executeemail/ExecuteEmailTasklet.java
index be0087f07..1b5b4e92a 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/jobs/executeemail/ExecuteEmailTasklet.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/jobs/executeemail/ExecuteEmailTasklet.java
@@ -150,7 +150,7 @@ public class ExecuteEmailTasklet implements Tasklet {
                         
emailMessage.setStatusType(EmailMessageStatusType.SENT.getValue());
                         emailMessageRepository.save(emailMessage);
                     } catch (Exception e) {
-                        emailMessage.updateErrorMessage(e.getMessage());
+                        emailMessage.setErrorMessage(e.getMessage());
                         
emailMessage.setStatusType(EmailMessageStatusType.FAILED.getValue());
                         emailMessageRepository.save(emailMessage);
                     }
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/jobs/updateemailoutboundwithcampaignmessage/UpdateEmailOutboundWithCampaignMessageTasklet.java
 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/jobs/updateemailoutboundwithcampaignmessage/UpdateEmailOutboundWithCampaignMessageTasklet.java
index d5df4199e..8d81b847b 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/jobs/updateemailoutboundwithcampaignmessage/UpdateEmailOutboundWithCampaignMessageTasklet.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/jobs/updateemailoutboundwithcampaignmessage/UpdateEmailOutboundWithCampaignMessageTasklet.java
@@ -75,7 +75,7 @@ public class UpdateEmailOutboundWithCampaignMessageTasklet 
implements Tasklet {
                 log.debug("tenant time {} trigger time {}", tenantDateNow, 
nextTriggerDate);
                 if (nextTriggerDate.isBefore(tenantDateNow)) {
                     
insertDirectCampaignIntoEmailOutboundTable(emailCampaignData.getParamValue(), 
emailCampaignData.getEmailSubject(),
-                            emailCampaignData.getMessage(), 
emailCampaignData.getCampaignName(), emailCampaignData.getId());
+                            emailCampaignData.getEmailMessage(), 
emailCampaignData.getCampaignName(), emailCampaignData.getId());
                     updateTriggerDates(emailCampaignData.getId());
                 }
             }
diff --git 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/ReportData.java
 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/ReportData.java
index eafb5fa8d..c512c206b 100644
--- 
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/ReportData.java
+++ 
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/ReportData.java
@@ -22,7 +22,7 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
 
-public final class ReportData {
+public class ReportData {
 
     @SuppressWarnings("unused")
     private final Long id;

Reply via email to