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/07 17:05:11 UTC
svn commit: r156429 - in lenya/trunk/src/webapp/lenya/pubs/default:
config/menus/generic.xsp config/usecases.xconf
java/src/org/apache/lenya/defaultpub/cms/usecases/Deactivate.java
java/src/org/apache/lenya/defaultpub/cms/usecases/Publish.java
Author: andreas
Date: Mon Mar 7 08:05:08 2005
New Revision: 156429
URL: http://svn.apache.org/viewcvs?view=rev&rev=156429
Log:
replace lenya.event handling by Avalon configuration
Modified:
lenya/trunk/src/webapp/lenya/pubs/default/config/menus/generic.xsp
lenya/trunk/src/webapp/lenya/pubs/default/config/usecases.xconf
lenya/trunk/src/webapp/lenya/pubs/default/java/src/org/apache/lenya/defaultpub/cms/usecases/Deactivate.java
lenya/trunk/src/webapp/lenya/pubs/default/java/src/org/apache/lenya/defaultpub/cms/usecases/Publish.java
Modified: lenya/trunk/src/webapp/lenya/pubs/default/config/menus/generic.xsp
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/webapp/lenya/pubs/default/config/menus/generic.xsp?view=diff&r1=156428&r2=156429
==============================================================================
--- lenya/trunk/src/webapp/lenya/pubs/default/config/menus/generic.xsp (original)
+++ lenya/trunk/src/webapp/lenya/pubs/default/config/menus/generic.xsp Mon Mar 7 08:05:08 2005
@@ -132,8 +132,8 @@
<menu i18n:attr="name" name="Workflow">
<block>
- <item uc:usecase="workflow.submit" wf:event="submit" href="?"><i18n:text>Submit</i18n:text></item>
- <item uc:usecase="workflow.reject" wf:event="reject" href="?"><i18n:text>Reject</i18n:text></item>
+ <item uc:usecase="workflow.submit" href="?"><i18n:text>Submit</i18n:text></item>
+ <item uc:usecase="workflow.reject" href="?"><i18n:text>Reject</i18n:text></item>
<item uc:usecase="workflow.publish" href="?"><i18n:text>Publish</i18n:text></item>
<item uc:usecase="workflow.deactivate" href="?"><i18n:text>Deactivate</i18n:text></item>
</block>
Modified: lenya/trunk/src/webapp/lenya/pubs/default/config/usecases.xconf
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/webapp/lenya/pubs/default/config/usecases.xconf?view=diff&r1=156428&r2=156429
==============================================================================
--- lenya/trunk/src/webapp/lenya/pubs/default/config/usecases.xconf (original)
+++ lenya/trunk/src/webapp/lenya/pubs/default/config/usecases.xconf Mon Mar 7 08:05:08 2005
@@ -2,11 +2,15 @@
<component-instance name="default/workflow.submit"
logger="lenya.usecases.workflow"
- class="org.apache.lenya.cms.workflow.usecases.InvokeWorkflow"/>
+ class="org.apache.lenya.cms.workflow.usecases.InvokeWorkflow">
+ <event id="submit"/>
+ </component-instance>
<component-instance name="default/workflow.reject"
logger="lenya.usecases.workflow"
- class="org.apache.lenya.cms.workflow.usecases.InvokeWorkflow"/>
+ class="org.apache.lenya.cms.workflow.usecases.InvokeWorkflow">
+ <event id="reject"/>
+ </component-instance>
<component-instance name="default/workflow.publish"
logger="lenya.usecases.workflow"
Modified: lenya/trunk/src/webapp/lenya/pubs/default/java/src/org/apache/lenya/defaultpub/cms/usecases/Deactivate.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/webapp/lenya/pubs/default/java/src/org/apache/lenya/defaultpub/cms/usecases/Deactivate.java?view=diff&r1=156428&r2=156429
==============================================================================
--- lenya/trunk/src/webapp/lenya/pubs/default/java/src/org/apache/lenya/defaultpub/cms/usecases/Deactivate.java (original)
+++ lenya/trunk/src/webapp/lenya/pubs/default/java/src/org/apache/lenya/defaultpub/cms/usecases/Deactivate.java Mon Mar 7 08:05:08 2005
@@ -16,6 +16,7 @@
*/
package org.apache.lenya.defaultpub.cms.usecases;
+import org.apache.avalon.framework.service.ServiceException;
import org.apache.lenya.cms.publication.Document;
import org.apache.lenya.cms.publication.DocumentFactory;
import org.apache.lenya.cms.publication.Publication;
@@ -24,8 +25,8 @@
import org.apache.lenya.cms.publication.util.OrderedDocumentSet;
import org.apache.lenya.cms.site.SiteManager;
import org.apache.lenya.cms.usecase.DocumentUsecase;
+import org.apache.lenya.cms.workflow.WorkflowManager;
import org.apache.lenya.workflow.WorkflowException;
-import org.apache.lenya.workflow.WorkflowInstance;
/**
* Deactivate usecase handler.
@@ -51,12 +52,21 @@
String event = getEvent();
- if (!getWorkflowInstance(getSourceDocument()).canInvoke(getSituation(), event)) {
- setParameter(Publish.ALLOW_SINGLE_DOCUMENT, Boolean.toString(false));
- addInfoMessage("The single document cannot be deactivated because the workflow event cannot be invoked.");
- } else {
- setParameter(Publish.ALLOW_SINGLE_DOCUMENT, Boolean.toString(true));
+ WorkflowManager wfManager = null;
+ try {
+ wfManager = (WorkflowManager) this.manager.lookup(WorkflowManager.ROLE);
+ if (!wfManager.canInvoke(getSourceDocument(), event)) {
+ setParameter(Publish.ALLOW_SINGLE_DOCUMENT, Boolean.toString(false));
+ addInfoMessage("The single document cannot be deactivated because the workflow event cannot be invoked.");
+ } else {
+ setParameter(Publish.ALLOW_SINGLE_DOCUMENT, Boolean.toString(true));
+ }
+ } finally {
+ if (wfManager != null) {
+ this.manager.release(wfManager);
+ }
}
+
}
}
@@ -81,12 +91,14 @@
Publication publication = authoringDocument.getPublication();
boolean success = false;
+ WorkflowManager wfManager = null;
try {
+ wfManager = (WorkflowManager) this.manager.lookup(WorkflowManager.ROLE);
Document liveDocument = publication.getAreaVersion(authoringDocument,
Publication.LIVE_AREA);
getDocumentManager().deleteDocument(liveDocument);
- triggerWorkflow(getEvent(), authoringDocument);
+ wfManager.invoke(authoringDocument, getEvent());
success = true;
} catch (Exception e) {
throw new RuntimeException(e);
@@ -95,6 +107,9 @@
getLogger().debug("Deactivate document [" + authoringDocument + "]. Success: ["
+ success + "]");
}
+ if (wfManager != null) {
+ this.manager.release(wfManager);
+ }
}
}
@@ -173,13 +188,22 @@
WorkflowException {
String[] languages = document.getPublication().getLanguages();
DocumentFactory factory = document.getIdentityMap().getFactory();
- for (int i = 0; i < languages.length; i++) {
- Document version = factory.getLanguageVersion(document, languages[i]);
- if (version.exists()) {
- WorkflowInstance instance = getWorkflowInstance(version);
- if (instance.canInvoke(getSituation(), getEvent())) {
- deactivate(version);
+ WorkflowManager wfManager = null;
+ try {
+ wfManager = (WorkflowManager) this.manager.lookup(WorkflowManager.ROLE);
+ for (int i = 0; i < languages.length; i++) {
+ Document version = factory.getLanguageVersion(document, languages[i]);
+ if (version.exists()) {
+ if (wfManager.canInvoke(getSourceDocument(), getEvent())) {
+ deactivate(version);
+ }
}
+ }
+ } catch (ServiceException e) {
+ throw new RuntimeException(e);
+ } finally {
+ if (wfManager != null) {
+ this.manager.release(wfManager);
}
}
Modified: lenya/trunk/src/webapp/lenya/pubs/default/java/src/org/apache/lenya/defaultpub/cms/usecases/Publish.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/webapp/lenya/pubs/default/java/src/org/apache/lenya/defaultpub/cms/usecases/Publish.java?view=diff&r1=156428&r2=156429
==============================================================================
--- lenya/trunk/src/webapp/lenya/pubs/default/java/src/org/apache/lenya/defaultpub/cms/usecases/Publish.java (original)
+++ lenya/trunk/src/webapp/lenya/pubs/default/java/src/org/apache/lenya/defaultpub/cms/usecases/Publish.java Mon Mar 7 08:05:08 2005
@@ -27,8 +27,8 @@
import org.apache.lenya.cms.publication.util.OrderedDocumentSet;
import org.apache.lenya.cms.site.SiteManager;
import org.apache.lenya.cms.usecase.DocumentUsecase;
+import org.apache.lenya.cms.workflow.WorkflowManager;
import org.apache.lenya.workflow.WorkflowException;
-import org.apache.lenya.workflow.WorkflowInstance;
/**
* Publish usecase handler.
@@ -59,11 +59,19 @@
return;
}
- if (!getWorkflowInstance(getSourceDocument()).canInvoke(getSituation(), event)) {
- setParameter(ALLOW_SINGLE_DOCUMENT, Boolean.toString(false));
- addInfoMessage("The single document cannot be published because the workflow event cannot be invoked.");
- } else {
- setParameter(ALLOW_SINGLE_DOCUMENT, Boolean.toString(true));
+ WorkflowManager wfManager = null;
+ try {
+ wfManager = (WorkflowManager) this.manager.lookup(WorkflowManager.ROLE);
+ if (!wfManager.canInvoke(getSourceDocument(), event)) {
+ setParameter(ALLOW_SINGLE_DOCUMENT, Boolean.toString(false));
+ addInfoMessage("The single document cannot be published because the workflow event cannot be invoked.");
+ } else {
+ setParameter(ALLOW_SINGLE_DOCUMENT, Boolean.toString(true));
+ }
+ } finally {
+ if (wfManager != null) {
+ this.manager.release(wfManager);
+ }
}
Publication publication = document.getPublication();
@@ -107,21 +115,18 @@
*/
protected void publish(Document authoringDocument) {
- boolean success = false;
-
+ WorkflowManager wfManager = null;
try {
+ wfManager = (WorkflowManager) this.manager.lookup(WorkflowManager.ROLE);
getDocumentManager().copyDocumentToArea(authoringDocument, Publication.LIVE_AREA);
- triggerWorkflow(getEvent(), authoringDocument);
- success = true;
+ wfManager.invoke(authoringDocument, getEvent());
} catch (Exception e) {
throw new RuntimeException(e);
} finally {
- if (getLogger().isDebugEnabled()) {
- getLogger().debug("Publish document [" + authoringDocument + "]. Success: ["
- + success + "]");
+ if (wfManager != null) {
+ this.manager.release(wfManager);
}
}
-
}
/**
@@ -198,13 +203,23 @@
WorkflowException {
String[] languages = document.getPublication().getLanguages();
DocumentFactory factory = document.getIdentityMap().getFactory();
- for (int i = 0; i < languages.length; i++) {
- Document version = factory.getLanguageVersion(document, languages[i]);
- if (version.exists()) {
- WorkflowInstance instance = getWorkflowInstance(version);
- if (instance.canInvoke(getSituation(), getEvent())) {
- publish(version);
+
+ WorkflowManager wfManager = null;
+ try {
+ wfManager = (WorkflowManager) this.manager.lookup(WorkflowManager.ROLE);
+ for (int i = 0; i < languages.length; i++) {
+ Document version = factory.getLanguageVersion(document, languages[i]);
+ if (version.exists()) {
+ if (wfManager.canInvoke(version, getEvent())) {
+ publish(version);
+ }
}
+ }
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ } finally {
+ if (wfManager != null) {
+ this.manager.release(wfManager);
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@lenya.apache.org
For additional commands, e-mail: commits-help@lenya.apache.org