@Deprecated
    protected MetadataReportRetry getMetadataReportRetry() {
        return metadataReportRetry;
    }
@Test
    void testRetryCancel() throws ClassNotFoundException {
        String interfaceName = "org.apache.dubbo.metadata.store.RetryTestService";
        String version = "1.0.0.retrycancel";
        String group = null;
        String application = "vic.retry";
        URL storeUrl = URL.valueOf("retryReport://" + NetUtils.getLocalAddress().getHostName()
                + ":4444/org.apache.dubbo.TestServiceForRetryCancel?version=1.0.0.retrycancel&application=vic.retry");
        RetryMetadataReport retryReport = new RetryMetadataReport(storeUrl, 2, applicationModel);
        retryReport.metadataReportRetry.retryPeriod = 150L;
        retryReport.metadataReportRetry.retryTimesIfNonFail = 2;
        retryReport.semaphore = new Semaphore(1);

        ScheduledThreadPoolExecutor retryExecutor = (ScheduledThreadPoolExecutor)
                retryReport.getMetadataReportRetry().getRetryExecutor();
        long completedTaskCount = retryExecutor.getCompletedTaskCount();
        storeProvider(retryReport, interfaceName, version, group, application);

        // Wait for the assignment of retryScheduledFuture to complete
        await().until(() -> retryReport.metadataReportRetry.retryScheduledFuture != null);
        assertFalse(retryReport.metadataReportRetry.retryScheduledFuture.isCancelled());
        assertFalse(retryReport.metadataReportRetry.retryExecutor.isShutdown());
        retryReport.semaphore.release(2);
        await().until(() -> retryExecutor.getCompletedTaskCount() > completedTaskCount + 2);
        await().untilAsserted(() -> assertTrue(retryReport.metadataReportRetry.retryScheduledFuture.isCancelled()));
        await().untilAsserted(() -> assertTrue(retryReport.metadataReportRetry.retryExecutor.isShutdown()));
    }