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