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 2006/07/06 17:43:19 UTC
svn commit: r419589 -
/lenya/trunk/src/modules/webdav/java/src/org/apache/lenya/cms/usecases/webdav/Put.java
Author: andreas
Date: Thu Jul 6 08:43:18 2006
New Revision: 419589
URL: http://svn.apache.org/viewvc?rev=419589&view=rev
Log:
WebDAV Put: enabled validation
Modified:
lenya/trunk/src/modules/webdav/java/src/org/apache/lenya/cms/usecases/webdav/Put.java
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?rev=419589&r1=419588&r2=419589&view=diff
==============================================================================
--- 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 Thu Jul 6 08:43:18 2006
@@ -25,7 +25,6 @@
import org.apache.avalon.framework.configuration.ConfigurationException;
import org.apache.avalon.framework.service.ServiceException;
import org.apache.avalon.framework.service.ServiceSelector;
-import org.apache.excalibur.source.Source;
import org.apache.excalibur.source.SourceResolver;
import org.apache.lenya.cms.cocoon.source.SourceUtil;
import org.apache.lenya.cms.metadata.dublincore.DublinCore;
@@ -43,8 +42,10 @@
import org.apache.lenya.cms.site.SiteUtil;
import org.apache.lenya.cms.site.usecases.CreateDocument;
import org.apache.lenya.cms.usecase.UsecaseException;
+import org.apache.lenya.cms.usecase.xml.UsecaseErrorHandler;
import org.apache.lenya.workflow.WorkflowManager;
import org.apache.lenya.xml.Schema;
+import org.apache.lenya.xml.ValidationUtil;
/**
* Supports WebDAV PUT.
@@ -128,15 +129,16 @@
}
String sourceUri = "cocoon:/request/PUT/" + extension;
+ org.w3c.dom.Document xmlDoc = SourceUtil.readDOM(sourceUri, manager);
// validate if a schema is provided and we are not using any fallback
if (doc.getResourceType().getSchema() != null & fallback==false){
- validateDoc(resolver, sourceUri, doc);
+ validateDoc(resolver, xmlDoc, doc);
}
if (!hasErrors()) {
try {
- SourceUtil.copy(resolver, sourceUri, doc.getSourceURI(), true);
+ SourceUtil.writeDOM(xmlDoc, doc.getSourceURI(), this.manager);
} catch (Exception e) {
addErrorMessage("invalid source xml. Full exception: "+ e);
}
@@ -171,19 +173,10 @@
return resourceType;
}
- private void validateDoc(SourceResolver resolver, String uploadSourceUri, Document doc) throws Exception {
- Source uploadSource = resolver.resolveURI(uploadSourceUri);
- if (!uploadSource.exists()) {
- throw new IllegalArgumentException("The upload file [" + uploadSource.getURI()
- + "] does not exist.");
- }
-
+ private void validateDoc(SourceResolver resolver, org.w3c.dom.Document xmlDoc, Document doc) throws Exception {
ResourceType resourceType = doc.getResourceType();
Schema schema = resourceType.getSchema();
-
- // FIXME not working yet, dunno why
- //org.w3c.dom.Document xmlDoc = DocumentHelper.readDocument(uploadSource.getInputStream());
- //ValidationUtil.validate(this.manager, xmlDoc, schema, new UsecaseErrorHandler(this));
+ ValidationUtil.validate(this.manager, xmlDoc, schema, new UsecaseErrorHandler(this));
}
/**
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@lenya.apache.org
For additional commands, e-mail: commits-help@lenya.apache.org