Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Aether Launcher

Aether Launcher — это инструмент для быстрой демонстрации и разработки клиентских приложений Aether. Он предоставляет готовое окружение (JDK 25, Gradle 9.1.0, Git) и простой веб-интерфейс для выполнения типовых операций.

Возможности

  • Выбор демо-проекта: Smart Hub, Chat, Point-to-Point.
  • Клонирование репозитория client-java из GitHub.
  • Сборка проекта одной кнопкой.
  • Запуск сервиса и просмотр логов в реальном времени.
  • Автоматическое определение UUID сервиса и генерация ссылки на GUI.
  • Запуск эмулятора устройства (для Smart Hub) с передачей UUID сервиса.
  • Остановка запущенных компонентов.
  • Настройка рабочей директории через веб-интерфейс.

Архитектура

Лаунчер состоит из двух частей:

  1. Java-сервер (Launcher.java) — встроенный HTTP-сервер на основе com.sun.net.httpserver. Обрабатывает запросы от веб-интерфейса, запускает процессы Gradle/Git и передаёт логи клиентам через Server-Sent Events.
  2. Веб-интерфейс (index.html) — простая страница с кнопками для выполнения операций и областью для вывода логов.

HTTP API

Метод Путь Описание
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 Остановить эмулятор

SSE-события

  • log — строка лога от выполняемого процесса.
  • status — изменение статуса операции.
  • error — сообщение об ошибке.
  • uuid_found — обнаружен UUID запущенного сервиса.

Сборка и запуск

Сборка Docker-образа

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.

Демо-проекты

Smart Hub

Демонстрация системы "Умный дом". Состоит из:

  • Сервис (SmartHubService) — регистрируется как клиент Aether, получает UUID и ждёт подключения GUI и эмуляторов.
  • GUI — веб-интерфейс на TypeScript, отображающий данные с устройств.
  • Эмулятор устройства (SmartDeviceEmulator) — генерирует случайные данные температуры и отправляет их сервису.

Chat

Пример P2P-чата на основе Aether. Позволяет отправлять сообщения между двумя клиентами.

Point-to-Point

Тестовый пример, демонстрирующий прямое взаимодействие между двумя клиентами.

Рабочий процесс

  1. Выберите проект из выпадающего списка.
  2. Нажмите Clone для клонирования репозитория client-java.
  3. Нажмите Build для сборки выбранного модуля.
  4. Нажмите Run для запуска сервиса.
  5. Дождитесь появления UUID в логах — появится ссылка на GUI.
  6. (Для Smart Hub) Нажмите Emulator для запуска эмулятора устройства.
  7. Для остановки используйте кнопки Stop / Stop Emulator.

Любые изменения исходного кода в примонтированной директории /workspace можно пересобрать и перезапустить, нажав * Stop* → BuildRun.