Feature/native image#3
Merged
Merged
Conversation
- 引入 getLayoutedElements 工具函数实现自动布局 - 移除手动位置计算逻辑,改用 dagre 自动布局算法 - 当节点缺少 positionX/positionY 属性时自动应用布局 - 支持对整张流程图进行 LR 方向的自动排列 - 优化节点解析逻辑以适配新的布局机制
- 新增 push-server-native-image 工作流用于构建和推送服务器 Docker 镜像 - 配置 JDK 25 环境和 Maven 缓存设置 - 设置 GitHub Token 和 Docker 凭据用于镜像推送 - 添加子模块递归检出配置 - 配置 Maven 认证设置以访问私有仓库 - 实现原生可执行文件的镜像构建和推送流程
- 添加新的 native.yml 工作流文件用于原生镜像测试 - 重命名推送服务器镜像任务为更明确的描述 - 调整 Maven 构建命令参数顺序以支持原生镜像构建 - 配置 Java 25 环境和 Maven 缓存设置 - 更新 Docker 镜像构建和推送配置参数
- 移除了对engine-test和server-test的依赖 - 删除了actions/checkout步骤以优化工作流执行
- 移除 Maven 设置配置步骤 - 在 Maven 命令中添加调试标志 (-X) - 保留原生镜像构建和推送功能 - 维持跳过测试的配置选项
- 将 JavaScript 执行引擎从 GraalVM 更改为 quickjs4j (QuickJS) - 移除 GraalVM 相关依赖并添加 quickjs4j 依赖 - 简化 RequestScriptContext 类,移除请求响应相关字段 - 更新测试用例中的数值断言以匹配新的计算结果 - 删除已废弃的 RequestScriptContext 测试方法
- 删除了 RequestScriptContext 类及其相关方法 - 移除了脚本执行上下文的数据封装功能 - 清理了项目中不再使用的上下文构建和同步逻辑
- 移除类末尾多余的空行以符合代码风格规范
- 添加 @RuntimeInitialize 注解确保运行时初始化 - 避免 SecureRandom 实例在 Native Image 构建期被嵌入 - 防止 GraalVM 中随机数种子值缓存导致的随机性失效问题 - 更新类文档说明运行时初始化的重要性
- 移除 ApiKeyGenerator 类上的 @RuntimeInitialize 注解 - 更新注释说明 Native Image 构建时的安全随机数配置要求 - 在 application.properties 中添加 quarkus.native.additional-build-args 配置 - 指定 ApiKeyGenerator 在运行时初始化避免构建期随机数实例错误
- 在application.properties中添加Native Image运行时初始化配置,解决SecureRandom静态字段构建问题 - 添加NTLMEngineImpl到运行时初始化列表,避免AWS SDK S3客户端构建错误 - 更新pom.xml依赖管理,添加quarkus-amazon-services-bom平台依赖 - 集成quarkus-amazon-s3依赖替换原有AWS SDK S3依赖 - 移除手动指定版本的AWS SDK S3依赖,统一使用平台BOM管理 - 调整pom.xml中依赖声明顺序,优化项目结构 - 修正codegen schema配置中的脚本导入格式,合并多行声明为单行
- 移除了 quarkus.native.additional-build-args 中多余的反斜杠转义 - 修正了构建配置以符合正确的参数格式要求 - 确保原生镜像构建时参数能够正确解析和传递
- 移除手动创建 S3Client 的代码,改用 Quarkus 注入的 S3Client - 更新 S3Backend 构造函数,接受注入的 S3Client 而不是凭据参数 - 修改 application.properties 中的 S3 配置方式,使用 quarkus.s3.* 属性 - 移除 NTLMEngineImpl 相关的运行时初始化配置 - 在 pom.xml 中添加 quarkus-amazon-s3 扩展依赖
- 将 quarkus.s3.sync-client.type 从 url-connection 更改为 url - 添加注释说明合法值包括 aws-crt、apache 和 url - 添加 software.amazon.awssdk:url-connection-client 依赖 - 移除关于 apache-client 导致 native image 构建错误的注释 - 优化 AWS SDK HTTP 客户端配置以避免 NTLMEngineImpl 问题
- 添加 io.dropwizard.metrics:metrics-core 依赖 - 该依赖在 native-image 构建时必需,因为 HikariPool 引用了 MetricRegistry - 配置为可选依赖以避免运行时冲突
- 在项目中引入 io.dropwizard.metrics:metrics-core 依赖 - 配置 metrics.version 属性为 3.2.5 - 将依赖设置为可选依赖 (optional=true) - 更新 Maven 依赖管理配置以包含新库
- 更新 HikariCP 可选依赖注释说明 - 添加 metrics-core 依赖用于原生镜像构建 - 添加 micrometer-core 依赖用于指标监控
- 移除主 pom.xml 中 metrics-core 和 micrometer-core 的可选依赖配置 - 在 native 配置文件中添加 HikariCP 构建时必需的依赖项 - 新增 metrics-healthchecks 依赖以支持 GraalVM native image 构建 - 添加详细注释说明 native image 构建时依赖解析的特殊要求 - 统一依赖管理,避免逐个补充缺失的引用类型
- 添加 resolveDriverClassName 方法解析 JDBC URL 对应的驱动类名 - 在 EngineConfig 中显式设置 HikariDataSource 的 driverClassName - 更新 SchemaRegistry 和 ProjectService 以使用新的驱动类解析逻辑 - 添加 SQLite、MySQL、PostgreSQL、Oracle、SQL Server 数据库驱动支持 - 修复 native image 环境下 DriverManager SPI 自动注册失效的问题
- 将驱动类名解析改为直接注册驱动实例到 DriverManager - 移除 Optional 返回值,改用 void 方法简化接口 - 添加 SQLite、MySQL、MariaDB 等数据库驱动的显式注册逻辑 - 实现驱动重复注册检查避免异常 - 在 SchemaRegistry 和 ProjectService 中统一使用新的驱动注册方法 - 修复 native image 中 JDBC 驱动 SPI 自动注册失效问题
- 移除通过 DriverManager 注册 JDBC 驱动的方式 - 添加直接创建底层 DataSource 的机制以绕过 SPI 自动注册 - 为 SQLite 和 MySQL/MariaDB 实现专用的数据源创建方法 - 更新 SchemaRegistry 和 ProjectService 使用新的数据源创建逻辑 - 在原生镜像环境中完全避免 DriverManager 的使用
- 添加了quarkus.http.cors.enabled配置项 - 允许跨域请求处理 - 提升API访问灵活性
- 替换所有测试类中的 HikariDataSource 为 AgroalDataSource - 更新 pom.xml 依赖,将 com.zaxxer.HikariCP 替换为 io.agroal.agroal-pool - 修改数据源初始化代码以使用 Agroal 配置方式 - 在 flexmodel-server 中创建 AgroalDataSourceFactory 工厂类统一管理数据源创建 - 重构 EngineConfig 中的数据源创建逻辑,移除 HikariCP 相关代码 - 更新 SchemaRegistry 中的数据源处理逻辑以支持 Agroal - 为不同数据库类型提供专门的连接配置处理
- 为 io.agroal.pool.DataSource 添加完整的构造函数和方法反射访问 - 修正 MySQL 数据源的元数据配置 - 移除测试中手动的 API 根路径前缀配置 - 更新测试资源配置以使用 Quarkus 自动注入的根路径
- 修改语法错误验证逻辑,从检查 SyntaxError 消息改为验证异常消息非空 - 更新除零运算测试预期结果,从 Double.POSITIVE_INFINITY 改为 null - 移除认证提供商列表相关测试方法 - 移除流程更新测试中关于项目ID传播的测试用例 - 修正触发器资源测试的基础路径配置
- 实现 FlexmodelNativeProcessor 通过 BuildStep 自动注册反射类 - 配置 Codegen 实体、DTO、模型定义等各类反射访问需求 - 集成 Jackson MixIn、流程引擎、业务组件反射支持 - 添加第三方库如 Auth0 JWT、MySQL JDBC、SQLite 等原生镜像支持 - 注册运行时重新初始化的类以解决构建期初始化问题 - 在 pom.xml 中添加 quarkus-core-deployment 依赖支持 BuildStep
- 添加 tryGetSerializedLambda 方法处理 native image 中 writeReplace 方法不可访问的情况 - 优化 getTargetClass 方法使用新的 lambda 提取逻辑并简化类加载策略 - 更新 getMethodName 方法以支持 native image 兼容性并提供详细错误信息 - 在 reachability-metadata.json 中添加 SerializedLambda 的可达性元数据配置 - 为 SFunction 类添加序列化支持配置 - 移除冗余的注释代码并改进异常处理逻辑
- 将注释从 ApiKeyGenerator 扩展到包含所有含静态 Random/SecureRandom 字段的类 - 添加 IdGenerator 到运行时初始化列表以避免 GraalVM 构建错误 - 调整配置格式以提高可读性
- 修改了 tryGetSerializedLambda 方法,增加多种策略查找 writeReplace 方法 - 添加注释说明在 GraalVM native image 中的特殊处理策略 - 在 application.properties 中启用序列化支持以确保 SFunction 正常工作 - 移除了 Maven 构建命令中的调试参数 -X 优化构建性能
- 移除 ApiKeyGenerator 类的运行时初始化配置 - 删除序列化支持启用选项 --enable-serialization - 保留 IdGenerator 类的运行时初始化配置 - 清理相关注释说明
- 添加 MySQL 连接器运行时初始化配置 - 增加 CJException 和 WrongArgumentException 的运行时初始化 - 优化原生镜像构建以避免随机实例错误 - 为 SQLite 开发测试环境添加 S3 服务禁用配置
- 移除手动注册 MySQL JDBC 反射配置,改用 quarkus-jdbc-mysql 扩展自动处理 - 保留 SQLite JDBC 的手动反射注册配置以支持原生驱动 - 从原生镜像运行时初始化列表中移除 MySQL 相关类 - 更新依赖配置以使用 Quarkus 官方 MySQL 扩展
- 在 FilterExpression 中添加 getFieldName 方法以获取字段名 - 在 TypedDSLQueryBuilder 中添加使用字段引用的排序方法 orderBy 和 orderByDesc - 在 TypedDSLUpdateBuilder 中添加使用字段引用的设置方法 set - 修复 SchemaGenerator 中字段名映射,使用原始字段名而非变量名 - 统一数据库字段名格式,将 createTime/createdAt 等驼峰命名改为下划线格式 create_time/created_at - 更新多个仓库类中的字段排序逻辑以匹配数据库实际字段名
- 将硬编码的字符串字段名替换为类型安全的系统字段引用 - 统一使用 System.flowInstance.status 替代 "status" 字符串 - 使用 function.createdAt 替代 "created_at" 字符串进行排序 - 在定时任务仓库中使用 qrtzTrigger.triggerState 等类型安全字段 - 添加必要的静态导入以支持新的字段引用方式 - 提高代码的类型安全性和可维护性
- 在 TypedDSLQueryBuilder 中添加使用 FilterExpression 的 orderBy 方法 - 更新 ApiLogFmRepository 使用字段引用进行排序 - 修改 InstanceDataFmRepository 使用类型安全的字段引用排序 - 导入系统生成的 apiRequestLog 字段引用
- 注册 ScheduledFunctionExecutionJob 类的构造函数反射访问 - 添加 Quartz 调度器核心组件的完全反射访问权限 - 配置 DefaultThreadExecutor、StdSchedulerFactory 等关键类的元数据 - 添加 CronTriggerImpl 和 SimpleTriggerImpl 触发器实现的访问规则 - 配置 CascadingClassLoadHelper 和 SimpleThreadPool 的完整字段访问 - 确保内存脚本管理器的反射方法调用正常工作
- 在docker-compose.yml中添加QUARKUS_HTTP_LIMITS_MAX_BODY_SIZE环境变量 - 在application.properties中设置quarkus.http.limits.max-body-size为100M - 统一配置服务端请求体大小限制以避免上传文件时出现错误
- 添加 QuartzScheduler 运行时初始化配置 - 添加 StdSchedulerFactory 运行时初始化配置 - 修复多行参数格式以支持原生镜像构建
- 将Quartz调度器相关的初始化配置合并为单个条目 - 移除了重复的StdSchedulerFactory初始化配置 - 优化了native build args的结构以提高可读性
- 将静态 SecureRandom 字段改为方法内局部变量 - 避免 Native Image 构建期间因静态 Random 实例进入 image heap 导致的 GraalVM 错误 - 更新应用配置注释说明,移除对 ApiKeyGenerator 的运行时初始化要求 - 保留对 graphql.util.IdGenerator 和 org.quartz 的运行时初始化配置
- 将 Quartz 配置从手动初始化改为使用 Quarkus Quartz 扩展 - 移除手动创建 Scheduler 的代码,改用 @PostConstruct 初始化 - 从 application.properties 中移除原生 Quartz 依赖和配置 - 更新 pom.xml 依赖从 quartz-scheduler 切换到 quarkus-quartz - 优化测试用例中的触发器调度逻辑 - 简化调度器监听器注册流程
- 引入 ReentrantLock 用于触发器获取的互斥控制 - 添加 triggerAcquireLock 成员变量实现内存级锁 - 在 acquireNextTriggers 方法中添加锁获取逻辑 - 使用 try-finally 确保锁的正确释放 - 替代 SQLite 等数据库不支持的 SELECT ... FOR UPDATE 功能
- 对于AuthException类型的异常使用警告级别日志 - 保持其他业务异常的错误级别日志记录 - 避免认证异常触发过多错误日志干扰系统监控
- 添加 project.fml 文件到资源 glob 模式 - 添加 platform.fml 文件到资源 glob 模式 - 添加 dev_test.fml 文件到资源 glob 模式 - 为原生镜像构建增加 FML 配置文件支持 - 确保关键配置文件在原生镜像中正确加载 - 修复原生镜像环境下配置文件访问问题
- 将运行时重初始化类注册改为核心基础设施类注册 - 添加缓存、通用工具、配置、过滤器、Session、SQL、MongoDB、查询、解析器等包的反射配置 - 注册 ModelImportBundle、ModelRegistry、SchemaProvider 等核心类 - 新增第三方库类注册,包括 Gson、Guice、JZlib、MongoDB Driver、GraphQL 内部类等 - 移除 MySQL 连接清理线程的单独注册 - 为所有反射类添加构造函数、方法和字段的完整访问权限
- 删除 SerializedLambda 类型的序列化配置 - 删除 SFunction 类型的序列化配置 - 清理 reachability-metadata.json 中的冗余序列化规则
- 将 org.xerial.sqlite-jdbc 替换为 io.quarkiverse.jdbc.quarkus-jdbc-sqlite - 添加版本号 3.0.11 - 解决 Quarkus 3.x 平台移除扩展导致的依赖问题
- 移除手动注册 Agroal 连接池反射配置 - 添加注释说明 Quarkus Agroal 扩展会自动处理连接池反射 - 在 application.properties 中禁用 Quarkus 默认数据源配置 - 将 pom.xml 中的 agroal-pool 依赖替换为 quarkus-agroal 扩展 - 保持项目通过 EngineConfig 自行管理 AgroalDataSource 的方式不变
- 添加 Agroal 连接池相关类的反射注册 - 注册 ConnectionHandler 类及其数组类型 - 更新注释说明原生扩展覆盖范围限制
- 移除手动注册 ConnectionHandler 和 ConnectionHandler[] 类型 - 更新注释说明数组类型通过 reachability-metadata.json 处理 - 简化 MySQL JDBC 反射配置注释 - 调整 Caffeine 缓存内部类反射注释格式
- 移除 quarkus.datasource.active=false 配置项 - 将依赖从 quarkus-agroal 替换为 agroal-pool
- 移除了 java.lang.invoke.SerializedLambda 的序列化配置 - 移除了 dev.flexmodel.query.Expressions$SFunction 的序列化配置 - 保留了 dev.flexmodel.model.EntityDefinition 的序列化支持 - 简化了原生镜像构建的序列化配置文件结构
- 更新 API 文档中的 JDBC 数据源配置示例,使用 Agroal 替代 HikariDataSource - 修改连接池配置代码示例,采用 Agroal 的配置方式 - 在 flexmodel-core.md 中替换内存数据库配置的连接池实现 - 更新测试代码中的数据源初始化逻辑为 Agroal 实现 - 将 README.md 中的技术栈描述从 GraalVM JavaScript 改为 QuickJS - 移除 pom.xml 中已废弃的 metrics 相关依赖配置 - 更新网站组件中关于数据库连接池和 JavaScript 引擎的技术描述 - 清理注释中关于与 HikariCP 对齐的说明文字
- 将函数调用接口从 /api/runtime/projects/{projectId}/functions/{name} 迁移到 /api/projects/{projectId}/functions/{name}/invoke
- 移除 RuntimeFunctionResource 类并将调用逻辑合并到 FunctionResource 中
- 更新 flexmodel-sdk 依赖从 0.0.4 到 0.0.6 版本
- 更新 functions-runtime 包版本从 0.1 到 0.0.2
- 更新文档和前端界面中的 API 端点引用
- 移除原生镜像配置中的废弃类引用
- 移除 GenerationTool 中的 BuildItemSPIFileGenerator 调用 - 移除 SessionFactory 中的 processBuildItem 方法及调用 - 从 EngineConfig 的项目循环中移除 schemaRegistry.add 调用 - 将默认 schema 名称常量统一定义到 FlexmodelConfig 接口 - 移除 FmJobRepository 和 FmJobStore 中的重复常量定义 - 添加 FlexmodelApplication 主启动类 - 从配置文件中移除未使用的数据源配置项
- 将存储卷路径从根目录移动到 ./flexmodel-server/ 子目录 - 移除开发测试数据库相关环境变量配置 - 从配置文件中删除开发测试模式相关常量 - 在应用启动时注入并打印配置信息 - 更新 Git 忽略文件以匹配新的目录结构 - 修改启动日志消息从 "Starting..." 到 "started!"
- 在 application.properties 中添加文件日志记录配置,支持每日轮转保留 7 天 - 将 dev 和 test 环境的 SQLite 数据库配置移至主配置文件 - 更新 .gitignore 文件以正确忽略 logs、storage 和 database 目录 - 移除 application-dev.properties 和 application-test.properties 中的重复配置 - 统一日志格式为标准化的时间戳和级别显示格式
- 在 API 密钥创建表单中添加前端安全警告提示 - 更新英文本地化文件,增加 API 密钥前端警告文本 - 更新中文本地化文件,增加 API 密钥前端警告文本 - 修改构建流程,移除 Maven 配置步骤并更新原生镜像构建配置 - 移除废弃的 native.yml 工作流文件
- 在连接池配置中添加最大大小限制为5 - 重新排列方法链调用顺序以提高可读性 - 保持现有的内存数据库配置不变
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.