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/01/12 20:12:57 UTC
svn commit: r495689 - in /lenya/trunk/src: modules-core/ac-impl/
modules-core/cache/ modules-core/ldap/ modules-core/linking/
modules-core/observation-impl/ modules-core/properties/
modules-core/sitemanagement/ modules-core/sitemanagement/java/src/org/...
Author: andreas
Date: Fri Jan 12 11:12:55 2007
New Revision: 495689
URL: http://svn.apache.org/viewvc?view=rev&rev=495689
Log:
Refactored workflow event handling, replaced unpublished menus with OSGi-style package exporting
Added:
lenya/trunk/src/modules-core/workflow-impl/java/src/org/apache/lenya/cms/workflow/usecases/UsecaseWorkflowHelper.java
Modified:
lenya/trunk/src/modules-core/ac-impl/module.xml
lenya/trunk/src/modules-core/cache/module.xml
lenya/trunk/src/modules-core/ldap/module.xml
lenya/trunk/src/modules-core/linking/module.xml
lenya/trunk/src/modules-core/observation-impl/module.xml
lenya/trunk/src/modules-core/properties/module.xml
lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/metadata/usecases/Metadata.java
lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/ChangeLabel.java
lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/ChangeVisibility.java
lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/MoveSubsite.java
lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/Rollback.java
lenya/trunk/src/modules-core/sitemanagement/module.xml
lenya/trunk/src/modules-core/templating-impl/module.xml
lenya/trunk/src/modules-core/usecase-impl/module.xml
lenya/trunk/src/modules-core/usecase/module.xml
lenya/trunk/src/modules-core/workflow-impl/java/src/org/apache/lenya/cms/workflow/usecases/CheckWorkflow.java
lenya/trunk/src/modules-core/workflow-impl/module.xml
lenya/trunk/src/modules/blog/java/src/org/apache/lenya/cms/workflow/usecases/Publish.java
lenya/trunk/src/modules/blog/module.xml
lenya/trunk/src/modules/editors/java/src/org/apache/lenya/cms/editors/forms/FormsEditor.java
lenya/trunk/src/modules/editors/java/src/org/apache/lenya/cms/editors/forms/OneFormEditor.java
lenya/trunk/src/modules/fckeditor/java/src/org/apache/lenya/cms/editors/fckeditor/Fckeditor.java
lenya/trunk/src/modules/jcr/module.xml
lenya/trunk/src/modules/notification/module.xml
lenya/trunk/src/modules/repository/module.xml
lenya/trunk/src/modules/resource/java/src/org/apache/lenya/cms/site/usecases/UploadResource.java
lenya/trunk/src/modules/resource/module.xml
lenya/trunk/src/modules/sitetree/module.xml
lenya/trunk/src/modules/sourcerepository/module.xml
lenya/trunk/src/modules/tinymce/java/src/org/apache/lenya/cms/editors/tinymce/TinyMce.java
lenya/trunk/src/modules/webdav/java/src/org/apache/lenya/cms/usecases/webdav/Put.java
lenya/trunk/src/resources/build/module.rng
lenya/trunk/src/resources/build/modules2build.xsl
Modified: lenya/trunk/src/modules-core/ac-impl/module.xml
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/ac-impl/module.xml?view=diff&rev=495689&r1=495688&r2=495689
==============================================================================
--- lenya/trunk/src/modules-core/ac-impl/module.xml (original)
+++ lenya/trunk/src/modules-core/ac-impl/module.xml Fri Jan 12 11:12:55 2007
@@ -20,7 +20,8 @@
<module xmlns="http://apache.org/lenya/module/1.0">
<id>org.apache.lenya.modules.ac-impl</id>
- <published>false</published>
+ <export package="org.apache.lenya.ac.file"/>
+ <export package="org.apache.lenya.cms.ac.usecases"/>
<depends module="org.apache.lenya.modules.usecase"/>
<depends module="org.apache.lenya.modules.cache"/>
<package>org.apache.lenya.modules</package>
Modified: lenya/trunk/src/modules-core/cache/module.xml
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/cache/module.xml?view=diff&rev=495689&r1=495688&r2=495689
==============================================================================
--- lenya/trunk/src/modules-core/cache/module.xml (original)
+++ lenya/trunk/src/modules-core/cache/module.xml Fri Jan 12 11:12:55 2007
@@ -20,6 +20,7 @@
<module xmlns="http://apache.org/lenya/module/1.0">
<id>org.apache.lenya.modules.cache</id>
+ <export package="org.apache.lenya.ac.cache"/>
<depends module="org.apache.lenya.modules.usecase"/>
<package>org.apache.lenya.modules</package>
<version>0.1-dev</version>
Modified: lenya/trunk/src/modules-core/ldap/module.xml
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/ldap/module.xml?view=diff&rev=495689&r1=495688&r2=495689
==============================================================================
--- lenya/trunk/src/modules-core/ldap/module.xml (original)
+++ lenya/trunk/src/modules-core/ldap/module.xml Fri Jan 12 11:12:55 2007
@@ -20,7 +20,7 @@
<module xmlns="http://apache.org/lenya/module/1.0">
<id>org.apache.lenya.modules.ldap</id>
- <published>false</published>
+ <export package="org.apache.lenya.ac.ldap"/>
<depends module="org.apache.lenya.modules.ac-impl"/>
<package>org.apache.lenya.modules</package>
<version>0.1-dev</version>
Modified: lenya/trunk/src/modules-core/linking/module.xml
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/linking/module.xml?view=diff&rev=495689&r1=495688&r2=495689
==============================================================================
--- lenya/trunk/src/modules-core/linking/module.xml (original)
+++ lenya/trunk/src/modules-core/linking/module.xml Fri Jan 12 11:12:55 2007
@@ -20,7 +20,7 @@
<module xmlns="http://apache.org/lenya/module/1.0">
<id>org.apache.lenya.modules.linking</id>
- <published>false</published>
+ <export package="org.apache.lenya.cms.linking"/>
<package>org.apache.lenya.modules</package>
<version>0.1-dev</version>
<name>Linking</name>
Modified: lenya/trunk/src/modules-core/observation-impl/module.xml
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/observation-impl/module.xml?view=diff&rev=495689&r1=495688&r2=495689
==============================================================================
--- lenya/trunk/src/modules-core/observation-impl/module.xml (original)
+++ lenya/trunk/src/modules-core/observation-impl/module.xml Fri Jan 12 11:12:55 2007
@@ -20,7 +20,6 @@
<module xmlns="http://apache.org/lenya/module/1.0">
<id>org.apache.lenya.modules.observation-impl</id>
- <published>false</published>
<package>org.apache.lenya.modules</package>
<version>0.1-dev</version>
<name>Observation implementation</name>
Modified: lenya/trunk/src/modules-core/properties/module.xml
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/properties/module.xml?view=diff&rev=495689&r1=495688&r2=495689
==============================================================================
--- lenya/trunk/src/modules-core/properties/module.xml (original)
+++ lenya/trunk/src/modules-core/properties/module.xml Fri Jan 12 11:12:55 2007
@@ -20,7 +20,6 @@
<module xmlns="http://apache.org/lenya/module/1.0">
<id>org.apache.lenya.modules.properties</id>
- <published>false</published>
<package>org.apache.lenya.modules</package>
<version>0.1-dev</version>
<name>Property system implementation</name>
Modified: lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/metadata/usecases/Metadata.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/metadata/usecases/Metadata.java?view=diff&rev=495689&r1=495688&r2=495689
==============================================================================
--- lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/metadata/usecases/Metadata.java (original)
+++ lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/metadata/usecases/Metadata.java Fri Jan 12 11:12:55 2007
@@ -26,13 +26,13 @@
import org.apache.lenya.cms.metadata.MetaData;
import org.apache.lenya.cms.metadata.MetaDataRegistry;
-import org.apache.lenya.cms.metadata.dublincore.DublinCoreHelper;
import org.apache.lenya.cms.publication.Document;
import org.apache.lenya.cms.publication.Publication;
import org.apache.lenya.cms.repository.Node;
import org.apache.lenya.cms.site.usecases.SiteUsecase;
import org.apache.lenya.cms.usecase.UsecaseException;
import org.apache.lenya.cms.workflow.WorkflowUtil;
+import org.apache.lenya.cms.workflow.usecases.UsecaseWorkflowHelper;
/**
* Usecase to edit metadata for a resource.
@@ -117,10 +117,8 @@
if (!doc.getArea().equals(Publication.AUTHORING_AREA)) {
addErrorMessage("This usecase can only be invoked in the authoring area!");
}
- if (!WorkflowUtil.canInvoke(this.manager, getSession(), getLogger(), doc, getEvent())) {
- String title = DublinCoreHelper.getTitle(doc);
- addErrorMessage("error-workflow-document", new String[] { getEvent(), title });
- }
+ UsecaseWorkflowHelper.checkWorkflow(this.manager, this, getEvent(), doc,
+ getLogger());
}
/**
Modified: lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/ChangeLabel.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/ChangeLabel.java?view=diff&rev=495689&r1=495688&r2=495689
==============================================================================
--- lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/ChangeLabel.java (original)
+++ lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/ChangeLabel.java Fri Jan 12 11:12:55 2007
@@ -26,6 +26,7 @@
import org.apache.lenya.cms.usecase.DocumentUsecase;
import org.apache.lenya.cms.usecase.UsecaseException;
import org.apache.lenya.cms.workflow.WorkflowUtil;
+import org.apache.lenya.cms.workflow.usecases.UsecaseWorkflowHelper;
/**
* Change the label of a document.
@@ -55,10 +56,8 @@
addErrorMessage("This usecase can only be invoked in the authoring area!");
}
- if (!WorkflowUtil.canInvoke(this.manager, getSession(), getLogger(), doc, getEvent())) {
- String title = DublinCoreHelper.getTitle(doc);
- addErrorMessage("error-workflow-document", new String[] { getEvent(), title });
- }
+ UsecaseWorkflowHelper.checkWorkflow(this.manager, this, getEvent(), doc,
+ getLogger());
}
/**
Modified: lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/ChangeVisibility.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/ChangeVisibility.java?view=diff&rev=495689&r1=495688&r2=495689
==============================================================================
--- lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/ChangeVisibility.java (original)
+++ lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/ChangeVisibility.java Fri Jan 12 11:12:55 2007
@@ -26,6 +26,7 @@
import org.apache.lenya.cms.usecase.DocumentUsecase;
import org.apache.lenya.cms.usecase.UsecaseException;
import org.apache.lenya.cms.workflow.WorkflowUtil;
+import org.apache.lenya.cms.workflow.usecases.UsecaseWorkflowHelper;
/**
* Switch the navigation visibility of a document.
@@ -53,11 +54,8 @@
String[] languages = doc.getLanguages();
for (int i = 0; i < languages.length; i++) {
Document version = doc.getTranslation(languages[i]);
- if (!WorkflowUtil.canInvoke(this.manager, getSession(), getLogger(), version,
- getEvent())) {
- String title = DublinCoreHelper.getTitle(version);
- addErrorMessage("error-workflow-document", new String[] { getEvent(), title });
- }
+ UsecaseWorkflowHelper.checkWorkflow(this.manager, this, getEvent(), version,
+ getLogger());
}
}
Modified: lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/MoveSubsite.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/MoveSubsite.java?view=diff&rev=495689&r1=495688&r2=495689
==============================================================================
--- lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/MoveSubsite.java (original)
+++ lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/MoveSubsite.java Fri Jan 12 11:12:55 2007
@@ -22,6 +22,7 @@
import java.util.List;
import java.util.Set;
+import org.apache.lenya.cms.metadata.dublincore.DublinCoreHelper;
import org.apache.lenya.cms.publication.Area;
import org.apache.lenya.cms.publication.Document;
import org.apache.lenya.cms.publication.DocumentLocator;
@@ -79,6 +80,7 @@
}
if (!WorkflowUtil.canInvoke(this.manager, getSession(), getLogger(), docs[i],
getEvent())) {
+ String title = DublinCoreHelper.getTitle(docs[i]);
addErrorMessage("The workflow event [" + getEvent()
+ "] cannot be invoked on document [" + docs[i] + "].");
}
Modified: lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/Rollback.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/Rollback.java?view=diff&rev=495689&r1=495688&r2=495689
==============================================================================
--- lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/Rollback.java (original)
+++ lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/site/usecases/Rollback.java Fri Jan 12 11:12:55 2007
@@ -32,6 +32,7 @@
import org.apache.lenya.cms.usecase.DocumentUsecase;
import org.apache.lenya.cms.usecase.UsecaseException;
import org.apache.lenya.cms.workflow.WorkflowUtil;
+import org.apache.lenya.cms.workflow.usecases.UsecaseWorkflowHelper;
/**
* Rollback.
@@ -51,14 +52,8 @@
*/
protected void doCheckPreconditions() throws Exception {
super.doCheckPreconditions();
- if (!WorkflowUtil.canInvoke(this.manager,
- getSession(),
- getLogger(),
- getSourceDocument(),
- getEvent())) {
- addErrorMessage("error-workflow-document", new String[] { getEvent(),
- DublinCoreHelper.getTitle(getSourceDocument()) });
- }
+ UsecaseWorkflowHelper.checkWorkflow(this.manager, this, getEvent(), getSourceDocument(),
+ getLogger());
}
/**
Modified: lenya/trunk/src/modules-core/sitemanagement/module.xml
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/sitemanagement/module.xml?view=diff&rev=495689&r1=495688&r2=495689
==============================================================================
--- lenya/trunk/src/modules-core/sitemanagement/module.xml (original)
+++ lenya/trunk/src/modules-core/sitemanagement/module.xml Fri Jan 12 11:12:55 2007
@@ -20,6 +20,7 @@
<module xmlns="http://apache.org/lenya/module/1.0">
<id>org.apache.lenya.modules.sitemanagement</id>
+ <export package="org.apache.lenya.cms.site.usecases"/>
<depends module="org.apache.lenya.modules.usecase"/>
<package>org.apache.lenya.modules</package>
<version>0.1-dev</version>
Modified: lenya/trunk/src/modules-core/templating-impl/module.xml
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/templating-impl/module.xml?view=diff&rev=495689&r1=495688&r2=495689
==============================================================================
--- lenya/trunk/src/modules-core/templating-impl/module.xml (original)
+++ lenya/trunk/src/modules-core/templating-impl/module.xml Fri Jan 12 11:12:55 2007
@@ -20,7 +20,6 @@
<module xmlns="http://apache.org/lenya/module/1.0">
<id>org.apache.lenya.modules.templating-impl</id>
- <published>false</published>
<depends module="org.apache.lenya.modules.usecase"/>
<package>org.apache.lenya.modules</package>
<version>0.1-dev</version>
Modified: lenya/trunk/src/modules-core/usecase-impl/module.xml
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/usecase-impl/module.xml?view=diff&rev=495689&r1=495688&r2=495689
==============================================================================
--- lenya/trunk/src/modules-core/usecase-impl/module.xml (original)
+++ lenya/trunk/src/modules-core/usecase-impl/module.xml Fri Jan 12 11:12:55 2007
@@ -20,7 +20,6 @@
<module xmlns="http://apache.org/lenya/module/1.0">
<id>org.apache.lenya.modules.usecase-impl</id>
- <published>false</published>
<depends module="org.apache.lenya.modules.usecase"/>
<depends module="org.apache.lenya.modules.cache"/>
<package>org.apache.lenya.modules</package>
Modified: lenya/trunk/src/modules-core/usecase/module.xml
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/usecase/module.xml?view=diff&rev=495689&r1=495688&r2=495689
==============================================================================
--- lenya/trunk/src/modules-core/usecase/module.xml (original)
+++ lenya/trunk/src/modules-core/usecase/module.xml Fri Jan 12 11:12:55 2007
@@ -20,6 +20,10 @@
<module xmlns="http://apache.org/lenya/module/1.0">
<id>org.apache.lenya.modules.usecase</id>
+ <export package="org.apache.lenya.cms.ac.usecase"/>
+ <export package="org.apache.lenya.cms.usecase"/>
+ <export package="org.apache.lenya.cms.usecase.scheduling"/>
+ <export package="org.apache.lenya.cms.usecase.xml"/>
<package>org.apache.lenya.modules</package>
<version>0.1-dev</version>
<name>Usecase framework API</name>
Modified: lenya/trunk/src/modules-core/workflow-impl/java/src/org/apache/lenya/cms/workflow/usecases/CheckWorkflow.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/workflow-impl/java/src/org/apache/lenya/cms/workflow/usecases/CheckWorkflow.java?view=diff&rev=495689&r1=495688&r2=495689
==============================================================================
--- lenya/trunk/src/modules-core/workflow-impl/java/src/org/apache/lenya/cms/workflow/usecases/CheckWorkflow.java (original)
+++ lenya/trunk/src/modules-core/workflow-impl/java/src/org/apache/lenya/cms/workflow/usecases/CheckWorkflow.java Fri Jan 12 11:12:55 2007
@@ -20,7 +20,6 @@
import org.apache.avalon.framework.configuration.Configurable;
import org.apache.avalon.framework.configuration.Configuration;
import org.apache.avalon.framework.configuration.ConfigurationException;
-import org.apache.lenya.cms.metadata.dublincore.DublinCoreHelper;
import org.apache.lenya.cms.publication.Document;
import org.apache.lenya.cms.usecase.DocumentUsecase;
import org.apache.lenya.cms.workflow.WorkflowUtil;
@@ -62,11 +61,7 @@
Document doc = getSourceDocument();
if (!WorkflowUtil.canInvoke(this.manager, getSession(), getLogger(), doc, getEvent())) {
- String title = DublinCoreHelper.getTitle(doc);
- if (title == null) {
- title = "";
- }
- addErrorMessage("error-workflow-document", new String[] { getEvent(), title });
+ UsecaseWorkflowHelper.addWorkflowError(this, getEvent(), doc);
}
}
Added: lenya/trunk/src/modules-core/workflow-impl/java/src/org/apache/lenya/cms/workflow/usecases/UsecaseWorkflowHelper.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/workflow-impl/java/src/org/apache/lenya/cms/workflow/usecases/UsecaseWorkflowHelper.java?view=auto&rev=495689
==============================================================================
--- lenya/trunk/src/modules-core/workflow-impl/java/src/org/apache/lenya/cms/workflow/usecases/UsecaseWorkflowHelper.java (added)
+++ lenya/trunk/src/modules-core/workflow-impl/java/src/org/apache/lenya/cms/workflow/usecases/UsecaseWorkflowHelper.java Fri Jan 12 11:12:55 2007
@@ -0,0 +1,79 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.workflow.usecases;
+
+import org.apache.avalon.framework.logger.Logger;
+import org.apache.avalon.framework.service.ServiceManager;
+import org.apache.lenya.cms.metadata.MetaDataException;
+import org.apache.lenya.cms.metadata.dublincore.DublinCoreHelper;
+import org.apache.lenya.cms.publication.Document;
+import org.apache.lenya.cms.usecase.AbstractUsecase;
+import org.apache.lenya.cms.workflow.WorkflowUtil;
+import org.apache.lenya.workflow.WorkflowException;
+
+/**
+ * Helper class for workflow related usecases.
+ */
+public class UsecaseWorkflowHelper {
+
+ /**
+ * The error message that an event can not be invoked on a document. It
+ * takes two parameters: the event name and the document title.
+ */
+ protected static final String ERROR_CANNOT_INVOKE_EVENT = "error-workflow-document";
+
+ /**
+ * Adds an error message to a usecase that an event cannot be invoked on a
+ * document.
+ * @param usecase The usecase.
+ * @param event The event.
+ * @param doc The document.
+ */
+ protected static final void addWorkflowError(AbstractUsecase usecase, String event, Document doc) {
+ try {
+ String title = DublinCoreHelper.getTitle(doc);
+ if (title == null) {
+ title = "";
+ }
+ usecase.addErrorMessage(ERROR_CANNOT_INVOKE_EVENT, new String[] { event, title });
+ } catch (MetaDataException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ /**
+ * Adds an error message if the event can not be invoked.
+ * @param manager The service manager.
+ * @param usecase The usecase.
+ * @param event The event.
+ * @param doc The document.
+ * @param logger The logger.
+ */
+ public static final void checkWorkflow(ServiceManager manager, AbstractUsecase usecase,
+ String event, Document doc, Logger logger) {
+ try {
+ if (!WorkflowUtil.canInvoke(manager, usecase.getSession(), logger, doc, event)) {
+ UsecaseWorkflowHelper.addWorkflowError(usecase, event, doc);
+ }
+ } catch (WorkflowException e) {
+ throw new RuntimeException(e);
+ }
+
+ }
+
+}
Modified: lenya/trunk/src/modules-core/workflow-impl/module.xml
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/workflow-impl/module.xml?view=diff&rev=495689&r1=495688&r2=495689
==============================================================================
--- lenya/trunk/src/modules-core/workflow-impl/module.xml (original)
+++ lenya/trunk/src/modules-core/workflow-impl/module.xml Fri Jan 12 11:12:55 2007
@@ -20,7 +20,7 @@
<module xmlns="http://apache.org/lenya/module/1.0">
<id>org.apache.lenya.modules.workflow-impl</id>
- <published>false</published>
+ <export package="org.apache.lenya.cms.workflow.usecases"/>
<depends module="org.apache.lenya.modules.usecase"/>
<package>org.apache.lenya.modules</package>
<version>0.1-dev</version>
Modified: lenya/trunk/src/modules/blog/java/src/org/apache/lenya/cms/workflow/usecases/Publish.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/blog/java/src/org/apache/lenya/cms/workflow/usecases/Publish.java?view=diff&rev=495689&r1=495688&r2=495689
==============================================================================
--- lenya/trunk/src/modules/blog/java/src/org/apache/lenya/cms/workflow/usecases/Publish.java (original)
+++ lenya/trunk/src/modules/blog/java/src/org/apache/lenya/cms/workflow/usecases/Publish.java Fri Jan 12 11:12:55 2007
@@ -78,8 +78,8 @@
}
/**
- * Checks if the workflow event is supported and the parent of the document exists in the live
- * area.
+ * Checks if the workflow event is supported and the parent of the document
+ * exists in the live area.
*
* @see org.apache.lenya.cms.usecase.AbstractUsecase#doCheckPreconditions()
*/
@@ -95,17 +95,8 @@
return;
}
- if (!WorkflowUtil.canInvoke(this.manager,
- getSession(),
- getLogger(),
- getSourceDocument(),
- event)) {
- String title = DublinCoreHelper.getTitle(getSourceDocument());
- if (title == null) {
- title = "";
- }
- addErrorMessage("error-workflow-document", new String[] { getEvent(),
- title });
+ if (!WorkflowUtil.canInvoke(this.manager, getSession(), getLogger(), document, event)) {
+ UsecaseWorkflowHelper.addWorkflowError(this, event, document);
}
}
@@ -124,10 +115,7 @@
updateFeed();
documentManager = (DocumentManager) this.manager.lookup(DocumentManager.ROLE);
documentManager.copyToArea(authoringDocument, Publication.LIVE_AREA);
- WorkflowUtil.invoke(this.manager,
- getSession(),
- getLogger(),
- authoringDocument,
+ WorkflowUtil.invoke(this.manager, getSession(), getLogger(), authoringDocument,
getEvent());
} catch (Exception e) {
throw new RuntimeException(e);
@@ -148,7 +136,7 @@
Area live = pub.getArea(Publication.LIVE_AREA);
String path = "/feeds/all/index";
String language = pub.getDefaultLanguage();
-
+
docs[0] = live.getSite().getNode(path).getLink(language).getDocument();
docs[1] = authoring.getSite().getNode(path).getLink(language).getDocument();
@@ -189,10 +177,8 @@
DocumentHelper.setSimpleElementText(element, datestr);
// set issued date on first time publish
- Workflowable dw = WorkflowUtil.getWorkflowable(this.manager,
- this.getSession(),
- this.getLogger(),
- doc);
+ Workflowable dw = WorkflowUtil.getWorkflowable(this.manager, this.getSession(), this
+ .getLogger(), doc);
Version versions[] = dw.getVersions();
boolean wasLive = false;
for (int i = 0; i < versions.length; i++) {
Modified: lenya/trunk/src/modules/blog/module.xml
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/blog/module.xml?view=diff&rev=495689&r1=495688&r2=495689
==============================================================================
--- lenya/trunk/src/modules/blog/module.xml (original)
+++ lenya/trunk/src/modules/blog/module.xml Fri Jan 12 11:12:55 2007
@@ -21,6 +21,7 @@
<module xmlns="http://apache.org/lenya/module/1.0">
<id>org.apache.lenya.modules.blog</id>
<depends module="org.apache.lenya.modules.usecase"/>
+ <depends module="org.apache.lenya.modules.workflow-impl"/>
<package>org.apache.lenya.modules</package>
<version>0.1-dev</version>
<name>Blog</name>
Modified: lenya/trunk/src/modules/editors/java/src/org/apache/lenya/cms/editors/forms/FormsEditor.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/editors/java/src/org/apache/lenya/cms/editors/forms/FormsEditor.java?view=diff&rev=495689&r1=495688&r2=495689
==============================================================================
--- lenya/trunk/src/modules/editors/java/src/org/apache/lenya/cms/editors/forms/FormsEditor.java (original)
+++ lenya/trunk/src/modules/editors/java/src/org/apache/lenya/cms/editors/forms/FormsEditor.java Fri Jan 12 11:12:55 2007
@@ -48,12 +48,12 @@
import org.apache.excalibur.source.ModifiableSource;
import org.apache.excalibur.source.Source;
import org.apache.excalibur.source.SourceResolver;
-import org.apache.lenya.cms.metadata.dublincore.DublinCoreHelper;
import org.apache.lenya.cms.usecase.DocumentUsecase;
import org.apache.lenya.cms.usecase.UsecaseException;
import org.apache.lenya.cms.usecase.UsecaseMessage;
import org.apache.lenya.cms.usecase.xml.UsecaseErrorHandler;
import org.apache.lenya.cms.workflow.WorkflowUtil;
+import org.apache.lenya.cms.workflow.usecases.UsecaseWorkflowHelper;
import org.apache.lenya.xml.DocumentHelper;
import org.apache.lenya.xml.ValidationUtil;
import org.apache.lenya.xml.XPath;
@@ -117,15 +117,8 @@
*/
protected void doCheckPreconditions() throws Exception {
super.doCheckPreconditions();
- if (!WorkflowUtil.canInvoke(this.manager,
- getSession(),
- getLogger(),
- getSourceDocument(),
- getEvent())) {
- String title = DublinCoreHelper.getTitle(getSourceDocument());
- addErrorMessage("error-workflow-document", new String[] { getEvent(),
- title });
- }
+ org.apache.lenya.cms.publication.Document doc = getSourceDocument();
+ UsecaseWorkflowHelper.checkWorkflow(this.manager, this, getEvent(), doc, getLogger());
}
/**
Modified: lenya/trunk/src/modules/editors/java/src/org/apache/lenya/cms/editors/forms/OneFormEditor.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/editors/java/src/org/apache/lenya/cms/editors/forms/OneFormEditor.java?view=diff&rev=495689&r1=495688&r2=495689
==============================================================================
--- lenya/trunk/src/modules/editors/java/src/org/apache/lenya/cms/editors/forms/OneFormEditor.java (original)
+++ lenya/trunk/src/modules/editors/java/src/org/apache/lenya/cms/editors/forms/OneFormEditor.java Fri Jan 12 11:12:55 2007
@@ -29,12 +29,12 @@
import org.apache.excalibur.source.ModifiableSource;
import org.apache.excalibur.source.Source;
import org.apache.excalibur.source.SourceResolver;
-import org.apache.lenya.cms.metadata.dublincore.DublinCoreHelper;
import org.apache.lenya.cms.publication.ResourceType;
import org.apache.lenya.cms.usecase.DocumentUsecase;
import org.apache.lenya.cms.usecase.UsecaseException;
import org.apache.lenya.cms.usecase.xml.UsecaseErrorHandler;
import org.apache.lenya.cms.workflow.WorkflowUtil;
+import org.apache.lenya.cms.workflow.usecases.UsecaseWorkflowHelper;
import org.apache.lenya.xml.DocumentHelper;
import org.apache.lenya.xml.Schema;
import org.apache.lenya.xml.ValidationUtil;
@@ -61,15 +61,7 @@
*/
protected void doCheckPreconditions() throws Exception {
super.doCheckPreconditions();
- if (!WorkflowUtil.canInvoke(this.manager,
- getSession(),
- getLogger(),
- getSourceDocument(),
- getEvent())) {
- String title = DublinCoreHelper.getTitle(getSourceDocument());
- addErrorMessage("error-workflow-document", new String[] { getEvent(),
- title });
- }
+ UsecaseWorkflowHelper.checkWorkflow(this.manager, this, getEvent(), getSourceDocument(), getLogger());
}
/**
Modified: lenya/trunk/src/modules/fckeditor/java/src/org/apache/lenya/cms/editors/fckeditor/Fckeditor.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/fckeditor/java/src/org/apache/lenya/cms/editors/fckeditor/Fckeditor.java?view=diff&rev=495689&r1=495688&r2=495689
==============================================================================
--- lenya/trunk/src/modules/fckeditor/java/src/org/apache/lenya/cms/editors/fckeditor/Fckeditor.java (original)
+++ lenya/trunk/src/modules/fckeditor/java/src/org/apache/lenya/cms/editors/fckeditor/Fckeditor.java Fri Jan 12 11:12:55 2007
@@ -45,6 +45,7 @@
import org.apache.lenya.cms.usecase.UsecaseException;
import org.apache.lenya.cms.usecase.xml.UsecaseErrorHandler;
import org.apache.lenya.cms.workflow.WorkflowUtil;
+import org.apache.lenya.cms.workflow.usecases.UsecaseWorkflowHelper;
import org.apache.lenya.xml.DocumentHelper;
import org.apache.lenya.xml.Schema;
import org.apache.lenya.xml.ValidationUtil;
@@ -57,11 +58,10 @@
*
*/
public class Fckeditor extends DocumentUsecase {
-
- public static final String TIDY_CONFIG="tidyConfig";
- public static final String XSLT_CLEAN_FORMAT="xslt-clean";
-
-
+
+ public static final String TIDY_CONFIG = "tidyConfig";
+ public static final String XSLT_CLEAN_FORMAT = "xslt-clean";
+
/**
* @see org.apache.lenya.cms.usecase.AbstractUsecase#getNodesToLock()
*/
@@ -75,31 +75,22 @@
*/
protected void initParameters() {
super.initParameters();
-
+
Request request = ContextHelper.getRequest(this.context);
String requesturi = request.getRequestURI();
- String host = "http://"+request.getServerName()+":"+request.getServerPort();
- setParameter("host",host);
- setParameter("requesturi",requesturi);
- }
-
-
-
+ String host = "http://" + request.getServerName() + ":" + request.getServerPort();
+ setParameter("host", host);
+ setParameter("requesturi", requesturi);
+ }
+
/**
* @see org.apache.lenya.cms.usecase.AbstractUsecase#doCheckPreconditions()
*/
protected void doCheckPreconditions() throws Exception {
super.doCheckPreconditions();
-
-
- if (!WorkflowUtil.canInvoke(this.manager,
- getSession(),
- getLogger(),
- getSourceDocument(),
- getEvent())) {
- addErrorMessage("error-workflow-document", new String[] { getEvent(),
- getSourceDocument().toString() });
- }
+
+ UsecaseWorkflowHelper.checkWorkflow(this.manager, this, getEvent(), getSourceDocument(),
+ getLogger());
}
/**
@@ -123,9 +114,10 @@
}
/**
- * Save the content to the document source. After saving, the XML is validated. If validation
- * errors occur, the usecase transaction is rolled back, so the changes are not persistent. If
- * the validation succeeded, the workflow event is invoked.
+ * Save the content to the document source. After saving, the XML is
+ * validated. If validation errors occur, the usecase transaction is rolled
+ * back, so the changes are not persistent. If the validation succeeded, the
+ * workflow event is invoked.
* @param encoding The encoding to use.
* @param content The content to save.
* @throws Exception if an error occurs.
@@ -141,44 +133,44 @@
resolver = (SourceResolver) this.manager.lookup(SourceResolver.ROLE);
xmlSource = (ModifiableSource) resolver.resolveURI(getSourceDocument().getSourceURI());
saveXMLFile(encoding, content, xmlSource);
-
+
Document xmlDoc = null;
-
+
// Setup an instance of Tidy.
Tidy tidy = new Tidy();
-
+
String tidyProps = this.getParameterAsString(TIDY_CONFIG, null);
if (tidyProps != null) {
tidySource = resolver.resolveURI(tidyProps);
if (getLogger().isDebugEnabled()) {
- getLogger().debug(
- "Loading configuration from " + tidySource.getURI());
+ getLogger().debug("Loading configuration from " + tidySource.getURI());
}
properties = new Properties();
properties.load(tidySource.getInputStream());
-
if (properties == null) {
tidy.setXHTML(true);
} else {
tidy.setConfigurationFromProps(properties);
}
-
- //Set Jtidy warnings on-off
+
+ // Set Jtidy warnings on-off
tidy.setShowWarnings(getLogger().isWarnEnabled());
- //Set Jtidy final result summary on-off
+ // Set Jtidy final result summary on-off
tidy.setQuiet(!getLogger().isInfoEnabled());
- //Set Jtidy infos to a String (will be logged) instead of System.out
+ // Set Jtidy infos to a String (will be logged) instead of
+ // System.out
StringWriter stringWriter = new StringWriter();
PrintWriter errorWriter = new PrintWriter(stringWriter);
tidy.setErrout(errorWriter);
xmlDoc = tidy.parseDOM(xmlSource.getInputStream(), null);
-
- // FIXME: Jtidy doesn't warn or strip duplicate attributes in same
+
+ // FIXME: Jtidy doesn't warn or strip duplicate attributes in
+ // same
// tag; stripping.
XMLUtils.stripDuplicateAttributes(xmlDoc, null);
-
+
StringWriter output = new StringWriter();
StreamResult strResult = new StreamResult(output);
TransformerFactory tfac = TransformerFactory.newInstance();
@@ -189,22 +181,22 @@
t.setOutputProperty(OutputKeys.METHOD, "xml");
t.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4");
t.transform(new DOMSource(xmlDoc.getDocumentElement()), strResult);
-
+
content = strResult.getWriter().toString();
} catch (Exception e) {
addErrorMessage(e.getMessage());
}
-
+
saveXMLFile(encoding, content, xmlSource);
} else {
try {
- xmlDoc = DocumentHelper.readDocument(xmlSource.getInputStream());
+ xmlDoc = DocumentHelper.readDocument(xmlSource.getInputStream());
} catch (SAXException e) {
addErrorMessage("error-document-form", new String[] { e.getMessage() });
}
}
-
- //Try to clean the xml using xslt
+
+ // Try to clean the xml using xslt
ResourceType resType = getSourceDocument().getResourceType();
String[] formats = resType.getFormats();
if (Arrays.asList(formats).contains(XSLT_CLEAN_FORMAT)) {
@@ -212,37 +204,37 @@
StreamResult strResult = new StreamResult(output);
TransformerFactory tfac = TransformerFactory.newInstance();
try {
- xsltSource = (ModifiableSource) resolver.resolveURI(resType.getFormatURI(XSLT_CLEAN_FORMAT));
- Transformer t = tfac.newTransformer(new StreamSource(xsltSource.getInputStream()));
+ xsltSource = (ModifiableSource) resolver.resolveURI(resType
+ .getFormatURI(XSLT_CLEAN_FORMAT));
+ Transformer t = tfac.newTransformer(new StreamSource(xsltSource
+ .getInputStream()));
t.setOutputProperty(OutputKeys.ENCODING, encoding);
t.setOutputProperty(OutputKeys.INDENT, "yes");
t.setOutputProperty(OutputKeys.METHOD, "xml");
t.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4");
xmlDoc = DocumentHelper.readDocument(xmlSource.getInputStream());
t.transform(new DOMSource(xmlDoc.getDocumentElement()), strResult);
-
+
content = strResult.getWriter().toString();
} catch (Exception e) {
addErrorMessage(e.getMessage());
}
-
+
saveXMLFile(encoding, content, xmlSource);
}
-
+
xmlDoc = DocumentHelper.readDocument(xmlSource.getInputStream());
-
+
if (xmlDoc != null) {
ResourceType resourceType = getSourceDocument().getResourceType();
Schema schema = resourceType.getSchema();
- ValidationUtil.validate(this.manager, xmlDoc, schema, new UsecaseErrorHandler(this));
+ ValidationUtil
+ .validate(this.manager, xmlDoc, schema, new UsecaseErrorHandler(this));
if (!hasErrors()) {
- WorkflowUtil.invoke(this.manager,
- getSession(),
- getLogger(),
- getSourceDocument(),
- getEvent());
+ WorkflowUtil.invoke(this.manager, getSession(), getLogger(),
+ getSourceDocument(), getEvent());
}
}
@@ -264,7 +256,7 @@
}
}
}
-
+
/**
* Save the XML file
* @param encoding The encoding
Modified: lenya/trunk/src/modules/jcr/module.xml
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/jcr/module.xml?view=diff&rev=495689&r1=495688&r2=495689
==============================================================================
--- lenya/trunk/src/modules/jcr/module.xml (original)
+++ lenya/trunk/src/modules/jcr/module.xml Fri Jan 12 11:12:55 2007
@@ -20,6 +20,7 @@
<module xmlns="http://apache.org/lenya/module/1.0">
<id>org.apache.lenya.modules.jcr</id>
+ <export package="org.apache.lenya.cms.jcr"/>
<depends module="org.apache.lenya.modules.repository"/>
<package>org.apache.lenya.modules</package>
<version>0.1-dev</version>
Modified: lenya/trunk/src/modules/notification/module.xml
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/notification/module.xml?view=diff&rev=495689&r1=495688&r2=495689
==============================================================================
--- lenya/trunk/src/modules/notification/module.xml (original)
+++ lenya/trunk/src/modules/notification/module.xml Fri Jan 12 11:12:55 2007
@@ -20,6 +20,7 @@
<module xmlns="http://apache.org/lenya/module/1.0">
<id>org.apache.lenya.modules.notification</id>
+ <export package="org.apache.lenya.notification"/>
<depends module="org.apache.lenya.modules.administration"/> <!-- necessary for tabs -->
<depends module="org.apache.lenya.modules.usecase"/>
<package>org.apache.lenya.modules</package>
Modified: lenya/trunk/src/modules/repository/module.xml
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/repository/module.xml?view=diff&rev=495689&r1=495688&r2=495689
==============================================================================
--- lenya/trunk/src/modules/repository/module.xml (original)
+++ lenya/trunk/src/modules/repository/module.xml Fri Jan 12 11:12:55 2007
@@ -20,6 +20,9 @@
<module xmlns="http://apache.org/lenya/module/1.0">
<id>org.apache.lenya.modules.repository</id>
+ <export package="org.apache.lenya.cms.repo"/>
+ <export package="org.apache.lenya.cms.repo.metadata"/>
+ <export package="org.apache.lenya.cms.repo.metadata.impl"/>
<depends module="org.apache.lenya.modules.sourcerepository"/>
<package>org.apache.lenya.modules</package>
<version>0.1-dev</version>
Modified: lenya/trunk/src/modules/resource/java/src/org/apache/lenya/cms/site/usecases/UploadResource.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/resource/java/src/org/apache/lenya/cms/site/usecases/UploadResource.java?view=diff&rev=495689&r1=495688&r2=495689
==============================================================================
--- lenya/trunk/src/modules/resource/java/src/org/apache/lenya/cms/site/usecases/UploadResource.java (original)
+++ lenya/trunk/src/modules/resource/java/src/org/apache/lenya/cms/site/usecases/UploadResource.java Fri Jan 12 11:12:55 2007
@@ -23,6 +23,7 @@
import org.apache.lenya.cms.publication.ResourceWrapper;
import org.apache.lenya.cms.usecase.DocumentUsecase;
import org.apache.lenya.cms.workflow.WorkflowUtil;
+import org.apache.lenya.cms.workflow.usecases.UsecaseWorkflowHelper;
import org.apache.lenya.util.ServletHelper;
import org.apache.lenya.cms.metadata.dublincore.DublinCoreHelper;
import org.apache.lenya.cms.publication.Document;
@@ -49,10 +50,8 @@
addErrorMessage("This usecase can only be invoked on existing documents.");
}
- if (!WorkflowUtil.canInvoke(this.manager, getSession(), getLogger(), doc, getEvent())) {
- String title = DublinCoreHelper.getTitle(doc);
- addErrorMessage("error-workflow-document", new String[] { getEvent(), title });
- }
+ UsecaseWorkflowHelper.checkWorkflow(this.manager, this, getEvent(), doc,
+ getLogger());
}
/**
Modified: lenya/trunk/src/modules/resource/module.xml
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/resource/module.xml?view=diff&rev=495689&r1=495688&r2=495689
==============================================================================
--- lenya/trunk/src/modules/resource/module.xml (original)
+++ lenya/trunk/src/modules/resource/module.xml Fri Jan 12 11:12:55 2007
@@ -4,6 +4,7 @@
<lenya:module xmlns:lenya="http://apache.org/lenya/module/1.0">
<lenya:id>org.apache.lenya.modules.resource</lenya:id>
+ <lenya:export package="org.apache.lenya.cms.site.usecases"/>
<lenya:depends module="org.apache.lenya.modules.usecase"/>
<lenya:depends module="org.apache.lenya.modules.defaultusecases"/>
<lenya:depends module="org.apache.lenya.modules.sitemanagement"/>
Modified: lenya/trunk/src/modules/sitetree/module.xml
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/sitetree/module.xml?view=diff&rev=495689&r1=495688&r2=495689
==============================================================================
--- lenya/trunk/src/modules/sitetree/module.xml (original)
+++ lenya/trunk/src/modules/sitetree/module.xml Fri Jan 12 11:12:55 2007
@@ -20,6 +20,7 @@
<module xmlns="http://apache.org/lenya/module/1.0">
<id>org.apache.lenya.modules.sitetree</id>
+ <export package="org.apache.lenya.cms.site.tree"/>
<depends module="org.apache.lenya.modules.ac-impl"/>
<depends module="org.apache.lenya.modules.usecase"/>
<package>org.apache.lenya.modules</package>
Modified: lenya/trunk/src/modules/sourcerepository/module.xml
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/sourcerepository/module.xml?view=diff&rev=495689&r1=495688&r2=495689
==============================================================================
--- lenya/trunk/src/modules/sourcerepository/module.xml (original)
+++ lenya/trunk/src/modules/sourcerepository/module.xml Fri Jan 12 11:12:55 2007
@@ -20,6 +20,7 @@
<module xmlns="http://apache.org/lenya/module/1.0">
<id>org.apache.lenya.modules.sourcerepository</id>
+ <export package="org.apache.lenya.cms.repository"/>
<depends module="org.apache.lenya.modules.ac-impl"/>
<depends module="org.apache.lenya.modules.usecase-impl"/>
<package>org.apache.lenya.modules</package>
Modified: lenya/trunk/src/modules/tinymce/java/src/org/apache/lenya/cms/editors/tinymce/TinyMce.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/tinymce/java/src/org/apache/lenya/cms/editors/tinymce/TinyMce.java?view=diff&rev=495689&r1=495688&r2=495689
==============================================================================
--- lenya/trunk/src/modules/tinymce/java/src/org/apache/lenya/cms/editors/tinymce/TinyMce.java (original)
+++ lenya/trunk/src/modules/tinymce/java/src/org/apache/lenya/cms/editors/tinymce/TinyMce.java Fri Jan 12 11:12:55 2007
@@ -39,6 +39,7 @@
import org.apache.lenya.cms.usecase.UsecaseException;
import org.apache.lenya.cms.usecase.xml.UsecaseErrorHandler;
import org.apache.lenya.cms.workflow.WorkflowUtil;
+import org.apache.lenya.cms.workflow.usecases.UsecaseWorkflowHelper;
import org.apache.lenya.xml.DocumentHelper;
import org.apache.lenya.xml.Schema;
import org.apache.lenya.xml.ValidationUtil;
@@ -75,12 +76,8 @@
*/
protected void doCheckPreconditions() throws Exception {
super.doCheckPreconditions();
- if (!WorkflowUtil.canInvoke(this.manager, getSession(), getLogger(), getSourceDocument(),
- getEvent())) {
- String title = DublinCoreHelper.getTitle(getSourceDocument());
- addErrorMessage("error-workflow-document", new String[] { getEvent(),
- title });
- }
+ UsecaseWorkflowHelper.checkWorkflow(this.manager, this, getEvent(), getSourceDocument(),
+ getLogger());
addInfoMessage("This is a usecase InfoMessage.");
}
Modified: lenya/trunk/src/modules/webdav/java/src/org/apache/lenya/cms/usecases/webdav/Put.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/webdav/java/src/org/apache/lenya/cms/usecases/webdav/Put.java?view=diff&rev=495689&r1=495688&r2=495689
==============================================================================
--- lenya/trunk/src/modules/webdav/java/src/org/apache/lenya/cms/usecases/webdav/Put.java (original)
+++ lenya/trunk/src/modules/webdav/java/src/org/apache/lenya/cms/usecases/webdav/Put.java Fri Jan 12 11:12:55 2007
@@ -47,6 +47,7 @@
import org.apache.lenya.cms.usecase.UsecaseException;
import org.apache.lenya.cms.usecase.xml.UsecaseErrorHandler;
import org.apache.lenya.cms.workflow.WorkflowUtil;
+import org.apache.lenya.cms.workflow.usecases.UsecaseWorkflowHelper;
import org.apache.lenya.xml.Schema;
import org.apache.lenya.xml.ValidationUtil;
@@ -88,12 +89,11 @@
protected void doCheckExecutionConditions() throws Exception {
super.doCheckExecutionConditions();
- Document doc = getSourceDocument();
String event = getParameterAsString(EVENT);
- if (event != null
- && !WorkflowUtil.canInvoke(this.manager, getSession(), getLogger(), doc, event)) {
- String title = DublinCoreHelper.getTitle(doc);
- addErrorMessage("error-workflow-document", new String[] { event, title });
+ if (event != null) {
+ Document doc = getSourceDocument();
+ UsecaseWorkflowHelper.checkWorkflow(this.manager, this, event, doc,
+ getLogger());
}
}
Modified: lenya/trunk/src/resources/build/module.rng
URL: http://svn.apache.org/viewvc/lenya/trunk/src/resources/build/module.rng?view=diff&rev=495689&r1=495688&r2=495689
==============================================================================
--- lenya/trunk/src/resources/build/module.rng (original)
+++ lenya/trunk/src/resources/build/module.rng Fri Jan 12 11:12:55 2007
@@ -25,9 +25,11 @@
<start>
<element name="lenya:module" >
<element name="lenya:id"><text/></element>
- <optional>
- <element name="lenya:published"><data type="boolean"/></element>
- </optional>
+ <zeroOrMore>
+ <element name="lenya:export">
+ <attribute name="package"><text/></attribute>
+ </element>
+ </zeroOrMore>
<zeroOrMore>
<element name="lenya:depends">
<attribute name="module"><text/></attribute>
Modified: lenya/trunk/src/resources/build/modules2build.xsl
URL: http://svn.apache.org/viewvc/lenya/trunk/src/resources/build/modules2build.xsl?view=diff&rev=495689&r1=495688&r2=495689
==============================================================================
--- lenya/trunk/src/resources/build/modules2build.xsl (original)
+++ lenya/trunk/src/resources/build/modules2build.xsl Fri Jan 12 11:12:55 2007
@@ -135,6 +135,7 @@
<jing rngfile="{$module-schema}" file="{$src}/module.xml"/>
</target>
+ <!--
<target name="dependency-warning-{$id}">
<xsl:if test="mod:published = 'false'">
<property name="dependentModule" value=""/>
@@ -144,6 +145,7 @@
</echo>
</xsl:if>
</target>
+ -->
<xsl:text>
@@ -154,24 +156,54 @@
<available file="{$src}/java/src" property="compile.module.{$id}"/>
- <xsl:variable name="destDir">${build.dir}/modules/<xsl:value-of select="$id"/>/java/classes</xsl:variable>
+ <xsl:variable name="destDirPublic">${build.dir}/modules/<xsl:value-of select="$id"/>/java/classes/api</xsl:variable>
+ <xsl:variable name="destDirPrivate">${build.dir}/modules/<xsl:value-of select="$id"/>/java/classes/impl</xsl:variable>
- <path id="module.classpath.{$id}">
+ <path id="module.classpath.{$id}.api">
<path refid="classpath"/>
<fileset dir="${{build.webapp}}/WEB-INF/lib" includes="lenya-*-api.jar"/>
<xsl:for-each select="mod:depends">
- <fileset dir="${{build.webapp}}/WEB-INF/lib" includes="lenya-module-{@module}.jar"/>
+ <fileset dir="${{build.webapp}}/WEB-INF/lib" includes="lenya-module-{@module}-api.jar"/>
</xsl:for-each>
<fileset dir="{$src}" includes="java/lib/*.jar"/>
<fileset dir="${{lib.dir}}" includes="*.jar"/>
</path>
+ <path id="module.classpath.{$id}.impl">
+ <path refid="module.classpath.{$id}.api"/>
+ <fileset dir="${{build.webapp}}/WEB-INF/lib" includes="lenya-module-{$id}-api.jar"/>
+ </path>
+
<target name="compile-module-{$id}" if="compile.module.{$id}">
- <mkdir dir="{$destDir}"/>
+ <mkdir dir="{$destDirPublic}"/>
+ <xsl:if test="mod:export[@package]">
+ <javac
+ destdir="{$destDirPublic}"
+ debug="${{debug}}"
+ optimize="${{optimize}}"
+ deprecation="${{deprecation}}"
+ target="${{target.vm}}"
+ nowarn="${{nowarn}}"
+ source="${{src.java.version}}">
+ <src path="{$src}/java/src"/>
+ <xsl:for-each select="mod:export[@package]">
+ <include name="{translate(@package, '.', '/')}/*.java"/>
+ </xsl:for-each>
+ <classpath refid="module.classpath.{$id}.api"/>
+ </javac>
+
+ <jar jarfile="${{build.webapp}}/WEB-INF/lib/lenya-module-{$id}-api.jar" index="true">
+ <fileset dir="{$destDirPublic}">
+ <exclude name="**/Manifest.mf"/>
+ </fileset>
+ </jar>
+ </xsl:if>
+
+ <mkdir dir="{$destDirPrivate}"/>
<javac
- destdir="{$destDir}"
+ destdir="{$destDirPrivate}"
debug="${{debug}}"
optimize="${{optimize}}"
deprecation="${{deprecation}}"
@@ -179,15 +211,18 @@
nowarn="${{nowarn}}"
source="${{src.java.version}}">
<src path="{$src}/java/src"/>
- <classpath refid="module.classpath.{$id}"/>
+ <xsl:for-each select="mod:export[@package]">
+ <exclude name="{translate(@package, '.', '/')}/*.java"/>
+ </xsl:for-each>
+ <classpath refid="module.classpath.{$id}.impl"/>
</javac>
- <jar jarfile="${{build.webapp}}/WEB-INF/lib/lenya-module-{$id}.jar" index="true">
- <fileset dir="{$destDir}">
+ <jar jarfile="${{build.webapp}}/WEB-INF/lib/lenya-module-{$id}-impl.jar" index="true">
+ <fileset dir="{$destDirPrivate}">
<exclude name="**/Manifest.mf"/>
</fileset>
</jar>
-
+
</target>
<xsl:variable name="dirName">
@@ -233,11 +268,13 @@
</target>
+ <!--
<target name="dependency-warnings-{$id}">
<xsl:apply-templates select="mod:depends" mode="dependencyWarning">
<xsl:with-param name="id" select="$id"/>
</xsl:apply-templates>
</target>
+ -->
<xsl:variable name="dependencyList">
<xsl:for-each select="mod:depends">
@@ -246,8 +283,11 @@
</xsl:variable>
<target name="deploy-module-{$id}"
- depends="dependency-warnings-{$id}, {$dependencyList} validate-module-{$id}, compile-module-{$id}, copy-module-{$id}, patch-module-{$id}"/>
-
+ depends="{$dependencyList} validate-module-{$id}, compile-module-{$id}, copy-module-{$id}, patch-module-{$id}"/>
+ <!--
+ depends="dependency-warnings-{$id}, {$dependencyList} validate-module-{$id}, compile-module-{$id}, copy-module-{$id}, patch-module-{$id}"/>
+ -->
+
<!-- ============================================================ -->
<!-- Javadocs -->
<!-- ============================================================ -->
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@lenya.apache.org
For additional commands, e-mail: commits-help@lenya.apache.org