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 2009/02/04 20:48:12 UTC
svn commit: r740840 - in /lenya/trunk: org.apache.lenya.core.administration/
org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/flow/
org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/workflow/
org.apache.lenya.core.linking/...
Author: andreas
Date: Wed Feb 4 19:48:11 2009
New Revision: 740840
URL: http://svn.apache.org/viewvc?rev=740840&view=rev
Log:
Fixing some compilation errors.
Modified:
lenya/trunk/org.apache.lenya.core.administration/pom.xml
lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/flow/FlowHelperImpl.java
lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/workflow/DocumentWorkflowable.java
lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/workflow/WorkflowUtil.java
lenya/trunk/org.apache.lenya.core.linking/pom.xml
lenya/trunk/org.apache.lenya.core.usecase/pom.xml
lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/usecase/impl/UsecaseSelector.java
lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/usecase/scheduling/impl/UsecaseCronJob.java
Modified: lenya/trunk/org.apache.lenya.core.administration/pom.xml
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.administration/pom.xml?rev=740840&r1=740839&r2=740840&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.administration/pom.xml (original)
+++ lenya/trunk/org.apache.lenya.core.administration/pom.xml Wed Feb 4 19:48:11 2009
@@ -15,6 +15,11 @@
<name>Apache Lenya Core Administration</name>
<dependencies>
<dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
<groupId>org.apache.lenya</groupId>
<artifactId>lenya-core-usecase</artifactId>
</dependency>
Modified: lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/flow/FlowHelperImpl.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/flow/FlowHelperImpl.java?rev=740840&r1=740839&r2=740840&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/flow/FlowHelperImpl.java (original)
+++ lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/cocoon/flow/FlowHelperImpl.java Wed Feb 4 19:48:11 2009
@@ -23,12 +23,12 @@
import java.util.Enumeration;
import java.util.Map;
-import org.apache.avalon.framework.logger.AbstractLogEnabled;
import org.apache.avalon.framework.service.ServiceException;
import org.apache.avalon.framework.service.ServiceManager;
import org.apache.avalon.framework.service.Serviceable;
import org.apache.cocoon.components.flow.javascript.fom.FOM_Cocoon;
import org.apache.cocoon.environment.Request;
+import org.apache.cocoon.util.AbstractLogEnabled;
import org.apache.lenya.ac.AccessControlException;
import org.apache.lenya.cms.publication.Document;
import org.apache.lenya.cms.publication.DocumentFactory;
@@ -142,14 +142,7 @@
public void triggerWorkflow(FOM_Cocoon cocoon, String event) throws WorkflowException,
PageEnvelopeException, AccessControlException {
Document document = getPageEnvelope(cocoon).getDocument();
- Request request = getRequest(cocoon);
- try {
- Session session = RepositoryUtil.getSession(this.manager, request);
- WorkflowUtil.invoke(this.manager, session, getLogger(), document, event);
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
+ WorkflowUtil.invoke(this.manager, getLogger(), document, event);
}
/**
Modified: lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/workflow/DocumentWorkflowable.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/workflow/DocumentWorkflowable.java?rev=740840&r1=740839&r2=740840&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/workflow/DocumentWorkflowable.java (original)
+++ lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/workflow/DocumentWorkflowable.java Wed Feb 4 19:48:11 2009
@@ -27,9 +27,7 @@
import java.util.SortedMap;
import java.util.TreeMap;
-import org.apache.avalon.framework.container.ContainerUtil;
import org.apache.avalon.framework.logger.AbstractLogEnabled;
-import org.apache.avalon.framework.logger.Logger;
import org.apache.avalon.framework.service.ServiceManager;
import org.apache.commons.logging.Log;
import org.apache.lenya.ac.Identity;
@@ -40,7 +38,6 @@
import org.apache.lenya.cms.publication.Document;
import org.apache.lenya.cms.publication.ResourceType;
import org.apache.lenya.cms.repository.Session;
-import org.apache.lenya.util.Assert;
import org.apache.lenya.workflow.Version;
import org.apache.lenya.workflow.Workflow;
import org.apache.lenya.workflow.Workflowable;
@@ -55,12 +52,10 @@
/**
* Ctor.
* @param manager The service manager.
- * @param session The repository session.
* @param document The document.
* @param logger The logger.
*/
- public DocumentWorkflowable(ServiceManager manager, Session session, Document document,
- Log logger) {
+ public DocumentWorkflowable(ServiceManager manager, Document document, Log logger) {
if (session.getIdentity() == null) {
throw new IllegalArgumentException("The session must have an identity.");
}
@@ -122,15 +117,17 @@
public Version[] getVersions() {
try {
MetaData meta = this.document.getMetaData(METADATA_NAMESPACE);
-
- org.apache.lenya.cms.repository.History history = this.document.getRepositoryNode().getHistory();
+
+ org.apache.lenya.cms.repository.History history = this.document.getRepositoryNode()
+ .getHistory();
boolean checkedIn = history.getRevisionNumbers().length > 0;
- if (this.versions == null || (checkedIn && history.getLatestRevision().getNumber() > this.revision)) {
+ if (this.versions == null
+ || (checkedIn && history.getLatestRevision().getNumber() > this.revision)) {
String[] versionStrings = meta.getValues(METADATA_VERSION);
this.versions = new Version[versionStrings.length];
-
+
SortedMap number2version = new TreeMap();
-
+
for (int i = 0; i < versionStrings.length; i++) {
String string = versionStrings[i];
int spaceIndex = string.indexOf(" ");
@@ -140,14 +137,14 @@
Version version = decodeVersion(versionString);
number2version.put(new Integer(number), version);
}
-
+
int number = 0;
- for (Iterator i = number2version.keySet().iterator(); i.hasNext(); ) {
+ for (Iterator i = number2version.keySet().iterator(); i.hasNext();) {
Version version = (Version) number2version.get(i.next());
this.versions[number] = version;
number++;
}
-
+
if (checkedIn) {
this.revision = history.getLatestRevision().getNumber();
}
@@ -185,10 +182,10 @@
String string = number + " " + encodeVersion(workflow, version);
addToMetaData(string);
-
+
WorkflowEventDescriptor descriptor = new WorkflowEventDescriptor(version);
- RepositoryEvent event = RepositoryEventFactory.createEvent(
- this.manager, getDocument(), getLogger(), descriptor);
+ RepositoryEvent event = RepositoryEventFactory.createEvent(this.manager, getDocument(),
+ getLogger(), descriptor);
getDocument().getRepositoryNode().getSession().enqueueEvent(event);
}
Modified: lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/workflow/WorkflowUtil.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/workflow/WorkflowUtil.java?rev=740840&r1=740839&r2=740840&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/workflow/WorkflowUtil.java (original)
+++ lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/workflow/WorkflowUtil.java Wed Feb 4 19:48:11 2009
@@ -17,7 +17,6 @@
*/
package org.apache.lenya.cms.workflow;
-import org.apache.avalon.framework.logger.Logger;
import org.apache.avalon.framework.service.ServiceException;
import org.apache.avalon.framework.service.ServiceManager;
import org.apache.commons.logging.Log;
@@ -40,18 +39,17 @@
* Invokes a workflow event on a document. This is the same as
* <code>invoke(Document, String, true)</code>.
* @param manager The service manager.
- * @param session The repository session.
* @param logger The logger.
* @param document The document.
* @param event The name of the event.
* @throws WorkflowException if the event could not be invoked in the current situation.
*/
- public static void invoke(ServiceManager manager, Session session, Log logger,
- Document document, String event) throws WorkflowException {
+ public static void invoke(ServiceManager manager, Log logger, Document document, String event)
+ throws WorkflowException {
WorkflowManager wfManager = null;
try {
wfManager = (WorkflowManager) manager.lookup(WorkflowManager.ROLE);
- Workflowable workflowable = getWorkflowable(manager, session, logger, document);
+ Workflowable workflowable = getWorkflowable(manager, logger, document);
wfManager.invoke(workflowable, event);
} catch (ServiceException e) {
throw new WorkflowException(e);
@@ -66,7 +64,6 @@
/**
* Invokes a workflow event on a document.
* @param manager The service manager.
- * @param session The repository session.
* @param logger The logger.
* @param document The document.
* @param event The name of the event.
@@ -75,12 +72,12 @@
* set to <code>false</code>, non-supporting documents are ignored.
* @throws WorkflowException if the event could not be invoked in the current situation.
*/
- public static void invoke(ServiceManager manager, Session session, Log logger,
- Document document, String event, boolean force) throws WorkflowException {
+ public static void invoke(ServiceManager manager, Log logger, Document document, String event,
+ boolean force) throws WorkflowException {
WorkflowManager wfManager = null;
try {
wfManager = (WorkflowManager) manager.lookup(WorkflowManager.ROLE);
- Workflowable workflowable = getWorkflowable(manager, session, logger, document);
+ Workflowable workflowable = getWorkflowable(manager, logger, document);
wfManager.invoke(workflowable, event, force);
} catch (ServiceException e) {
throw new WorkflowException(e);
@@ -95,28 +92,24 @@
/**
* Invokes a workflow event on a document set.
* @param manager The service manager.
- * @param session The repository session.
* @param logger The logger.
* @param documentSet The document.
* @param event The event.
* @param force If this is set to <code>true</code>, the execution is forced, which means an
* exception is thrown if a document in the set does not support the event. If set to
* <code>false</code>, non-supporting documents are ignored.
- * @throws WorkflowException if <code>force</code> is set to <code>true</code> and a
- * document does not support the workflow event.
+ * @throws WorkflowException if <code>force</code> is set to <code>true</code> and a document
+ * does not support the workflow event.
*/
- public static void invoke(ServiceManager manager, Session session, Logger logger,
- DocumentSet documentSet, String event, boolean force) throws WorkflowException {
+ public static void invoke(ServiceManager manager, Log logger, DocumentSet documentSet,
+ String event, boolean force) throws WorkflowException {
WorkflowManager wfManager = null;
try {
wfManager = (WorkflowManager) manager.lookup(WorkflowManager.ROLE);
Document[] documents = documentSet.getDocuments();
for (int i = 0; i < documents.length; i++) {
- Workflowable workflowable = new DocumentWorkflowable(manager,
- session,
- documents[i],
- logger);
+ Workflowable workflowable = new DocumentWorkflowable(manager, documents[i], logger);
wfManager.invoke(workflowable, event, force);
}
@@ -133,19 +126,18 @@
/**
* Checks if an event can be invoked on a document.
* @param manager The service manager.
- * @param session The repository session.
* @param logger The logger.
* @param document The document.
* @param event The event.
* @return A boolean value.
* @throws WorkflowException
*/
- public static boolean canInvoke(ServiceManager manager, Session session, Logger logger,
- Document document, String event) throws WorkflowException {
+ public static boolean canInvoke(ServiceManager manager, Log logger, Document document,
+ String event) throws WorkflowException {
WorkflowManager wfManager = null;
try {
wfManager = (WorkflowManager) manager.lookup(WorkflowManager.ROLE);
- Workflowable workflowable = new DocumentWorkflowable(manager, session, document, logger);
+ Workflowable workflowable = new DocumentWorkflowable(manager, document, logger);
return wfManager.canInvoke(workflowable, event);
} catch (ServiceException e) {
throw new WorkflowException(e);
@@ -167,7 +159,7 @@
* @return if an error occurs.
* @throws WorkflowException
*/
- public static boolean canInvoke(ServiceManager manager, Session session, Logger logger,
+ public static boolean canInvoke(ServiceManager manager, Session session, Log logger,
DocumentSet documents, String event) throws WorkflowException {
WorkflowManager wfManager = null;
try {
@@ -176,9 +168,7 @@
boolean canInvoke = true;
Document[] documentArray = documents.getDocuments();
for (int i = 0; i < documentArray.length; i++) {
- Workflowable workflowable = new DocumentWorkflowable(manager,
- session,
- documentArray[i],
+ Workflowable workflowable = new DocumentWorkflowable(manager, documentArray[i],
logger);
canInvoke = canInvoke && wfManager.canInvoke(workflowable, event);
}
@@ -202,12 +192,12 @@
* @return A boolean value.
* @throws WorkflowException if an error occurs.
*/
- public static boolean hasWorkflow(ServiceManager manager, Session session, Logger logger,
- Document document) throws WorkflowException {
+ public static boolean hasWorkflow(ServiceManager manager, Log logger, Document document)
+ throws WorkflowException {
WorkflowManager wfManager = null;
try {
wfManager = (WorkflowManager) manager.lookup(WorkflowManager.ROLE);
- Workflowable workflowable = new DocumentWorkflowable(manager, session, document, logger);
+ Workflowable workflowable = new DocumentWorkflowable(manager, document, logger);
return wfManager.hasWorkflow(workflowable);
} catch (ServiceException e) {
throw new WorkflowException(e);
@@ -221,18 +211,17 @@
/**
* Returns the workflow schema of a document.
* @param manager The service manager.
- * @param session The repository session.
* @param logger The logger.
* @param document The document.
* @return A workflow schema.
* @throws WorkflowException if an error occurs.
*/
- public static Workflow getWorkflowSchema(ServiceManager manager, Session session,
- Log logger, Document document) throws WorkflowException {
+ public static Workflow getWorkflowSchema(ServiceManager manager, Log logger, Document document)
+ throws WorkflowException {
WorkflowManager wfManager = null;
try {
wfManager = (WorkflowManager) manager.lookup(WorkflowManager.ROLE);
- Workflowable workflowable = getWorkflowable(manager, session, logger, document);
+ Workflowable workflowable = getWorkflowable(manager, logger, document);
if (wfManager.hasWorkflow(workflowable)) {
return wfManager.getWorkflowSchema(workflowable);
} else {
@@ -250,14 +239,12 @@
/**
* Returns a workflowable for a document.
* @param manager The service manager.
- * @param session The session.
* @param logger The logger.
* @param document The document.
* @return A workflowable.
*/
- public static Workflowable getWorkflowable(ServiceManager manager, Session session,
- Log logger, Document document) {
- Workflowable workflowable = new DocumentWorkflowable(manager, session, document, logger);
+ public static Workflowable getWorkflowable(ServiceManager manager, Log logger, Document document) {
+ Workflowable workflowable = new DocumentWorkflowable(manager, document, logger);
return workflowable;
}
Modified: lenya/trunk/org.apache.lenya.core.linking/pom.xml
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.linking/pom.xml?rev=740840&r1=740839&r2=740840&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.linking/pom.xml (original)
+++ lenya/trunk/org.apache.lenya.core.linking/pom.xml Wed Feb 4 19:48:11 2009
@@ -14,6 +14,11 @@
<name>Apache Lenya Core Linking</name>
<dependencies>
<dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
<groupId>org.apache.avalon.framework</groupId>
<artifactId>avalon-framework-api</artifactId>
</dependency>
Modified: lenya/trunk/org.apache.lenya.core.usecase/pom.xml
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.usecase/pom.xml?rev=740840&r1=740839&r2=740840&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.usecase/pom.xml (original)
+++ lenya/trunk/org.apache.lenya.core.usecase/pom.xml Wed Feb 4 19:48:11 2009
@@ -17,6 +17,8 @@
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
+ <version>2.4</version>
+ <scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.lenya</groupId>
@@ -32,6 +34,11 @@
</dependency>
<dependency>
<groupId>org.apache.cocoon</groupId>
+ <artifactId>cocoon-sitemap-impl</artifactId>
+ <version>1.1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.cocoon</groupId>
<artifactId>cocoon-cron-impl</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
Modified: lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/usecase/impl/UsecaseSelector.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/usecase/impl/UsecaseSelector.java?rev=740840&r1=740839&r2=740840&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/usecase/impl/UsecaseSelector.java (original)
+++ lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/usecase/impl/UsecaseSelector.java Wed Feb 4 19:48:11 2009
@@ -22,23 +22,29 @@
import java.util.TreeSet;
import org.apache.avalon.framework.activity.Startable;
+import org.apache.avalon.framework.configuration.Configurable;
import org.apache.avalon.framework.configuration.Configuration;
import org.apache.avalon.framework.configuration.ConfigurationException;
import org.apache.avalon.framework.service.ServiceException;
import org.apache.avalon.framework.service.ServiceManager;
import org.apache.avalon.framework.service.Serviceable;
import org.apache.avalon.framework.thread.ThreadSafe;
-import org.apache.cocoon.components.ExtendedComponentSelector;
+import org.apache.cocoon.core.container.spring.avalon.AvalonServiceSelector;
import org.apache.lenya.cms.usecase.UsecaseResolver;
/**
* Usecase selector.
*/
-public class UsecaseSelector extends ExtendedComponentSelector implements ThreadSafe, Startable, Serviceable {
-
+public class UsecaseSelector extends AvalonServiceSelector implements ThreadSafe, Startable,
+ Serviceable, Configurable {
+
+ public UsecaseSelector(String role) {
+ super(role);
+ }
+
private SortedSet usecaseNames;
private ServiceManager manager;
-
+
/**
* @return The names of all registered usecases in alphabetical order.
*/
@@ -47,8 +53,6 @@
}
public void configure(Configuration config) throws ConfigurationException {
- super.configure(config);
-
this.usecaseNames = new TreeSet();
Configuration[] usecaseConfigs = config.getChildren("component-instance");
for (int i = 0; i < usecaseConfigs.length; i++) {
@@ -60,11 +64,10 @@
UsecaseResolver resolver = null;
try {
resolver = (UsecaseResolver) this.manager.lookup(UsecaseResolver.ROLE);
- for (Iterator i = this.usecaseNames.iterator(); i.hasNext(); ) {
+ for (Iterator i = this.usecaseNames.iterator(); i.hasNext();) {
resolver.register((String) i.next());
}
- }
- finally {
+ } finally {
if (resolver != null) {
this.manager.release(resolver);
}
Modified: lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/usecase/scheduling/impl/UsecaseCronJob.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/usecase/scheduling/impl/UsecaseCronJob.java?rev=740840&r1=740839&r2=740840&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/usecase/scheduling/impl/UsecaseCronJob.java (original)
+++ lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/usecase/scheduling/impl/UsecaseCronJob.java Wed Feb 4 19:48:11 2009
@@ -28,7 +28,6 @@
import org.apache.avalon.framework.parameters.Parameters;
import org.apache.avalon.framework.service.ServiceException;
import org.apache.avalon.framework.service.ServiceSelector;
-import org.apache.cocoon.components.CocoonComponentManager;
import org.apache.cocoon.components.ContextHelper;
import org.apache.cocoon.components.cron.ConfigurableCronJob;
import org.apache.cocoon.components.cron.ServiceableCronJob;
@@ -36,7 +35,7 @@
import org.apache.cocoon.environment.ObjectModelHelper;
import org.apache.cocoon.environment.Request;
import org.apache.cocoon.environment.Session;
-import org.apache.cocoon.environment.commandline.CommandLineRequest;
+import org.apache.cocoon.processing.ProcessInfoProvider;
import org.apache.lenya.ac.AccessControlException;
import org.apache.lenya.ac.AccessController;
import org.apache.lenya.ac.AccessControllerResolver;
@@ -72,6 +71,9 @@
private String sourceUrl;
private String userId;
private String machineIp;
+ private Context context;
+ private ProcessInfoProvider processInfoProvider;
+
private Map parameters = new HashMap();
@@ -128,9 +130,9 @@
* triggered the usecase.
*/
protected void setupOriginalRequest() {
- Environment env = CocoonComponentManager.getCurrentEnvironment();
- Request request = ContextHelper.getRequest(this.context);
+ Map objectModel = this.processInfoProvider.getObjectModel();
+ Request request = ObjectModelHelper.getRequest(objectModel);
Map attributes = new HashMap();
for (Enumeration e = request.getAttributeNames(); e.hasMoreElements();) {
String key = (String) e.nextElement();
@@ -142,14 +144,14 @@
String key = (String) e.nextElement();
requestParameters.put(key, request.getParameter(key));
}
-
- Map objectModel = ContextHelper.getObjectModel(this.context);
+/*
objectModel.put(ObjectModelHelper.REQUEST_OBJECT, new CommandLineRequest(env,
request.getContextPath(),
request.getServletPath(),
getSourceURL(),
attributes,
requestParameters));
+ */
}
/**
@@ -224,13 +226,15 @@
this.machineIp = (String) objects.get(MACHINE_IP);
}
- private Context context;
-
/**
* @see org.apache.avalon.framework.context.Contextualizable#contextualize(org.apache.avalon.framework.context.Context)
*/
public void contextualize(Context context) throws ContextException {
this.context = context;
}
+
+ public void setProcessInfoProvider(ProcessInfoProvider provider) {
+ this.processInfoProvider = provider;
+ }
}
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@lenya.apache.org
For additional commands, e-mail: commits-help@lenya.apache.org