如何在 ChangeSpringPropertyKey OpenRewrite Recipe 中使用通配符

问题描述 投票:0回答:1

我正在尝试转换以下内容

me:
  cxf:
    jaxws:
      services:
        myconfig:
          retry:
            enabled: true
          sleuth:
            enabled: true

这里的问题是这可能位于属性或 YAML 中。我需要将其更改为

me:
  cxf:
    jaxws:
      services:
        myconfig:
          retry:
            enabled: true
          observation:
            enabled: true

我试过了

  - org.openrewrite.java.spring.ChangeSpringPropertyKey:
      oldPropertyKey: me.cxf.jaxws.services.*.sleuth
      newPropertyKey: me.cxf.jaxws.services.{*}.observation

  - org.openrewrite.java.spring.ChangeSpringPropertyKey:
      oldPropertyKey: me.cxf.jaxws.services.*.sleuth
      newPropertyKey: me.cxf.jaxws.services.*.observation

但是这些最终会删除 myconfig

       services:
-        myconfig:
-          observation:
+          {*}.observation:
             enabled: true

那么将动态路径与 ChangeSpringPropertyKey 一起使用的正确方法是什么?

我无法使用 ChangeKey,因为它仅适用于 yaml 而不是 .properties

更新

所以我正在考虑同时使用 ChangeKey 和 ChangeSpringPropertyKey 但问题似乎是基于文档,这也不适用于属性。例如,如果我有

a.b.c.property=Something
a.f.c.otherProperty=Something

我想把它改成

a.b.d.property=Something
a.f.d.otherProperty=Something

基于我在这里看到的文档

属性键的新名称。

没有提到 glob 与支持它的旧版本

要重命名的属性键。支持全局

spring yaml openrewrite
1个回答
0
投票

感谢您分享您的发现!事实上,这里似乎存在不匹配:ChangeSpringPropertyKey 配方委托给其他两个配方,而这两个配方并不支持相同的格式。因此,我现在已经删除了支持 glob 的指示,我们将回过头来尝试添加它。

这里正在进行一些相关工作,应该可以更容易添加:

© www.soinside.com 2019 - 2024. All rights reserved.