diff --git a/pom.xml b/pom.xml index 4a4f3e5..76dd72e 100644 --- a/pom.xml +++ b/pom.xml @@ -26,6 +26,10 @@ 2.8.5 1.7.26 1.4 + 1.18.8 + 2.1.3.RELEASE + 2.2 + 2.0.1.Final @@ -50,22 +54,22 @@ org.projectlombok lombok - 1.18.8 + ${lombok.ver} org.springframework.data spring-data-jpa - 2.1.3.RELEASE + ${spring.data.jpa.ver} javax.persistence javax.persistence-api - 2.2 + ${javax.persistence.api.ver} javax.validation validation-api - 2.0.1.Final + ${validation.api.ver} diff --git a/src/main/java/org/sadtech/social/core/domain/BasicEntity.java b/src/main/java/org/sadtech/social/core/domain/BasicEntity.java new file mode 100644 index 0000000..b9e9955 --- /dev/null +++ b/src/main/java/org/sadtech/social/core/domain/BasicEntity.java @@ -0,0 +1,24 @@ +package org.sadtech.social.core.domain; + +import lombok.Data; +import lombok.ToString; + +import javax.persistence.GeneratedValue; +import javax.persistence.Id; +import javax.persistence.MappedSuperclass; + +/** + * Основная сущность для сокрытия id у других сущностей. + * + * @author upagge [28/07/2019] + */ +@Data +@ToString +@MappedSuperclass +public class BasicEntity { + + @Id + @GeneratedValue + protected Integer id; + +} diff --git a/src/main/java/org/sadtech/social/core/domain/content/Mail.java b/src/main/java/org/sadtech/social/core/domain/content/Mail.java index b69d972..3ac675f 100644 --- a/src/main/java/org/sadtech/social/core/domain/content/Mail.java +++ b/src/main/java/org/sadtech/social/core/domain/content/Mail.java @@ -2,6 +2,7 @@ package org.sadtech.social.core.domain.content; import lombok.Data; import lombok.EqualsAndHashCode; +import lombok.ToString; import org.sadtech.social.core.domain.content.attachment.Attachment; import org.sadtech.social.core.utils.Description; @@ -21,6 +22,7 @@ import java.util.List; @Entity @Table(name = "mail") @EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) public class Mail extends Message { @OneToMany(fetch = FetchType.EAGER) diff --git a/src/main/java/org/sadtech/social/core/domain/content/Message.java b/src/main/java/org/sadtech/social/core/domain/content/Message.java index 5ec7b98..a1dc7fb 100644 --- a/src/main/java/org/sadtech/social/core/domain/content/Message.java +++ b/src/main/java/org/sadtech/social/core/domain/content/Message.java @@ -1,13 +1,13 @@ package org.sadtech.social.core.domain.content; import lombok.Data; +import lombok.EqualsAndHashCode; +import org.sadtech.social.core.domain.BasicEntity; import org.sadtech.social.core.utils.Description; import javax.persistence.Column; import javax.persistence.EnumType; import javax.persistence.Enumerated; -import javax.persistence.GeneratedValue; -import javax.persistence.Id; import javax.persistence.MappedSuperclass; import javax.validation.constraints.NotNull; import java.time.LocalDateTime; @@ -17,14 +17,11 @@ import java.time.LocalDateTime; * * @author upagge [08/07/2019] */ -@Data -@MappedSuperclass -public abstract class Message { - @Id - @GeneratedValue - @Description("Идентификатор сообщения") - private Integer id; +@Data +@EqualsAndHashCode(callSuper = true) +@MappedSuperclass +public abstract class Message extends BasicEntity { @Column(name = "type") @Enumerated(value = EnumType.STRING) diff --git a/src/main/java/org/sadtech/social/core/domain/jpa/JsonObjectId.java b/src/main/java/org/sadtech/social/core/domain/jpa/JsonObjectId.java new file mode 100644 index 0000000..d76186f --- /dev/null +++ b/src/main/java/org/sadtech/social/core/domain/jpa/JsonObjectId.java @@ -0,0 +1,30 @@ +package org.sadtech.social.core.domain.jpa; + +import com.google.gson.JsonObject; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NonNull; +import lombok.RequiredArgsConstructor; +import org.sadtech.social.core.domain.BasicEntity; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Table; + +/** + * TODO: Добавить описание класса. + * + * @author upagge [28/07/2019] + */ +@Data +@RequiredArgsConstructor +@EqualsAndHashCode(callSuper = true) +@Entity +@Table(name = "event") +public class JsonObjectId extends BasicEntity { + + @Column(name = "json") + @NonNull + private JsonObject jsonObject; + +} diff --git a/src/main/java/org/sadtech/social/core/repository/impl/jpa/AccountRepositoryJpaImpl.java b/src/main/java/org/sadtech/social/core/repository/impl/jpa/AccountRepositoryJpaImpl.java index 1fa2dcc..e1fb171 100644 --- a/src/main/java/org/sadtech/social/core/repository/impl/jpa/AccountRepositoryJpaImpl.java +++ b/src/main/java/org/sadtech/social/core/repository/impl/jpa/AccountRepositoryJpaImpl.java @@ -1,24 +1,20 @@ package org.sadtech.social.core.repository.impl.jpa; +import lombok.RequiredArgsConstructor; import org.sadtech.social.core.domain.money.Account; import org.sadtech.social.core.repository.AccountRepository; import org.sadtech.social.core.repository.jpa.AccountRepositoryJpa; -import org.springframework.beans.factory.annotation.Autowired; /** * TODO: Добавить описание класса. * * @author upagge [27/07/2019] */ +@RequiredArgsConstructor public class AccountRepositoryJpaImpl implements AccountRepository { private final AccountRepositoryJpa accountRepositoryJpa; - @Autowired - public AccountRepositoryJpaImpl(AccountRepositoryJpa accountRepositoryJpa) { - this.accountRepositoryJpa = accountRepositoryJpa; - } - @Override public Integer add(Account account) { return accountRepositoryJpa.saveAndFlush(account).getId(); diff --git a/src/main/java/org/sadtech/social/core/repository/impl/jpa/EventRepositoryJpaImpl.java b/src/main/java/org/sadtech/social/core/repository/impl/jpa/EventRepositoryJpaImpl.java new file mode 100644 index 0000000..c7bea8d --- /dev/null +++ b/src/main/java/org/sadtech/social/core/repository/impl/jpa/EventRepositoryJpaImpl.java @@ -0,0 +1,42 @@ +package org.sadtech.social.core.repository.impl.jpa; + +import com.google.gson.JsonObject; +import org.sadtech.social.core.domain.jpa.JsonObjectId; +import org.sadtech.social.core.repository.EventRepository; +import org.sadtech.social.core.repository.jpa.EventRepositoryJpa; + +import java.util.List; +import java.util.Queue; +import java.util.concurrent.ConcurrentLinkedQueue; +import java.util.stream.Collectors; + +/** + * TODO: Добавить описание класса. + * + * @author upagge [28/07/2019] + */ +public class EventRepositoryJpaImpl implements EventRepository { + + private final EventRepositoryJpa eventRepositoryJpa; + + public EventRepositoryJpaImpl(EventRepositoryJpa eventRepositoryJpa) { + this.eventRepositoryJpa = eventRepositoryJpa; + } + + @Override + public void add(JsonObject dataObject) { + eventRepositoryJpa.saveAndFlush(new JsonObjectId(dataObject)); + } + + @Override + public void cleanAll() { + eventRepositoryJpa.deleteAll(); + } + + @Override + public Queue getEventQueue() { + List allEvent = eventRepositoryJpa.findAll(); + eventRepositoryJpa.deleteAll(allEvent); + return allEvent.stream().map(JsonObjectId::getJsonObject).collect(Collectors.toCollection(ConcurrentLinkedQueue::new)); + } +} diff --git a/src/main/java/org/sadtech/social/core/repository/impl/jpa/MailRepositoryJpaImpl.java b/src/main/java/org/sadtech/social/core/repository/impl/jpa/MailRepositoryJpaImpl.java index 894600d..3d96ca2 100644 --- a/src/main/java/org/sadtech/social/core/repository/impl/jpa/MailRepositoryJpaImpl.java +++ b/src/main/java/org/sadtech/social/core/repository/impl/jpa/MailRepositoryJpaImpl.java @@ -1,9 +1,9 @@ package org.sadtech.social.core.repository.impl.jpa; +import lombok.RequiredArgsConstructor; import org.sadtech.social.core.domain.content.Mail; import org.sadtech.social.core.repository.ContentRepository; import org.sadtech.social.core.repository.jpa.MailRepositoryJpa; -import org.springframework.beans.factory.annotation.Autowired; import java.time.LocalDateTime; import java.util.List; @@ -13,15 +13,11 @@ import java.util.List; * * @author upagge [25/07/2019] */ +@RequiredArgsConstructor public class MailRepositoryJpaImpl implements ContentRepository { private final MailRepositoryJpa mailRepositoryJpa; - @Autowired - public MailRepositoryJpaImpl(MailRepositoryJpa mailRepositoryJpa) { - this.mailRepositoryJpa = mailRepositoryJpa; - } - @Override public Integer add(Mail content) { return mailRepositoryJpa.saveAndFlush(content).getId(); diff --git a/src/main/java/org/sadtech/social/core/repository/jpa/EventRepositoryJpa.java b/src/main/java/org/sadtech/social/core/repository/jpa/EventRepositoryJpa.java new file mode 100644 index 0000000..bb46f75 --- /dev/null +++ b/src/main/java/org/sadtech/social/core/repository/jpa/EventRepositoryJpa.java @@ -0,0 +1,15 @@ +package org.sadtech.social.core.repository.jpa; + +import org.sadtech.social.core.domain.jpa.JsonObjectId; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +/** + * TODO: Добавить описание интерфейса. + * + * @author upagge [28/07/2019] + */ +@Repository +public interface EventRepositoryJpa extends JpaRepository { + +} diff --git a/src/main/java/org/sadtech/social/core/service/impl/AccountServiceImpl.java b/src/main/java/org/sadtech/social/core/service/impl/AccountServiceImpl.java index 5617608..29797d3 100644 --- a/src/main/java/org/sadtech/social/core/service/impl/AccountServiceImpl.java +++ b/src/main/java/org/sadtech/social/core/service/impl/AccountServiceImpl.java @@ -1,19 +1,17 @@ package org.sadtech.social.core.service.impl; +import lombok.RequiredArgsConstructor; import org.sadtech.social.core.domain.money.Account; import org.sadtech.social.core.domain.money.AccountStatus; import org.sadtech.social.core.exception.PaymentException; import org.sadtech.social.core.repository.AccountRepository; import org.sadtech.social.core.service.AccountService; +@RequiredArgsConstructor public class AccountServiceImpl implements AccountService { private final AccountRepository accountRepository; - public AccountServiceImpl(AccountRepository accountRepository) { - this.accountRepository = accountRepository; - } - @Override public Integer add(Account account) { account.setAccountStatus(AccountStatus.EXPOSED); diff --git a/src/main/java/org/sadtech/social/core/service/impl/BoardCommentServiceImpl.java b/src/main/java/org/sadtech/social/core/service/impl/BoardCommentServiceImpl.java index 7303730..196d0b9 100644 --- a/src/main/java/org/sadtech/social/core/service/impl/BoardCommentServiceImpl.java +++ b/src/main/java/org/sadtech/social/core/service/impl/BoardCommentServiceImpl.java @@ -1,10 +1,10 @@ package org.sadtech.social.core.service.impl; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.sadtech.social.core.domain.content.BoardComment; import org.sadtech.social.core.repository.ContentRepository; import org.sadtech.social.core.service.BoardCommentService; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import java.time.LocalDateTime; import java.util.ArrayList; @@ -12,16 +12,12 @@ import java.util.HashSet; import java.util.List; import java.util.Set; +@Slf4j +@RequiredArgsConstructor public class BoardCommentServiceImpl implements BoardCommentService { - private static final Logger log = LoggerFactory.getLogger(BoardCommentServiceImpl.class); - private final ContentRepository commentRepository; - public BoardCommentServiceImpl(ContentRepository commentRepository) { - this.commentRepository = commentRepository; - } - @Override public void add(BoardComment event) { commentRepository.add(event); diff --git a/src/main/java/org/sadtech/social/core/service/impl/MailServiceImpl.java b/src/main/java/org/sadtech/social/core/service/impl/MailServiceImpl.java index e94ad2e..a390189 100644 --- a/src/main/java/org/sadtech/social/core/service/impl/MailServiceImpl.java +++ b/src/main/java/org/sadtech/social/core/service/impl/MailServiceImpl.java @@ -1,10 +1,10 @@ package org.sadtech.social.core.service.impl; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.sadtech.social.core.domain.content.Mail; import org.sadtech.social.core.repository.ContentRepository; import org.sadtech.social.core.service.MailService; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import java.time.LocalDateTime; import java.util.ArrayList; @@ -12,16 +12,12 @@ import java.util.HashSet; import java.util.List; import java.util.Set; +@Slf4j +@RequiredArgsConstructor public class MailServiceImpl implements MailService { - private static final Logger log = LoggerFactory.getLogger(MailServiceImpl.class); - private final ContentRepository mailRepository; - public MailServiceImpl(ContentRepository mailRepository) { - this.mailRepository = mailRepository; - } - @Override public void add(Mail mail) { mailRepository.add(mail); diff --git a/src/main/java/org/sadtech/social/core/service/impl/RawEventServiceImpl.java b/src/main/java/org/sadtech/social/core/service/impl/RawEventServiceImpl.java index f1fc726..44ad42d 100644 --- a/src/main/java/org/sadtech/social/core/service/impl/RawEventServiceImpl.java +++ b/src/main/java/org/sadtech/social/core/service/impl/RawEventServiceImpl.java @@ -1,23 +1,19 @@ package org.sadtech.social.core.service.impl; import com.google.gson.JsonObject; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.sadtech.social.core.repository.EventRepository; import org.sadtech.social.core.service.RawEventService; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import java.util.Queue; +@Slf4j +@RequiredArgsConstructor public class RawEventServiceImpl implements RawEventService { - private static final Logger log = LoggerFactory.getLogger(RawEventServiceImpl.class); - private final EventRepository eventRepository; - public RawEventServiceImpl(EventRepository eventRepository) { - this.eventRepository = eventRepository; - } - @Override public void cleanAll() { eventRepository.cleanAll(); diff --git a/src/main/java/org/sadtech/social/core/service/sender/email/EmailConfig.java b/src/main/java/org/sadtech/social/core/service/sender/email/EmailConfig.java index d564b33..6793b38 100644 --- a/src/main/java/org/sadtech/social/core/service/sender/email/EmailConfig.java +++ b/src/main/java/org/sadtech/social/core/service/sender/email/EmailConfig.java @@ -1,7 +1,10 @@ package org.sadtech.social.core.service.sender.email; +import lombok.Getter; + import java.util.Properties; +@Getter public class EmailConfig { private Properties props = new Properties(); @@ -12,18 +15,6 @@ public class EmailConfig { } - public Properties getProps() { - return props; - } - - public String getUsername() { - return username; - } - - public String getPassword() { - return password; - } - public static Builder builder() { return new EmailConfig().new Builder(); } diff --git a/src/main/java/org/sadtech/social/core/service/sender/email/EmailSent.java b/src/main/java/org/sadtech/social/core/service/sender/email/EmailSent.java index 72598cf..a563136 100644 --- a/src/main/java/org/sadtech/social/core/service/sender/email/EmailSent.java +++ b/src/main/java/org/sadtech/social/core/service/sender/email/EmailSent.java @@ -1,10 +1,10 @@ package org.sadtech.social.core.service.sender.email; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.sadtech.social.core.domain.BoxAnswer; import org.sadtech.social.core.exception.MailSendException; import org.sadtech.social.core.service.sender.Sent; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import javax.mail.Authenticator; import javax.mail.Message; @@ -15,16 +15,12 @@ import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; +@Slf4j +@RequiredArgsConstructor public class EmailSent implements Sent { - private static final Logger log = LoggerFactory.getLogger(Sent.class); - private final EmailConfig emailConfig; - public EmailSent(EmailConfig emailConfig) { - this.emailConfig = emailConfig; - } - @Override public void send(Integer personId, BoxAnswer boxAnswer) { Session session = Session.getDefaultInstance(emailConfig.getProps(), new Authenticator() {