You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltaspike.apache.org by gp...@apache.org on 2014/03/31 08:22:47 UTC
git commit: DELTASPIKE-549 Scheduler#unwrap
Repository: deltaspike
Updated Branches:
refs/heads/master 380b113be -> 18c02618d
DELTASPIKE-549 Scheduler#unwrap
Project: http://git-wip-us.apache.org/repos/asf/deltaspike/repo
Commit: http://git-wip-us.apache.org/repos/asf/deltaspike/commit/18c02618
Tree: http://git-wip-us.apache.org/repos/asf/deltaspike/tree/18c02618
Diff: http://git-wip-us.apache.org/repos/asf/deltaspike/diff/18c02618
Branch: refs/heads/master
Commit: 18c02618da5b30a254afcb8ea741d350a4b95fe4
Parents: 380b113
Author: gpetracek <gp...@apache.org>
Authored: Mon Mar 31 08:20:32 2014 +0200
Committer: gpetracek <gp...@apache.org>
Committed: Mon Mar 31 08:20:32 2014 +0200
----------------------------------------------------------------------
.../org/apache/deltaspike/scheduler/spi/Scheduler.java | 2 ++
.../deltaspike/scheduler/impl/QuartzScheduler.java | 12 ++++++++++++
.../test/scheduler/custom/CustomSchedulerTest.java | 12 ++++++++++++
.../test/scheduler/custom/MockedScheduler.java | 12 ++++++++++++
4 files changed, 38 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/deltaspike/blob/18c02618/deltaspike/modules/scheduler/api/src/main/java/org/apache/deltaspike/scheduler/spi/Scheduler.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/scheduler/api/src/main/java/org/apache/deltaspike/scheduler/spi/Scheduler.java b/deltaspike/modules/scheduler/api/src/main/java/org/apache/deltaspike/scheduler/spi/Scheduler.java
index 11560ac..c09a1c3 100644
--- a/deltaspike/modules/scheduler/api/src/main/java/org/apache/deltaspike/scheduler/spi/Scheduler.java
+++ b/deltaspike/modules/scheduler/api/src/main/java/org/apache/deltaspike/scheduler/spi/Scheduler.java
@@ -37,4 +37,6 @@ public interface Scheduler<T> extends Deactivatable
void registerNewJob(Class<? extends T> jobClass);
void startJobManually(Class<? extends T> jobClass);
+
+ <S> S unwrap(Class<? extends S> schedulerClass);
}
http://git-wip-us.apache.org/repos/asf/deltaspike/blob/18c02618/deltaspike/modules/scheduler/impl/src/main/java/org/apache/deltaspike/scheduler/impl/QuartzScheduler.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/scheduler/impl/src/main/java/org/apache/deltaspike/scheduler/impl/QuartzScheduler.java b/deltaspike/modules/scheduler/impl/src/main/java/org/apache/deltaspike/scheduler/impl/QuartzScheduler.java
index 4b83f67..484d6dc 100644
--- a/deltaspike/modules/scheduler/impl/src/main/java/org/apache/deltaspike/scheduler/impl/QuartzScheduler.java
+++ b/deltaspike/modules/scheduler/impl/src/main/java/org/apache/deltaspike/scheduler/impl/QuartzScheduler.java
@@ -330,4 +330,16 @@ public class QuartzScheduler implements Scheduler<Job>
}
}
}
+
+ @Override
+ public <S> S unwrap(Class<? extends S> schedulerClass)
+ {
+ if (schedulerClass.isAssignableFrom(this.scheduler.getClass()))
+ {
+ return (S)this.scheduler;
+ }
+
+ throw new IllegalArgumentException(schedulerClass.getName() +
+ " isn't compatible with " + this.scheduler.getClass().getName());
+ }
}
http://git-wip-us.apache.org/repos/asf/deltaspike/blob/18c02618/deltaspike/modules/scheduler/impl/src/test/java/org/apache/deltaspike/test/scheduler/custom/CustomSchedulerTest.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/scheduler/impl/src/test/java/org/apache/deltaspike/test/scheduler/custom/CustomSchedulerTest.java b/deltaspike/modules/scheduler/impl/src/test/java/org/apache/deltaspike/test/scheduler/custom/CustomSchedulerTest.java
index d97159d..5a5a5a6 100644
--- a/deltaspike/modules/scheduler/impl/src/test/java/org/apache/deltaspike/test/scheduler/custom/CustomSchedulerTest.java
+++ b/deltaspike/modules/scheduler/impl/src/test/java/org/apache/deltaspike/test/scheduler/custom/CustomSchedulerTest.java
@@ -93,4 +93,16 @@ public abstract class CustomSchedulerTest
this.scheduler.registerNewJob(AutoRegisteredJob.class);
Assert.assertEquals(1, testJobManager.getRegisteredJobs().size());
}
+
+ @Test
+ public void unwrap()
+ {
+ Assert.assertEquals(TestJobManager.class, this.scheduler.unwrap(TestJobManager.class).getClass());
+ }
+
+ @Test(expected = IllegalArgumentException.class)
+ public void invalidUnwrap()
+ {
+ this.scheduler.unwrap(MockedScheduler.class);
+ }
}
http://git-wip-us.apache.org/repos/asf/deltaspike/blob/18c02618/deltaspike/modules/scheduler/impl/src/test/java/org/apache/deltaspike/test/scheduler/custom/MockedScheduler.java
----------------------------------------------------------------------
diff --git a/deltaspike/modules/scheduler/impl/src/test/java/org/apache/deltaspike/test/scheduler/custom/MockedScheduler.java b/deltaspike/modules/scheduler/impl/src/test/java/org/apache/deltaspike/test/scheduler/custom/MockedScheduler.java
index bc152f3..b5d1958 100644
--- a/deltaspike/modules/scheduler/impl/src/test/java/org/apache/deltaspike/test/scheduler/custom/MockedScheduler.java
+++ b/deltaspike/modules/scheduler/impl/src/test/java/org/apache/deltaspike/test/scheduler/custom/MockedScheduler.java
@@ -63,4 +63,16 @@ public class MockedScheduler implements Scheduler<CustomJob>
{
TestJobManager.getInstance().startJobManually(jobClass);
}
+
+ @Override
+ public <S> S unwrap(Class<? extends S> schedulerClass)
+ {
+ if (schedulerClass.isAssignableFrom(TestJobManager.getInstance().getClass()))
+ {
+ return (S)TestJobManager.getInstance();
+ }
+
+ throw new IllegalArgumentException(schedulerClass.getName() +
+ " isn't compatible with " + TestJobManager.getInstance().getClass().getName());
+ }
}