diff --git a/examples/showcase/pom.xml b/examples/showcase/pom.xml
index 196d193f..10f5fc20 100644
--- a/examples/showcase/pom.xml
+++ b/examples/showcase/pom.xml
@@ -480,6 +480,9 @@
+
+
+
diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/schedule/JdkExecutorJob.java b/examples/showcase/src/main/java/org/springside/examples/showcase/schedule/JdkExecutorJob.java
index e74caa91..7920c610 100644
--- a/examples/showcase/src/main/java/org/springside/examples/showcase/schedule/JdkExecutorJob.java
+++ b/examples/showcase/src/main/java/org/springside/examples/showcase/schedule/JdkExecutorJob.java
@@ -7,19 +7,19 @@ import java.util.concurrent.TimeUnit;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
+import org.apache.commons.lang3.Validate;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.support.DelegatingErrorHandlingRunnable;
import org.springframework.scheduling.support.TaskUtils;
import org.springside.examples.showcase.common.service.AccountManager;
-import org.apache.commons.lang3.Validate;
import org.springside.modules.utils.Threads;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
/**
- * 被ScheduledThreadPoolExecutor定时执行的任务类.
+ * 被ScheduledThreadPoolExecutor定时执行的任务类, 并强化了退出控制.
*/
public class JdkExecutorJob implements Runnable {
@@ -61,7 +61,7 @@ public class JdkExecutorJob implements Runnable {
@Override
public void run() {
long userCount = accountManager.getUserCount();
- logger.info("There are {} user in database.", userCount);
+ logger.info("There are {} user in database, printed by jdk timer job.", userCount);
}
/**
diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/schedule/QuartzClusterableJob.java b/examples/showcase/src/main/java/org/springside/examples/showcase/schedule/QuartzClusterableJob.java
index f4b4f0fa..f723e457 100644
--- a/examples/showcase/src/main/java/org/springside/examples/showcase/schedule/QuartzClusterableJob.java
+++ b/examples/showcase/src/main/java/org/springside/examples/showcase/schedule/QuartzClusterableJob.java
@@ -32,7 +32,6 @@ public class QuartzClusterableJob extends QuartzJobBean {
/**
* 定时打印当前用户数到日志.
*/
-
@Override
protected void executeInternal(JobExecutionContext ctx) throws JobExecutionException {
AccountManager accountManager = applicationContext.getBean(AccountManager.class);
@@ -41,6 +40,6 @@ public class QuartzClusterableJob extends QuartzJobBean {
long userCount = accountManager.getUserCount();
String nodeName = (String) config.get("nodeName");
- logger.info("There are {} user in database, print by {}'s job.", userCount, nodeName);
+ logger.info("There are {} user in database, printed by quartz cluster job on node {}.", userCount, nodeName);
}
}
diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/schedule/QuartzJob.java b/examples/showcase/src/main/java/org/springside/examples/showcase/schedule/QuartzJob.java
index e38bb74a..1250254c 100644
--- a/examples/showcase/src/main/java/org/springside/examples/showcase/schedule/QuartzJob.java
+++ b/examples/showcase/src/main/java/org/springside/examples/showcase/schedule/QuartzJob.java
@@ -20,6 +20,6 @@ public class QuartzJob {
*/
public void execute() {
long userCount = accountManager.getUserCount();
- logger.info("There are {} user in database.", userCount);
+ logger.info("There are {} user in database, printed by quartz local job.", userCount);
}
}
diff --git a/examples/showcase/src/main/java/org/springside/examples/showcase/schedule/SpringCronJob.java b/examples/showcase/src/main/java/org/springside/examples/showcase/schedule/SpringCronJob.java
index c6ea02e8..41b41d0c 100644
--- a/examples/showcase/src/main/java/org/springside/examples/showcase/schedule/SpringCronJob.java
+++ b/examples/showcase/src/main/java/org/springside/examples/showcase/schedule/SpringCronJob.java
@@ -16,7 +16,7 @@ import org.springside.examples.showcase.common.service.AccountManager;
import org.springside.modules.utils.Threads;
/**
- * 使用Spring的ThreadPoolTaskScheduler执行Cron式任务的类.
+ * 使用Spring的ThreadPoolTaskScheduler执行Cron式任务的类, 并强化了退出控制.
*/
public class SpringCronJob implements Runnable {
@@ -55,7 +55,7 @@ public class SpringCronJob implements Runnable {
@Override
public void run() {
long userCount = accountManager.getUserCount();
- logger.info("There are {} user in database.", userCount);
+ logger.info("There are {} user in database, printed by spring cron job.", userCount);
}
public void setCronExpression(String cronExpression) {
diff --git a/examples/showcase/src/main/resources/applicationContext-showcases.xml b/examples/showcase/src/main/resources/applicationContext-showcases.xml
index 581dd316..62ea04e9 100644
--- a/examples/showcase/src/main/resources/applicationContext-showcases.xml
+++ b/examples/showcase/src/main/resources/applicationContext-showcases.xml
@@ -11,7 +11,8 @@
-
+
+
diff --git a/examples/showcase/src/main/resources/schedule/applicationContext-executor.xml b/examples/showcase/src/main/resources/schedule/applicationContext-jdk-timer.xml
similarity index 69%
rename from examples/showcase/src/main/resources/schedule/applicationContext-executor.xml
rename to examples/showcase/src/main/resources/schedule/applicationContext-jdk-timer.xml
index 953d6b26..d0202731 100644
--- a/examples/showcase/src/main/resources/schedule/applicationContext-executor.xml
+++ b/examples/showcase/src/main/resources/schedule/applicationContext-jdk-timer.xml
@@ -14,12 +14,4 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/examples/showcase/src/main/resources/schedule/applicationContext-quartz-cron-local.xml b/examples/showcase/src/main/resources/schedule/applicationContext-quartz-cron-local.xml
index f6e7481c..ea83eee2 100644
--- a/examples/showcase/src/main/resources/schedule/applicationContext-quartz-cron-local.xml
+++ b/examples/showcase/src/main/resources/schedule/applicationContext-quartz-cron-local.xml
@@ -6,7 +6,7 @@
Quartz的本地Cron式执行任务配置
-
+
@@ -24,7 +24,7 @@
-
+
diff --git a/examples/showcase/src/main/resources/schedule/applicationContext-quartz-timer-cluster.xml b/examples/showcase/src/main/resources/schedule/applicationContext-quartz-timer-cluster.xml
index 1cc9cf35..556b45f1 100644
--- a/examples/showcase/src/main/resources/schedule/applicationContext-quartz-timer-cluster.xml
+++ b/examples/showcase/src/main/resources/schedule/applicationContext-quartz-timer-cluster.xml
@@ -26,20 +26,18 @@
-
+
-
+
-
-
-
+
diff --git a/examples/showcase/src/main/resources/schedule/applicationContext-spring-cron.xml b/examples/showcase/src/main/resources/schedule/applicationContext-spring-cron.xml
new file mode 100644
index 00000000..6a7b21a4
--- /dev/null
+++ b/examples/showcase/src/main/resources/schedule/applicationContext-spring-cron.xml
@@ -0,0 +1,15 @@
+
+
+
+ 使用Spring的 Scheduled的定时任务配置
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/showcase/src/main/resources/schedule/quartz-cluster.properties b/examples/showcase/src/main/resources/schedule/quartz-cluster.properties
index 99677b50..af9352b5 100644
--- a/examples/showcase/src/main/resources/schedule/quartz-cluster.properties
+++ b/examples/showcase/src/main/resources/schedule/quartz-cluster.properties
@@ -3,6 +3,7 @@
#============================================================================
org.quartz.scheduler.instanceName = ClusteredScheduler
org.quartz.scheduler.instanceId = AUTO
+org.quartz.scheduler.skipUpdateCheck = true
#============================================================================
# Configure ThreadPool
@@ -10,7 +11,6 @@ org.quartz.scheduler.instanceId = AUTO
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 5
org.quartz.threadPool.threadPriority = 5
-org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread = true
#============================================================================
# Configure JobStore
diff --git a/examples/showcase/src/main/resources/sql/h2/quartz.sql b/examples/showcase/src/main/resources/sql/h2/quartz.sql
index a30601ac..4b6dc753 100644
--- a/examples/showcase/src/main/resources/sql/h2/quartz.sql
+++ b/examples/showcase/src/main/resources/sql/h2/quartz.sql
@@ -1,3 +1,13 @@
+-- Thanks to Amir Kibbar and Peter Rietzler for contributing the schema for H2 database,
+-- and verifying that it works with Quartz's StdJDBCDelegate
+--
+-- Note, Quartz depends on row-level locking which means you must use the MVCC=TRUE
+-- setting on your H2 database, or you will experience dead-locks
+--
+--
+-- In your Quartz properties file, you'll need to set
+-- org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate
+
DROP TABLE QRTZ_LOCKS IF EXISTS;
DROP TABLE QRTZ_SCHEDULER_STATE IF EXISTS;
DROP TABLE QRTZ_FIRED_TRIGGERS IF EXISTS;
@@ -10,14 +20,17 @@ DROP TABLE QRTZ_SIMPLE_TRIGGERS IF EXISTS;
DROP TABLE QRTZ_TRIGGERS IF EXISTS;
DROP TABLE QRTZ_JOB_LISTENERS IF EXISTS;
DROP TABLE QRTZ_JOB_DETAILS IF EXISTS;
-
+DROP TABLE qrtz_simprop_triggers IF EXISTS;
+DROP TABLE QRTZ_BLOB_TRIGGERS IF EXISTS;
CREATE TABLE QRTZ_CALENDARS (
+ SCHED_NAME VARCHAR(120) NOT NULL,
CALENDAR_NAME VARCHAR (200) NOT NULL ,
CALENDAR IMAGE NOT NULL
);
CREATE TABLE QRTZ_CRON_TRIGGERS (
+ SCHED_NAME VARCHAR(120) NOT NULL,
TRIGGER_NAME VARCHAR (200) NOT NULL ,
TRIGGER_GROUP VARCHAR (200) NOT NULL ,
CRON_EXPRESSION VARCHAR (120) NOT NULL ,
@@ -25,53 +38,52 @@ CREATE TABLE QRTZ_CRON_TRIGGERS (
);
CREATE TABLE QRTZ_FIRED_TRIGGERS (
+ SCHED_NAME VARCHAR(120) NOT NULL,
ENTRY_ID VARCHAR (95) NOT NULL ,
TRIGGER_NAME VARCHAR (200) NOT NULL ,
TRIGGER_GROUP VARCHAR (200) NOT NULL ,
- IS_VOLATILE BOOLEAN NOT NULL ,
INSTANCE_NAME VARCHAR (200) NOT NULL ,
FIRED_TIME BIGINT NOT NULL ,
PRIORITY INTEGER NOT NULL ,
STATE VARCHAR (16) NOT NULL,
JOB_NAME VARCHAR (200) NULL ,
JOB_GROUP VARCHAR (200) NULL ,
- IS_STATEFUL BOOLEAN NULL ,
+ IS_NONCONCURRENT BOOLEAN NULL ,
REQUESTS_RECOVERY BOOLEAN NULL
);
CREATE TABLE QRTZ_PAUSED_TRIGGER_GRPS (
+ SCHED_NAME VARCHAR(120) NOT NULL,
TRIGGER_GROUP VARCHAR (200) NOT NULL
);
CREATE TABLE QRTZ_SCHEDULER_STATE (
+ SCHED_NAME VARCHAR(120) NOT NULL,
INSTANCE_NAME VARCHAR (200) NOT NULL ,
LAST_CHECKIN_TIME BIGINT NOT NULL ,
CHECKIN_INTERVAL BIGINT NOT NULL
);
CREATE TABLE QRTZ_LOCKS (
+ SCHED_NAME VARCHAR(120) NOT NULL,
LOCK_NAME VARCHAR (40) NOT NULL
);
CREATE TABLE QRTZ_JOB_DETAILS (
+ SCHED_NAME VARCHAR(120) NOT NULL,
JOB_NAME VARCHAR (200) NOT NULL ,
JOB_GROUP VARCHAR (200) NOT NULL ,
DESCRIPTION VARCHAR (250) NULL ,
JOB_CLASS_NAME VARCHAR (250) NOT NULL ,
IS_DURABLE BOOLEAN NOT NULL ,
- IS_VOLATILE BOOLEAN NOT NULL ,
- IS_STATEFUL BOOLEAN NOT NULL ,
+ IS_NONCONCURRENT BOOLEAN NOT NULL ,
+ IS_UPDATE_DATA BOOLEAN NOT NULL ,
REQUESTS_RECOVERY BOOLEAN NOT NULL ,
JOB_DATA IMAGE NULL
);
-CREATE TABLE QRTZ_JOB_LISTENERS (
- JOB_NAME VARCHAR (200) NOT NULL ,
- JOB_GROUP VARCHAR (200) NOT NULL ,
- JOB_LISTENER VARCHAR (200) NOT NULL
-);
-
CREATE TABLE QRTZ_SIMPLE_TRIGGERS (
+ SCHED_NAME VARCHAR(120) NOT NULL,
TRIGGER_NAME VARCHAR (200) NOT NULL ,
TRIGGER_GROUP VARCHAR (200) NOT NULL ,
REPEAT_COUNT BIGINT NOT NULL ,
@@ -79,24 +91,37 @@ CREATE TABLE QRTZ_SIMPLE_TRIGGERS (
TIMES_TRIGGERED BIGINT NOT NULL
);
+CREATE TABLE qrtz_simprop_triggers
+ (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ TRIGGER_NAME VARCHAR(200) NOT NULL,
+ TRIGGER_GROUP VARCHAR(200) NOT NULL,
+ STR_PROP_1 VARCHAR(512) NULL,
+ STR_PROP_2 VARCHAR(512) NULL,
+ STR_PROP_3 VARCHAR(512) NULL,
+ INT_PROP_1 INTEGER NULL,
+ INT_PROP_2 INTEGER NULL,
+ LONG_PROP_1 BIGINT NULL,
+ LONG_PROP_2 BIGINT NULL,
+ DEC_PROP_1 NUMERIC(13,4) NULL,
+ DEC_PROP_2 NUMERIC(13,4) NULL,
+ BOOL_PROP_1 BOOLEAN NULL,
+ BOOL_PROP_2 BOOLEAN NULL,
+);
+
CREATE TABLE QRTZ_BLOB_TRIGGERS (
+ SCHED_NAME VARCHAR(120) NOT NULL,
TRIGGER_NAME VARCHAR (200) NOT NULL ,
TRIGGER_GROUP VARCHAR (200) NOT NULL ,
BLOB_DATA IMAGE NULL
);
-CREATE TABLE QRTZ_TRIGGER_LISTENERS (
- TRIGGER_NAME VARCHAR (200) NOT NULL ,
- TRIGGER_GROUP VARCHAR (200) NOT NULL ,
- TRIGGER_LISTENER VARCHAR (200) NOT NULL
-);
-
CREATE TABLE QRTZ_TRIGGERS (
+ SCHED_NAME VARCHAR(120) NOT NULL,
TRIGGER_NAME VARCHAR (200) NOT NULL ,
TRIGGER_GROUP VARCHAR (200) NOT NULL ,
JOB_NAME VARCHAR (200) NOT NULL ,
JOB_GROUP VARCHAR (200) NOT NULL ,
- IS_VOLATILE BOOLEAN NOT NULL ,
DESCRIPTION VARCHAR (250) NULL ,
NEXT_FIRE_TIME BIGINT NULL ,
PREV_FIRE_TIME BIGINT NULL ,
@@ -113,12 +138,14 @@ CREATE TABLE QRTZ_TRIGGERS (
ALTER TABLE QRTZ_CALENDARS ADD
CONSTRAINT PK_QRTZ_CALENDARS PRIMARY KEY
(
+ SCHED_NAME,
CALENDAR_NAME
);
ALTER TABLE QRTZ_CRON_TRIGGERS ADD
CONSTRAINT PK_QRTZ_CRON_TRIGGERS PRIMARY KEY
(
+ SCHED_NAME,
TRIGGER_NAME,
TRIGGER_GROUP
);
@@ -126,60 +153,59 @@ ALTER TABLE QRTZ_CRON_TRIGGERS ADD
ALTER TABLE QRTZ_FIRED_TRIGGERS ADD
CONSTRAINT PK_QRTZ_FIRED_TRIGGERS PRIMARY KEY
(
+ SCHED_NAME,
ENTRY_ID
);
ALTER TABLE QRTZ_PAUSED_TRIGGER_GRPS ADD
CONSTRAINT PK_QRTZ_PAUSED_TRIGGER_GRPS PRIMARY KEY
(
+ SCHED_NAME,
TRIGGER_GROUP
);
ALTER TABLE QRTZ_SCHEDULER_STATE ADD
CONSTRAINT PK_QRTZ_SCHEDULER_STATE PRIMARY KEY
(
+ SCHED_NAME,
INSTANCE_NAME
);
ALTER TABLE QRTZ_LOCKS ADD
CONSTRAINT PK_QRTZ_LOCKS PRIMARY KEY
(
+ SCHED_NAME,
LOCK_NAME
);
ALTER TABLE QRTZ_JOB_DETAILS ADD
CONSTRAINT PK_QRTZ_JOB_DETAILS PRIMARY KEY
(
+ SCHED_NAME,
JOB_NAME,
JOB_GROUP
);
-ALTER TABLE QRTZ_JOB_LISTENERS ADD
- CONSTRAINT PK_QRTZ_JOB_LISTENERS PRIMARY KEY
- (
- JOB_NAME,
- JOB_GROUP,
- JOB_LISTENER
- );
-
ALTER TABLE QRTZ_SIMPLE_TRIGGERS ADD
CONSTRAINT PK_QRTZ_SIMPLE_TRIGGERS PRIMARY KEY
(
+ SCHED_NAME,
TRIGGER_NAME,
TRIGGER_GROUP
);
-ALTER TABLE QRTZ_TRIGGER_LISTENERS ADD
- CONSTRAINT PK_QRTZ_TRIGGER_LISTENERS PRIMARY KEY
+ALTER TABLE QRTZ_SIMPROP_TRIGGERS ADD
+ CONSTRAINT PK_QRTZ_SIMPROP_TRIGGERS PRIMARY KEY
(
+ SCHED_NAME,
TRIGGER_NAME,
- TRIGGER_GROUP,
- TRIGGER_LISTENER
+ TRIGGER_GROUP
);
ALTER TABLE QRTZ_TRIGGERS ADD
CONSTRAINT PK_QRTZ_TRIGGERS PRIMARY KEY
(
+ SCHED_NAME,
TRIGGER_NAME,
TRIGGER_GROUP
);
@@ -187,56 +213,51 @@ ALTER TABLE QRTZ_TRIGGERS ADD
ALTER TABLE QRTZ_CRON_TRIGGERS ADD
CONSTRAINT FK_QRTZ_CRON_TRIGGERS_QRTZ_TRIGGERS FOREIGN KEY
(
+ SCHED_NAME,
TRIGGER_NAME,
TRIGGER_GROUP
) REFERENCES QRTZ_TRIGGERS (
+ SCHED_NAME,
TRIGGER_NAME,
TRIGGER_GROUP
) ON DELETE CASCADE;
-ALTER TABLE QRTZ_JOB_LISTENERS ADD
- CONSTRAINT FK_QRTZ_JOB_LISTENERS_QRTZ_JOB_DETAILS FOREIGN KEY
- (
- JOB_NAME,
- JOB_GROUP
- ) REFERENCES QRTZ_JOB_DETAILS (
- JOB_NAME,
- JOB_GROUP
- ) ON DELETE CASCADE;
ALTER TABLE QRTZ_SIMPLE_TRIGGERS ADD
CONSTRAINT FK_QRTZ_SIMPLE_TRIGGERS_QRTZ_TRIGGERS FOREIGN KEY
(
+ SCHED_NAME,
TRIGGER_NAME,
TRIGGER_GROUP
) REFERENCES QRTZ_TRIGGERS (
+ SCHED_NAME,
TRIGGER_NAME,
TRIGGER_GROUP
) ON DELETE CASCADE;
-ALTER TABLE QRTZ_TRIGGER_LISTENERS ADD
- CONSTRAINT FK_QRTZ_TRIGGER_LISTENERS_QRTZ_TRIGGERS FOREIGN KEY
+ALTER TABLE QRTZ_SIMPROP_TRIGGERS ADD
+ CONSTRAINT FK_QRTZ_SIMPROP_TRIGGERS_QRTZ_TRIGGERS FOREIGN KEY
(
+ SCHED_NAME,
TRIGGER_NAME,
TRIGGER_GROUP
) REFERENCES QRTZ_TRIGGERS (
+ SCHED_NAME,
TRIGGER_NAME,
TRIGGER_GROUP
) ON DELETE CASCADE;
+
ALTER TABLE QRTZ_TRIGGERS ADD
CONSTRAINT FK_QRTZ_TRIGGERS_QRTZ_JOB_DETAILS FOREIGN KEY
(
+ SCHED_NAME,
JOB_NAME,
JOB_GROUP
) REFERENCES QRTZ_JOB_DETAILS (
+ SCHED_NAME,
JOB_NAME,
JOB_GROUP
);
-
-INSERT INTO QRTZ_LOCKS VALUES('TRIGGER_ACCESS');
-INSERT INTO QRTZ_LOCKS VALUES('JOB_ACCESS');
-INSERT INTO QRTZ_LOCKS VALUES('CALENDAR_ACCESS');
-INSERT INTO QRTZ_LOCKS VALUES('STATE_ACCESS');
-INSERT INTO QRTZ_LOCKS VALUES('MISFIRE_ACCESS');
+
COMMIT;
diff --git a/examples/showcase/src/test/java/org/springside/examples/showcase/schedule/JdkExecutorJobTest.java b/examples/showcase/src/test/java/org/springside/examples/showcase/schedule/JdkTimerJobTest.java
similarity index 84%
rename from examples/showcase/src/test/java/org/springside/examples/showcase/schedule/JdkExecutorJobTest.java
rename to examples/showcase/src/test/java/org/springside/examples/showcase/schedule/JdkTimerJobTest.java
index 96c17e60..d87d7a76 100644
--- a/examples/showcase/src/test/java/org/springside/examples/showcase/schedule/JdkExecutorJobTest.java
+++ b/examples/showcase/src/test/java/org/springside/examples/showcase/schedule/JdkTimerJobTest.java
@@ -12,11 +12,11 @@ import org.springside.modules.test.data.H2Fixtures;
import org.springside.modules.test.spring.SpringTxTestCase;
import org.springside.modules.utils.Threads;
-@Ignore("Unstatable on Slow Jenkins")
+@Ignore("Unstable on Slow Jenkins")
@DirtiesContext
-@ContextConfiguration(locations = { "/applicationContext.xml", "/schedule/applicationContext-executor.xml" })
+@ContextConfiguration(locations = { "/applicationContext.xml", "/schedule/applicationContext-jdk-timer.xml" })
@TransactionConfiguration(transactionManager = "defaultTransactionManager")
-public class JdkExecutorJobTest extends SpringTxTestCase {
+public class JdkTimerJobTest extends SpringTxTestCase {
@Test
public void scheduleJob() throws Exception {
@@ -31,6 +31,6 @@ public class JdkExecutorJobTest extends SpringTxTestCase {
//验证任务已执行
assertEquals(1, appender.getAllLogs().size());
- assertEquals("There are 6 user in database, print by default's job.", appender.getFirstMessage());
+ assertEquals("There are 6 user in database, print by jdk timer job.", appender.getFirstMessage());
}
}
diff --git a/examples/showcase/src/test/java/org/springside/examples/showcase/schedule/QuartzClusterableJobTest.java b/examples/showcase/src/test/java/org/springside/examples/showcase/schedule/QuartzTimerClusterJobTest.java
similarity index 84%
rename from examples/showcase/src/test/java/org/springside/examples/showcase/schedule/QuartzClusterableJobTest.java
rename to examples/showcase/src/test/java/org/springside/examples/showcase/schedule/QuartzTimerClusterJobTest.java
index dd4d7b85..00a71b63 100644
--- a/examples/showcase/src/test/java/org/springside/examples/showcase/schedule/QuartzClusterableJobTest.java
+++ b/examples/showcase/src/test/java/org/springside/examples/showcase/schedule/QuartzTimerClusterJobTest.java
@@ -17,11 +17,11 @@ import org.springside.modules.utils.Threads;
*
* @author calvin
*/
-@Ignore("Unstatable on Slow Jenkins")
+@Ignore("Unstable on Slow Jenkins")
@DirtiesContext
@ContextConfiguration(locations = { "/applicationContext.xml", "/schedule/applicationContext-quartz-timer-cluster.xml" })
@TransactionConfiguration(transactionManager = "defaultTransactionManager")
-public class QuartzClusterableJobTest extends SpringTxTestCase {
+public class QuartzTimerClusterJobTest extends SpringTxTestCase {
@Test
public void scheduleJob() throws Exception {
@@ -37,6 +37,7 @@ public class QuartzClusterableJobTest extends SpringTxTestCase {
//验证任务已执行
assertEquals(1, appender.getAllLogs().size());
- assertEquals("There are 6 user in database, print by default's job.", appender.getFirstMessage());
+ assertEquals("There are 6 user in database, printed by quartz cluster job on node default.",
+ appender.getFirstMessage());
}
}
diff --git a/modules/core/src/main/java/org/springside/modules/utils/Threads.java b/modules/core/src/main/java/org/springside/modules/utils/Threads.java
index 75acebed..f30b891d 100644
--- a/modules/core/src/main/java/org/springside/modules/utils/Threads.java
+++ b/modules/core/src/main/java/org/springside/modules/utils/Threads.java
@@ -44,7 +44,7 @@ public class Threads {
pool.shutdownNow(); // Cancel currently executing tasks
// Wait a while for tasks to respond to being cancelled
if (!pool.awaitTermination(shutdownNowTimeout, timeUnit)) {
- System.err.println("Pool did not terminate");
+ System.err.println("Pool did not terminated");
}
}
} catch (InterruptedException ie) {
@@ -62,7 +62,7 @@ public class Threads {
try {
pool.shutdownNow();
if (!pool.awaitTermination(timeout, timeUnit)) {
- System.err.println("Pool did not terminate");
+ System.err.println("Pool did not terminated");
}
} catch (InterruptedException ie) {
Thread.currentThread().interrupt();
diff --git a/modules/core/src/test/java/org/springside/modules/utils/ThreadsTest.java b/modules/core/src/test/java/org/springside/modules/utils/ThreadsTest.java
index 4ad6db74..c8efe7e3 100644
--- a/modules/core/src/test/java/org/springside/modules/utils/ThreadsTest.java
+++ b/modules/core/src/test/java/org/springside/modules/utils/ThreadsTest.java
@@ -19,7 +19,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springside.modules.log.MockLog4jAppender;
-@Ignore("Unstatable on Jenkins")
+@Ignore("Unstable on Jenkins")
public class ThreadsTest {
@Test
diff --git a/modules/parent/pom.xml b/modules/parent/pom.xml
index acb2ddd7..3e44c4ff 100644
--- a/modules/parent/pom.xml
+++ b/modules/parent/pom.xml
@@ -408,7 +408,7 @@
org.quartz-scheduler
quartz
- 1.8.5
+ 2.1.3
diff --git a/support/h2/pom.xml b/support/h2/pom.xml
index 6ba8651a..593067c3 100644
--- a/support/h2/pom.xml
+++ b/support/h2/pom.xml
@@ -26,7 +26,6 @@
org.codehaus.mojo
exec-maven-plugin
- 1.2.1
@@ -55,7 +54,6 @@
org.codehaus.mojo
exec-maven-plugin
- 1.2.1