From d6a4981a9200f79fc33db32e2e4b59d22bf45d68 Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Wed, 4 May 2016 17:37:30 +0200 Subject: [PATCH] Polishing (cherry picked from commit 1e491f1) --- .../scheduling/config/TriggerTask.java | 9 +++--- ...ansactionalAnnotationIntegrationTests.java | 31 ++++++++++++++----- 2 files changed, 29 insertions(+), 11 deletions(-) diff --git a/spring-context/src/main/java/org/springframework/scheduling/config/TriggerTask.java b/spring-context/src/main/java/org/springframework/scheduling/config/TriggerTask.java index 6d0aa6c8136..0766d6580ed 100644 --- a/spring-context/src/main/java/org/springframework/scheduling/config/TriggerTask.java +++ b/spring-context/src/main/java/org/springframework/scheduling/config/TriggerTask.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2012 the original author or authors. + * Copyright 2002-2016 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,8 +19,8 @@ package org.springframework.scheduling.config; import org.springframework.scheduling.Trigger; /** - * {@link Task} implementation defining a {@code Runnable} to be executed according to a - * given {@link Trigger}. + * {@link Task} implementation defining a {@code Runnable} to be executed + * according to a given {@link Trigger}. * * @author Chris Beams * @since 3.2 @@ -45,6 +45,7 @@ public class TriggerTask extends Task { public Trigger getTrigger() { - return trigger; + return this.trigger; } + } diff --git a/src/test/java/org/springframework/scheduling/annotation/ScheduledAndTransactionalAnnotationIntegrationTests.java b/src/test/java/org/springframework/scheduling/annotation/ScheduledAndTransactionalAnnotationIntegrationTests.java index 8468024f994..1a0f250d866 100644 --- a/src/test/java/org/springframework/scheduling/annotation/ScheduledAndTransactionalAnnotationIntegrationTests.java +++ b/src/test/java/org/springframework/scheduling/annotation/ScheduledAndTransactionalAnnotationIntegrationTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2013 the original author or authors. + * Copyright 2002-2016 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,6 +20,7 @@ import java.util.concurrent.atomic.AtomicInteger; import org.junit.Before; import org.junit.Test; + import org.springframework.aop.support.AopUtils; import org.springframework.beans.factory.BeanCreationException; import org.springframework.context.annotation.AnnotationConfigApplicationContext; @@ -47,6 +48,7 @@ import static org.mockito.BDDMockito.*; * @author Chris Beams * @since 3.1 */ +@SuppressWarnings("resource") public class ScheduledAndTransactionalAnnotationIntegrationTests { @Before @@ -54,13 +56,14 @@ public class ScheduledAndTransactionalAnnotationIntegrationTests { Assume.group(TestGroup.PERFORMANCE); } + @Test public void failsWhenJdkProxyAndScheduledMethodNotPresentOnInterface() { AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(); ctx.register(Config.class, JdkProxyTxConfig.class, RepoConfigA.class); try { ctx.refresh(); - fail("expected exception"); + fail("Should have thrown BeanCreationException"); } catch (BeanCreationException ex) { assertTrue(ex.getRootCause().getMessage().startsWith("@Scheduled method 'scheduled' found")); @@ -100,28 +103,36 @@ public class ScheduledAndTransactionalAnnotationIntegrationTests { @Configuration @EnableTransactionManagement - static class JdkProxyTxConfig { } + static class JdkProxyTxConfig { + } + @Configuration @EnableTransactionManagement(proxyTargetClass=true) - static class SubclassProxyTxConfig { } + static class SubclassProxyTxConfig { + } + @Configuration static class RepoConfigA { + @Bean public MyRepository repository() { return new MyRepositoryImpl(); } } + @Configuration static class RepoConfigB { + @Bean public MyRepositoryWithScheduledMethod repository() { return new MyRepositoryWithScheduledMethodImpl(); } } + @Configuration @EnableScheduling static class Config { @@ -138,15 +149,17 @@ public class ScheduledAndTransactionalAnnotationIntegrationTests { @Bean public PersistenceExceptionTranslator peTranslator() { - PersistenceExceptionTranslator txlator = mock(PersistenceExceptionTranslator.class); - return txlator; + return mock(PersistenceExceptionTranslator.class); } } + public interface MyRepository { + int getInvocationCount(); } + @Repository static class MyRepositoryImpl implements MyRepository { @@ -164,11 +177,15 @@ public class ScheduledAndTransactionalAnnotationIntegrationTests { } } + public interface MyRepositoryWithScheduledMethod { + int getInvocationCount(); - public void scheduled(); + + void scheduled(); } + @Repository static class MyRepositoryWithScheduledMethodImpl implements MyRepositoryWithScheduledMethod {