package org.test

@EnableRetry
@Component
class Example implements CommandLineRunner {

	@Autowired
	private MyService myService

	void run(String... args) {
		println "Hello ${this.myService.sayWorld()} From ${getClass().getClassLoader().getResource('samples/retry.groovy')}"
	}
}


@Service
class MyService {

	static int count = 0

	@Retryable
	String sayWorld() {
		if (count++==0) {
			throw new IllegalStateException("Planned")
		}
		return "World!"
	}
}