You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by gn...@apache.org on 2009/03/16 23:52:55 UTC

svn commit: r755034 - /servicemix/components/engines/servicemix-quartz/trunk/src/main/java/org/apache/servicemix/quartz/QuartzEndpoint.java

Author: gnodet
Date: Mon Mar 16 22:52:54 2009
New Revision: 755034

URL: http://svn.apache.org/viewvc?rev=755034&view=rev
Log:
Allow multiple calls to Endpoint#validate()

Modified:
    servicemix/components/engines/servicemix-quartz/trunk/src/main/java/org/apache/servicemix/quartz/QuartzEndpoint.java

Modified: servicemix/components/engines/servicemix-quartz/trunk/src/main/java/org/apache/servicemix/quartz/QuartzEndpoint.java
URL: http://svn.apache.org/viewvc/servicemix/components/engines/servicemix-quartz/trunk/src/main/java/org/apache/servicemix/quartz/QuartzEndpoint.java?rev=755034&r1=755033&r2=755034&view=diff
==============================================================================
--- servicemix/components/engines/servicemix-quartz/trunk/src/main/java/org/apache/servicemix/quartz/QuartzEndpoint.java (original)
+++ servicemix/components/engines/servicemix-quartz/trunk/src/main/java/org/apache/servicemix/quartz/QuartzEndpoint.java Mon Mar 16 22:52:54 2009
@@ -148,10 +148,11 @@
     public void validate() throws DeploymentException {
         super.validate();
         if (trigger instanceof JobDetailAwareTrigger) {
-            if (jobDetail != null) {
-                throw new DeploymentException("jobDetail can not be set on endpoint and trigger at the same time");
+            JobDetail jb = ((JobDetailAwareTrigger) trigger).getJobDetail();
+            if (jobDetail != null && jb != null && jobDetail != jb) {
+                throw new DeploymentException("trigger and jobDetail can not be set on endpoint at the same time");
             }
-            jobDetail = ((JobDetailAwareTrigger) trigger).getJobDetail();
+            jobDetail = jb;
         }
         if (jobDetail == null) {
             JobDetailBean j = new JobDetailBean();
@@ -162,9 +163,11 @@
             triggers = new ArrayList<Trigger>();
         }
         if (trigger != null && triggers != null && triggers.size() > 0) {
-            throw new DeploymentException("trigger and triggers can not be set at the same time");
+            if (triggers.size() != 1 || triggers.get(0) != trigger) {
+                throw new DeploymentException("trigger and triggers can not be set at the same time");
+            }
         }
-        if (trigger != null) {
+        if (trigger != null && !triggers.contains(trigger)) {
             triggers.add(trigger);
         }
         if (calendars == null) {