Author: burn
Date: Sat Nov  8 00:46:48 2014
New Revision: 1637492

URL: http://svn.apache.org/r1637492
Log:
UIMA-4088 If the specified scheduling class is pre-emptable change it to the 
equivalent fixed one

Modified:
    
uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccManagedReservationSubmit.java

Modified: 
uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccManagedReservationSubmit.java
URL: 
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccManagedReservationSubmit.java?rev=1637492&r1=1637491&r2=1637492&view=diff
==============================================================================
--- 
uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccManagedReservationSubmit.java
 (original)
+++ 
uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccManagedReservationSubmit.java
 Sat Nov  8 00:46:48 2014
@@ -21,6 +21,7 @@ package org.apache.uima.ducc.cli;
 import java.util.ArrayList;
 import java.util.Properties;
 
+import org.apache.uima.ducc.common.utils.DuccSchedulerClasses;
 import org.apache.uima.ducc.transport.event.IDuccContext.DuccContext;
 import org.apache.uima.ducc.transport.event.SubmitServiceDuccEvent;
 import org.apache.uima.ducc.transport.event.SubmitServiceReplyDuccEvent;
@@ -146,7 +147,19 @@ public class DuccManagedReservationSubmi
      */
     public boolean execute() throws Exception 
     {
-
+        // If the specified scheduling class is pre-emptable, change to a 
fixed one if possible
+        String pname = UiOption.SchedulingClass.pname();
+        String scheduling_class = serviceRequestProperties.getProperty(pname);
+        if (scheduling_class != null) {
+            DuccSchedulerClasses duccSchedulerClasses = 
DuccSchedulerClasses.getInstance();
+            if (duccSchedulerClasses.isPreemptable(scheduling_class)) {
+                scheduling_class = 
duccSchedulerClasses.getDebugClassSpecificName(scheduling_class);
+                if (scheduling_class != null) {
+                    serviceRequestProperties.setProperty(pname, 
scheduling_class);
+                }
+            }
+        }
+        
         // Create a copy to be saved later without these 3 "ducclet" 
properties required by DUCC
         ServiceRequestProperties serviceProperties = 
(ServiceRequestProperties)serviceRequestProperties.clone();
         
serviceRequestProperties.setProperty(UiOption.ProcessThreadCount.pname(), "1");


Reply via email to