Skip to content

DonHalkon/test2pay

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Сборка

mvn clean package

Для демонстрации использован докер. Запуск:

mvn docker-compose:up

Запуск БД для тестовых целей (из директории docker):

docker-compose up postgres

* в контейнере для этого открыт порт 5432 ##Описание

####Ввод и проверка формы Форма отпавляется в webapp повторно валидируется (в случае неудачи, возвращиется обратно), затем сформированный объект отправляется в testejb, там он помещается в очередь txrequest и сервис ждет ответа из очереди txresponse (таймаут выставлен на 5 с из головы, используется селектор, чтобы получить ответ только на отправленное сообщение). Из очереди txrequest MDB в processejb достает сообщение, и с помощью hibernate JPA сохранаяет объект в БД, затем отправляет ответ в очередь txresponse (request-reply pattern). Сервис из testejb получает это сообщение и выдает результат в лог.

* приложение стратует с парметром hibernate.hbm2ddl.auto = create.

* во второй части не указано как должен вести себя веб сервис после вызова метода testejb, поэтому после прохождения валидаций он возвращается обратно на страницу создания ордера с сообщением 'success' независио от результатов работы других сервисов. (было удобно для создания несколькоих ордеров пачкой).

* order_id в форме немного странное поле. По хорошему приложение само должно присваивать id сущностям, которые хранаться в БД (id введение вручную могут дублироваться и меняться со временем), поэтому в EOrder`e созданополе id.

* веб-сервис не должен напрямую ходить в базу (описано в первой части) для получения списка заказов, этот функционал вынесен на самый нижний уровень (processejb) и веб-серис обращается к нему (т.к. testejb общается с processejb только через очередь) (не самое лучшее решение, но это сделано, для сохранения возможности получение всего списка заказов на фронте).

* request-reply pattern можно было бы проще реализовать через apache camel. Для этого требуется любо скачивать и устанавливать очень "тяжелый" патч, либо использовать кастомнуй докер образ (wildflyext/wildfly-camel).

Вывод всез заказов

Запрос отправляется в testweb, testweb обращается к репозиторию из processejb за всеми заказами. В идеале это должно быть реализовано через пагинацию, чтобы не тянуть всю базу (не имеет смысла реализовывать в тестовом задании).

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published