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 2005/03/21 16:56:10 UTC

svn commit: r158472 - in lenya/trunk/src: java/org/apache/lenya/cms/usecase/scheduling/ webapp/WEB-INF/ webapp/lenya/usecases/site/ webapp/lenya/usecases/tab/

Author: andreas
Date: Mon Mar 21 07:56:09 2005
New Revision: 158472

URL: http://svn.apache.org/viewcvs?view=rev&rev=158472
Log:
added initial implementation of 'manage scheduler jobs' usecase

Added:
    lenya/trunk/src/java/org/apache/lenya/cms/usecase/scheduling/ManageJobs.java
Modified:
    lenya/trunk/src/java/org/apache/lenya/cms/usecase/scheduling/UsecaseScheduler.java
    lenya/trunk/src/java/org/apache/lenya/cms/usecase/scheduling/UsecaseSchedulerImpl.java
    lenya/trunk/src/webapp/WEB-INF/cocoon-xconf.xsl
    lenya/trunk/src/webapp/lenya/usecases/site/archive.jx
    lenya/trunk/src/webapp/lenya/usecases/tab/scheduler.jx

Added: lenya/trunk/src/java/org/apache/lenya/cms/usecase/scheduling/ManageJobs.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/usecase/scheduling/ManageJobs.java?view=auto&rev=158472
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/usecase/scheduling/ManageJobs.java (added)
+++ lenya/trunk/src/java/org/apache/lenya/cms/usecase/scheduling/ManageJobs.java Mon Mar 21 07:56:09 2005
@@ -0,0 +1,53 @@
+/*
+ * Copyright  1999-2004 The Apache Software Foundation
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+package org.apache.lenya.cms.usecase.scheduling;
+
+import java.util.Arrays;
+
+import org.apache.avalon.framework.service.ServiceException;
+import org.apache.cocoon.components.cron.JobSchedulerEntry;
+import org.apache.lenya.cms.usecase.DocumentUsecase;
+
+/**
+ * Usecase to manage scheduled jobs.
+ * 
+ * @version $Id:$
+ */
+public class ManageJobs extends DocumentUsecase {
+
+    protected static final String JOBS = "jobs";
+
+    /**
+     * @see org.apache.lenya.cms.usecase.AbstractUsecase#initParameters()
+     */
+    protected void initParameters() {
+        super.initParameters();
+
+        UsecaseScheduler scheduler = null;
+        try {
+            scheduler = (UsecaseScheduler) this.manager.lookup(UsecaseScheduler.ROLE);
+            JobSchedulerEntry[] jobs = scheduler.getJobs();
+            setParameter(JOBS, Arrays.asList(jobs));
+        } catch (ServiceException e) {
+            throw new RuntimeException(e);
+        } finally {
+            if (scheduler != null) {
+                this.manager.release(scheduler);
+            }
+        }
+    }
+}
\ No newline at end of file

Modified: lenya/trunk/src/java/org/apache/lenya/cms/usecase/scheduling/UsecaseScheduler.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/usecase/scheduling/UsecaseScheduler.java?view=diff&r1=158471&r2=158472
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/usecase/scheduling/UsecaseScheduler.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/usecase/scheduling/UsecaseScheduler.java Mon Mar 21 07:56:09 2005
@@ -18,6 +18,7 @@
 
 import java.util.Date;
 
+import org.apache.cocoon.components.cron.JobSchedulerEntry;
 import org.apache.lenya.cms.usecase.Usecase;
 
 /**
@@ -39,4 +40,8 @@
      */
     void schedule(Usecase usecase, Date date);
     
+    /**
+     * @return All scheduled jobs.
+     */
+    JobSchedulerEntry[] getJobs();
 }

Modified: lenya/trunk/src/java/org/apache/lenya/cms/usecase/scheduling/UsecaseSchedulerImpl.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/usecase/scheduling/UsecaseSchedulerImpl.java?view=diff&r1=158471&r2=158472
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/usecase/scheduling/UsecaseSchedulerImpl.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/usecase/scheduling/UsecaseSchedulerImpl.java Mon Mar 21 07:56:09 2005
@@ -31,6 +31,7 @@
 import org.apache.cocoon.components.ContextHelper;
 import org.apache.cocoon.components.cron.CronJob;
 import org.apache.cocoon.components.cron.JobScheduler;
+import org.apache.cocoon.components.cron.JobSchedulerEntry;
 import org.apache.cocoon.environment.Request;
 import org.apache.cocoon.environment.Session;
 import org.apache.lenya.ac.Identity;
@@ -110,6 +111,34 @@
      */
     public void contextualize(Context context) throws ContextException {
         this.context = context;
+    }
+    
+    /**
+     * @see org.apache.lenya.cms.usecase.scheduling.UsecaseScheduler#getJobs()
+     */
+    public JobSchedulerEntry[] getJobs() {
+        JobScheduler scheduler = null;
+        JobSchedulerEntry[] entries = null;
+        try {
+            scheduler = (JobScheduler) this.manager.lookup(JobScheduler.ROLE);
+            
+            String[] jobNames = scheduler.getJobNames();
+            entries = new JobSchedulerEntry[jobNames.length];
+            
+            for (int i = 0; i < jobNames.length; i++) {
+                JobSchedulerEntry entry = scheduler.getJobSchedulerEntry(jobNames[i]);
+                entries[i] = entry;
+            }
+
+        } catch (Exception e) {
+            getLogger().error("Could not obtain job list: ", e);
+            throw new RuntimeException(e);
+        } finally {
+            if (scheduler != null) {
+                this.manager.release(scheduler);
+            }
+        }
+        return entries;
     }
 
 }

Modified: lenya/trunk/src/webapp/WEB-INF/cocoon-xconf.xsl
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/webapp/WEB-INF/cocoon-xconf.xsl?view=diff&r1=158471&r2=158472
==============================================================================
--- lenya/trunk/src/webapp/WEB-INF/cocoon-xconf.xsl (original)
+++ lenya/trunk/src/webapp/WEB-INF/cocoon-xconf.xsl Mon Mar 21 07:56:09 2005
@@ -276,6 +276,7 @@
     <component-instance name="tab.overview" logger="lenya.site" class="org.apache.lenya.cms.site.usecases.Overview"/>
     <component-instance name="tab.revisions" logger="lenya.site" class="org.apache.lenya.cms.site.usecases.Revisions"/>
     <component-instance name="tab.workflow" logger="lenya.site" class="org.apache.lenya.cms.workflow.usecases.History"/>
+    <component-instance name="tab.scheduler" logger="lenya.site" class="org.apache.lenya.cms.usecase.scheduling.ManageJobs"/>
     
     <component-instance name="publication.createPublicationFromTemplate" logger="lenya.site"
                         class="org.apache.lenya.cms.publication.usecases.CreatePublicationFromTemplate"/>

Modified: lenya/trunk/src/webapp/lenya/usecases/site/archive.jx
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/webapp/lenya/usecases/site/archive.jx?view=diff&r1=158471&r2=158472
==============================================================================
--- lenya/trunk/src/webapp/lenya/usecases/site/archive.jx (original)
+++ lenya/trunk/src/webapp/lenya/usecases/site/archive.jx Mon Mar 21 07:56:09 2005
@@ -28,15 +28,14 @@
       <div class="lenya-box-title">
         <i18n:translate>
           <i18n:text key="archive-doc"/>
-          <i18n:param><q><jx:out value="${usecase.getParameter('documentid')}"/></q></i18n:param>
+          <i18n:param><q><jx:out value="${usecase.getParameter('document').getId()}"/></q></i18n:param>
         </i18n:translate>
       </div>
       <div class="lenya-box-body">
         <form method="get">
           
-          <input type="hidden" name="lenya.event" value="{$lenya.event}"/>
-          <input type="hidden" name="lenya.usecase" value="site.archive"/>
-          <input type="hidden" name="parenturl" value="{parent-url}"/>
+          <input type="hidden" name="lenya.continuation" value="${continuation.id}"/>
+          <input type="hidden" name="lenya.usecase" value="${request.getParameter('lenya.usecase')}"/>
           
           <table class="lenya-table-noborder">
             <tr>

Modified: lenya/trunk/src/webapp/lenya/usecases/tab/scheduler.jx
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/webapp/lenya/usecases/tab/scheduler.jx?view=diff&r1=158471&r2=158472
==============================================================================
--- lenya/trunk/src/webapp/lenya/usecases/tab/scheduler.jx (original)
+++ lenya/trunk/src/webapp/lenya/usecases/tab/scheduler.jx Mon Mar 21 07:56:09 2005
@@ -24,7 +24,24 @@
   <div>
     <jx:import uri="tab/tabs.jx"/>
     <div id="contentblock1" class="lenya-tab">
-      <!-- TODO xinclude schedule output for this document here -->
+      
+      <table class="lenya-table">
+        <tr>
+          <th><i18n:text>Job</i18n:text></th>
+          <th><i18n:text>Time</i18n:text></th>
+        </tr>
+        <jx:forEach var="job" items="${usecase.getParameter('jobs')}">
+          <tr>
+            <td>
+              <jx:out value="${job.getJobName()}"/>
+            </td>
+            <td>
+              <jx:out value="${job.getNextTime()}"/>
+            </td>
+          </tr>
+        </jx:forEach>
+      </table>
+      
     </div>
   </div>
 </page:page>



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