Введение
Разработка Flexberry Service Bus
ведётся на GitHub в открытых репозиториях как силами команды платформы Flexberry, так и при поддержке энтузиастов из сообщества.
Сервис шины
Адрес репозитория на GitHub: https://github.com/Flexberry/NewPlatform.Flexberry.ServiceBus.
Репозиторий с основными компонентами сервиса Flexberry Service Bus
, cодержит решение:
NewPlatform.Flexberry.ServiceBus.sln
- решение, включающее следующие проекты:NewPlatform.Flexberry.ServiceBus
- проект с реализацией компонентов.NewPlatform.Flexberry.ServiceBus.Objects
- проект с объектоной моделью.NewPlatform.Flexberry.ServiceBus.Components
- проект с интерфейсами компонентов.NewPlatform.Flexberry.ServiceBus.ClientTools
- проект с публичными интерфейсами.NewPlatform.Flexberry.ServiceBus.ConsoleHost
- проект с консольным приложением.NewPlatform.Flexberry.ServiceBus.WinServiceHost
- проект с приложением в виде службы.NewPlatform.Flexberry.ServiceBus.Tests
- проект с unit-тестами.NewPlatform.Flexberry.ServiceBus.IntegratedTests
- проект с интеграционными тестами.
В этом же репозитории располагаются nuspec-файлы, которые используются для создания NuGet-пакетов шины, использующихся в административном приложении.
SQL-скрипты для создания базы данных сервисной шины также располагаются в этом репозитории: https://github.com/Flexberry/NewPlatform.Flexberry.ServiceBus/tree/develop/Flexberry%20Service%20Bus/SQL.
Файлы конфигурации и скрипты, использующиеся для создания Docker-образов flexberry-service-bus
и flexberry-service-bus-postgres-db
располагаются в папке Docker этого же репозитория.
Административное приложение
OData-backend административного приложения шины
Адрес репозитория на GitHub: https://github.com/Flexberry/NewPlatform.Flexberry.ServiceBus.Editor.
NewPlatform.Flexberry.ServiceBus.Editor
- ASP.NET приложение для доступа к объектамFlexberry Service Bus
по стандартуOData
.
Файлы конфигурации и скрипты, использующиеся для создания Docker-образа flexberry-service-bus-editor
располагаются в папке Docker этого же репозитория.
ember-addon административного приложения шины
Адрес репозитория на GitHub: https://github.com/Flexberry/ember-flexberry-service-bus.
Ember-addon содержит реализацию основных возможностей по управлению Flexberry Service Bus
. Предназначен для встраивания интерфейса управления шиной в конечные приложения, создаваемые на платформе Flexberry.
ember-приложение административного приложения шины
Адрес репозитория на GitHub: https://github.com/Flexberry/flexberry-service-bus-editor.
Приложение для управления Flexberry Service Bus
, реализованое с использованием аддона ember-flexberry-service-bus
. В качестве backend-части используется ASP.NET приложение NewPlatform.Flexberry.ServiceBus.Editor
. Упаковывается в Docker-образ flexberry-service-bus-editor
вместе с OData-backend.
Примеры адаптеров
Адрес репозитория на GitHub: https://github.com/Flexberry/NewPlatform.Flexberry.ServiceBus.Samples.
Репозиторий содержит пример реализации различных вариантов адаптеров для шины.
Процесс разработки
Процесс разработки основан на gitflow.
Issues и Pull requests
Обнаруженные проблемы в шине фиксируются в Issues
соответствующего репозитория. Приветствуются исправления проблем отправленные в виде Pull request
(PR) в ветку develop
.
Запросы на крупные изменения в Flexberry Service Bus
следует оформлять в RFC-репозитории платформы.
Тестирование компонентов платформы
Проекты на C# содержат тесты:
- Автономные юнит-тесты - выполняются на Travis-CI по каждому коммиту и PR.
- Интеграционные юнит-тесты - требуют для исполнения доступ к нескольким СУБД и исполняются разработчиками, а также на сервере, подготавливающем NuGet-пакеты.
Проекты на EmberJS содержат тесты, исполняющиеся на Travis-CI по каждому коммиту и PR.
Автоматическая сборка Docker-образов
-
Docker-образ flexberry-service-bus-postgres-db
Для запуска автоматической сборки необходимо создать git tag в проекте https://github.com/Flexberry/NewPlatform.Flexberry.ServiceBus.
Примеры названия тэгов:1.0.0-alpha01-postgresql-db
или1.0.0-postgresql-db
. В результате будут созданы 2 docker tag ссылающиеся на один и тот же образ. Первый с именем1.0.0-alpha01
или1.0.0
. Второй с именемlatest
. -
Docker-образ flexberry-service-bus
Для запуска автоматической сборки необходимо создать git tag в проекте https://github.com/Flexberry/NewPlatform.Flexberry.ServiceBus.
Примеры названия тэгов:1.0.0-alpha01-service
или1.0.0-service
.
В результате будут созданы 2 docker tag ссылающиеся на один и тот же образ. Первый с именем1.0.0-alpha01
или1.0.0
. Второй с именемlatest
. -
Docker-образ flexberry-service-bus-editor
Для запуска автоматической сборки необходимо выполнить 2 шага, последовательность шагов важна.
3.1 В ember-проекте https://github.com/Flexberry/flexberry-service-bus-editor заведена специальная веткаdocker-release
, с которой выполняется сборка фронтенда для docker-образа, соответственно нужно смержить изменения в веткуdocker-release
чтобы они попали в docker-образ.
3.2 Создать git tag в проекте https://github.com/Flexberry/NewPlatform.Flexberry.ServiceBus.Editor. Примеры названия тэгов:1.0.0-alpha01-bus-editor
или1.0.0-bus-editor
.
В результате будут созданы 2 docker tag ссылающиеся на один и тот же образ. Первый с именем1.0.0-alpha01
или1.0.0
. Второй с именемlatest
.
Стиль кода
При разработке Flexberry Service Bus
применяется общий для платформы Flexberry подход к оформлению кода, которого следует придерживаться, чтобы PR были успешно приняты.