You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lenya.apache.org by an...@apache.org on 2007/05/04 12:14:43 UTC

svn commit: r535152 - in /lenya/trunk/src/modules-core: sitemanagement/usecases/tab/ usecase/java/src/org/apache/lenya/cms/usecase/scheduling/impl/

Author: andreas
Date: Fri May  4 03:14:41 2007
New Revision: 535152

URL: http://svn.apache.org/viewvc?view=rev&rev=535152
Log:
Improved scheduler usecase view

Modified:
    lenya/trunk/src/modules-core/sitemanagement/usecases/tab/scheduler.jx
    lenya/trunk/src/modules-core/usecase/java/src/org/apache/lenya/cms/usecase/scheduling/impl/UsecaseCronJob.java
    lenya/trunk/src/modules-core/usecase/java/src/org/apache/lenya/cms/usecase/scheduling/impl/UsecaseSchedulerImpl.java

Modified: lenya/trunk/src/modules-core/sitemanagement/usecases/tab/scheduler.jx
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/sitemanagement/usecases/tab/scheduler.jx?view=diff&rev=535152&r1=535151&r2=535152
==============================================================================
--- lenya/trunk/src/modules-core/sitemanagement/usecases/tab/scheduler.jx (original)
+++ lenya/trunk/src/modules-core/sitemanagement/usecases/tab/scheduler.jx Fri May  4 03:14:41 2007
@@ -38,12 +38,21 @@
           <table class="lenya-table-list-noborder">
             <tr>
               <th><i18n:text>Job</i18n:text></th>
+              <th><i18n:text>User</i18n:text></th>
               <th><i18n:text>Time</i18n:text></th>
             </tr>
             <jx:forEach var="job" items="${usecase.getParameter('jobs')}">
+              <!-- see UsecaseSchedulerImpl for job name encoding -->
+              <jx:set var="name" value="${job.getName()}"/>
+              <jx:set var="parts" value="${name.split(':')}"/>
+              <jx:set var="usecaseName" value="${parts[0]}"/>
+              <jx:set var="userId" value="${parts[1]}"/>
               <tr>
                 <td>
-                  <jx:out value="${job.getJobName()}"/>
+                  <jx:out value="${usecaseName}"/>
+                </td>
+                <td>
+                  <a href="${request.requestUri}?lenya.usecase=admin.user&amp;userId=${userId}"><jx:out value="${userId}"/></a>
                 </td>
                 <td>
                   <jx:out value="${job.getNextTime()}"/>

Modified: lenya/trunk/src/modules-core/usecase/java/src/org/apache/lenya/cms/usecase/scheduling/impl/UsecaseCronJob.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/usecase/java/src/org/apache/lenya/cms/usecase/scheduling/impl/UsecaseCronJob.java?view=diff&rev=535152&r1=535151&r2=535152
==============================================================================
--- lenya/trunk/src/modules-core/usecase/java/src/org/apache/lenya/cms/usecase/scheduling/impl/UsecaseCronJob.java (original)
+++ lenya/trunk/src/modules-core/usecase/java/src/org/apache/lenya/cms/usecase/scheduling/impl/UsecaseCronJob.java Fri May  4 03:14:41 2007
@@ -80,8 +80,18 @@
     protected static final String USER_ID = "userId";
     protected static final String MACHINE_IP = "machineIp";
 
-    protected String getUsecaseName() {
+    /**
+     * @return The name of the usecase to execute.
+     */
+    public String getUsecaseName() {
         return this.usecaseName;
+    }
+    
+    /**
+     * @return The ID of the user who scheduled the job.
+     */
+    public String getUserId() {
+        return this.userId;
     }
 
     protected String getSourceURL() {

Modified: lenya/trunk/src/modules-core/usecase/java/src/org/apache/lenya/cms/usecase/scheduling/impl/UsecaseSchedulerImpl.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/usecase/java/src/org/apache/lenya/cms/usecase/scheduling/impl/UsecaseSchedulerImpl.java?view=diff&rev=535152&r1=535151&r2=535152
==============================================================================
--- lenya/trunk/src/modules-core/usecase/java/src/org/apache/lenya/cms/usecase/scheduling/impl/UsecaseSchedulerImpl.java (original)
+++ lenya/trunk/src/modules-core/usecase/java/src/org/apache/lenya/cms/usecase/scheduling/impl/UsecaseSchedulerImpl.java Fri May  4 03:14:41 2007
@@ -42,7 +42,8 @@
 import org.apache.lenya.cms.usecase.scheduling.UsecaseScheduler;
 
 /**
- * Usecase scheduler implementation.
+ * <p>Usecase scheduler implementation.</p>
+ * <p>The names of the scheduled jobs have the syntax <code>{usecaseName}:{userId}</code>.
  * 
  * @version $Id$
  */
@@ -68,6 +69,7 @@
             objects.put(UsecaseCronJob.USECASE_NAME, usecase.getName());
             objects.put(UsecaseCronJob.SOURCE_URL, usecase.getSourceURL());
 
+            String userId = "";
             Request request = ContextHelper.getRequest(this.context);
             Session session = request.getSession(false);
             if (session != null) {
@@ -75,7 +77,8 @@
                 if (identity != null) {
                     User user = identity.getUser();
                     if (user != null) {
-                        objects.put(UsecaseCronJob.USER_ID, user.getId());
+                        userId = user.getId();
+                        objects.put(UsecaseCronJob.USER_ID, userId);
                     }
                     Machine machine = identity.getMachine();
                     if (machine != null) {
@@ -85,7 +88,8 @@
             }
 
             String role = CronJob.class.getName() + "/usecase";
-            scheduler.fireJobAt(date, "foo", role, parameters, objects);
+            String name = getJobName(usecase, userId);
+            scheduler.fireJobAt(date, name, role, parameters, objects);
 
         } catch (Exception e) {
             getLogger().error("Could not create job: ", e);
@@ -95,6 +99,10 @@
                 this.manager.release(scheduler);
             }
         }
+    }
+    
+    protected String getJobName(Usecase usecase, String userId) {
+        return usecase.getName() + ":" + userId;
     }
     
     protected ServiceManager manager;



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@lenya.apache.org
For additional commands, e-mail: commits-help@lenya.apache.org