Whirl Platform - это программа для создания приложений для разработчиков баз данных, которая упрощает создание веб-приложений. Она предоставляет инструменты WYSIWYG для создания пользовательских интерфейсов, тесно связанных с данными базы данных и бизнес-логикой. Создание не требует написания логики на стороне сервера приложений или клиента, вся логика может быть выполнена на стороне базы данных.
Платформа находится в состоянии производства и используется в более чем двадцати коммерческих приложениях с закрытым исходным кодом.
Вы можете попробовать Whirl Platform на нашем демо-сервере.
Сервер: Admin Application
Имя пользователя: whirl-admin
Пароль: password
Сервер: Editor
Имя пользователя: whirl-admin
Пароль: password
Самый быстрый способ запустить платформу - использовать docker compose, расположенный в папке docker
.
Linux:
cd docker
TAG=v0.4.0 docker compose --profile image --project-name whirl up
Windows:
cd docker
set TAG=v0.4.0
docker compose --profile image --project-name whirl up
Это запустит платформу с конфигурацией по умолчанию и базой данных по умолчанию.
Вы можете открыть приложение в браузере по url http://localhost:8090/app и http://localhost:8090/editor для редактора.
Сначала необходимо создать базу данных для хранения данных платформы.
PostgreSQL должен быть настроен как локальная СУБД на порт 5432. SQL-скрипты для создания базы метаданных следующие
CREATE ROLE whirl WITH LOGIN PASSWORD 'password';
CREATE DATABASE whirl OWNER whirl;
GRANT ALL PRIVILEGES ON DATABASE whirl to whirl;
\c whirl -- подключитесь к базе данных whirl как суперпользователь и выполните следующие команды
CREATE SCHEMA whirl AUTHORIZATION whirl;
NOTE: Если вы используете PostgreSQL 12 или ниже, вы можете сначала вручную установить расширение 'hstore'..
Проект требует Java 8, более высокие версии пока не поддерживаются. Также, для корректной работы необходима установка Node.js версии 21.2.0 или выше ### ### ###
Чтобы подготовить зависимости для запуска платформы в режиме разработки, необходимо собрать предварительные условия:
mvn clean install -Dgwt.skipCompilation=true -DskipTests
Команда для запуска бэкенда на сервере Tomcat следующая:
cd whirl-app
mvn compile war:exploded cargo:run -pl whirl-app-server -am -P jdbc-postgresql,config-postgresql,local-store
Мы используем GWT для разработки фронтенда с tbroyer Maven GWT plugin для управления GWT модулями.
Команда для запуска фронтенда в режиме dev следующая
cd whirl-app
mvn gwt:codeserver -pl whirl-app-client -am
После выполнения команды приложение будет доступно по адресу http://localhost:8090/app. Фронтенд-часть компилируется по требованию.
Команды для запуска бэкенда:
cd whirl-editor
mvn compile war:exploded cargo:run -pl whirl-editor-server -am -P jdbc-postgresql,config-postgresql,local-store
Команды для запуска фронтенда:
cd whirl-editor
mvn gwt:codeserver -pl whirl-editor-client -am
Редактор будет доступен по адресу http://localhost:8091/editor/.
Пример: Функция, которая принимает два параметра (сообщение и тип окна) и выводит окно в зависимости от этих параметров.
CREATE OR REPLACE FUNCTION whirl_admin.show_message(p_message_text text, p_message_type text)
возврат текста
LANGUAGE plpgsql
AS $function$.
объявить
v_version varchar(2048);
v_result whirl.function_result;
НАЧАЛО
select version()
в v_version;
v_result.title := 'Сообщение
v_result.message := p_message_text;
v_result.message_type := p_message_type;
return whirl.as_result(v_result);
END;
функция
;
Входящие параметры функции
p_message_text текст
Переменные в теле функции
v_parameter_type varchar(4000);
Ссылки на другие таблицы (имя столбца в другой таблице)
r_whirl_users
Windows
Проблема:
После запуска остаются 2 процесса, занимающие порты 9876
и 9877
.
Решение проблемы:
Необходимо завершить процессы под названием OpenJDK Platform binary
. Так же вы можете запустить stop_listening.bat
, который ищет процессы с этими портами и убивает их.
Поскольку клиентский код платформы Whirl в основном основан на библиотеке Sencha GXT, он лицензируется по GPL v3 лицензия.