Aether Launcher — это инструмент для быстрой демонстрации и разработки клиентских приложений Aether. Он предоставляет готовое окружение (JDK 25, Gradle 9.1.0, Git) и простой веб-интерфейс для выполнения типовых операций.
- Выбор демо-проекта: Smart Hub, Chat, Point-to-Point.
- Клонирование репозитория
client-javaиз GitHub. - Сборка проекта одной кнопкой.
- Запуск сервиса и просмотр логов в реальном времени.
- Автоматическое определение UUID сервиса и генерация ссылки на GUI.
- Запуск эмулятора устройства (для Smart Hub) с передачей UUID сервиса.
- Остановка запущенных компонентов.
- Настройка рабочей директории через веб-интерфейс.
Лаунчер состоит из двух частей:
- Java-сервер (Launcher.java) — встроенный HTTP-сервер на основе
com.sun.net.httpserver. Обрабатывает запросы от веб-интерфейса, запускает процессы Gradle/Git и передаёт логи клиентам через Server-Sent Events. - Веб-интерфейс (index.html) — простая страница с кнопками для выполнения операций и областью для вывода логов.
| Метод | Путь | Описание |
|---|---|---|
| GET | / |
Отдаёт веб-интерфейс |
| GET | /api/logs |
Поток логов через SSE |
| POST | /api/select |
Выбрать проект (smarthub, chat, pointToPoint) |
| POST | /api/set-workspace |
Установить рабочую директорию |
| POST | /api/clone |
Клонировать репозиторий |
| POST | /api/build |
Собрать выбранный проект |
| POST | /api/run |
Запустить сервис |
| POST | /api/stop |
Остановить запущенный процесс |
| POST | /api/run-emulator |
Запустить эмулятор (только для Smart Hub) |
| POST | /api/stop-emulator |
Остановить эмулятор |
log— строка лога от выполняемого процесса.status— изменение статуса операции.error— сообщение об ошибке.uuid_found— обнаружен UUID запущенного сервиса.
docker build -t aether-launcher -f Dockerfile.launcher .docker run -d \
--name aether-launcher \
-p 8080:8080 \
-v /path/to/workspace:/workspace \
aether-launcher:latestЛаунчер будет доступен по адресу http://localhost:8080.
Демонстрация системы "Умный дом". Состоит из:
- Сервис (
SmartHubService) — регистрируется как клиент Aether, получает UUID и ждёт подключения GUI и эмуляторов. - GUI — веб-интерфейс на TypeScript, отображающий данные с устройств.
- Эмулятор устройства (
SmartDeviceEmulator) — генерирует случайные данные температуры и отправляет их сервису.
Пример P2P-чата на основе Aether. Позволяет отправлять сообщения между двумя клиентами.
Тестовый пример, демонстрирующий прямое взаимодействие между двумя клиентами.
- Выберите проект из выпадающего списка.
- Нажмите Clone для клонирования репозитория
client-java. - Нажмите Build для сборки выбранного модуля.
- Нажмите Run для запуска сервиса.
- Дождитесь появления UUID в логах — появится ссылка на GUI.
- (Для Smart Hub) Нажмите Emulator для запуска эмулятора устройства.
- Для остановки используйте кнопки Stop / Stop Emulator.
Любые изменения исходного кода в примонтированной директории /workspace можно пересобрать и перезапустить, нажав *
Stop* → Build → Run.