From c8609a70cdb59c2cb30234d173d4363c7f078e3f Mon Sep 17 00:00:00 2001 From: CentnerMan <44133485+CentnerMan@users.noreply.github.com> Date: Thu, 1 Nov 2018 14:51:16 +0300 Subject: [PATCH 01/25] =?UTF-8?q?=D0=9A=D0=BB=D0=B0=D1=81=D1=81=20=D1=81?= =?UTF-8?q?=D0=BE=D1=82=D1=80=D1=83=D0=B4=D0=BD=D0=B8=D0=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/ru/lebedev/se/Employee.java | 94 +++++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 src/main/java/ru/lebedev/se/Employee.java diff --git a/src/main/java/ru/lebedev/se/Employee.java b/src/main/java/ru/lebedev/se/Employee.java new file mode 100644 index 0000000..3d759a1 --- /dev/null +++ b/src/main/java/ru/lebedev/se/Employee.java @@ -0,0 +1,94 @@ +package ru.lebedev.se; + +public class Employee { + private String fio; + private String position; + private String email = "ouroffice@ourwork.com"; // Если нет своей электронной почты, ставим рабочую + private String phoneNumber = "+78122233322"; // Если нет телефона - ставим рабочий + private int salary; + private int age; + + public void setFio(String fio) { + this.fio = fio; + } + + public String getFio() { + return fio; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getPosition() { + return position; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getEmail() { + return email; + } + + public void setPhoneNumber(String phoneNumber) { + this.phoneNumber = phoneNumber; + } + + public String getPhoneNumber() { + return phoneNumber; + } + + public void setSalary(int salary) { + this.salary = salary; + } + + public int getSalary() { + return salary; + } + + public void setAge(int age) { + if (age > 0) + this.age = age; + else + this.age = age *(-1); // Переводим отрицательный возраст в положительный + } + + public int getAge() { + return age; + } + + public Employee(String fio, String position, String email, String phoneNumber, int salary, int age) { + setFio(fio); + setPosition(position); + setEmail(email); + setPhoneNumber(phoneNumber); + setSalary(salary); + setAge(age); + } + + public Employee(String fio, String position, String phoneNumber, int salary, int age) { + setFio(fio); + setPosition(position); + setPhoneNumber(phoneNumber); + setSalary(salary); + setAge(age); + } + + public Employee(String fio, String position, int salary, int age) { + setFio(fio); + setPosition(position); + setSalary(salary); + setAge(age); + } + + public void printInfo() { + System.out.println("Ф.И.О.: " + this.fio + ", Должность: " + this.position + ", Электронная почта: " + + this.email + ", Телефон: " + this.phoneNumber + ", Зарплата: " + this.salary + + ", Возраст: " + this.age); + } + +} + + From d1823a02a91896bb459754b6b56c4bbddb0fbcb6 Mon Sep 17 00:00:00 2001 From: CentnerMan <44133485+CentnerMan@users.noreply.github.com> Date: Thu, 1 Nov 2018 14:51:29 +0300 Subject: [PATCH 02/25] =?UTF-8?q?=D0=9A=D0=BB=D0=B0=D1=81=D1=81=20=D1=81?= =?UTF-8?q?=D0=BE=D1=82=D1=80=D1=83=D0=B4=D0=BD=D0=B8=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/ru/lebedev/se/Employees.java | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 src/main/java/ru/lebedev/se/Employees.java diff --git a/src/main/java/ru/lebedev/se/Employees.java b/src/main/java/ru/lebedev/se/Employees.java new file mode 100644 index 0000000..f615757 --- /dev/null +++ b/src/main/java/ru/lebedev/se/Employees.java @@ -0,0 +1,4 @@ +package ru.lebedev.se; + +public class Employees { +} From 1e3ebef8d01f0db51cddc820ed5b259b6ff0f09a Mon Sep 17 00:00:00 2001 From: CentnerMan <44133485+CentnerMan@users.noreply.github.com> Date: Thu, 1 Nov 2018 14:52:16 +0300 Subject: [PATCH 03/25] =?UTF-8?q?=D0=9A=D0=BB=D0=B0=D1=81=D1=81=20=D1=81?= =?UTF-8?q?=D0=BE=D1=82=D1=80=D1=83=D0=B4=D0=BD=D0=B8=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/ru/lebedev/se/Employees.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/main/java/ru/lebedev/se/Employees.java b/src/main/java/ru/lebedev/se/Employees.java index f615757..c2214b3 100644 --- a/src/main/java/ru/lebedev/se/Employees.java +++ b/src/main/java/ru/lebedev/se/Employees.java @@ -1,4 +1,19 @@ package ru.lebedev.se; public class Employees { + + public static void main(String[] args) { + Employee[] EmployeeArray = new Employee[5]; + EmployeeArray[0] = new Employee("Иванов Иван", "Инженер", "ivanov@work.ru", "+78121111111", 30000, 45); + EmployeeArray[1] = new Employee("Петров Петр", "Менеджер", "+78122222222", 40000, 38); + EmployeeArray[2] = new Employee("Сидоров Сидор", "Бухгалтер", 45000, 42); + EmployeeArray[3] = new Employee("Неизвестный Эрнст", "Директор", "+74952222222",100000, 60); + EmployeeArray[4] = new Employee("Львов Лев", "Программист", "lviv@work.ru", "+78125555555", 14000, 31); + + for (int i = 0; i < EmployeeArray.length; i++) { + if (EmployeeArray[i].getAge() > 40) { + EmployeeArray[i].printInfo(); + } + } + } } From 0f53451e546523eb065c9e1ed14e3e1cb5448d44 Mon Sep 17 00:00:00 2001 From: CentnerMan <44133485+CentnerMan@users.noreply.github.com> Date: Thu, 1 Nov 2018 16:17:26 +0300 Subject: [PATCH 04/25] copypaste chat --- src/main/java/ru/lebedev/se/chat/client/ChatClient.java | 4 ++++ src/main/java/ru/lebedev/se/chat/client/ClientService.java | 4 ++++ src/main/java/ru/lebedev/se/chat/server/Message.java | 4 ++++ src/main/java/ru/lebedev/se/chat/server/MessageBox.java | 4 ++++ src/main/java/ru/lebedev/se/chat/server/Session.java | 4 ++++ src/main/java/ru/lebedev/se/chat/server/User.java | 4 ++++ 6 files changed, 24 insertions(+) create mode 100644 src/main/java/ru/lebedev/se/chat/client/ChatClient.java create mode 100644 src/main/java/ru/lebedev/se/chat/client/ClientService.java create mode 100644 src/main/java/ru/lebedev/se/chat/server/Message.java create mode 100644 src/main/java/ru/lebedev/se/chat/server/MessageBox.java create mode 100644 src/main/java/ru/lebedev/se/chat/server/Session.java create mode 100644 src/main/java/ru/lebedev/se/chat/server/User.java diff --git a/src/main/java/ru/lebedev/se/chat/client/ChatClient.java b/src/main/java/ru/lebedev/se/chat/client/ChatClient.java new file mode 100644 index 0000000..1509200 --- /dev/null +++ b/src/main/java/ru/lebedev/se/chat/client/ChatClient.java @@ -0,0 +1,4 @@ +package ru.lebedev.se.chat.client; + +public class ChatClient { +} diff --git a/src/main/java/ru/lebedev/se/chat/client/ClientService.java b/src/main/java/ru/lebedev/se/chat/client/ClientService.java new file mode 100644 index 0000000..6370c02 --- /dev/null +++ b/src/main/java/ru/lebedev/se/chat/client/ClientService.java @@ -0,0 +1,4 @@ +package ru.lebedev.se.chat.client; + +public class ClientService { +} diff --git a/src/main/java/ru/lebedev/se/chat/server/Message.java b/src/main/java/ru/lebedev/se/chat/server/Message.java new file mode 100644 index 0000000..9b8edc4 --- /dev/null +++ b/src/main/java/ru/lebedev/se/chat/server/Message.java @@ -0,0 +1,4 @@ +package ru.lebedev.se.chat.server; + +public class Message { +} diff --git a/src/main/java/ru/lebedev/se/chat/server/MessageBox.java b/src/main/java/ru/lebedev/se/chat/server/MessageBox.java new file mode 100644 index 0000000..364ff37 --- /dev/null +++ b/src/main/java/ru/lebedev/se/chat/server/MessageBox.java @@ -0,0 +1,4 @@ +package ru.lebedev.se.chat.server; + +public class MessageBox { +} diff --git a/src/main/java/ru/lebedev/se/chat/server/Session.java b/src/main/java/ru/lebedev/se/chat/server/Session.java new file mode 100644 index 0000000..ffaf0fd --- /dev/null +++ b/src/main/java/ru/lebedev/se/chat/server/Session.java @@ -0,0 +1,4 @@ +package ru.lebedev.se.chat.server; + +public class Session { +} diff --git a/src/main/java/ru/lebedev/se/chat/server/User.java b/src/main/java/ru/lebedev/se/chat/server/User.java new file mode 100644 index 0000000..521dcac --- /dev/null +++ b/src/main/java/ru/lebedev/se/chat/server/User.java @@ -0,0 +1,4 @@ +package ru.lebedev.se.chat.server; + +public class User { +} From 01724009daa889016cbce8d2eabcef473b1839da Mon Sep 17 00:00:00 2001 From: CentnerMan <44133485+CentnerMan@users.noreply.github.com> Date: Thu, 1 Nov 2018 17:21:43 +0300 Subject: [PATCH 05/25] 2 --- src/main/java/ru/lebedev/se/chat/server/Message.java | 4 ---- .../ru/lebedev/se/chat/server/api/ChatService.java | 4 ++++ .../ru/lebedev/se/chat/server/api/MessageService.java | 4 ++++ .../ru/lebedev/se/chat/server/api/SessionService.java | 4 ++++ .../ru/lebedev/se/chat/server/api/UserService.java | 4 ++++ .../java/ru/lebedev/se/chat/server/model/Message.java | 11 +++++++++++ .../se/chat/server/{ => model}/MessageBox.java | 0 .../lebedev/se/chat/server/{ => model}/Session.java | 0 .../ru/lebedev/se/chat/server/{ => model}/User.java | 0 .../se/chat/server/service/ChatServiceBean.java | 4 ++++ .../se/chat/server/service/MessageServiceBean.java | 4 ++++ .../se/chat/server/service/SessionServiceBean.java | 4 ++++ .../se/chat/server/service/UserServiceBean.java | 4 ++++ 13 files changed, 43 insertions(+), 4 deletions(-) delete mode 100644 src/main/java/ru/lebedev/se/chat/server/Message.java create mode 100644 src/main/java/ru/lebedev/se/chat/server/api/ChatService.java create mode 100644 src/main/java/ru/lebedev/se/chat/server/api/MessageService.java create mode 100644 src/main/java/ru/lebedev/se/chat/server/api/SessionService.java create mode 100644 src/main/java/ru/lebedev/se/chat/server/api/UserService.java create mode 100644 src/main/java/ru/lebedev/se/chat/server/model/Message.java rename src/main/java/ru/lebedev/se/chat/server/{ => model}/MessageBox.java (100%) rename src/main/java/ru/lebedev/se/chat/server/{ => model}/Session.java (100%) rename src/main/java/ru/lebedev/se/chat/server/{ => model}/User.java (100%) create mode 100644 src/main/java/ru/lebedev/se/chat/server/service/ChatServiceBean.java create mode 100644 src/main/java/ru/lebedev/se/chat/server/service/MessageServiceBean.java create mode 100644 src/main/java/ru/lebedev/se/chat/server/service/SessionServiceBean.java create mode 100644 src/main/java/ru/lebedev/se/chat/server/service/UserServiceBean.java diff --git a/src/main/java/ru/lebedev/se/chat/server/Message.java b/src/main/java/ru/lebedev/se/chat/server/Message.java deleted file mode 100644 index 9b8edc4..0000000 --- a/src/main/java/ru/lebedev/se/chat/server/Message.java +++ /dev/null @@ -1,4 +0,0 @@ -package ru.lebedev.se.chat.server; - -public class Message { -} diff --git a/src/main/java/ru/lebedev/se/chat/server/api/ChatService.java b/src/main/java/ru/lebedev/se/chat/server/api/ChatService.java new file mode 100644 index 0000000..2e84301 --- /dev/null +++ b/src/main/java/ru/lebedev/se/chat/server/api/ChatService.java @@ -0,0 +1,4 @@ +package ru.lebedev.se.chat.server.api; + +public interface ChatService { +} diff --git a/src/main/java/ru/lebedev/se/chat/server/api/MessageService.java b/src/main/java/ru/lebedev/se/chat/server/api/MessageService.java new file mode 100644 index 0000000..b89ec6e --- /dev/null +++ b/src/main/java/ru/lebedev/se/chat/server/api/MessageService.java @@ -0,0 +1,4 @@ +package ru.lebedev.se.chat.server.api; + +public interface MessageService { +} diff --git a/src/main/java/ru/lebedev/se/chat/server/api/SessionService.java b/src/main/java/ru/lebedev/se/chat/server/api/SessionService.java new file mode 100644 index 0000000..d300a46 --- /dev/null +++ b/src/main/java/ru/lebedev/se/chat/server/api/SessionService.java @@ -0,0 +1,4 @@ +package ru.lebedev.se.chat.server.api; + +public class SessionService { +} diff --git a/src/main/java/ru/lebedev/se/chat/server/api/UserService.java b/src/main/java/ru/lebedev/se/chat/server/api/UserService.java new file mode 100644 index 0000000..0a946ba --- /dev/null +++ b/src/main/java/ru/lebedev/se/chat/server/api/UserService.java @@ -0,0 +1,4 @@ +package ru.lebedev.se.chat.server.api; + +public interface UserService { +} diff --git a/src/main/java/ru/lebedev/se/chat/server/model/Message.java b/src/main/java/ru/lebedev/se/chat/server/model/Message.java new file mode 100644 index 0000000..b4d3c3e --- /dev/null +++ b/src/main/java/ru/lebedev/se/chat/server/model/Message.java @@ -0,0 +1,11 @@ +package ru.lebedev.se.chat.server; + +import java.util.UUID; + +public final class Message { + public String id = UUID.randomUUID().toString(); + public long timestamp= System.currentTimeMillis(); + public String source; + public String target; + public String text; +} diff --git a/src/main/java/ru/lebedev/se/chat/server/MessageBox.java b/src/main/java/ru/lebedev/se/chat/server/model/MessageBox.java similarity index 100% rename from src/main/java/ru/lebedev/se/chat/server/MessageBox.java rename to src/main/java/ru/lebedev/se/chat/server/model/MessageBox.java diff --git a/src/main/java/ru/lebedev/se/chat/server/Session.java b/src/main/java/ru/lebedev/se/chat/server/model/Session.java similarity index 100% rename from src/main/java/ru/lebedev/se/chat/server/Session.java rename to src/main/java/ru/lebedev/se/chat/server/model/Session.java diff --git a/src/main/java/ru/lebedev/se/chat/server/User.java b/src/main/java/ru/lebedev/se/chat/server/model/User.java similarity index 100% rename from src/main/java/ru/lebedev/se/chat/server/User.java rename to src/main/java/ru/lebedev/se/chat/server/model/User.java diff --git a/src/main/java/ru/lebedev/se/chat/server/service/ChatServiceBean.java b/src/main/java/ru/lebedev/se/chat/server/service/ChatServiceBean.java new file mode 100644 index 0000000..5438bdf --- /dev/null +++ b/src/main/java/ru/lebedev/se/chat/server/service/ChatServiceBean.java @@ -0,0 +1,4 @@ +package ru.lebedev.se.chat.server.service; + +public class ChatServiceBean { +} diff --git a/src/main/java/ru/lebedev/se/chat/server/service/MessageServiceBean.java b/src/main/java/ru/lebedev/se/chat/server/service/MessageServiceBean.java new file mode 100644 index 0000000..ea980a6 --- /dev/null +++ b/src/main/java/ru/lebedev/se/chat/server/service/MessageServiceBean.java @@ -0,0 +1,4 @@ +package ru.lebedev.se.chat.server.service; + +public class MessageServiceBean { +} diff --git a/src/main/java/ru/lebedev/se/chat/server/service/SessionServiceBean.java b/src/main/java/ru/lebedev/se/chat/server/service/SessionServiceBean.java new file mode 100644 index 0000000..ca5fb19 --- /dev/null +++ b/src/main/java/ru/lebedev/se/chat/server/service/SessionServiceBean.java @@ -0,0 +1,4 @@ +package ru.lebedev.se.chat.server.service; + +public class SessionServiceBean { +} diff --git a/src/main/java/ru/lebedev/se/chat/server/service/UserServiceBean.java b/src/main/java/ru/lebedev/se/chat/server/service/UserServiceBean.java new file mode 100644 index 0000000..5318a2c --- /dev/null +++ b/src/main/java/ru/lebedev/se/chat/server/service/UserServiceBean.java @@ -0,0 +1,4 @@ +package ru.lebedev.se.chat.server.service; + +public class UserServiceBean { +} From 19754f3de777d19c75b623d4ceaf3656c887448a Mon Sep 17 00:00:00 2001 From: CentnerMan <44133485+CentnerMan@users.noreply.github.com> Date: Thu, 1 Nov 2018 17:22:14 +0300 Subject: [PATCH 06/25] =?UTF-8?q?=D0=B5=D0=B4=D0=B5=D0=BC=20=D0=B4=D0=BE?= =?UTF-8?q?=D0=BC=D0=BE=D0=B9=20:)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../se/chat/server/api/ChatService.java | 40 +++++++++ .../se/chat/server/api/MessageService.java | 12 +++ .../se/chat/server/api/SessionService.java | 12 ++- .../se/chat/server/api/UserService.java | 16 ++++ .../lebedev/se/chat/server/model/Message.java | 4 +- .../se/chat/server/model/MessageBox.java | 2 +- .../lebedev/se/chat/server/model/Session.java | 24 ++++- .../ru/lebedev/se/chat/server/model/User.java | 2 +- .../chat/server/service/ChatServiceBean.java | 89 ++++++++++++++++++- 9 files changed, 193 insertions(+), 8 deletions(-) diff --git a/src/main/java/ru/lebedev/se/chat/server/api/ChatService.java b/src/main/java/ru/lebedev/se/chat/server/api/ChatService.java index 2e84301..b31d765 100644 --- a/src/main/java/ru/lebedev/se/chat/server/api/ChatService.java +++ b/src/main/java/ru/lebedev/se/chat/server/api/ChatService.java @@ -1,4 +1,44 @@ package ru.lebedev.se.chat.server.api; +import ru.lebedev.se.chat.server.model.Message; +import ru.lebedev.se.chat.server.model.Session; +import ru.lebedev.se.chat.server.model.User; + +import javax.jws.WebMethod; +import javax.jws.WebParam; +import javax.jws.WebService; +import java.util.List; + +@WebService public interface ChatService { + + @WebMethod + boolean register(@WebParam String login, @WebParam String password); + + @WebMethod + List getListLogin(); + + @WebMethod + boolean isLoginExists(@WebParam String login); + + @WebMethod + Session signIn(@WebParam String login, @WebParam String password); + + @WebMethod + User getUser(@WebParam Session session); + + @WebMethod + void signOut(@WebParam Session session); + + @WebMethod + List getMessages(@WebParam Session session); + + @WebMethod + void sendBroadcast(@WebParam Session session, @WebParam String message); + + @WebMethod + void sendMessage(@WebParam Session session, @WebParam String login, @WebParam String message); + + @WebMethod + void clearMessages(@WebParam Session session); } diff --git a/src/main/java/ru/lebedev/se/chat/server/api/MessageService.java b/src/main/java/ru/lebedev/se/chat/server/api/MessageService.java index b89ec6e..b6d1617 100644 --- a/src/main/java/ru/lebedev/se/chat/server/api/MessageService.java +++ b/src/main/java/ru/lebedev/se/chat/server/api/MessageService.java @@ -1,4 +1,16 @@ package ru.lebedev.se.chat.server.api; +import ru.lebedev.se.chat.server.model.Message; + +import java.util.List; + public interface MessageService { + + List getMessage(String login); + + void sendBroadCast(String source, String text); + + void sendMessage(String source, String target, String text); + + void cleanMessage(String login); } diff --git a/src/main/java/ru/lebedev/se/chat/server/api/SessionService.java b/src/main/java/ru/lebedev/se/chat/server/api/SessionService.java index d300a46..272bf36 100644 --- a/src/main/java/ru/lebedev/se/chat/server/api/SessionService.java +++ b/src/main/java/ru/lebedev/se/chat/server/api/SessionService.java @@ -1,4 +1,14 @@ package ru.lebedev.se.chat.server.api; -public class SessionService { +import ru.lebedev.se.chat.server.model.Session; +import ru.lebedev.se.chat.server.model.User; + +public interface SessionService { + + Session signIn(String login, String password); + + User getUser(Session session); + + void signOut(Session session); + } diff --git a/src/main/java/ru/lebedev/se/chat/server/api/UserService.java b/src/main/java/ru/lebedev/se/chat/server/api/UserService.java index 0a946ba..2c91d20 100644 --- a/src/main/java/ru/lebedev/se/chat/server/api/UserService.java +++ b/src/main/java/ru/lebedev/se/chat/server/api/UserService.java @@ -1,4 +1,20 @@ package ru.lebedev.se.chat.server.api; +import ru.lebedev.se.chat.server.model.User; + +import java.util.List; + public interface UserService { + + boolean register(String login, String password); + + List getListLogin(); + + User getUser(String login); + + void createUser(String login, String password); + + boolean isLoginExists(String login); + + void removeUser(String login); } diff --git a/src/main/java/ru/lebedev/se/chat/server/model/Message.java b/src/main/java/ru/lebedev/se/chat/server/model/Message.java index b4d3c3e..9733513 100644 --- a/src/main/java/ru/lebedev/se/chat/server/model/Message.java +++ b/src/main/java/ru/lebedev/se/chat/server/model/Message.java @@ -1,10 +1,10 @@ -package ru.lebedev.se.chat.server; +package ru.lebedev.se.chat.server.model; import java.util.UUID; public final class Message { public String id = UUID.randomUUID().toString(); - public long timestamp= System.currentTimeMillis(); + public long timestamp = System.currentTimeMillis(); public String source; public String target; public String text; diff --git a/src/main/java/ru/lebedev/se/chat/server/model/MessageBox.java b/src/main/java/ru/lebedev/se/chat/server/model/MessageBox.java index 364ff37..48f9a9d 100644 --- a/src/main/java/ru/lebedev/se/chat/server/model/MessageBox.java +++ b/src/main/java/ru/lebedev/se/chat/server/model/MessageBox.java @@ -1,4 +1,4 @@ -package ru.lebedev.se.chat.server; +package ru.lebedev.se.chat.server.model; public class MessageBox { } diff --git a/src/main/java/ru/lebedev/se/chat/server/model/Session.java b/src/main/java/ru/lebedev/se/chat/server/model/Session.java index ffaf0fd..1afcbf8 100644 --- a/src/main/java/ru/lebedev/se/chat/server/model/Session.java +++ b/src/main/java/ru/lebedev/se/chat/server/model/Session.java @@ -1,4 +1,24 @@ -package ru.lebedev.se.chat.server; +package ru.lebedev.se.chat.server.model; -public class Session { +import java.util.Objects; +import java.util.UUID; + +public final class Session { + public long timestamp = System.currentTimeMillis(); + public String id = UUID.randomUUID().toString(); + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Session session = (Session) o; + final boolean checkTimeStamp = Objects.equals(timestamp, session.timestamp); + final boolean checkSessionId = Objects.equals(id, session.id); + return checkTimeStamp && checkSessionId; + } + + @Override + public int hashCode() { + return Objects.hash(timestamp, id); + } } diff --git a/src/main/java/ru/lebedev/se/chat/server/model/User.java b/src/main/java/ru/lebedev/se/chat/server/model/User.java index 521dcac..fbc62e9 100644 --- a/src/main/java/ru/lebedev/se/chat/server/model/User.java +++ b/src/main/java/ru/lebedev/se/chat/server/model/User.java @@ -1,4 +1,4 @@ -package ru.lebedev.se.chat.server; +package ru.lebedev.se.chat.server.model; public class User { } diff --git a/src/main/java/ru/lebedev/se/chat/server/service/ChatServiceBean.java b/src/main/java/ru/lebedev/se/chat/server/service/ChatServiceBean.java index 5438bdf..d24019a 100644 --- a/src/main/java/ru/lebedev/se/chat/server/service/ChatServiceBean.java +++ b/src/main/java/ru/lebedev/se/chat/server/service/ChatServiceBean.java @@ -1,4 +1,91 @@ package ru.lebedev.se.chat.server.service; -public class ChatServiceBean { +import ru.lebedev.se.chat.server.api.ChatService; +import ru.lebedev.se.chat.server.api.MessageService; +import ru.lebedev.se.chat.server.api.SessionService; +import ru.lebedev.se.chat.server.api.UserService; +import ru.lebedev.se.chat.server.model.Message; +import ru.lebedev.se.chat.server.model.Session; +import ru.lebedev.se.chat.server.model.User; + +import javax.jws.WebMethod; +import javax.jws.WebService; +import javax.jws.soap.SOAPBinding; +import java.util.List; + +@WebService(endpointInterface = "ru.lebedev.se.chat.server.api.ChatService") +public final class ChatServiceBean implements ChatService { + + private final UserService userService = new UserServiceBean(); + + private final MessageService messageService = new MessageServiceBean(userService); + + private final SessionService sessionService = new SessionServiceBean(userService); + + @Override + @WebMethod + public boolean register(final String login, final String password) { + return userService.register(login, password); + } + + @Override + @WebMethod + public List getListLogin() { + return userService.getListLogin(); + } + + @Override + @WebMethod + public boolean isLoginExists(final String login) { + return userService.isLoginExists(login); + } + + @Override + @WebMethod + public Session signIn(String login, String password) { + return sessionService.signIn(login, password); + } + + @Override + @WebMethod + public User getUser(final Session session) { + return sessionService.getUser(session); + } + + @Override + @WebMethod + public void signOut(final Session session) { + sessionService.signOut(session); + } + + @Override + @WebMethod + public List getMessages(final Session session) { + final User user = sessionService.getUser(session); + return messageService.getMessage(user.login); + } + + @Override + @WebMethod + public void sendBroadcast(final Session session, final String message) { + final User user = sessionService.getUser(session); + messageService.sendBroadCast(user.login, message); + + } + + @Override + @WebMethod + public void sendMessage(final Session session, final String login, final String message) { + final User source = sessionService.getUser(session); + final User target = userService.getUser(login); + messageService.sendMessage(source.login, target.login, message); + } + + @Override + @WebMethod + public void clearMessages(Session session) { + final User user = sessionService.getUser(session); + messageService.cleanMessage(user.login); + + } } From cb5be420cee4c1bcf6c0fa316aeab5a8f94d4498 Mon Sep 17 00:00:00 2001 From: CentnerMan <44133485+CentnerMan@users.noreply.github.com> Date: Sat, 3 Nov 2018 01:04:07 +0300 Subject: [PATCH 07/25] final --- .../chat/server/service/UserServiceBean.java | 62 ++++++++++++++++++- 1 file changed, 61 insertions(+), 1 deletion(-) diff --git a/src/main/java/ru/lebedev/se/chat/server/service/UserServiceBean.java b/src/main/java/ru/lebedev/se/chat/server/service/UserServiceBean.java index 5318a2c..04bb781 100644 --- a/src/main/java/ru/lebedev/se/chat/server/service/UserServiceBean.java +++ b/src/main/java/ru/lebedev/se/chat/server/service/UserServiceBean.java @@ -1,4 +1,64 @@ package ru.lebedev.se.chat.server.service; -public class UserServiceBean { +import ru.lebedev.se.chat.server.api.UserService; +import ru.lebedev.se.chat.server.model.User; + +import java.util.*; + +public final class UserServiceBean implements UserService { + + private final Map users = new HashMap<>(); + + + @Override + public boolean register(String login, String password) { + if (login == null || login.isEmpty()) return false; + if (password == null || password.isEmpty()) return false; + if (users.containsKey(login)) return false; + createUser(login, password); + return true; + } + + @Override + public List getListLogin() { + return new ArrayList<>(users.keySet()); + } + + @Override + public User getUser(String login) { + if (login == null || login.isEmpty()) return null; + return users.get(login); + } + + @Override + public void createUser(final String login, final String password) { + if (login == null || login.isEmpty()) return; + if (password == null || password.isEmpty()) return; + if (users.containsKey(login)) return; + final User user = new User(); + user.login = login; + user.password = password; + users.put(login, user); + } + + @Override + public int getCountUser() { + return users.size(); + } + + @Override + public void removeAll() { + users.clear(); + } + + @Override + public boolean isLoginExists(String login) { + return users.containsKey(login); + } + + @Override + public void removeUser(String login) { + users.remove(login); + + } } From 7f1ababa1ab24ffec221bf430f4cc301b3dc4e32 Mon Sep 17 00:00:00 2001 From: CentnerMan <44133485+CentnerMan@users.noreply.github.com> Date: Sat, 3 Nov 2018 01:04:25 +0300 Subject: [PATCH 08/25] final --- src/main/java/ru/lebedev/se/chat/server/api/UserService.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/ru/lebedev/se/chat/server/api/UserService.java b/src/main/java/ru/lebedev/se/chat/server/api/UserService.java index 2c91d20..3d07b1c 100644 --- a/src/main/java/ru/lebedev/se/chat/server/api/UserService.java +++ b/src/main/java/ru/lebedev/se/chat/server/api/UserService.java @@ -14,6 +14,10 @@ public interface UserService { void createUser(String login, String password); + int getCountUser(); + + void removeAll(); + boolean isLoginExists(String login); void removeUser(String login); From 03676b9d45403508cb4975d2570d36b70a21c3b1 Mon Sep 17 00:00:00 2001 From: CentnerMan <44133485+CentnerMan@users.noreply.github.com> Date: Sat, 3 Nov 2018 01:04:42 +0300 Subject: [PATCH 09/25] final --- src/main/java/ru/lebedev/se/chat/server/model/User.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/ru/lebedev/se/chat/server/model/User.java b/src/main/java/ru/lebedev/se/chat/server/model/User.java index fbc62e9..4d0b07b 100644 --- a/src/main/java/ru/lebedev/se/chat/server/model/User.java +++ b/src/main/java/ru/lebedev/se/chat/server/model/User.java @@ -1,4 +1,6 @@ package ru.lebedev.se.chat.server.model; -public class User { +public final class User { + public String login; + public String password; } From 2718a5154ccb0c74cf6524f3fb158a50baa35ab0 Mon Sep 17 00:00:00 2001 From: CentnerMan <44133485+CentnerMan@users.noreply.github.com> Date: Sat, 3 Nov 2018 01:04:55 +0300 Subject: [PATCH 10/25] final --- .../server/service/SessionServiceBean.java | 40 ++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/src/main/java/ru/lebedev/se/chat/server/service/SessionServiceBean.java b/src/main/java/ru/lebedev/se/chat/server/service/SessionServiceBean.java index ca5fb19..68ad03d 100644 --- a/src/main/java/ru/lebedev/se/chat/server/service/SessionServiceBean.java +++ b/src/main/java/ru/lebedev/se/chat/server/service/SessionServiceBean.java @@ -1,4 +1,42 @@ package ru.lebedev.se.chat.server.service; -public class SessionServiceBean { +import ru.lebedev.se.chat.server.api.SessionService; +import ru.lebedev.se.chat.server.api.UserService; +import ru.lebedev.se.chat.server.model.Session; +import ru.lebedev.se.chat.server.model.User; + +import java.util.*; + +public final class SessionServiceBean implements SessionService { + + private final UserService userService; + + private final Map sessions = new HashMap<>(); + + public SessionServiceBean (final UserService userService){ + this.userService = userService; + } + @Override + public Session signIn(final String login, final String password) { + if (login == null || login.isEmpty()) return null; + if (password == null || password.isEmpty()) return null; + final User user = userService.getUser(login); + if (user == null) return null; + if (!password.equals(user.password)) return null; + final Session session = new Session(); + sessions.put(session, user); + return session; + } + + @Override + public User getUser(final Session session) { + if (session == null) return null; + return sessions.get(session); + } + + @Override + public void signOut(Session session) { + if (session == null) return; + sessions.remove(session); + } } From 03961d0ff70d0ceb74340698e8ada74c0b131c4f Mon Sep 17 00:00:00 2001 From: CentnerMan <44133485+CentnerMan@users.noreply.github.com> Date: Sat, 3 Nov 2018 01:05:08 +0300 Subject: [PATCH 11/25] final --- src/main/java/ru/lebedev/se/chat/server/model/Session.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/java/ru/lebedev/se/chat/server/model/Session.java b/src/main/java/ru/lebedev/se/chat/server/model/Session.java index 1afcbf8..c6322fd 100644 --- a/src/main/java/ru/lebedev/se/chat/server/model/Session.java +++ b/src/main/java/ru/lebedev/se/chat/server/model/Session.java @@ -1,7 +1,6 @@ package ru.lebedev.se.chat.server.model; -import java.util.Objects; -import java.util.UUID; +import java.util.*; public final class Session { public long timestamp = System.currentTimeMillis(); From c6b10c6608bf076bd2fc402ebbef4f251f56ea1d Mon Sep 17 00:00:00 2001 From: CentnerMan <44133485+CentnerMan@users.noreply.github.com> Date: Sat, 3 Nov 2018 01:05:20 +0300 Subject: [PATCH 12/25] final --- .../server/service/MessageServiceBean.java | 54 ++++++++++++++++++- 1 file changed, 53 insertions(+), 1 deletion(-) diff --git a/src/main/java/ru/lebedev/se/chat/server/service/MessageServiceBean.java b/src/main/java/ru/lebedev/se/chat/server/service/MessageServiceBean.java index ea980a6..fd148ba 100644 --- a/src/main/java/ru/lebedev/se/chat/server/service/MessageServiceBean.java +++ b/src/main/java/ru/lebedev/se/chat/server/service/MessageServiceBean.java @@ -1,4 +1,56 @@ package ru.lebedev.se.chat.server.service; -public class MessageServiceBean { +import ru.lebedev.se.chat.server.api.MessageService; +import ru.lebedev.se.chat.server.api.UserService; +import ru.lebedev.se.chat.server.model.Message; +import ru.lebedev.se.chat.server.model.MessageBox; + +import java.util.*; + +public final class MessageServiceBean implements MessageService { + + private final Map boxes = new HashMap<>(); + + private final UserService userService; + + public MessageServiceBean(final UserService userService) { + this.userService = userService; + } + + private MessageBox getMessageBox(final String login) { + if (login == null || login.isEmpty()) return null; + if (!boxes.containsKey(login)) boxes.put(login, new MessageBox()); + return boxes.get(login); + } + + @Override + public List getMessage(final String login) { + final MessageBox messageBox = getMessageBox(login); + cleanMessage(login); + return messageBox; + } + + @Override + public void sendBroadCast(final String source, final String text) { + final Collection logins = userService.getListLogin(); + for (final String target : logins) { + if (source.equals(target)) continue; + sendMessage(source, target, text); + } + } + + @Override + public void sendMessage(final String source, final String target, final String text) { + final Message message = new Message(); + message.source = source; + message.target = target; + message.text = text; + final MessageBox messageBox = getMessageBox(target); + messageBox.add(message); + } + + @Override + public void cleanMessage(final String login) { + boxes.put(login, new MessageBox()); + } } From 406f7466d66e3653a79f3c2b1a44b1c3732a5464 Mon Sep 17 00:00:00 2001 From: CentnerMan <44133485+CentnerMan@users.noreply.github.com> Date: Sat, 3 Nov 2018 01:05:35 +0300 Subject: [PATCH 13/25] final --- src/main/java/ru/lebedev/se/chat/client/ChatClient.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/main/java/ru/lebedev/se/chat/client/ChatClient.java b/src/main/java/ru/lebedev/se/chat/client/ChatClient.java index 1509200..159737f 100644 --- a/src/main/java/ru/lebedev/se/chat/client/ChatClient.java +++ b/src/main/java/ru/lebedev/se/chat/client/ChatClient.java @@ -1,4 +1,9 @@ package ru.lebedev.se.chat.client; public class ChatClient { + + public static void main(String[] args) throws Exception{ + final ClientService service = new ClientService(); + service.run(); + } } From d832c12059fbbee630f5618fe0d2de1e539ab2b3 Mon Sep 17 00:00:00 2001 From: CentnerMan <44133485+CentnerMan@users.noreply.github.com> Date: Sat, 3 Nov 2018 01:05:46 +0300 Subject: [PATCH 14/25] final --- src/main/java/ru/lebedev/se/chat/server/model/MessageBox.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/ru/lebedev/se/chat/server/model/MessageBox.java b/src/main/java/ru/lebedev/se/chat/server/model/MessageBox.java index 48f9a9d..3b90605 100644 --- a/src/main/java/ru/lebedev/se/chat/server/model/MessageBox.java +++ b/src/main/java/ru/lebedev/se/chat/server/model/MessageBox.java @@ -1,4 +1,6 @@ package ru.lebedev.se.chat.server.model; -public class MessageBox { +import java.util.ArrayList; + +public final class MessageBox extends ArrayList { } From 3be414709f0bd9e2fdcf87f50ea87685b0361f5f Mon Sep 17 00:00:00 2001 From: CentnerMan <44133485+CentnerMan@users.noreply.github.com> Date: Sat, 3 Nov 2018 01:05:59 +0300 Subject: [PATCH 15/25] final --- .../lebedev/se/chat/client/ClientService.java | 126 ++++++++++++++++++ 1 file changed, 126 insertions(+) diff --git a/src/main/java/ru/lebedev/se/chat/client/ClientService.java b/src/main/java/ru/lebedev/se/chat/client/ClientService.java index 6370c02..01009dc 100644 --- a/src/main/java/ru/lebedev/se/chat/client/ClientService.java +++ b/src/main/java/ru/lebedev/se/chat/client/ClientService.java @@ -1,4 +1,130 @@ package ru.lebedev.se.chat.client; +import ru.lebedev.se.chat.server.api.ChatService; +import ru.lebedev.se.chat.server.model.Message; +import ru.lebedev.se.chat.server.model.Session; + +import javax.xml.namespace.QName; +import javax.xml.ws.Service; +import java.net.URL; +import java.util.*; + public class ClientService { + + private static final String CMD_EXIT = "exit"; + + private static final String CMD_LOGIN = "login"; + + private static final String CMD_LOGOUT = "logout"; + + private static final String CMD_READ = "read"; + + private static final String CMD_SEND = "send"; + + private static final String CMD_USERS = "users"; + + private static final String CMD_BROADCAST = "broadcast"; + + private static final String LOCAL_PART = "ChatServiceBeanService"; + + private static final String LOCAL_NAMESPACE = "http://service.server.chat.se.lebedev.ru/"; + + private static final String WSDL = "http://localhost:8080/ChatService?wsdl"; + + private final URL url; + + private final QName qname; + + private final Service service; + + private final ChatService chatService; + + private final Scanner scanner; + + private Session session = null; + + public ClientService() throws Exception { + url = new URL(WSDL); + qname = new QName(LOCAL_NAMESPACE, LOCAL_PART); + service = Service.create(url, qname); + chatService = service.getPort(ChatService.class); + scanner = new Scanner(System.in); + } + + public void run() { + String cmd = ""; + while (!CMD_EXIT.equals(cmd)) { + System.out.println("ENTER CMD: "); + cmd = scanner.nextLine(); + switch (cmd) { + case CMD_LOGIN: + login(); + break; + + case CMD_LOGOUT: + logout(); + break; + + case CMD_READ: + read(); + break; + + case CMD_SEND: + send(); + break; + + case CMD_USERS: + users(); + break; + + case CMD_BROADCAST: + broadcast(); + break; + + + } + System.out.println(); + } + } + + private void login() { + System.out.println("ENTER LOGIN: "); + final String login = scanner.nextLine(); + System.out.println("ENTER PASSWORD: "); + final String password = scanner.nextLine(); + session = chatService.signIn(login, password); + final String msg = session != null ? "OK" : "ERROR"; + System.out.println("AUTH: " + msg); + } + + private void logout() { + chatService.signOut(session); + } + + private void send() { + System.out.println("ENTER LOGIN: "); + final String login = scanner.nextLine(); + System.out.println("ENTER MESSAGE: "); + final String message = scanner.nextLine(); + chatService.sendMessage(session, login, message); + } + + private void read() { + final List messages = chatService.getMessages(session); + for (final Message message : messages) { + System.out.println("** INCOME MESSAGE **"); + System.out.println("FROM: " + message.source); + System.out.println("TEXT: " + message.text); + } + } + + private void users() { + System.out.println(chatService.getListLogin()); + } + + private void broadcast() { + System.out.println("ENTER MESSAGE: "); + final String message = scanner.nextLine(); + chatService.sendBroadcast(session, message); + } } From 3668b799087011d9ab44b15dafb54394fb69a094 Mon Sep 17 00:00:00 2001 From: CentnerMan <44133485+CentnerMan@users.noreply.github.com> Date: Sat, 3 Nov 2018 01:06:12 +0300 Subject: [PATCH 16/25] final --- .../java/ru/lebedev/se/chat/server/service/ChatServiceBean.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/ru/lebedev/se/chat/server/service/ChatServiceBean.java b/src/main/java/ru/lebedev/se/chat/server/service/ChatServiceBean.java index d24019a..bf3ed0e 100644 --- a/src/main/java/ru/lebedev/se/chat/server/service/ChatServiceBean.java +++ b/src/main/java/ru/lebedev/se/chat/server/service/ChatServiceBean.java @@ -11,7 +11,7 @@ import javax.jws.WebMethod; import javax.jws.WebService; import javax.jws.soap.SOAPBinding; -import java.util.List; +import java.util.*; @WebService(endpointInterface = "ru.lebedev.se.chat.server.api.ChatService") public final class ChatServiceBean implements ChatService { From 0d0b1ef4f0ec0bb6fdf1c3338715a281b0e0e550 Mon Sep 17 00:00:00 2001 From: CentnerMan <44133485+CentnerMan@users.noreply.github.com> Date: Sat, 3 Nov 2018 01:09:04 +0300 Subject: [PATCH 17/25] final --- src/main/java/ru/lebedev/se/chat/server/ChatServer.java | 4 ++++ src/test/java/ru/lebedev/se/ChatServerTest.java | 4 ++++ src/test/java/ru/lebedev/se/TestMap.java | 4 ++++ src/test/java/ru/lebedev/se/TestUUID.java | 4 ++++ 4 files changed, 16 insertions(+) create mode 100644 src/main/java/ru/lebedev/se/chat/server/ChatServer.java create mode 100644 src/test/java/ru/lebedev/se/ChatServerTest.java create mode 100644 src/test/java/ru/lebedev/se/TestMap.java create mode 100644 src/test/java/ru/lebedev/se/TestUUID.java diff --git a/src/main/java/ru/lebedev/se/chat/server/ChatServer.java b/src/main/java/ru/lebedev/se/chat/server/ChatServer.java new file mode 100644 index 0000000..5b3ad4e --- /dev/null +++ b/src/main/java/ru/lebedev/se/chat/server/ChatServer.java @@ -0,0 +1,4 @@ +package ru.lebedev.se.chat.server; + +public class ChatServer { +} diff --git a/src/test/java/ru/lebedev/se/ChatServerTest.java b/src/test/java/ru/lebedev/se/ChatServerTest.java new file mode 100644 index 0000000..383280f --- /dev/null +++ b/src/test/java/ru/lebedev/se/ChatServerTest.java @@ -0,0 +1,4 @@ +package ru.lebedev.se; + +public class ChatServerTest { +} diff --git a/src/test/java/ru/lebedev/se/TestMap.java b/src/test/java/ru/lebedev/se/TestMap.java new file mode 100644 index 0000000..01c3e2f --- /dev/null +++ b/src/test/java/ru/lebedev/se/TestMap.java @@ -0,0 +1,4 @@ +package ru.lebedev.se; + +public class TestMap { +} diff --git a/src/test/java/ru/lebedev/se/TestUUID.java b/src/test/java/ru/lebedev/se/TestUUID.java new file mode 100644 index 0000000..da9ee39 --- /dev/null +++ b/src/test/java/ru/lebedev/se/TestUUID.java @@ -0,0 +1,4 @@ +package ru.lebedev.se; + +public class TestUUID { +} From 03b1a76e4c548b1da736b11c5ce2d3ce484de0ef Mon Sep 17 00:00:00 2001 From: CentnerMan <44133485+CentnerMan@users.noreply.github.com> Date: Sat, 3 Nov 2018 01:09:16 +0300 Subject: [PATCH 18/25] final --- .../java/ru/lebedev/se/chat/server/ChatServer.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/main/java/ru/lebedev/se/chat/server/ChatServer.java b/src/main/java/ru/lebedev/se/chat/server/ChatServer.java index 5b3ad4e..7ef0a8a 100644 --- a/src/main/java/ru/lebedev/se/chat/server/ChatServer.java +++ b/src/main/java/ru/lebedev/se/chat/server/ChatServer.java @@ -1,4 +1,16 @@ package ru.lebedev.se.chat.server; +import ru.lebedev.se.chat.server.api.ChatService; +import ru.lebedev.se.chat.server.service.ChatServiceBean; + +import javax.xml.ws.Endpoint; + public class ChatServer { + + public static void main(String[] args) { + final ChatService service = new ChatServiceBean(); + service.register("admin", "admin"); + service.register("test", "test"); + Endpoint.publish("http://localhost:8080/ChatService?wsdl",service); + } } From 73f29fe66a29e8a9064196820863b785afff181d Mon Sep 17 00:00:00 2001 From: CentnerMan <44133485+CentnerMan@users.noreply.github.com> Date: Sat, 3 Nov 2018 01:09:31 +0300 Subject: [PATCH 19/25] tests --- .../java/ru/lebedev/se/ChatServerTest.java | 71 ++++++++++++++++++- src/test/java/ru/lebedev/se/TestMap.java | 15 ++++ src/test/java/ru/lebedev/se/TestUUID.java | 9 +++ 3 files changed, 94 insertions(+), 1 deletion(-) diff --git a/src/test/java/ru/lebedev/se/ChatServerTest.java b/src/test/java/ru/lebedev/se/ChatServerTest.java index 383280f..e304b36 100644 --- a/src/test/java/ru/lebedev/se/ChatServerTest.java +++ b/src/test/java/ru/lebedev/se/ChatServerTest.java @@ -1,4 +1,73 @@ package ru.lebedev.se; +import org.junit.Assert; +import org.junit.Test; +import ru.lebedev.se.chat.server.api.ChatService; +import ru.lebedev.se.chat.server.model.Session; +import ru.lebedev.se.chat.server.service.ChatServiceBean; + public class ChatServerTest { -} + + @Test + public void testRegister() { + final ChatService service = new ChatServiceBean(); + Assert.assertTrue(service.register("admin", "admin")); + Assert.assertFalse(service.register("admin", "admin")); + } + + @Test + public void testSignIn() { + final ChatService service = new ChatServiceBean(); + Assert.assertNull(service.signIn("admin", "admin")); + service.register("admin", "admin"); + Assert.assertNotNull(service.signIn("admin", "admin")); + } + + @Test + public void testSignOut() { + final ChatService service = new ChatServiceBean(); + service.register("admin", "admin"); + + final Session sessionAdmin = service.signIn("admin", "admin"); + Assert.assertNotNull(sessionAdmin); + Assert.assertNotNull(service.getUser(sessionAdmin)); + service.signOut(sessionAdmin); + Assert.assertNull(service.getUser(sessionAdmin)); + } + + @Test + public void testSendBroadcast() { + final ChatService service = new ChatServiceBean(); + service.register("admin", "admin"); + service.register("test", "test"); + service.register("noname", "nopass"); + + final Session sessionAdmin = service.signIn("admin", "admin"); + service.sendBroadcast(sessionAdmin, "Hello world!"); + Assert.assertTrue(service.getMessages(sessionAdmin).isEmpty()); + + final Session sessionTest = service.signIn("test", "test"); + Assert.assertFalse(service.getMessages(sessionTest).isEmpty()); + Assert.assertTrue(service.getMessages(sessionTest).isEmpty()); + + final Session sessionNoname = service.signIn("noname", "nopass"); + Assert.assertFalse(service.getMessages(sessionNoname).isEmpty()); + Assert.assertTrue(service.getMessages(sessionNoname).isEmpty()); + } + + @Test + public void testSendMessage() { + final ChatService service = new ChatServiceBean(); + service.register("admin", "admin"); + service.register("test", "test"); + + final Session sessionAdmin = service.signIn("admin", "admin"); + service.sendMessage(sessionAdmin, "test", "Hello world!"); + Assert.assertTrue(service.getMessages(sessionAdmin).isEmpty()); + + final Session sessionTest = service.signIn("test", "test"); + Assert.assertFalse(service.getMessages(sessionTest).isEmpty()); + Assert.assertTrue(service.getMessages(sessionTest).isEmpty()); + + } +} \ No newline at end of file diff --git a/src/test/java/ru/lebedev/se/TestMap.java b/src/test/java/ru/lebedev/se/TestMap.java index 01c3e2f..1c2ffb3 100644 --- a/src/test/java/ru/lebedev/se/TestMap.java +++ b/src/test/java/ru/lebedev/se/TestMap.java @@ -1,4 +1,19 @@ package ru.lebedev.se; +import org.junit.Test; + +import java.util.HashMap; +import java.util.Map; + public class TestMap { + + @Test + public void test() { + final Map map = new HashMap<>(); + map.put("100", "Ivanoff"); + map.put("101", "Petroff"); + map.put("102", "Sidoroff"); + + System.out.println(map.get("102")); + } } diff --git a/src/test/java/ru/lebedev/se/TestUUID.java b/src/test/java/ru/lebedev/se/TestUUID.java index da9ee39..cd4f84d 100644 --- a/src/test/java/ru/lebedev/se/TestUUID.java +++ b/src/test/java/ru/lebedev/se/TestUUID.java @@ -1,4 +1,13 @@ package ru.lebedev.se; +import org.junit.Test; + +import java.util.UUID; + public class TestUUID { + @Test + public void test(){ + System.out.println(UUID.randomUUID().toString()); + System.out.println(System.currentTimeMillis()); + } } From febcc12c1048f632279b0d6d91b2e2ad82301e2f Mon Sep 17 00:00:00 2001 From: CentnerMan <44133485+CentnerMan@users.noreply.github.com> Date: Sun, 4 Nov 2018 23:34:02 +0300 Subject: [PATCH 20/25] - --- src/main/java/ru/lebedev/se/App.java | 14 -------------- 1 file changed, 14 deletions(-) delete mode 100644 src/main/java/ru/lebedev/se/App.java diff --git a/src/main/java/ru/lebedev/se/App.java b/src/main/java/ru/lebedev/se/App.java deleted file mode 100644 index 3ffb09b..0000000 --- a/src/main/java/ru/lebedev/se/App.java +++ /dev/null @@ -1,14 +0,0 @@ -package ru.lebedev.se; - -/** - * @author Анатолий Лебедев - * @version 1.0.0 - */ - -public class App -{ - public static void main(String[] args) { - System.out.println("Привет, мир!"); - } - -} From 3302545dba35d4401060480b11f5e98e8948814c Mon Sep 17 00:00:00 2001 From: CentnerMan <44133485+CentnerMan@users.noreply.github.com> Date: Sun, 4 Nov 2018 23:34:46 +0300 Subject: [PATCH 21/25] smart cleaning --- src/main/java/ru/lebedev/se/chat/client/ClientService.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/java/ru/lebedev/se/chat/client/ClientService.java b/src/main/java/ru/lebedev/se/chat/client/ClientService.java index 01009dc..91f8d9b 100644 --- a/src/main/java/ru/lebedev/se/chat/client/ClientService.java +++ b/src/main/java/ru/lebedev/se/chat/client/ClientService.java @@ -80,8 +80,6 @@ public void run() { case CMD_BROADCAST: broadcast(); break; - - } System.out.println(); } From 686417e0885d7ff9ad13c6976919fc9a8be23425 Mon Sep 17 00:00:00 2001 From: CentnerMan <44133485+CentnerMan@users.noreply.github.com> Date: Sun, 4 Nov 2018 23:34:56 +0300 Subject: [PATCH 22/25] smart cleaning --- .../ru/lebedev/se/chat/server/service/ChatServiceBean.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/main/java/ru/lebedev/se/chat/server/service/ChatServiceBean.java b/src/main/java/ru/lebedev/se/chat/server/service/ChatServiceBean.java index bf3ed0e..307eb02 100644 --- a/src/main/java/ru/lebedev/se/chat/server/service/ChatServiceBean.java +++ b/src/main/java/ru/lebedev/se/chat/server/service/ChatServiceBean.java @@ -10,7 +10,6 @@ import javax.jws.WebMethod; import javax.jws.WebService; -import javax.jws.soap.SOAPBinding; import java.util.*; @WebService(endpointInterface = "ru.lebedev.se.chat.server.api.ChatService") @@ -70,7 +69,6 @@ public List getMessages(final Session session) { public void sendBroadcast(final Session session, final String message) { final User user = sessionService.getUser(session); messageService.sendBroadCast(user.login, message); - } @Override @@ -86,6 +84,5 @@ public void sendMessage(final Session session, final String login, final String public void clearMessages(Session session) { final User user = sessionService.getUser(session); messageService.cleanMessage(user.login); - } } From 865a6bd055622986d6878c5e463e9897fcb11d72 Mon Sep 17 00:00:00 2001 From: CentnerMan <44133485+CentnerMan@users.noreply.github.com> Date: Sun, 4 Nov 2018 23:35:18 +0300 Subject: [PATCH 23/25] smart cleaning --- pom.xml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pom.xml b/pom.xml index 748503b..a2166b5 100644 --- a/pom.xml +++ b/pom.xml @@ -25,6 +25,12 @@ 4.11 test + + org.jetbrains + annotations-java5 + RELEASE + compile + From 069c1cc3d102c92816675a4a487ebf90c2b2e99c Mon Sep 17 00:00:00 2001 From: CentnerMan <44133485+CentnerMan@users.noreply.github.com> Date: Sun, 4 Nov 2018 23:35:51 +0300 Subject: [PATCH 24/25] final edition --- src/main/java/ru/lebedev/se/Employees.java | 23 +++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/src/main/java/ru/lebedev/se/Employees.java b/src/main/java/ru/lebedev/se/Employees.java index c2214b3..05a522c 100644 --- a/src/main/java/ru/lebedev/se/Employees.java +++ b/src/main/java/ru/lebedev/se/Employees.java @@ -1,19 +1,28 @@ package ru.lebedev.se; +import java.util.Scanner; + public class Employees { public static void main(String[] args) { + int edgeOfAge; Employee[] EmployeeArray = new Employee[5]; EmployeeArray[0] = new Employee("Иванов Иван", "Инженер", "ivanov@work.ru", "+78121111111", 30000, 45); - EmployeeArray[1] = new Employee("Петров Петр", "Менеджер", "+78122222222", 40000, 38); + EmployeeArray[1] = new Employee("Петров Петр", "МеНеДжЕР", "+78122222222", 40000, 38); EmployeeArray[2] = new Employee("Сидоров Сидор", "Бухгалтер", 45000, 42); - EmployeeArray[3] = new Employee("Неизвестный Эрнст", "Директор", "+74952222222",100000, 60); - EmployeeArray[4] = new Employee("Львов Лев", "Программист", "lviv@work.ru", "+78125555555", 14000, 31); + EmployeeArray[3] = new Employee("Неизвестный Эрнст", "ДиРЕктОр", "+74952222222", 100000, 60); + EmployeeArray[4] = new Employee("Львов Лев", "Программист", "lviv@work.ru", "+78125555555", 14000, 24); + + // Запросим пользователя о возрасте сотрудников, старше которого выводить на экран + Scanner sc = new Scanner(System.in); + System.out.println("Введите возраст, сотрудников старше которого выводить на экран: "); + edgeOfAge = sc.nextInt(); + System.out.println(); + sc.close(); - for (int i = 0; i < EmployeeArray.length; i++) { - if (EmployeeArray[i].getAge() > 40) { - EmployeeArray[i].printInfo(); - } + // Выводим сотрудников + for (Employee employee : EmployeeArray) { + if (employee.getAge() > edgeOfAge) employee.printInfo(); } } } From c1af43208300f3fae362075dd213d3cfd0278a3d Mon Sep 17 00:00:00 2001 From: CentnerMan <44133485+CentnerMan@users.noreply.github.com> Date: Sun, 4 Nov 2018 23:36:01 +0300 Subject: [PATCH 25/25] final edition --- src/main/java/ru/lebedev/se/Employee.java | 54 ++++++++++++++++------- 1 file changed, 37 insertions(+), 17 deletions(-) diff --git a/src/main/java/ru/lebedev/se/Employee.java b/src/main/java/ru/lebedev/se/Employee.java index 3d759a1..11432c5 100644 --- a/src/main/java/ru/lebedev/se/Employee.java +++ b/src/main/java/ru/lebedev/se/Employee.java @@ -1,19 +1,25 @@ package ru.lebedev.se; + public class Employee { private String fio; private String position; - private String email = "ouroffice@ourwork.com"; // Если нет своей электронной почты, ставим рабочую - private String phoneNumber = "+78122233322"; // Если нет телефона - ставим рабочий + private String email; + private String phoneNumber; private int salary; private int age; + private final static String EMAIL = "ouroffice@ourwork.com"; // Если нет своей электронной почты, ставим рабочую + private final static String PHONE = "+78122233322"; // Если нет телефона - ставим рабочий + + //------------------------------------------------------------------------------------------------------------ + // Формируем простые сеттеры и геттеры public void setFio(String fio) { this.fio = fio; } public String getFio() { - return fio; + return fio.toUpperCase(); // Выводим в верхнем регистре } public void setPosition(String position) { @@ -21,7 +27,7 @@ public void setPosition(String position) { } public String getPosition() { - return position; + return toTitleCase(position); // Выводим строчными буквами с первой заглавной } public void setEmail(String email) { @@ -52,13 +58,16 @@ public void setAge(int age) { if (age > 0) this.age = age; else - this.age = age *(-1); // Переводим отрицательный возраст в положительный + this.age = age * (-1); // Переводим отрицательный возраст в положительный, считаем опечаткой } public int getAge() { return age; } + //------------------------------------------------------------------------------------------------------------ + // формируем конструкторы + public Employee(String fio, String position, String email, String phoneNumber, int salary, int age) { setFio(fio); setPosition(position); @@ -69,26 +78,37 @@ public Employee(String fio, String position, String email, String phoneNumber, i } public Employee(String fio, String position, String phoneNumber, int salary, int age) { - setFio(fio); - setPosition(position); - setPhoneNumber(phoneNumber); - setSalary(salary); - setAge(age); + this(fio, position, EMAIL, phoneNumber, salary, age); } public Employee(String fio, String position, int salary, int age) { - setFio(fio); - setPosition(position); - setSalary(salary); - setAge(age); + this(fio, position, EMAIL, PHONE, salary, age); + } + + //------------------------------------------------------------------------------------------------------------ + // Преобразуем первый символ строки в верхний регистр, остальные в нижний + + public static String toTitleCase(String s) { + if (s.isEmpty()) { + return s; + } + return s.substring(0, 1).toUpperCase() + s.substring(1).toLowerCase(); } + //------------------------------------------------------------------------------------------------------------ + // Выводим данные работника с помощью геттеров для форматирования + public void printInfo() { - System.out.println("Ф.И.О.: " + this.fio + ", Должность: " + this.position + ", Электронная почта: " - + this.email + ", Телефон: " + this.phoneNumber + ", Зарплата: " + this.salary - + ", Возраст: " + this.age); + System.out.println("Ф.И.О.: " + getFio() + ", Должность: " + getPosition() + ", Электронная почта: " + + getEmail() + ", Телефон: " + getPhoneNumber() + ", Зарплата: " + getSalary() + + ", Возраст: " + getAge()); } + // Выводим данные работника как введено + public void printInfoOriginal() { + System.out.println("Ф.И.О.: " + fio + ", Должность: " + position + ", Электронная почта: " + + email + ", Телефон: " + phoneNumber + ", Зарплата: " + salary + ", Возраст: " + age); + } }