上个周,JEP 454(外部函数&内存API)已经从 JEP Draft 8310626 状态提升到 Candidate 状态。该 JEP 建议最终确定这个已经经历了两轮孵化和三轮预览的特性:JEP 412(外部函数&内存API第一轮孵化)在 JDK 17 中交付;JEP 419(外部函数&内存API第二轮孵化)在 JDK 18 中交付;JEP 424(外部函数&内存API第一次预览)在 JDK 19 中交付;JEP 434(外部函数&内存API第二次预览)在 JDK 20 中交付;JEP 442(外部函数&内存API第三次预览)将在即将发布的 JDK 21 GA 版本中交付。自上一个版本以来的改进包括:新增清单属性Enable-Native-Access
,使可执行 JAR 文件中的代码可以调用受限方法,而无需使用--enable-native-access
标识;允许客户端以编程方式构建 C 函数描述符,避免使用特定于平台的常量;改进对本地内存可变长数组的支持;在本地字符串中支持多个字符集。
2023 年 9 月 13 日,纽约Java特别兴趣小组和Garden State Java用户组在纽约市的纽约梅隆银行举办了一场特别活动,来自 JCP(Java Community Process)执行委员会(EC)的行业专家参加了小组讨论,谈了他们在 JCP EC 最美好的回忆以及在即将发布的 JDK 21 GA 版本中最喜欢的功能。庆祝活动包括 Bellsoft 性能架构师Dmitry Chuyko的 JDK 21 演示,以及 JCP 25 周年庆典。要了解有关此次活动的更多细节,请阅读InfoQ的这篇新闻报道。
Build 35仍是 JDK 21早期访问构建的当前构建。要了解关于这个版本的更多细节,请查看发布说明。
JDK 22早期访问构建Build 15在上周发布,其中包括 Build 14 的更新,主要是修复了各种问题。要了解关于这个版本的更多细节,请查看发布说明。
对于JDK 22和JDK 21,我们鼓励开发人员通过Java Bug数据库报告 Bug。
经历了两周的平静之后,Spring 团队发布了Spring Framework、Spring Data和Spring Tools的点版本和里程碑版本。
Spring Framework 6.1.0的第五个里程碑版本带来了 Bug 修复、依赖项升级和一系列新特性,其中包括:将新的接口RestClient
用于可观察性;作为对其 Jakarta Annotations 版本的补充,恢复对 JSR-250(Java 平台通用注解)中定义的@ManagedBean
注解和 JSR 330(Java依赖注入)中定义的@Named
注解的支持,改进项目向 Spring 6.0 及更高版本的迁移;修改JdbcTestUtils
类中定义的方法签名,使其接受JdbcOperations
接口而不是JdbcTemplate
类的实例。要了解关于该版本的更多细节,请查看发布说明。
同样,Spring Framework 6.0.12 和 5.3.30 也带来了 Bug 修复、依赖项升级和一些新特性,其中包括:优化在ClassUtils
类中定义的getMostSpecificMethod()
方法;优化StringUtils
类中的空格检查;消除了在创建 scoped bean 实例时会导致性能瓶颈的冗余的类和注解查找。要了解关于这些版本的更多细节,请查看6.0.12和5.3.30版本的发布说明。
Spring Data 2023.1.0的第三个里程碑版本(代号为 Vaughn)带来了一些值得注意的变化,其中包括:支持 JDK 21;通过配置 Java Executor
接口使用虚拟线程;支持 Kotlin值类;Spring Data JDBC单查询加载。要了解关于该版本的更多细节,请查看发布说明。
同样,Spring Data 的 2023.0.4、2022.0.10 和 2021.2.16 版本以及所有的服务版本主要也是修复了 Bug 和和升级了依赖项,其中包括:Spring Data Commons 3.1.4、3.0.10 和 2.7.14;Spring Data MongoDB 4.1.4、4.0.10 和 3.4.16;Spring Data Elasticsearch 5.1.4、5.0.10 和 4.4.16;Spring Data Neo4j 7.1.4、7.0.10 和 6.3.16。
用于 Eclipse、Visual Studio Code 和 Theia 的Spring Tools 4.20.0发布,主要特性包括:修复了一些 Bug;支持 Eclipse IDE 2023-09;为了显示特定于 Spring 的验证,改进了 Java Reconciling 支持,并从头开始重新构建,然后为了能适用于大型代码库做了性能优化。要了解关于该版本的更多细节,请查看发布说明。
Payara发布了 2023 年 9 月版的Payara平台,其中包括社区版 6.2023.9、企业版 6.6.0 和企业版 5.55.0,主要是提供了安全修复,以解决CVE-2017-12617(这是一个在各种 Apache Tomcat 版本[启用了 HTTP PUT
]都存在的漏洞,攻击者可以将特制的 JSP 文件上传到服务器,这样,当它被请求时,它所包含的任何代码都将由服务器执行)和CVE-2023-1370(这是JSON-smart中的一个漏洞,由于没有进行限制,解析嵌套太深的 JSON 结构化数组和对象时可能会导致栈溢出进而导致软件崩溃)。该版本还带来了一些改进,其中包括:从 Jakarta EJB EJBContext
接口中删除了过时的方法:getEnvironment()
、getCallerIdentity()
和isCallerInRole(Identity)
,这些方法是在 Payara EJBContextImpl
类中实现的;改进了 Hazelcast CP Subsystem的功能。要了解关于这些版本的详细信息,请查看社区版6.2023.9、企业版6.6.0和企业版5.55.0的发布说明。
Red Hat发布了Quarkus的 3.3.3、3.2.6 和 2.6.11.Final 版本,修复了CVE-2023-4853(攻击者可以通过该漏洞绕过 HTTP 安全策略,因为这些安全策略在接受请求时没有正确地清除某些字符排列,从而导致对权限的判断错误,导致未经授权的端点访问和拒绝服务)。要了解关于这些版本的更多细节,请查看3.3.3、3.2.6和2.16.11版本的变更日志。
Micronaut 基金会发布了Micronaut 4.1.1版本,其中包括Micronaut Core 4.1.5和模块更新:Micronaut Oracle Cloud、Micronaut AOT、Micronaut Data、Micronaut Kafka、Micronaut Kotlin Integrations、Micronaut Test、Micronaut Validation和Micronaut Multitenancy。要了解关于该版本的更多细节,请查看发布说明。
Helidon 2.6.3 是一个 Bug 修复版本,有一些值得注意的变化,其中包括:用ServerConfiguration
接口中定义的namedSocket()
方法替换已弃用的socket()
方法;更新在ServerRequest
接口中定义的requestduri()
方法,以便可以正确地处理 IPv6 地址格式;将OciMetricsDataTest
类中定义的beforeEach()
方法的访问指示符从private
更改为public
,因为 JUnit @BeforeEach
注解的文档已明确说明该方法不能是私有或静态的。要了解关于该版本的更多细节,请查看发布说明。
在迈向 MicroProfile 6.1 的道路上,MicroProfile Telemetry规范的 1.1-RC3 版本修复了JaxRsServerAsyncTestEndpoint
TCK 测试类中的一个部署问题。要了解关于该版本的更多细节,请查看发布说明。
OmniFishEE推出了一个新的 Eclipse EE4J 项目Epicyro,它将作为Jakarta Authentication规范的兼容实现。该项目将为身份验证机制定义一个通用的低级 SPI。其中的控制器将与调用者和容器环境交互以获取调用者凭据并进行验证,然后将经过身份验证的标识(如名称和组)传递给容器。目前,Epicyro 是一个里程碑版本,从 3.0.0 版本开始,它将与 Jakarta Authentication 3.0.0 保持一致。
Apache Groovy 5.0.0 的第二个Alpha版本提供了 Bug 修复、依赖项升级和改进,其中包括:停止使用曾经在sun.reflect
包中定义的MagicAccessorImpl
类;JsonOutput
类应该像处理 POGO(Plain Old Groovy Object)那样处理 Java 记录;使用@Generated
注解将 Groovy 脚本中的main/run
方法标记为由编译器生成。要了解关于该版本的更多细节,请查看发布说明。
同样,Apache Groovy 4.0.15发布,也修复了一些 Bug,升级了依赖项,并改进了JsonOutput
类,使其可以像处理 POGO 那样处理 Java 记录。要了解关于该版本的更多细节,请查看发布说明。
为了与 Quarkus 保持一致,Camel Quarkus 3.2.0提供了一些值得注意的问题解决方案,涉及:在dev
模式下 gRPC 应用程序编译失败;扩展Splunk、Saxonica和gRPC扩展的测试覆盖;在使用LDAP域扩展执行完整性检查时的InvocationTargetException
。要了解关于该版本的更多细节,请查看发布说明。
Grails 基金会推出了一个重新设计的Grails插件门户,主要特性包括:改进了搜索功能;所有插件的分页列表;排名靠前的插件列表;最新发布的插件。该门户的前一个版本一直为频繁停机、资源利用率高和性能差所困扰。
Micrometer Metrics的 1.12.0-M3、1.11.4、1.10.11 和 1.9.15 版本都提供了依赖项升级,并修复了一个 Bug,以确保LongTaskTimer
和FunctionTimer
接口产生的数据一致。1.12.0-M3 版本提供的新特性包括:hasAnObservationWithAKeyValue()
方法的一个变体,用于测试KeyValue
接口;提供一种方法,基于ObservationPredicate
接口(即 Java BiPredicate
接口)中的父节点来决定是否使用 Spring Security 中的/actuator
端点;向Observation
接口中定义的嵌套Event
接口添加时间戳。要了解关于这些版本的更多细节,请查看1.12.0-M3、1.11.4、1.10.11和1.9.15版本的发布说明。
同样,Micrometer Tracing的 1.2.0-M3、1.1.5 和 1.0.10 版本也都提供了依赖项升级和 Bug 修复,其中包括:当线程完成任务后,ObservationAwareSpanThreadLocalAccessor
类不释放嵌套的SpanAction
类实例;添加ThreadLocalAccessor
接口,使用 Reactor 来传播Baggage
接口的实例。1.2.0-M3 版本有一个新特性,即允许在 span 上设置事件的时间戳。要了解关于这些版本的更多细节,请查看1.2.0-M3、1.1.5和1.0.10版本的发布说明。
Piranha 23.9.0发布,带来了一些值得注意的变化,其中包括:新增PidFeature
类,改进进程 ID 的处理;修复了SonarCloud的一个测试问题;新增IsolatedWebAppFeature
类,改进对 Web 应用程序的处理。要了解关于该版本的更多细节,请查看官方文档和问题跟踪系统。
JobRunr 6.3.1 发布。这是一个基于持久化存储的分布式 Java 后台处理库。该版本有一些显著的变化:如果quarkus.jobrunr.job-scheduler.enabled
属性设置为false
,则 Quarkus 扩展会抛出NullPointerException
;添加缺失的 Spring AOT 提示,提示缺失会导致使用 JobRunr 6.3.0 和 Spring Boot 3.1.3 的应用程序异常;在升级到 Spring Boot 3.1.2 和 JobRunr 6.3.0 之后,@Job
注解不注册JobFilter
接口的实例。要了解关于该版本的更多细节,请查看发布说明。
JHipster Lite 0.42.0发布,其中包括 Bug 修复、依赖项升级和新特性/增强,诸如:新增StatisticsCriteria
类,用于向/stats
端点添加标准;删除不必要的 TestNG 依赖;新增 checkstyle 模块,用于在构建期间检查未使用的导入。要了解关于该版本的更多细节,请查看发布说明。
Reactor 2023.0.0 的第三个里程碑版本升级了依赖项,包括:reactor-core 3.6.0-M3
、reactor-pool 1.0.2
、reactor-netty 1.1.11
和reactor-kafka 1.3.21
。此外,2023.0.0-M3 版本也进行了调整,其中reactor-addons 3.5.1
和reactor-kotlin-extensions 1.2.2
构件保持不变。要了解关于这个版本的更多细节,请查看变更日志。
同样,第11个维护版本Reactor 2022.0.11 也升级了依赖项,包括:reactor-core 3.5.10
、 reactor-netty 1.1.11
、 reactor-kafka 1.3.21
和reactor-pool 1.0.2
。2022.0.11 版本也进行了调整,其中reactor-addons 3.5.1
和reactor-kotlin-extensions 1.2.2
构件保持不变。要了解关于该版本的更多细节,请查看变更日志。
领取专属 10元无门槛券
私享最新 技术干货