ここで言及した、Kafka Metrics を Spring Boot Actuator と統合するという私の考えに戻ることにしました。
https://github.com/spring-projects/spring-boot/issues/6227
今のところ、Spring Boot にマージしたい作業コードを含む別の「サンドボックス」プロジェクトがあります。そして今、私は少し混乱しています。私のテストの一部では、Mock Kafka の「超セキュア」クラスに powermock が必要です。
package org.apache.kafka.common.metrics;
// some imports...
public final class KafkaMetric implements Metric {
private MetricName metricName;
private final Object lock;
private final Time time;
private final Measurable measurable;
private MetricConfig config;
KafkaMetric(Object lock, MetricName metricName, Measurable measurable, MetricConfig config, Time time) {
this.metricName = metricName;
this.lock = lock;
this.measurable = measurable;
this.config = config;
this.time = time;
}
// some good code here, but no public constructor and the class is final... of course.
}
ただし、Powermock は Spring Boot では使用されません。
私は何をすべきか?
- spring-boot-dependencies と spring-boot-actuator の両方に、最新の安定した powermock を追加します。
- spring-boot-actuator のみに最新の安定した powermock を追加します。これを隠れた秘密のヘルパーにします。
- パワーモックを必要とするテストを除外します。
- Kafka Metrics のことは忘れてください。それらは巨大で恐ろしく、私たちの親切でフレンドリーな Spring Boot Actuator では誰もそれらを望んでいません。