diff --git a/src/xproc/recursive-directory-list.xpl b/src/xproc/recursive-directory-list.xpl
new file mode 100644
index 0000000..b0859f2
--- /dev/null
+++ b/src/xproc/recursive-directory-list.xpl
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+
+
+ http://xproc.org/library/recursive-directory-list.xpl
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/xproc/trove-proxy-harvester.xpl b/src/xproc/trove-proxy-harvester.xpl
index 18358ac..198f1f6 100644
--- a/src/xproc/trove-proxy-harvester.xpl
+++ b/src/xproc/trove-proxy-harvester.xpl
@@ -5,9 +5,12 @@
xmlns:z="https://github.com/Conal-Tuohy/XProc-Z"
xmlns:t="https://github.com/Conal-Tuohy/TroveProxy"
xmlns:file="http://exproc.org/proposed/steps/file"
+ xmlns:l="http://xproc.org/library"
xmlns:init-parameters="tag:conaltuohy.com,2015:webapp-init-parameters">
+
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
+
-
+
+
-
+
-
+
-
-
-
+
-
@@ -162,9 +161,6 @@
-
@@ -226,20 +222,27 @@
-
+
-
+
-
+
-
+
+
+
+
+
+
+
+
@@ -252,9 +255,10 @@
status="starting"
started="{current-dateTime()}"
last-updated="{current-dateTime()}"
- requests="0"
+ requests-made="0"
>
-
+
+
@@ -270,7 +274,7 @@
-
+
@@ -307,8 +311,17 @@
-
+
+
+
+
+
+
+ The input port provides the http request that caused this harvest to run a single iteration;
+ if this iteration has not completed the harvest then the request will be returned to XProc-Z's,
+ bounce off the "trampoline" and cause the pipeline to run again.
+
The output port produces a sequence of two documents:
@@ -318,11 +331,9 @@
Expected input:
-
+
-
-
@@ -336,27 +347,15 @@
'created: ', /harvest/@started, ', ',
'last updated: ', /harvest/@last-updated, ', ',
'status: ', /harvest/@status, ', ',
- 'requests issued: ', /harvest/@requests
+ 'requests issued: ', /harvest/@requests-made
)
"/>
-
-
-
-
-
-
- harvest was already complete
-
-
-
-
-
-
-
-
+
+
+
@@ -370,7 +369,7 @@
-
+
@@ -405,14 +404,64 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Zip file created
+
+
+
+
+
+
+
+
+
+
+
+ harvest was already complete
+
+
+
+
+
-
+
@@ -425,7 +474,7 @@
"/>
@@ -452,7 +501,7 @@
remove the downloaded URL,
add any new 'next' or 'section' links from the downloaded resource
-->
-
+
-
+
-
+
@@ -479,13 +528,13 @@
-
-
+
+
-
+
-
+
@@ -495,14 +544,14 @@
-
-
+
+
-
+
@@ -557,7 +606,7 @@
-
+
+
+
+ The output port produces a sequence of two documents:
+ a which is notionally returned to the client, though XProc-Z will discard it unread
+ a to be handled internally by XProc-Z to actually continue the harvest
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/xproc/zip.xpl b/src/xproc/zip.xpl
new file mode 100644
index 0000000..5e85cdb
--- /dev/null
+++ b/src/xproc/zip.xpl
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/xslt/harvester/convert-directory-list-to-zip-manifest.xsl b/src/xslt/harvester/convert-directory-list-to-zip-manifest.xsl
new file mode 100644
index 0000000..01e36af
--- /dev/null
+++ b/src/xslt/harvester/convert-directory-list-to-zip-manifest.xsl
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/xslt/harvester/convert-zip-entry-to-http-request.xsl b/src/xslt/harvester/convert-zip-entry-to-http-request.xsl
new file mode 100644
index 0000000..9b7ca70
--- /dev/null
+++ b/src/xslt/harvester/convert-zip-entry-to-http-request.xsl
@@ -0,0 +1,9 @@
+
+
+
+
+
+