7.0.0升级详细说明及步骤

开发和运行环境服务升级

1. 安装JDK17

点击打开JDK17下载页面

根据本地开发系统环境选择合适的安装包进行下载并使用

注意事项:

  1. 安装jdk17
  2. JAVA_HOME/PATH 环境变量配置

2. RocketMQ 升级

推荐升级至 4.8.x 版本

点击下载4.8.0版本

注:若 RocketMQ 版本低于 4.8.x 版本,需进行升级,否则无法正常运行在 JDK17 环境中。

支持程度 RocketMQ 版本 关键说明
基础运行兼容 4.8.0+ 首次适配 JDK 9+ 核心运行环境,修复模块导出、反射限制等基础问题
完整特性兼容 4.9.0+ 解决 JDK 9+ 下的网络、线程、日志等细节兼容问题,生产环境可落地
官方明确标注支持 5.0.0+(5.x 全系列) 官网文档明确声明支持 JDK 8/11/17(9/10 属于过渡版本,间接兼容)

对于无法升级 RocketMQ 版本的环境,可通过修改 runserver.shrunbroker.sh 运行脚本进行适配。在使用 cmd 脚本的运行环境中,可通过修改 runserver.cmdrunbroker.cmd 运行脚本进行适配。

下面提供了基于 4.5.2 版本修改后的 runserver.shrunbroker.sh 脚本进行参考。
修改运行脚本仅适用于无法升级中间件版本的特殊环境,下面提供的修改后的脚本,只能保证收发消息功能正常,无法保证其他功能的正常使用。

核心变更内容:

  1. JAVA_OPT 配置使用 --add-opens 参数以支持非模块化内置包在运行代码中的使用。
  2. 移除 JDK17 不再支持的其他 JVM 参数。
runserver.sh
#!/bin/sh

# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

#===========================================================================================
# Java Environment Setting
#===========================================================================================
error_exit ()
{
    echo "ERROR: $1 !!"
    exit 1
}

[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=$HOME/jdk/java
[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/java
[ ! -e "$JAVA_HOME/bin/java" ] && error_exit "Please set the JAVA_HOME variable in your environment, We need java(x64)!"

export JAVA_HOME
export JAVA="$JAVA_HOME/bin/java"
export BASE_DIR=$(dirname $0)/..
export CLASSPATH=.:${BASE_DIR}/lib/*:${BASE_DIR}/conf:${CLASSPATH}

#===========================================================================================
# JVM Configuration
#===========================================================================================
# The RAMDisk initializing size in MB on Darwin OS for gc-log
DIR_SIZE_IN_MB=600

choose_gc_log_directory()
{
    case "`uname`" in
        Darwin)
            if [ ! -d "/Volumes/RAMDisk" ]; then
                # create ram disk on Darwin systems as gc-log directory
                DEV=`hdiutil attach -nomount ram://$((2 * 1024 * DIR_SIZE_IN_MB))` > /dev/null
                diskutil eraseVolume HFS+ RAMDisk ${DEV} > /dev/null
                echo "Create RAMDisk /Volumes/RAMDisk for gc logging on Darwin OS."
            fi
            GC_LOG_DIR="/Volumes/RAMDisk"
        ;;
        *)
            # check if /dev/shm exists on other systems
            if [ -d "/dev/shm" ]; then
                GC_LOG_DIR="/dev/shm"
            else
                GC_LOG_DIR=${BASE_DIR}
            fi
        ;;
    esac
}

choose_gc_log_directory

# JAVA_OPT="${JAVA_OPT} -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
JAVA_OPT="${JAVA_OPT} -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m \
    --add-opens=java.base/java.lang=ALL-UNNAMED \
    --add-opens=java.base/java.lang.annotation=ALL-UNNAMED \
    --add-opens=java.base/java.lang.constant=ALL-UNNAMED \
    --add-opens=java.base/java.lang.invoke=ALL-UNNAMED \
    --add-opens=java.base/java.lang.module=ALL-UNNAMED \
    --add-opens=java.base/java.lang.ref=ALL-UNNAMED \
    --add-opens=java.base/java.lang.reflect=ALL-UNNAMED \
    --add-opens=java.base/java.lang.runtime=ALL-UNNAMED \
    --add-opens=java.base/java.io=ALL-UNNAMED \
    --add-opens=java.base/java.lang=ALL-UNNAMED \
    --add-opens=java.base/java.math=ALL-UNNAMED \
    --add-opens=java.base/java.net=ALL-UNNAMED \
    --add-opens=java.base/java.nio=ALL-UNNAMED \
    --add-opens=java.base/java.security=ALL-UNNAMED \
    --add-opens=java.base/java.text=ALL-UNNAMED \
    --add-opens=java.base/java.time=ALL-UNNAMED \
    --add-opens=java.base/java.util=ALL-UNNAMED \
    --add-opens=java.xml/com.sun.org.apache.xpath.internal.jaxp=ALL-UNNAMED \
    --add-opens=java.base/jdk.internal.ref=ALL-UNNAMED \
    --add-opens=java.base/jdk.internal.access=ALL-UNNAMED"

# JAVA_OPT="${JAVA_OPT} -XX:+IgnoreUnrecognizedVMOptions -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+CMSClassUnloadingEnabled -XX:SurvivorRatio=8  -XX:-UseParNewGC"
JAVA_OPT="${JAVA_OPT} -XX:+IgnoreUnrecognizedVMOptions -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+CMSClassUnloadingEnabled -XX:SurvivorRatio=8  -XX:-UseParNewGC"
# JAVA_OPT="${JAVA_OPT} -verbose:gc -Xloggc:${GC_LOG_DIR}/rmq_srv_gc_%p_%t.log -XX:+PrintGCDetails"
JAVA_OPT="${JAVA_OPT} -verbose:gc -Xloggc:${GC_LOG_DIR}/rmq_srv_gc_%p_%t.log"
# JAVA_OPT="${JAVA_OPT} -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=30m"
JAVA_OPT="${JAVA_OPT} -XX:-OmitStackTraceInFastThrow"
JAVA_OPT="${JAVA_OPT} -XX:-UseLargePages"
# JAVA_OPT="${JAVA_OPT} -Djava.ext.dirs=${JAVA_HOME}/jre/lib/ext:${BASE_DIR}/lib"
# JAVA_OPT="${JAVA_OPT} -Djava.ext.dirs=${BASE_DIR}/lib"
#JAVA_OPT="${JAVA_OPT} -Xdebug -Xrunjdwp:transport=dt_socket,address=9555,server=y,suspend=n"
JAVA_OPT="${JAVA_OPT} ${JAVA_OPT_EXT}"
JAVA_OPT="${JAVA_OPT} -cp ${CLASSPATH}"

$JAVA ${JAVA_OPT} $@
runbroker.sh
#!/bin/sh

# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

#===========================================================================================
# Java Environment Setting
#===========================================================================================
error_exit ()
{
    echo "ERROR: $1 !!"
    exit 1
}

[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=$HOME/jdk/java
[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/java
[ ! -e "$JAVA_HOME/bin/java" ] && error_exit "Please set the JAVA_HOME variable in your environment, We need java(x64)!"

export JAVA_HOME
export JAVA="$JAVA_HOME/bin/java"
export BASE_DIR=$(dirname $0)/..
export CLASSPATH=.:${BASE_DIR}/lib/*:${BASE_DIR}/conf:${CLASSPATH}

#===========================================================================================
# JVM Configuration
#===========================================================================================
# The RAMDisk initializing size in MB on Darwin OS for gc-log
DIR_SIZE_IN_MB=600

choose_gc_log_directory()
{
    case "`uname`" in
        Darwin)
            if [ ! -d "/Volumes/RAMDisk" ]; then
                # create ram disk on Darwin systems as gc-log directory
                DEV=`hdiutil attach -nomount ram://$((2 * 1024 * DIR_SIZE_IN_MB))` > /dev/null
                diskutil eraseVolume HFS+ RAMDisk ${DEV} > /dev/null
                echo "Create RAMDisk /Volumes/RAMDisk for gc logging on Darwin OS."
            fi
            GC_LOG_DIR="/Volumes/RAMDisk"
        ;;
        *)
            # check if /dev/shm exists on other systems
            if [ -d "/dev/shm" ]; then
                GC_LOG_DIR="/dev/shm"
            else
                GC_LOG_DIR=${BASE_DIR}
            fi
        ;;
    esac
}

choose_gc_log_directory

# JAVA_OPT="${JAVA_OPT} -server -Xms2g -Xmx2g -Xmn1g"
JAVA_OPT="${JAVA_OPT} -server -Xms2g -Xmx2g -Xmn1g \
    --add-opens=java.base/java.lang=ALL-UNNAMED \
    --add-opens=java.base/java.lang.annotation=ALL-UNNAMED \
    --add-opens=java.base/java.lang.constant=ALL-UNNAMED \
    --add-opens=java.base/java.lang.invoke=ALL-UNNAMED \
    --add-opens=java.base/java.lang.module=ALL-UNNAMED \
    --add-opens=java.base/java.lang.ref=ALL-UNNAMED \
    --add-opens=java.base/java.lang.reflect=ALL-UNNAMED \
    --add-opens=java.base/java.lang.runtime=ALL-UNNAMED \
    --add-opens=java.base/java.io=ALL-UNNAMED \
    --add-opens=java.base/java.lang=ALL-UNNAMED \
    --add-opens=java.base/java.math=ALL-UNNAMED \
    --add-opens=java.base/java.net=ALL-UNNAMED \
    --add-opens=java.base/java.nio=ALL-UNNAMED \
    --add-opens=java.base/java.security=ALL-UNNAMED \
    --add-opens=java.base/java.text=ALL-UNNAMED \
    --add-opens=java.base/java.time=ALL-UNNAMED \
    --add-opens=java.base/java.util=ALL-UNNAMED \
    --add-opens=java.xml/com.sun.org.apache.xpath.internal.jaxp=ALL-UNNAMED \
    --add-opens=java.base/jdk.internal.ref=ALL-UNNAMED \
    --add-opens=java.base/jdk.internal.access=ALL-UNNAMED"

JAVA_OPT="${JAVA_OPT} -XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1HeapRegionSize=16m -XX:G1ReservePercent=25 -XX:InitiatingHeapOccupancyPercent=30 -XX:SoftRefLRUPolicyMSPerMB=0"
# JAVA_OPT="${JAVA_OPT} -verbose:gc -Xloggc:${GC_LOG_DIR}/rmq_broker_gc_%p_%t.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCApplicationStoppedTime -XX:+PrintAdaptiveSizePolicy"
JAVA_OPT="${JAVA_OPT} -verbose:gc -Xloggc:${GC_LOG_DIR}/rmq_broker_gc_%p_%t.log"
# JAVA_OPT="${JAVA_OPT} -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=30m"
JAVA_OPT="${JAVA_OPT} -XX:-OmitStackTraceInFastThrow"
JAVA_OPT="${JAVA_OPT} -XX:+AlwaysPreTouch"
JAVA_OPT="${JAVA_OPT} -XX:MaxDirectMemorySize=15g"
JAVA_OPT="${JAVA_OPT} -XX:-UseLargePages -XX:-UseBiasedLocking"
# JAVA_OPT="${JAVA_OPT} -Djava.ext.dirs=${JAVA_HOME}/jre/lib/ext:${BASE_DIR}/lib"
# JAVA_OPT="${JAVA_OPT} -Djava.ext.dirs=${BASE_DIR}/lib"
#JAVA_OPT="${JAVA_OPT} -Xdebug -Xrunjdwp:transport=dt_socket,address=9555,server=y,suspend=n"
JAVA_OPT="${JAVA_OPT} ${JAVA_OPT_EXT}"
JAVA_OPT="${JAVA_OPT} -cp ${CLASSPATH}"

numactl --interleave=all pwd > /dev/null 2>&1
if [ $? -eq 0 ]
then
    if [ -z "$RMQ_NUMA_NODE" ] ; then
        numactl --interleave=all $JAVA ${JAVA_OPT} $@
    else
        numactl --cpunodebind=$RMQ_NUMA_NODE --membind=$RMQ_NUMA_NODE $JAVA ${JAVA_OPT} $@
    fi
else
    $JAVA ${JAVA_OPT} $@
fi

3. Zookeeper 升级

推荐升级至 3.9.x 版本

点击下载3.9.4版本

注: 若 Zookeeper 版本低于 3.6.x 版本,需进行升级,否则无法正常运行在 JDK17 环境中。

支持程度 ZooKeeper 版本 关键说明
基础运行兼容 3.6.0+ 首次修复 JDK 9+ 模块化、反射限制等核心问题,可运行但需手动适配启动参数
完整特性兼容 3.6.3+ 解决 JDK 9+ 下的日志、SSL、工具类等边缘场景兼容问题,生产环境可落地
官方明确标注支持 3.7.0+ / 3.8.0+ 官网文档明确声明支持 JDK 8/11(9/10 为过渡版本,间接兼容),移除老旧 JDK 依赖
LTS 版本最优选择 3.8.x(稳定版)/ 3.9.x 长期支持版本,完全适配 JDK 11/17(LTS),无额外兼容成本

代码升级

1. pom编译版本升级

将原有声明了 maven.compilerjava.version 相关参数进行修改

<!--
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<java.version>1.8</java.version>
-->

<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<java.version>17</java.version>
<java.vendor>Oracle</java.vendor>

2. maven 编译插件升级

注: 按需选择升级,只要保证 install, package, deploy 等常用生命周期正常使用即可

<maven.compiler.version>3.14.0</maven.compiler.version>
<maven.surefire.version>3.5.3</maven.surefire.version>
<maven.source.version>3.3.1</maven.source.version>
<maven.install.version>3.1.4</maven.install.version>
<maven.deploy.version>3.1.4</maven.deploy.version>
<maven.war.version>3.4.0</maven.war.version>

注: 编译插件参数配置

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <configuration>
      <source>${maven.compiler.source}</source>
      <target>${maven.compiler.source}</target>
      <encoding>${project.build.sourceEncoding}</encoding>
      <fork>true</fork>
      <compilerArgs>
          <arg>-parameters</arg>
          <arg>-Xmaxerrs</arg>
          <arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED</arg>
          <arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED</arg>
          <arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED</arg>
          <arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED</arg>
          <arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.jvm=ALL-UNNAMED</arg>
          <arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.launcher=ALL-UNNAMED</arg>
          <arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED</arg>
          <arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED</arg>
          <arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED</arg>
          <arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.platform=ALL-UNNAMED</arg>
          <arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED</arg>
          <arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.resources=ALL-UNNAMED</arg>
          <arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED</arg>
          <arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED</arg>
          <arg>-J--add-opens=jdk.compiler/com.sun.source.tree=ALL-UNNAMED</arg>
          <arg>-J--add-opens=java.base/jdk.internal.access=ALL-UNNAMED</arg>
          <arg>-J--add-opens=java.xml/com.sun.org.apache.xpath.internal.jaxp=ALL-UNNAMED</arg>

          <arg>--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED</arg>
          <arg>--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED</arg>
          <arg>--add-exports=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED</arg>
          <arg>--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED</arg>
          <arg>--add-exports=jdk.compiler/com.sun.tools.javac.jvm=ALL-UNNAMED</arg>
          <arg>--add-exports=jdk.compiler/com.sun.tools.javac.launcher=ALL-UNNAMED</arg>
          <arg>--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED</arg>
          <arg>--add-exports=jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED</arg>
          <arg>--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED</arg>
          <arg>--add-exports=jdk.compiler/com.sun.tools.javac.platform=ALL-UNNAMED</arg>
          <arg>--add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED</arg>
          <arg>--add-exports=jdk.compiler/com.sun.tools.javac.resources=ALL-UNNAMED</arg>
          <arg>--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED</arg>
          <arg>--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED</arg>
          <arg>--add-exports=jdk.compiler/com.sun.source.tree=ALL-UNNAMED</arg>
          <arg>--add-exports=java.base/jdk.internal.access=ALL-UNNAMED</arg>
          <arg>--add-exports=java.xml/com.sun.org.apache.xpath.internal.jaxp=ALL-UNNAMED</arg>
      </compilerArgs>
  </configuration>
</plugin>

3. 第三方版本升级(无需执行)

注: 此处不包含间接升级的第三方依赖,仅包含 Oinone 主动升级的第三方依赖。

<commons.lang3.version>3.18.0</commons.lang3.version>
<commons.collections4.version>4.5.0</commons.collections4.version>
<commons.beanutils.version>1.11.0</commons.beanutils.version>
<gson.version>2.13.1</gson.version>
<druid.version>1.2.25</druid.version>
<mybatis.version>3.5.19</mybatis.version>
<mybatis.spring.version>3.0.4</mybatis.spring.version>
<mybatis-plus.version>3.5.11</mybatis-plus.version>
<thymeleaf.version>3.1.3.RELEASE</thymeleaf.version>
<aspectj.version>1.9.24</aspectj.version>
<aspectjweaver.version>1.9.24</aspectjweaver.version>
<caffeine.version>3.2.2</caffeine.version>
<groovy.version>4.0.28</groovy.version>
<kryo.version>5.6.2</kryo.version>
<dubbo.version>3.2.18</dubbo.version>
<dubbo.extensions.version>3.3.1</dubbo.extensions.version>
<spring.boot.version>3.3.13</spring.boot.version>
<spring.cloud.version>2023.0.6</spring.cloud.version>
<spring.cloud.alibaba.version>2023.0.3.3</spring.cloud.alibaba.version>
<spring.cloud.nacos.version>2023.0.3.3</spring.cloud.nacos.version>
<spring.version>6.1.21</spring.version>
<atomikos.version>6.0.0</atomikos.version>
<jedis.version>5.0.2</jedis.version>
<httpclient.version>4.5.13</httpclient.version>
<minio.version>6.0.13</minio.version>
<okhttp.version>3.14.9</okhttp.version>
<org.junit5.platform.version>1.13.4</org.junit5.platform.version>
<org.junit5.jupiter.version>5.13.4</org.junit5.jupiter.version>
<org.junit5.vintage.version>5.13.4</org.junit5.vintage.version>
<junit4.version>4.13.2</junit4.version>
<jacoco.version>0.8.13</jacoco.version>

4. Oinone Bom 升级

注:7.x 版本继续保持原有依赖方式不变,仅需升级版本号即可完成 Oinone 平台升级。最新版本请参考更新日志

<oinone.version>7.0.1</oinone.version>

<dependency>
    <groupId>pro.shushi</groupId>
    <artifactId>oinone-bom</artifactId>
    <version>${oinone.version}</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>

5. 类引入路径变更

JDK 17 作为长期支持版,已完全移除内置的 Java EE 相关模块(JDK 9 开始模块化,JDK 11 彻底移除),因此升级时若依赖 Java EE 组件,会遇到 javax → jakarta 的包名变更问题。

下面列出了所有 Oinone 已知的类引入变更,可在项目中进行全局替换。其他未列出变更内容可参考文末的参考资料或自行搜索解决。

# javax.annotation.Resource
jakarta.annotation.Resource

# javax.annotation.PostConstruct
jakarta.annotation.PostConstruct

# javax.servlet.
jakarta.servlet.

# javax.validation.
jakarta.validation.

# javax.activation.
jakarta.activation.

# javax.mail.
jakarta.mail.

一些特殊情况:

  1. Oinone 7.x 首发版本未处理 Apache Camel 升级,导致通过 Exchange.HTTP_SERVLET_RESPONSE 变量获取 HttpServletResponse 值时需要使用 javax.servlet.http.HttpServletResponse 而不是 jakarta.servlet.http.HttpServletResponse

6. yaml 配置变更

核心变更内容:

  1. 移除 bootstrap.yml,使用新的 profiles 指定方式。
  2. 使用 spring.main.allow-circular-references=true 启用 Spring 循环依赖处理。
  3. Spring Data 相关配置升级,以 Redis 为例,配置前缀由 spring.redis 改为 spring.data.redis

具体变更步骤

  1. 移除 bootstrap.yml 改为使用 application.yml 作为公共配置。
application.yml
spring:
  profiles:
    active: dev
  main:
    allow-circular-references: true
  application:
    name: pamirs-demo
  cloud:
    service-registry:
      auto-registration:
        enabled: false
    config:
      enabled: false
      uri: http://127.0.0.1:7001
      label: master
      profile: dev
    nacos:
      server-addr: http://127.0.0.1:8848
      discovery:
        enabled: false
        namespace:
        prefix: application
        file-extension: yml
      config:
        enabled: false
        namespace:
        prefix: application
        file-extension: yml
dubbo:
  application:
    name: pamirs-demo
    version: 1.0.0
    register-consumer: false
  registry:
    address: zookeeper://127.0.0.1:2181
  protocol:
    name: dubbo
    port: -1
    serialization: pamirs
    payload: 104857600
  scan:
    base-packages: pro.shushi
  cloud:
    subscribed-services:
pamirs:
  default:
    environment-check: true
    tenant-check: true

变更要点:

  • spring.profiles.active 配置用于指定具体环境配置后缀,下面的配置示例指向 application-dev.yml 配置文件。
  • spring.main.allow-circular-references=true:Spring 不再主动处理循环依赖引用问题,需要显式启用,目前 Oinone 暂不支持关闭,未来会陆续支持。
  1. application-dev.yml 配置变更
# spring:
#   profiles: dev

spring:
  config:
    activate:
      on-profile: dev
  1. Redis 配置由 spring.redis 前缀改为 spring.data.redis 前缀,其他配置可参考官方文档
# spring:
#   redis:
#     database: 1
#     host: 127.0.0.1
#     port: 6379
#     timeout: 2000

spring:
  data:
    redis:
      database: 1
      host: 127.0.0.1
      port: 6379
      timeout: 2000

变更要点:

  • Oinone 7.x 开始将完整支持 org.springframework.boot.autoconfigure.data.redis.RedisProperties 未来所有变更将跟随 Spring Data Redis 升级而变化。

7. 类变更

类名或路径变更

pro.shushi.pamirs.framework.connectors.data.kv.RedisSimpleConfig -> pro.shushi.pamirs.framework.connectors.data.kv.PamirsRedisConfig
pro.shushi.pamirs.auth.api.extend.AuthPermissionCacheExtendApi -> pro.shushi.pamirs.auth.api.extend.cache.AuthPermissionCacheExtendApi
pro.shushi.pamirs.auth.api.extend.PermissionNodeConvertExtendApi -> pro.shushi.pamirs.auth.api.extend.load.PermissionNodeConvertExtendApi
pro.shushi.pamirs.auth.api.extend.PermissionNodeLoadExtendApi -> pro.shushi.pamirs.auth.api.extend.load.PermissionNodeLoadExtendApi

移除废弃类或方法

pro.shushi.pamirs.framework.connectors.data.kv.RedisClusterConfig
pro.shushi.pamirs.framework.connectors.data.kv.RedisClusterProperty
pro.shushi.pamirs.framework.connectors.data.kv.RedisConfig
pro.shushi.pamirs.framework.connectors.data.kv.RedisSentinelConfig
pro.shushi.pamirs.framework.connectors.data.kv.RedisSentinelProperty
pro.shushi.pamirs.auth.api.service.IRoleCustom
pro.shushi.pamirs.auth.api.runtime.holder.AuthVerificationApiHolder
pro.shushi.pamirs.auth.api.enmu.PermissionDataSourceEnum
pro.shushi.pamirs.auth.api.extend.load.PermissionNodeLoadExtendApi#buildRootPermissions

开发运行和部署变更

idea 启动配置中添加 JVM 参数用于开发运行

--add-opens=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED
--add-opens=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED
--add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED
--add-opens=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED
--add-opens=jdk.compiler/com.sun.tools.javac.jvm=ALL-UNNAMED
--add-opens=jdk.compiler/com.sun.tools.javac.launcher=ALL-UNNAMED
--add-opens=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED
--add-opens=jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED
--add-opens=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED
--add-opens=jdk.compiler/com.sun.tools.javac.platform=ALL-UNNAMED
--add-opens=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED
--add-opens=jdk.compiler/com.sun.tools.javac.resources=ALL-UNNAMED
--add-opens=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED
--add-opens=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED
--add-opens=jdk.compiler/com.sun.source.tree=ALL-UNNAMED
--add-opens=java.base/java.lang=ALL-UNNAMED
--add-opens=java.base/java.lang.annotation=ALL-UNNAMED
--add-opens=java.base/java.lang.constant=ALL-UNNAMED
--add-opens=java.base/java.lang.invoke=ALL-UNNAMED
--add-opens=java.base/java.lang.module=ALL-UNNAMED
--add-opens=java.base/java.lang.ref=ALL-UNNAMED
--add-opens=java.base/java.lang.reflect=ALL-UNNAMED
--add-opens=java.base/java.lang.runtime=ALL-UNNAMED
--add-opens=java.base/java.io=ALL-UNNAMED
--add-opens=java.base/java.lang=ALL-UNNAMED
--add-opens=java.base/java.math=ALL-UNNAMED
--add-opens=java.base/java.net=ALL-UNNAMED
--add-opens=java.base/java.nio=ALL-UNNAMED
--add-opens=java.base/java.security=ALL-UNNAMED
--add-opens=java.base/java.text=ALL-UNNAMED
--add-opens=java.base/java.time=ALL-UNNAMED
--add-opens=java.base/java.util=ALL-UNNAMED
--add-opens=java.xml/com.sun.org.apache.xpath.internal.jaxp=ALL-UNNAMED
--add-opens=java.base/jdk.internal.access=ALL-UNNAMED

服务器部署命令中添加 JVM 参数

java \
  --add-opens=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED \
  --add-opens=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED \
  --add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED \
  --add-opens=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED \
  --add-opens=jdk.compiler/com.sun.tools.javac.jvm=ALL-UNNAMED \
  --add-opens=jdk.compiler/com.sun.tools.javac.launcher=ALL-UNNAMED \
  --add-opens=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED \
  --add-opens=jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED \
  --add-opens=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED \
  --add-opens=jdk.compiler/com.sun.tools.javac.platform=ALL-UNNAMED \
  --add-opens=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED \
  --add-opens=jdk.compiler/com.sun.tools.javac.resources=ALL-UNNAMED \
  --add-opens=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED \
  --add-opens=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED \
  --add-opens=jdk.compiler/com.sun.source.tree=ALL-UNNAMED \
  --add-opens=java.base/java.lang=ALL-UNNAMED \
  --add-opens=java.base/java.lang.annotation=ALL-UNNAMED \
  --add-opens=java.base/java.lang.constant=ALL-UNNAMED \
  --add-opens=java.base/java.lang.invoke=ALL-UNNAMED \
  --add-opens=java.base/java.lang.module=ALL-UNNAMED \
  --add-opens=java.base/java.lang.ref=ALL-UNNAMED \
  --add-opens=java.base/java.lang.reflect=ALL-UNNAMED \
  --add-opens=java.base/java.lang.runtime=ALL-UNNAMED \
  --add-opens=java.base/java.io=ALL-UNNAMED \
  --add-opens=java.base/java.lang=ALL-UNNAMED \
  --add-opens=java.base/java.math=ALL-UNNAMED \
  --add-opens=java.base/java.net=ALL-UNNAMED \
  --add-opens=java.base/java.nio=ALL-UNNAMED \
  --add-opens=java.base/java.security=ALL-UNNAMED \
  --add-opens=java.base/java.text=ALL-UNNAMED \
  --add-opens=java.base/java.time=ALL-UNNAMED \
  --add-opens=java.base/java.util=ALL-UNNAMED \
  --add-opens=java.xml/com.sun.org.apache.xpath.internal.jaxp=ALL-UNNAMED \
  --add-opens=java.base/jdk.internal.access=ALL-UNNAMED \
  -jar boot.jar

参考资料: 按组件分类的包名变更

注: 此参考资料由 AI 生成,生成结果可能出现偏差或错误,请仔细甄别。

1. Servlet / JSP / EL(最常用)

原 JDK 8/Java EE 包名 JDK 17/Jakarta EE 包名 说明
javax.servlet.* jakarta.servlet.* 核心 Servlet API(Request/Response/Filter 等)
javax.servlet.http.* jakarta.servlet.http.* HTTP 相关 Servlet API
javax.servlet.annotation.* jakarta.servlet.annotation.* Servlet 注解(@WebServlet、@WebFilter 等)
javax.servlet.jsp.* jakarta.servlet.jsp.* JSP 核心 API
javax.servlet.jsp.tagext.* jakarta.servlet.jsp.tagext.* JSP 标签扩展
javax.el.* jakarta.el.* 表达式语言(EL)
javax.servlet.jsp.el.* jakarta.servlet.jsp.el.* JSP EL 集成

2. JPA(持久化)

原 JDK 8/Java EE 包名 JDK 17/Jakarta EE 包名 说明
javax.persistence.* jakarta.persistence.* JPA 核心 API(@Entity、@Table、EntityManager 等)
javax.persistence.criteria.* jakarta.persistence.criteria.* JPA 条件查询
javax.persistence.metamodel.* jakarta.persistence.metamodel.* JPA 元模型
javax.persistence.spi.* jakarta.persistence.spi.* JPA 服务提供接口

3. JAX-RS(RESTful)

原 JDK 8/Java EE 包名 JDK 17/Jakarta EE 包名 说明
javax.ws.rs.* jakarta.ws.rs.* JAX-RS 核心 API(@GET、@POST、Path 等)
javax.ws.rs.client.* jakarta.ws.rs.client.* 客户端 API
javax.ws.rs.core.* jakarta.ws.rs.core.* 核心对象(Response、MediaType 等)
javax.ws.rs.ext.* jakarta.ws.rs.ext.* 扩展接口

4. JAX-WS(WebService)

原 JDK 8/Java EE 包名 JDK 17/Jakarta EE 包名 说明
javax.xml.ws.* jakarta.xml.ws.* JAX-WS 核心 API
javax.xml.ws.handler.* jakarta.xml.ws.handler.* 处理器 API
javax.xml.ws.http.* jakarta.xml.ws.http.* HTTP 绑定
javax.jws.* jakarta.jws.* WebService 注解(@WebService、@WebMethod 等)
javax.xml.bind.* jakarta.xml.bind.* JAXB(XML 绑定,JDK 8 内置,JDK 11+ 需手动引入)
javax.xml.bind.annotation.* jakarta.xml.bind.annotation.* JAXB 注解(@XmlRootElement 等)

5. JMS(消息队列)

原 JDK 8/Java EE 包名 JDK 17/Jakarta EE 包名 说明
javax.jms.* jakarta.jms.* JMS 核心 API(Connection、Session、Message 等)

6. Bean Validation(参数校验)

原 JDK 8/Java EE 包名 JDK 17/Jakarta EE 包名 说明
javax.validation.* jakarta.validation.* 校验核心 API(@Valid、@NotNull、Validator 等)
javax.validation.constraints.* jakarta.validation.constraints.* 内置校验注解
javax.validation.groups.* jakarta.validation.groups.* 校验分组

7. CDI(依赖注入)

原 JDK 8/Java EE 包名 JDK 17/Jakarta EE 包名 说明
javax.enterprise.context.* jakarta.enterprise.context.* CDI 上下文(@RequestScoped、@SessionScoped 等)
javax.enterprise.inject.* jakarta.enterprise.inject.* CDI 注入(@Inject、@Named 等)
javax.inject.* jakarta.inject.* JSR-330 依赖注入(Spring 也依赖此包)

8. 其他常用组件

原 JDK 8/Java EE 包名 JDK 17/Jakarta EE 包名 说明
javax.annotation.* jakarta.annotation.* 通用注解(@Resource、@PostConstruct、@PreDestroy 等)
javax.transaction.* jakarta.transaction.* 事务 API(@Transactional、UserTransaction 等)
javax.mail.* jakarta.mail.* JavaMail 邮件 API
javax.json.* jakarta.json.* JSON 处理 API
javax.faces.* jakarta.faces.* JSF 前端框架

Oinone社区 作者:张博昊原创文章,如若转载,请注明出处:https://doc.oinone.top/version/25243.html

访问Oinone官网:https://www.oinone.top获取数式Oinone低代码应用平台体验

Like (0)
张博昊's avatar张博昊数式管理员
Previous 2025年12月17日 pm12:00
Next 2025年12月17日 pm12:00

相关推荐

  • 4.7.8.6版本升级说明-20240506

    版本号: 4.7.8.6版本发布日期:2024.05.06更新要点:界面设计器新增生成默认视图功能 4.7.8.6版本 升级内容 界面设计器新增生成默认视图功能 修复函数openLevel错误的问题 修复操作日志字段显示名称超长的问题 修复操作日志无法正确保存关联关系字段的问题 修复工作流保存节点生成描述超长的问题 重要提示:此版本的业务工程和设计器版本必须统一升级至该版本及以上版本。 版本包信息 未使用到的版本号请忽略,按项目中使用到的进行替换 <!–平台基础jar包–> <pamirs.middleware.version>4.7.8.3</pamirs.middleware.version> <pamirs.k2.version>4.7.8.3</pamirs.k2.version> <pamirs.boot.version>4.7.8.6</pamirs.boot.version> <pamirs.framework.version>4.7.8.7</pamirs.framework.version> <pamirs.core.version>4.7.8.7</pamirs.core.version> <pamirs.distribution.version>4.7.8.3</pamirs.distribution.version> <pamirs.metadata.manager>4.7.8</pamirs.metadata.manager> <pamirs.lowcode.version>4.7.8</pamirs.lowcode.version> <!–设计器jar包–> <pamirs.designer.common.version>4.7.8</pamirs.designer.common.version> <pamirs.workflow.version>4.7.8.3</pamirs.workflow.version> <pamirs.flow.designer.base.version>4.7.8</pamirs.flow.designer.base.version> <pamirs.dataflow.designer.version>4.7.8</pamirs.dataflow.designer.version> <pamirs.workflow.designer.version>4.7.8</pamirs.workflow.designer.version> <pamirs.workbench.version>4.7.8</pamirs.workbench.version> <pamirs.model.designer.version>4.7.8</pamirs.model.designer.version> <pamirs.ui.designer.version>4.7.8.6</pamirs.ui.designer.version> <pamirs.data.designer.version>4.7.8</pamirs.data.designer.version> <pamirs.data.visualization.version>4.7.8</pamirs.data.visualization.version> <pamirs.eip.designer.version>4.7.8</pamirs.eip.designer.version> docker pull harbor.oinone.top/oinone/designer:4.8.2.3-allinone-fulldocker pull harbor.oinone.top/oinone/designer:4.8.2.3-allinone-mini 如果您有任何问题、建议或反馈,请随时联系我们。为了获得最佳体验,请及时更新至最新版本。我们将继续努力改进产品,提供更好的服务。谢谢!

    2024年5月6日
    1.6K00
  • 3.2.0版本更新说明-20221123

    :::info版本号:3.2.0发布日期:2022.11.23更新要点:前端发布内容包括支持关系字段联动函数、修复弹窗视图问题、优化详情页面按钮、计算值配置、表达式字段选择、画廊视图调整和设计区跳转优化。后端发布内容包括工作流表达式重构、工作流执行日志关联、支持动态用户节点、时间表达式增强、SDK修复用户模型过滤和搜索模型用户修复。这些更新将提升系统功能性和用户体验。::: 1 发布概要 1.1 前端 发布内容: 持关系字段联动函数; 修复弹窗视图与动作问题; 详情的数据操作按钮优化; 支持计算值配置; 支持表达式可选字段; 画廊视图大纲调整; 设计区跳转动作优化; 1.2 后端 发布内容: 工作流表达式的重构 工作流执行日志与业务数据的关联 工作流审批/填写等节点支持一对多和多对多的动态用户 时间表达式支持时间差(得到秒和时分秒) 低无一体生产SDK中用户模型被过滤等修复 搜索增强模型用户和修复 2.版本信息 <pamirs.middleware.version>3.0.1</pamirs.middleware.version> <pamirs.boot.version>3.0.10</pamirs.boot.version> <pamirs.framework.version>3.0.11</pamirs.framework.version> <pamirs.core.version>3.1.5.1</pamirs.core.version> <pamirs.tenant.version>3.0.2</pamirs.tenant.version> <pamirs.uc.version>3.0.4</pamirs.uc.version> <pamirs.lowcode.version>3.0.1</pamirs.lowcode.version> <pamirs.designer.version>3.0.2-SNAPSHOT</pamirs.designer.version> <pamirs.designer.common.version>3.0.3</pamirs.designer.common.version> <pamirs.workflow.designer.version>3.0.16</pamirs.workflow.designer.version> <pamirs.model.designer.version>3.0.9</pamirs.model.designer.version> <pamirs.logic.designer.version>3.0.1</pamirs.logic.designer.version> <pamirs.ui.designer.version>3.2.7</pamirs.ui.designer.version> <pamirs.data.designer.version>3.0.4</pamirs.data.designer.version> <pamirs.data.visualization.version>3.0.4</pamirs.data.visualization.version> <pamirs.distribution.version>3.0.1</pamirs.distribution.version> <pamirs.welcome.version>3.0.4</pamirs.welcome.version> <pamirs.gemini.version>3.0.10</pamirs.gemini.version> <pamirs.paas.version>3.0.9</pamirs.paas.version> <pamirs.workbench.version>1.0.4</pamirs.workbench.version> <bc.version>1.0.1</bc.version> 如果您有任何问题、建议或反馈,请随时联系我们。为了获得最佳体验,建议请升级至最新版本。我们将继续努力改进产品,提供更好的服务。谢谢您的支持!

    2022年11月13日
    1.2K00
  • 5.0.4版本feature:新增弹出层的尺寸优化为支持主题变量配置,请升级对应版本

    版本号: 5.0.25 版本发布日期:2024.09.12更新要点: 新增弹出层的尺寸优化为支持主题变量配置 5.0.25 版本 升级说明及步骤(已升级为5.0.0版本忽略) 此版本与4.7.8版本的兼容方案如下,请严格参照升级说明及步骤进行1、【重要】升级前备份base库和用户权限模块所在的库 2、【重要】升级过程执行SQL严格按照升级文档中的步骤执行。特别注意:部分SQL是要求【发布前执行】,部分SQL是要求【发布后执行】 5.0.0升级详细说明及步骤 升级内容(5.0.0) 新增弹出层的尺寸优化为支持主题变量配置 修复翻译无法创建翻译项的问题 开发时增加路由变化的日志 表单项的placeholder占位符支持主题配置只读和禁用状态下的配置 表达式解析优化 增加默认布局的开发时日志 同步导出支持自定义的导出任务 mask、layout的开发时日志增加后端定义的和默认生成的 分组组件标题和表单项标题的表达式解析优化 修复切换账号登录导致的权限异常提示 请尽可能保证业务工程前后端服务以及设计器同步升级前端服务仅需重新执行npm install即可自动升级到最新版本 版本包信息 Oinone平台部署及依赖说明(v5.0) 未使用到的版本号请忽略,按项目中使用到的进行替换。 <!– 平台基础 –> <pamirs.middleware.version>5.0.3</pamirs.middleware.version> <pamirs.k2.version>5.0.11</pamirs.k2.version> <pamirs.framework.version>5.0.34</pamirs.framework.version> <pamirs.boot.version>5.0.24</pamirs.boot.version> <pamirs.distribution.version>5.0.12</pamirs.distribution.version> <!– 平台功能 –> <pamirs.metadata.manager>5.0.1</pamirs.metadata.manager> <pamirs.core.version>5.0.46</pamirs.core.version> <pamirs.workflow.version>5.0.12</pamirs.workflow.version> <pamirs.workbench.version>5.0.3</pamirs.workbench.version> <pamirs.data.visualization.version>5.0.4</pamirs.data.visualization.version> <!– 设计器 –> <pamirs.designer.common.version>5.0.5</pamirs.designer.common.version> <pamirs.flow.designer.base.version>5.0.3</pamirs.flow.designer.base.version> <pamirs.workflow.designer.version>5.0.2</pamirs.workflow.designer.version> <pamirs.model.designer.version>5.0.2</pamirs.model.designer.version> <pamirs.ui.designer.version>5.0.20</pamirs.ui.designer.version> <pamirs.data.designer.version>5.0.2</pamirs.data.designer.version> <pamirs.dataflow.designer.version>5.0.3</pamirs.dataflow.designer.version> <pamirs.eip.designer.version>5.0.4</pamirs.eip.designer.version> 注意镜像名称变化 镜像说明 所有镜像均使用docker manifest支持amd64和arm64架构。如镜像拉取过慢,可在对应镜像Tag添加-amd64、-arm64后缀获取单一架构镜像。 docker pull harbor.oinone.top/oinone/oinone-designer-full-v5.0:5.0.25-amd64 docker pull harbor.oinone.top/oinone/oinone-designer-full-v5.0:5.0.25-arm64 镜像拉取 镜像或JAR版本:5.0.25 体验镜像:(所有中间件及前后端服务,包含全部设计器) docker pull harbor.oinone.top/oinone/oinone-designer-full-v5.0:5.0.25 部署镜像:(包含前后端服务,包含全部设计器) docker pull harbor.oinone.top/oinone/oinone-designer-mini-v5.0:5.0.25 流程设计器镜像:(包含前后端服务,仅包含流程设计器) PS:原workflow-designer-standard-v5.0镜像不再提供,请更换为该镜像。 docker pull harbor.oinone.top/oinone/workflow-designer-v5.0:5.0.25 后端镜像:(仅包含后端服务,包含全部设计器) docker pull harbor.oinone.top/oinone/designer-backend-v5.0:5.0.25 前端镜像:(仅包含前端服务,包含全部设计器) PS:前端镜像版本为独立版本,与其他镜像版本不同。原基础镜像为nginx-1.21.0版本,从5.0.8版本开始使用nginx-1.24.0版为基础镜像 docker pull harbor.oinone.top/oinone/designer-frontend-v5.0:5.0.37 独立部署所有设计器JAR:(后端服务,包含所有设计器)pamirs-designer-boot-v5.0-5.0.25.jarpamirs-designer-boot-v5.0-latest.jar 独立部署流程设计器JAR:(后端服务,仅包含流程设计器)pamirs-workflow-designer-boot-v5.0-5.0.25.jarpamirs-workflow-designer-boot-v5.0-latest.jar 后端无代码设计器Jar包启动方法 如果您有任何问题、建议或反馈,请随时联系我们。为了获得最佳体验,请及时更新至最新版本。我们将继续努力改进产品,提供更好的服务。谢谢!

    2024年9月12日
    1.6K00
  • 早鸟版发布:Oinone 7.2.0 版本 支持国际版,自由选购,邀您体验

    版本号: 7.2.0 版本发布日期:2026.03更新要点:Oinone 国际版 7.2.0 版本 GitHub: 后端: https://github.com/oinone/oinone-pamirs 前端: https://github.com/oinone/oinone-kunlun Gitee: 后端: https://gitee.com/oinone/oinone-pamirs 前端: https://gitee.com/oinone/oinone-kunlun 升级说明及步骤 20260707 升级内容 前端镜像版本升级: 7.2.5 –> 7.2.6 前端版本升级 修复集成日志字段json转xml失败 修复设计器下钻路径错误 表格提示内容允许自定义 20260618 升级内容 前端镜像版本升级: 7.2.4 –> 7.2.5 前端版本升级 修复工作流审批页面枚举未正确显示的问题 20260608 升级内容 后端镜像版本升级: 7.2.6 –> 7.2.8 后端版本升级: 7.2.5 –> 7.2.7 修复工作流元数据导入找不到自定义函数的问题 修复工作流元数据导入导致流程重复触发的问题 20260513 升级内容 后端镜像版本升级: 7.2.5 –> 7.2.6 后端版本升级: 7.2.4 –> 7.2.5 修复集成应用 – 查看密钥 视图错误的问题 修复集成设计器 – 开放平台 – 应用 – 新增应用 视图错误的问题 20260509 升级内容 后端镜像版本升级: 7.2.2 –> 7.2.5 前端镜像版本升级: 7.2.1 –> 7.2.2 后端版本升级: 7.2.2 –> 7.2.4 前端版本升级 Excel模版定义(ExcelHelper)新增支持列宽自适应API; 同步导入支持业务异常信息提示到页面; 导出如果无数据生成空文件(解决:目前无数据浏览器显示一串JSON问题) 修复逻辑删除未更新[更新时间]的问题,涉及到gauss、postgresql、kdb、oracle 和 sqlsever; 优化postgresql等字段大小写敏感导致第二次启动失败问题。 集成设计器新增主动告警功能:支持全局配置基于“失败次数”或“失败率”的告警规则,通过邮件、钉钉、企微机器人等渠道触发异常通知,并提供完整的告警日志追溯。 接口日志支持原记录重试:集成日志新增“重试”操作,直接在原记录上刷新调用状态与报文(不产生冗余新数据),支持单条与批量执行。 数据流程 API 新增失败策略:API 节点增加「请求失败时处理」配置,可灵活选择“终止流程”或“跳过并继续执行”,提升业务链路容错性。 集成导出细化至 API 维度:支持按需精准勾选并导出连接器下的指定 API 或文件;导出数据流程时仅带出实际引用的 API,避免环境配置冗余。 API 字段变更感知与一键同步:数据流程可自动检测底层 API 定义变更并提示,支持一键“立即同步”完成字段智能合并;未手动同步前按原配置安全运行,保障线上稳定。 20260403 升级内容 后端镜像版本升级: 7.2.0 –> 7.2.2 前端镜像版本升级: 7.2.0 –> 7.2.1 后端版本升级: 7.2.0 –> 7.2.2 前端版本升级 工作流以及数据流程的WorkflowInstance中runtimeDefinition移除到另外表中 修复数据流程EipApiTask节点,数组赋值传递异常问题 修复国家设置关键字映射无法正常保存的问题 修复翻译项初始化异常的问题 修复多值枚举搜索异常的问题 修复微流设计器复制和编辑无法正常跳转的问题 20260331 升级内容 镜像版本升级: 7.2.0 后端版本升级: 7.2.0 前端版本升级 Oinone 支持国际版(需使用英文版许可证) Oinone 支持自由选购 点击查看 后端版本包信息 Oinone平台部署及依赖说明(v7.0) 未使用到的版本号请忽略,按项目中使用到的进行替换。 <!– 平台基础 –> <oinone-bom.version>7.2.7</oinone-bom.version> <!– 设计器 –> <pamirs.workflow.designer.version>7.2.0</pamirs.workflow.designer.version> <pamirs.model.designer.version>7.2.1</pamirs.model.designer.version> <pamirs.ui.designer.version>7.2.1</pamirs.ui.designer.version> <pamirs.print.designer.version>7.2.0</pamirs.print.designer.version> <pamirs.data.designer.version>7.2.0</pamirs.data.designer.version> <pamirs.dataflow.designer.version>7.2.0</pamirs.dataflow.designer.version> <pamirs.eip.designer.version>7.2.2</pamirs.eip.designer.version> <pamirs.microflow.designer.version>7.2.0</pamirs.microflow.designer.version> <pamirs.ai.designer.version>7.2.0</pamirs.ai.designer.version> <dependencyManagement> <dependencies> <dependency> <groupId>pro.shushi</groupId> <artifactId>oinone-bom</artifactId> <version>${oinone-bom.version}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>pro.shushi.pamirs.designer</groupId> <artifactId>pamirs-model-designer-api</artifactId> <version>${pamirs.model.designer.version}</version> </dependency> <dependency> <groupId>pro.shushi.pamirs.designer</groupId> <artifactId>pamirs-ui-designer-api</artifactId> <version>${pamirs.ui.designer.version}</version> </dependency> <dependency> <groupId>pro.shushi.pamirs.dataflow</groupId>…

    2026年3月31日
    90200
  • 早鸟版发布:Oinone 7.0.0 版本 升级 JDK17,优化全平台界面交互,邀您体验

    版本号: 7.0.0 版本发布日期:2025.12更新要点:升级 JDK17,优化全平台界面交互 7.0.0 版本 GitHub: 后端: https://github.com/oinone/oinone-pamirs 前端: https://github.com/oinone/oinone-kunlun Gitee: 后端: https://gitee.com/oinone/oinone-pamirs 前端: https://gitee.com/oinone/oinone-kunlun 升级说明及步骤 此版本升级时需要完整回归已有系统的已有功能,否则无法保证功能的正常使用。尤其是 javax -> jakarta 的变更会出现编译正常但无法正常运行的情况。 7.0.0升级详细说明及步骤 20260608 升级内容 镜像版本升级: 7.0.5 –> 7.0.6 后端版本升级: 7.0.5.1 –> 7.0.6 修复工作流元数据导入找不到自定义函数的问题 修复工作流元数据导入导致流程重复触发的问题 20260129 升级内容 镜像版本升级: 7.0.4 –> 7.0.5 后端版本升级: 7.0.4 –> 7.0.5.1 前端版本升级 修复新模型的表格首次设置冻结渲染错误的问题 修复流程设计器数据权限表单字段丢失问题 修复业务流程抽屉转换为弹窗时高度异常的问题 20260117 升级内容 镜像版本升级: 7.0.3.1 –> 7.0.4 后端版本升级: 7.0.3 –> 7.0.4 前端版本升级 修复语言保存时毫秒格式验证错误的问题 修复界面设计器多对一表单配置提交函数过滤错误的问题 修复元数据导入时菜单无法更新动作的问题 修复工作流集成接口在某些情况下参数处理错误的问题 20260109 升级内容 升级此版本需要开启元数据全量刷新 pamirs.distribution.session.allMetaRefresh=true 镜像版本升级: 7.0.2 –> 7.0.3.1 后端版本升级: 7.0.2 –> 7.0.3 前端版本升级 修复工作流数据安装 增加对函数操作日志 增加函数操作规则设置 用户登录日志增加扩展点 时间格式支持毫秒 Eip日志增加毫秒支持 优化导出API 的文档结构 点击查看用户手册 集成接口日志参数信息支持 JSON/XML 格式切换及一键复制 点击查看用户手册 数据库 API 支持格式化 / 压缩SQL格式 点击查看用户手册 数据流程增加毫秒支持 语言增加毫秒支持 集成接口和开发接口日志统计增加日期范围筛选 增加标准心跳检查 trigger增加扩展点,适配多租户场景 增加导入文件URL错误,获取不到JSON的日志 解决元数据增强可能出现的死循环 修复集成设计器弹窗宽度问题 修复表格配置双击行动作,未预留动作区高度的问题 修复自定义 mask 变更 actionBar 插槽名称导致无法正常渲染的问题 20251229 升级内容 镜像版本升级: 7.0.1 –> 7.0.2 后端版本升级: 7.0.1 –> 7.0.2 前端版本升级 修复工作流元数据安装异常的问题 前端包名变更:@kunlun/vue-grid-layout@2.3.13 –> @oinone/vue-grid-layout@2.3.13 前端包名变更:webpack-aliyun-oss@0.5.2 –> @oinone/webpack-aliyun-oss@0.5.2 npmrc 统一配置 registry=https://registry.npmmirror.com/ @oinone:registry=http://nexus.shushi.pro/repository/kunlun/ legacy-peer-deps=true 20251220 升级内容 镜像版本升级: 7.0.0 –> 7.0.1 前端版本升级 界面设计器上传图片组件新增cdnKey配置 修复系统权限字段丢失导致无法正常运行的问题 修复全屏按钮悬浮文案 修复快捷键提示文案 修复取消排序展示错误的问题 修复快速填报选择不粘贴时数据处理错误的问题 修复流程设计器无法编辑流程名称的问题 修复移动端打包失败的问题 修复体验镜像RocketMQ无法正常启动的问题 20251217 升级内容 镜像版本升级: 7.0.0 后端版本升级: 7.0.1 前端版本升级 升级 JDK17 优化默认视图内容展示 表格视图新增多级排序、分组、快捷键录入、行高切换与全屏模式,并优化行内编辑启用逻辑 日志记录支持刷新 画廊视图新增展示字段、卡片数量切换、排序与全屏模式 弹窗与抽屉支持互相转换、全屏展示与记录数据切换 支持隐藏按钮文字 一对多子表新增快速填报能力 优化公司、部门、角色、员工组件体验 修复文件组件在默认视图中的识别问题 优化多行文本与富文本在默认视图中的展示宽度 优化子表默认展示动作 优化操作栏被隐藏时的视图展示效果 界面设计器组件库新增展示形态切换 属性面板顶部名称支持一键复制,并将开关/复选框配置项调整为下拉选择组件 属性面板新增样式面板 操作栏新增样式配置,支持配置样式与显示数量 按钮新增“文字按钮”样式 新增选项卡、分组、布局容器、表单、表格等样式配置能力 增加“保存为草稿”组件 新增表格下拉单选/多选、弹窗单选/多选组件 优化表达式搜索能力 优化数据加载函数的可选项配置…

    2025年12月17日
    1.1K00

Leave a Reply

Please Login to Comment