forrest-svn mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From rgard...@apache.org
Subject svn commit: r481112 - in /forrest/trunk/whiteboard/forrest2/core: ./ .settings/ src/core/org/apache/forrest/core/ src/core/org/apache/forrest/core/document/ src/core/org/apache/forrest/core/plugin/ src/examples/helloWorld/ src/test/org/apache/forrest/t...
Date Thu, 30 Nov 2006 23:57:58 GMT
Author: rgardler
Date: Thu Nov 30 15:57:58 2006
New Revision: 481112

URL: http://svn.apache.org/viewvc?view=rev&rev=481112
Log:
Add processing of optional documents

Added:
    forrest/trunk/whiteboard/forrest2/core/src/core/org/apache/forrest/core/document/InternalErrorDocument.java
  (with props)
Modified:
    forrest/trunk/whiteboard/forrest2/core/.classpath
    forrest/trunk/whiteboard/forrest2/core/.settings/org.jayasoft.ivyde.eclipse.prefs
    forrest/trunk/whiteboard/forrest2/core/src/core/org/apache/forrest/core/Controller.java
    forrest/trunk/whiteboard/forrest2/core/src/core/org/apache/forrest/core/plugin/BaseOutputPlugin.java
    forrest/trunk/whiteboard/forrest2/core/src/core/org/apache/forrest/core/plugin/IPlugin.java
    forrest/trunk/whiteboard/forrest2/core/src/core/org/apache/forrest/core/plugin/PassThroughInputPlugin.java
    forrest/trunk/whiteboard/forrest2/core/src/core/org/apache/forrest/core/plugin/XSLTInputPlugin.java
    forrest/trunk/whiteboard/forrest2/core/src/core/org/apache/forrest/core/plugin/XSLTOutputPlugin.java
    forrest/trunk/whiteboard/forrest2/core/src/examples/helloWorld/   (props changed)
    forrest/trunk/whiteboard/forrest2/core/src/test/org/apache/forrest/test/core/plugins/input/HelloWorldInputPlugin.java

Modified: forrest/trunk/whiteboard/forrest2/core/.classpath
URL: http://svn.apache.org/viewvc/forrest/trunk/whiteboard/forrest2/core/.classpath?view=diff&rev=481112&r1=481111&r2=481112
==============================================================================
--- forrest/trunk/whiteboard/forrest2/core/.classpath (original)
+++ forrest/trunk/whiteboard/forrest2/core/.classpath Thu Nov 30 15:57:58 2006
@@ -8,6 +8,5 @@
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
 	<classpathentry kind="con" path="org.jayasoft.ivyde.eclipse.cpcontainer.IVYDE_CONTAINER/ivy.xml/*"/>
-	<classpathentry combineaccessrules="false" kind="src" path="/org.saafe.catalogue"/>
 	<classpathentry kind="output" path="build/classes"/>
 </classpath>

Modified: forrest/trunk/whiteboard/forrest2/core/.settings/org.jayasoft.ivyde.eclipse.prefs
URL: http://svn.apache.org/viewvc/forrest/trunk/whiteboard/forrest2/core/.settings/org.jayasoft.ivyde.eclipse.prefs?view=diff&rev=481112&r1=481111&r2=481112
==============================================================================
--- forrest/trunk/whiteboard/forrest2/core/.settings/org.jayasoft.ivyde.eclipse.prefs (original)
+++ forrest/trunk/whiteboard/forrest2/core/.settings/org.jayasoft.ivyde.eclipse.prefs Thu
Nov 30 15:57:58 2006
@@ -1,5 +1,5 @@
-#Sat Nov 18 00:17:17 GMT 2006
+#Fri Nov 24 22:25:36 GMT 2006
 acceptedTypes=[inherited]
 eclipse.preferences.version=1
-ivy_conf_path=file\:/D\:/openSource/forrest/whiteboard/forrest2/ivyconf.xml
+ivy_conf_path=file\:/D\:/openSource/forrest/whiteboard/forrest2/core/ivyconf.xml
 retreive.pattern=none

Modified: forrest/trunk/whiteboard/forrest2/core/src/core/org/apache/forrest/core/Controller.java
URL: http://svn.apache.org/viewvc/forrest/trunk/whiteboard/forrest2/core/src/core/org/apache/forrest/core/Controller.java?view=diff&rev=481112&r1=481111&r2=481112
==============================================================================
--- forrest/trunk/whiteboard/forrest2/core/src/core/org/apache/forrest/core/Controller.java
(original)
+++ forrest/trunk/whiteboard/forrest2/core/src/core/org/apache/forrest/core/Controller.java
Thu Nov 30 15:57:58 2006
@@ -32,6 +32,7 @@
 import org.apache.forrest.core.document.AggregatedSourceDocument;
 import org.apache.forrest.core.document.DefaultOutputDocument;
 import org.apache.forrest.core.document.InternalDocument;
+import org.apache.forrest.core.document.InternalErrorDocument;
 import org.apache.forrest.core.exception.LocationmapException;
 import org.apache.forrest.core.exception.ProcessingException;
 import org.apache.forrest.core.locationMap.Location;
@@ -156,7 +157,7 @@
 				.loadAllSourceDocuments(requestURI, sourceLocs);
 
 		final InternalDocument internalDoc = this
-				.processInputPlugins(sourceDocs);
+				.processInputPlugins(requestURI, sourceDocs);
 		this.internalDocsCache.put(requestURI, internalDoc);
 
 		final AbstractOutputDocument output = this
@@ -168,23 +169,28 @@
 	/**
 	 * Process each of the documents supplied with the appropriate input plugins
 	 * to get a document in our internal format.
+	 * @param requestURI 
 	 * 
 	 * @param sourceDocuments
 	 * @throws IOException
 	 * @throws ProcessingException
 	 */
 	private InternalDocument processInputPlugins(
-			final List<AbstractSourceDocument> sourceDocuments)
+			URI requestURI, final List<AbstractSourceDocument> sourceDocuments)
 			throws IOException, ProcessingException {
 		InternalDocument result = null;
-		for (int i = 0; i < sourceDocuments.size(); i++) {
-			final AbstractSourceDocument doc = sourceDocuments.get(i);
-			if (doc == null) {
-				throw new ProcessingException(
-						"No source document is available.");
+		if (sourceDocuments.size() == 0) {
+			result = new InternalErrorDocument(requestURI, "Unable to load source document");
+		} else {
+			for (int i = 0; i < sourceDocuments.size(); i++) {
+				final AbstractSourceDocument doc = sourceDocuments.get(i);
+				if (doc == null) {
+					throw new ProcessingException(
+							"No source document is available.");
+				}
+				AbstractInputPlugin plugin = getInputPlugin(doc);
+				result = (InternalDocument) plugin.process(this, doc);
 			}
-			AbstractInputPlugin plugin = getInputPlugin(doc);
-			result = (InternalDocument) plugin.process(doc);
 		}
 		return result;
 	}
@@ -217,7 +223,7 @@
 			throws ProcessingException, IOException {
 		final InternalDocument intDoc = this.getInternalDocument(requestURI);
 		BaseOutputPlugin plugin = getOutputPlugin(requestURI);
-		return (AbstractOutputDocument) plugin.process(intDoc);
+		return (AbstractOutputDocument) plugin.process(this, intDoc);
 	}
 
 	/*
@@ -277,8 +283,8 @@
 				IReader reader = getReader(uri);
 				doc = reader.read(this, requestURI, location, uri);
 				if (doc != null) {
-				  addToSourceDocCache(requestURI, doc);
-				  break;
+					addToSourceDocCache(requestURI, doc);
+					break;
 				}
 			}
 		}
@@ -350,7 +356,7 @@
 				loc = sourceLocs.next();
 				if (sourceExists(requestURI, loc)) {
 					result.add(loc);
-					log.debug("Found valid location: " + loc.toString());
+					log.debug("Found valid location");
 				} else {
 					if (loc.isRequired()) {
 						isValid = false;
@@ -463,8 +469,8 @@
 				content.append("</error>");
 			}
 
-			final DefaultOutputDocument output = new DefaultOutputDocument(requestURI,
-					content.toString());
+			final DefaultOutputDocument output = new DefaultOutputDocument(
+					requestURI, content.toString());
 			return output;
 		} else if (requestURI.getPath().endsWith(this.internalURLExtension)) {
 			final InternalDocument doc = this.getInternalDocument(requestURI);
@@ -476,8 +482,8 @@
 				content.append(requestURI);
 				content.append("</error>");
 			}
-			final DefaultOutputDocument output = new DefaultOutputDocument(requestURI,
-					content.toString());
+			final DefaultOutputDocument output = new DefaultOutputDocument(
+					requestURI, content.toString());
 			return output;
 		}
 

Added: forrest/trunk/whiteboard/forrest2/core/src/core/org/apache/forrest/core/document/InternalErrorDocument.java
URL: http://svn.apache.org/viewvc/forrest/trunk/whiteboard/forrest2/core/src/core/org/apache/forrest/core/document/InternalErrorDocument.java?view=auto&rev=481112
==============================================================================
--- forrest/trunk/whiteboard/forrest2/core/src/core/org/apache/forrest/core/document/InternalErrorDocument.java
(added)
+++ forrest/trunk/whiteboard/forrest2/core/src/core/org/apache/forrest/core/document/InternalErrorDocument.java
Thu Nov 30 15:57:58 2006
@@ -0,0 +1,29 @@
+package org.apache.forrest.core.document;
+
+import java.io.IOException;
+import java.net.URI;
+
+public class InternalErrorDocument extends InternalDocument {
+
+	public InternalErrorDocument(URI requestURI, String message) {
+		super (requestURI, message);
+	}
+
+	@Override
+	public String getContentAsString() throws IOException {
+		StringBuffer sb = new StringBuffer("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
+		sb.append("<html xmlns=\"http://www.w3.org/2002/06/xhtml2\" xml:lang=\"en\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"
xsi:schemaLocation=\"http://www.w3.org/2002/06/xhtml2/ http://www.w3.org/MarkUp/SCHEMA/xhtml2.xsd\">");
+		sb.append("<head><title>Internal Forrest Error</title></head>");
+		sb.append("<body>");
+		sb.append("<h>");
+		sb.append("Error processing request for " + getRequestURI());
+		sb.append("</h>");
+		sb.append("<p>");
+		sb.append(super.getContentAsString());
+		sb.append("</p>");
+		sb.append("</body>");
+		sb.append("</html>");
+		return sb.toString();
+	}
+
+}

Propchange: forrest/trunk/whiteboard/forrest2/core/src/core/org/apache/forrest/core/document/InternalErrorDocument.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: forrest/trunk/whiteboard/forrest2/core/src/core/org/apache/forrest/core/plugin/BaseOutputPlugin.java
URL: http://svn.apache.org/viewvc/forrest/trunk/whiteboard/forrest2/core/src/core/org/apache/forrest/core/plugin/BaseOutputPlugin.java?view=diff&rev=481112&r1=481111&r2=481112
==============================================================================
--- forrest/trunk/whiteboard/forrest2/core/src/core/org/apache/forrest/core/plugin/BaseOutputPlugin.java
(original)
+++ forrest/trunk/whiteboard/forrest2/core/src/core/org/apache/forrest/core/plugin/BaseOutputPlugin.java
Thu Nov 30 15:57:58 2006
@@ -21,8 +21,10 @@
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
+import org.apache.forrest.core.Controller;
 import org.apache.forrest.core.document.DefaultOutputDocument;
 import org.apache.forrest.core.document.IDocument;
+import org.apache.forrest.core.exception.ProcessingException;
 
 /**
  * A base output plugin from which all other output plugins should be etended.
@@ -67,7 +69,7 @@
 		return matcher.find();
 	}
 
-	public IDocument process(final IDocument doc) throws IOException {
+	public IDocument process(final Controller controller, final IDocument doc) throws IOException,
ProcessingException {
 		return new DefaultOutputDocument(doc.getRequestURI(), doc.getContentAsString());
 	}
 

Modified: forrest/trunk/whiteboard/forrest2/core/src/core/org/apache/forrest/core/plugin/IPlugin.java
URL: http://svn.apache.org/viewvc/forrest/trunk/whiteboard/forrest2/core/src/core/org/apache/forrest/core/plugin/IPlugin.java?view=diff&rev=481112&r1=481111&r2=481112
==============================================================================
--- forrest/trunk/whiteboard/forrest2/core/src/core/org/apache/forrest/core/plugin/IPlugin.java
(original)
+++ forrest/trunk/whiteboard/forrest2/core/src/core/org/apache/forrest/core/plugin/IPlugin.java
Thu Nov 30 15:57:58 2006
@@ -18,7 +18,9 @@
 
 import java.io.IOException;
 
+import org.apache.forrest.core.Controller;
 import org.apache.forrest.core.document.IDocument;
+import org.apache.forrest.core.exception.ProcessingException;
 
 public interface IPlugin {
 
@@ -29,6 +31,7 @@
 	 * @param doc
 	 * @return
 	 * @throws IOException
+	 * @throws ProcessingException 
 	 */
-	public IDocument process(IDocument doc) throws IOException;
+	public IDocument process(Controller controller, IDocument doc) throws IOException, ProcessingException;
 }

Modified: forrest/trunk/whiteboard/forrest2/core/src/core/org/apache/forrest/core/plugin/PassThroughInputPlugin.java
URL: http://svn.apache.org/viewvc/forrest/trunk/whiteboard/forrest2/core/src/core/org/apache/forrest/core/plugin/PassThroughInputPlugin.java?view=diff&rev=481112&r1=481111&r2=481112
==============================================================================
--- forrest/trunk/whiteboard/forrest2/core/src/core/org/apache/forrest/core/plugin/PassThroughInputPlugin.java
(original)
+++ forrest/trunk/whiteboard/forrest2/core/src/core/org/apache/forrest/core/plugin/PassThroughInputPlugin.java
Thu Nov 30 15:57:58 2006
@@ -18,6 +18,7 @@
 
 import java.io.IOException;
 
+import org.apache.forrest.core.Controller;
 import org.apache.forrest.core.document.IDocument;
 import org.apache.forrest.core.document.InternalDocument;
 
@@ -29,7 +30,7 @@
  */
 public class PassThroughInputPlugin extends AbstractInputPlugin {
 
-	public IDocument process(final IDocument doc) throws IOException {
+	public IDocument process(final Controller controller, final IDocument doc) throws IOException
{
 		return new InternalDocument(doc.getRequestURI(), doc.getContentAsString());
 	}
 

Modified: forrest/trunk/whiteboard/forrest2/core/src/core/org/apache/forrest/core/plugin/XSLTInputPlugin.java
URL: http://svn.apache.org/viewvc/forrest/trunk/whiteboard/forrest2/core/src/core/org/apache/forrest/core/plugin/XSLTInputPlugin.java?view=diff&rev=481112&r1=481111&r2=481112
==============================================================================
--- forrest/trunk/whiteboard/forrest2/core/src/core/org/apache/forrest/core/plugin/XSLTInputPlugin.java
(original)
+++ forrest/trunk/whiteboard/forrest2/core/src/core/org/apache/forrest/core/plugin/XSLTInputPlugin.java
Thu Nov 30 15:57:58 2006
@@ -32,6 +32,7 @@
 import javax.xml.transform.stream.StreamResult;
 import javax.xml.transform.stream.StreamSource;
 
+import org.apache.forrest.core.Controller;
 import org.apache.forrest.core.document.IDocument;
 import org.apache.forrest.core.document.InternalDocument;
 
@@ -67,7 +68,7 @@
 		}
 	}
 
-	public IDocument process(final IDocument doc) throws IOException {
+	public IDocument process(final Controller controller, final IDocument doc) throws IOException
{
 		final TransformerFactory tFactory = TransformerFactory.newInstance();
 
 		try {

Modified: forrest/trunk/whiteboard/forrest2/core/src/core/org/apache/forrest/core/plugin/XSLTOutputPlugin.java
URL: http://svn.apache.org/viewvc/forrest/trunk/whiteboard/forrest2/core/src/core/org/apache/forrest/core/plugin/XSLTOutputPlugin.java?view=diff&rev=481112&r1=481111&r2=481112
==============================================================================
--- forrest/trunk/whiteboard/forrest2/core/src/core/org/apache/forrest/core/plugin/XSLTOutputPlugin.java
(original)
+++ forrest/trunk/whiteboard/forrest2/core/src/core/org/apache/forrest/core/plugin/XSLTOutputPlugin.java
Thu Nov 30 15:57:58 2006
@@ -30,6 +30,7 @@
 import javax.xml.transform.stream.StreamResult;
 import javax.xml.transform.stream.StreamSource;
 
+import org.apache.forrest.core.Controller;
 import org.apache.forrest.core.document.DefaultOutputDocument;
 import org.apache.forrest.core.document.IDocument;
 import org.apache.log4j.Logger;
@@ -54,7 +55,7 @@
 	}
 
 	@Override
-	public IDocument process(final IDocument doc) throws IOException {
+	public IDocument process(final Controller controller, final IDocument doc) throws IOException
{
 		final TransformerFactory tFactory = TransformerFactory.newInstance();
 		log.debug("Processing document with output stylesheet from " + this.getXsltPath());
 		try {

Propchange: forrest/trunk/whiteboard/forrest2/core/src/examples/helloWorld/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Thu Nov 30 15:57:58 2006
@@ -0,0 +1,2 @@
+
+build

Modified: forrest/trunk/whiteboard/forrest2/core/src/test/org/apache/forrest/test/core/plugins/input/HelloWorldInputPlugin.java
URL: http://svn.apache.org/viewvc/forrest/trunk/whiteboard/forrest2/core/src/test/org/apache/forrest/test/core/plugins/input/HelloWorldInputPlugin.java?view=diff&rev=481112&r1=481111&r2=481112
==============================================================================
--- forrest/trunk/whiteboard/forrest2/core/src/test/org/apache/forrest/test/core/plugins/input/HelloWorldInputPlugin.java
(original)
+++ forrest/trunk/whiteboard/forrest2/core/src/test/org/apache/forrest/test/core/plugins/input/HelloWorldInputPlugin.java
Thu Nov 30 15:57:58 2006
@@ -16,6 +16,7 @@
  */
 package org.apache.forrest.test.core.plugins.input;
 
+import org.apache.forrest.core.Controller;
 import org.apache.forrest.core.document.IDocument;
 import org.apache.forrest.core.document.InternalDocument;
 import org.apache.forrest.core.plugin.AbstractInputPlugin;
@@ -29,7 +30,7 @@
 
 	public static final String CONTENT = "<html xmlns=\"http://www.w3.org/2002/06/xhtml2\"
xml:lang=\"en\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.w3.org/2002/06/xhtml2/
http://www.w3.org/MarkUp/SCHEMA/xhtml2.xsd\">  <head>    <title>XHTML 2 Simple
Sample Page</title>   </head>  <body>  <h>Hello World</h>  </body></html>";
 
-	public IDocument process(final IDocument doc) {
+	public IDocument process(final Controller controller, final IDocument doc) {
 		return new InternalDocument(doc.getRequestURI(), CONTENT);
 	}
 }



Mime
View raw message