Skip to content

Commit e7ed0aa

Browse files
committed
Making SpringLockableTaskSchedulerFactoryBean public to enable XML configuration
1 parent 585b448 commit e7ed0aa

File tree

3 files changed

+14
-5
lines changed

3 files changed

+14
-5
lines changed

shedlock-spring/src/main/java/net/javacrumbs/shedlock/spring/SpringLockableTaskSchedulerFactory.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828

2929
/**
3030
* Helper class to simplify configuration of Spring LockableTaskScheduler.
31-
* @deprecated Use {@link ScheduledLockConfigurationBuilder} instead.
31+
* @deprecated Use {@link ScheduledLockConfigurationBuilder} instead. Objects created through this class will not support string annotation param resolution.
3232
*/
3333
@Deprecated
3434
public class SpringLockableTaskSchedulerFactory {

shedlock-spring/src/main/java/net/javacrumbs/shedlock/spring/SpringLockableTaskSchedulerFactoryBean.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,14 @@
2222
import org.springframework.scheduling.TaskScheduler;
2323
import org.springframework.util.StringValueResolver;
2424

25+
import java.time.Duration;
2526
import java.time.temporal.TemporalAmount;
2627

2728
/**
2829
* Helper class to simplify configuration of Spring LockableTaskScheduler. embeddedValueResolver is injected by Spring automatically.
2930
* That's why this class implements FactoryBean.
3031
*/
31-
class SpringLockableTaskSchedulerFactoryBean implements FactoryBean<LockableTaskScheduler>, EmbeddedValueResolverAware, ScheduledLockConfiguration {
32+
public class SpringLockableTaskSchedulerFactoryBean implements FactoryBean<LockableTaskScheduler>, EmbeddedValueResolverAware, ScheduledLockConfiguration {
3233
private final TaskScheduler taskScheduler;
3334

3435
private final LockProvider lockProvider;
@@ -39,7 +40,11 @@ class SpringLockableTaskSchedulerFactoryBean implements FactoryBean<LockableTask
3940

4041
private StringValueResolver embeddedValueResolver;
4142

42-
SpringLockableTaskSchedulerFactoryBean(TaskScheduler taskScheduler, LockProvider lockProvider, TemporalAmount defaultLockAtMostFor, TemporalAmount defaultLockAtLeastFor) {
43+
public SpringLockableTaskSchedulerFactoryBean(TaskScheduler taskScheduler, LockProvider lockProvider, TemporalAmount defaultLockAtMostFor) {
44+
this(taskScheduler, lockProvider, defaultLockAtMostFor, Duration.ZERO);
45+
}
46+
47+
public SpringLockableTaskSchedulerFactoryBean(TaskScheduler taskScheduler, LockProvider lockProvider, TemporalAmount defaultLockAtMostFor, TemporalAmount defaultLockAtLeastFor) {
4348
this.taskScheduler = taskScheduler;
4449
this.lockProvider = lockProvider;
4550
this.defaultLockAtMostFor = defaultLockAtMostFor;

shedlock-spring/src/test/resources/applicationContext.xml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,16 @@
88
<constructor-arg value="net.javacrumbs.shedlock.core.LockProvider"/>
99
</bean>
1010

11-
<bean id="scheduler" class="net.javacrumbs.shedlock.spring.SpringLockableTaskSchedulerFactory"
12-
factory-method="newLockableTaskScheduler">
11+
<bean id="scheduler" class="net.javacrumbs.shedlock.spring.SpringLockableTaskSchedulerFactoryBean">
1312
<constructor-arg>
1413
<task:scheduler id="sch" pool-size="10"/>
1514
</constructor-arg>
1615
<constructor-arg ref="lockProvider"/>
16+
<constructor-arg name="defaultLockAtMostFor">
17+
<bean class="java.time.Duration" factory-method="ofMinutes">
18+
<constructor-arg value="10"/>
19+
</bean>
20+
</constructor-arg>
1721
</bean>
1822

1923

0 commit comments

Comments
 (0)