@@ -176,9 +176,9 @@ public void reconciliationSubmitted(Object resource, Object retryInfo, Map<Strin
176176 }
177177
178178 @ Test
179- void removesMonitorSizeOfFromImplementation () {
179+ void removesMonitorSizeOfFromImplementationWithGenerics () {
180180 rewriteRun (
181- // Stub for the Metrics interface
181+ // Stub for the Metrics interface with generic monitorSizeOf
182182 // language=java
183183 java (
184184 """
@@ -188,7 +188,7 @@ void removesMonitorSizeOfFromImplementation() {
188188
189189 public interface Metrics {
190190 default void eventReceived(Object event, Map<String, Object> metadata) {}
191- default Map<String, Object> monitorSizeOf(Map<String, Object> map ) { return map; }
191+ default <T extends Map<?, ?>> T monitorSizeOf(T map, String name ) { return map; }
192192 }
193193 """ ,
194194 """
@@ -200,7 +200,7 @@ public interface Metrics {
200200 default void eventReceived(Object event, Map<String, Object> metadata) {}
201201 }
202202 """ ),
203- // Implementation that overrides monitorSizeOf
203+ // Implementation that overrides monitorSizeOf with generic signature
204204 // language=java
205205 java (
206206 """
@@ -216,7 +216,7 @@ public void eventReceived(Object event, Map<String, Object> metadata) {
216216 }
217217
218218 @Override
219- public Map<String, Object> monitorSizeOf(Map<String, Object> map ) {
219+ public <T extends Map<?, ?>> T monitorSizeOf(T map, String name ) {
220220 System.out.println("monitoring size");
221221 return map;
222222 }
@@ -234,6 +234,30 @@ public void eventReceived(Object event, Map<String, Object> metadata) {
234234 System.out.println("event");
235235 }
236236 }
237+ """ ),
238+ // Implementation without @Override annotation
239+ // language=java
240+ java (
241+ """
242+ package com.example;
243+
244+ import java.util.Map;
245+ import io.javaoperatorsdk.operator.api.monitoring.Metrics;
246+
247+ public class AnotherMetrics implements Metrics {
248+ public <T extends Map<?, ?>> T monitorSizeOf(T map, String name) {
249+ return map;
250+ }
251+ }
252+ """ ,
253+ """
254+ package com.example;
255+
256+ import java.util.Map;
257+ import io.javaoperatorsdk.operator.api.monitoring.Metrics;
258+
259+ public class AnotherMetrics implements Metrics {
260+ }
237261 """ ));
238262 }
239263
0 commit comments