oodt-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mattm...@apache.org
Subject [6/6] oodt git commit: - add in xmlquery and product handler code necessary to build this app
Date Sun, 16 Jul 2017 18:33:35 GMT
- add in xmlquery and product handler code necessary to build this app

Project: http://git-wip-us.apache.org/repos/asf/oodt/repo
Commit: http://git-wip-us.apache.org/repos/asf/oodt/commit/4066b63b
Tree: http://git-wip-us.apache.org/repos/asf/oodt/tree/4066b63b
Diff: http://git-wip-us.apache.org/repos/asf/oodt/diff/4066b63b

Branch: refs/heads/master
Commit: 4066b63bc1b79db56c7468a6ed9edbbe22b78c90
Parents: f1e5bed
Author: Chris Mattmann <mattmann@apache.org>
Authored: Sun Jul 16 11:33:30 2017 -0700
Committer: Chris Mattmann <mattmann@apache.org>
Committed: Sun Jul 16 11:33:30 2017 -0700

----------------------------------------------------------------------
 .../fmprod/src/main/conf/displayableTypes.xml   |  50 +
 webapp/fmprod/src/main/conf/mime.properties     | 407 ++++++++
 webapp/fmprod/src/main/conf/ofsn-ps.xml         | 201 ++++
 webapp/fmprod/src/main/dtd/query.dtd            | 100 ++
 .../oodt/product/HttpRedirectException.java     |  40 +
 .../oodt/product/LargeProductQueryHandler.java  |  57 ++
 .../apache/oodt/product/ProductException.java   |  62 ++
 .../org/apache/oodt/product/QueryHandler.java   |  38 +
 .../java/org/apache/oodt/product/Retriever.java |  46 +
 .../handlers/ofsn/AbstractCrawlLister.java      | 116 +++
 .../ofsn/DirListNonRecursiveHandler.java        |  60 ++
 .../handlers/ofsn/DirListRecursiveHandler.java  |  63 ++
 .../ofsn/FileListNonRecursiveHandler.java       |  56 ++
 .../handlers/ofsn/FileListRecursiveHandler.java |  55 ++
 .../product/handlers/ofsn/MD5GetHandler.java    | 143 +++
 .../product/handlers/ofsn/OFSNFileHandler.java  | 255 +++++
 .../ofsn/OFSNFileHandlerConfiguration.java      | 131 +++
 .../OFSNFileHandlerConfigurationReader.java     |  93 ++
 .../product/handlers/ofsn/OFSNGetHandler.java   |  73 ++
 .../handlers/ofsn/OFSNHandlerConfig.java        | 121 +++
 .../product/handlers/ofsn/OFSNListHandler.java  |  61 ++
 .../handlers/ofsn/RawSizeListHandler.java       |  60 ++
 .../handlers/ofsn/SingleFileListHandler.java    |  64 ++
 .../handlers/ofsn/SingleZipFileListHandler.java |  83 ++
 .../handlers/ofsn/StdOFSNGetHandler.java        | 112 +++
 .../product/handlers/ofsn/URLGetHandler.java    | 252 +++++
 .../handlers/ofsn/metadata/OFSNMetKeys.java     |  41 +
 .../ofsn/metadata/OFSNXMLConfigMetKeys.java     |  55 ++
 .../handlers/ofsn/metadata/OFSNXMLMetKeys.java  |  43 +
 .../handlers/ofsn/metadata/OODTMetKeys.java     |  31 +
 .../handlers/ofsn/metadata/XMLQueryMetKeys.java |  32 +
 .../handlers/ofsn/util/OFSNObjectFactory.java   | 112 +++
 .../product/handlers/ofsn/util/OFSNUtils.java   | 197 ++++
 .../apache/oodt/xmlquery/ByteArrayCodec.java    |  63 ++
 .../xmlquery/ChunkedProductInputStream.java     | 215 ++++
 .../java/org/apache/oodt/xmlquery/Codec.java    |  85 ++
 .../org/apache/oodt/xmlquery/CodecFactory.java  |  60 ++
 .../oodt/xmlquery/CompressedObjectCodec.java    | 110 +++
 .../oodt/xmlquery/CompressedStringCodec.java    |  91 ++
 .../java/org/apache/oodt/xmlquery/Header.java   | 211 ++++
 .../org/apache/oodt/xmlquery/LargeResult.java   | 166 ++++
 .../org/apache/oodt/xmlquery/ObjectCodec.java   | 106 ++
 .../org/apache/oodt/xmlquery/QueryElement.java  | 148 +++
 .../apache/oodt/xmlquery/QueryException.java    |  37 +
 .../org/apache/oodt/xmlquery/QueryHeader.java   | 304 ++++++
 .../org/apache/oodt/xmlquery/QueryResult.java   | 151 +++
 .../java/org/apache/oodt/xmlquery/Result.java   | 447 +++++++++
 .../java/org/apache/oodt/xmlquery/Results.java  |  60 ++
 .../org/apache/oodt/xmlquery/Statistic.java     | 155 +++
 .../org/apache/oodt/xmlquery/StringCodec.java   |  51 +
 .../oodt/xmlquery/UnsupportedMimeTypeCodec.java |  44 +
 .../java/org/apache/oodt/xmlquery/XMLQuery.java | 981 +++++++++++++++++++
 .../xmlquery/activity/QueryConstructed.java     |  23 +
 .../oodt/xmlquery/activity/ResultsReceived.java |  23 +
 .../java/org/apache/oodt/xmlquery/package.html  |  26 +
 .../src/site/resources/images/delegation.png    | Bin 0 -> 59132 bytes
 .../src/site/resources/images/delegation.psd    | Bin 0 -> 277484 bytes
 .../src/site/resources/images/edm-query.jpg     | Bin 0 -> 57650 bytes
 .../src/site/resources/images/grid-product.jpg  | Bin 0 -> 55049 bytes
 .../src/site/resources/images/large-stack.png   | Bin 0 -> 41424 bytes
 .../src/site/resources/images/large-stack.psd   | Bin 0 -> 282874 bytes
 .../src/site/resources/images/results.png       | Bin 0 -> 53580 bytes
 .../src/site/resources/images/results.psd       | Bin 0 -> 275480 bytes
 .../src/site/resources/images/small-stack.png   | Bin 0 -> 12368 bytes
 .../src/site/resources/images/small-stack.psd   | Bin 0 -> 89725 bytes
 .../src/site/resources/images/xmlquery.png      | Bin 0 -> 85734 bytes
 .../src/site/resources/images/xmlquery.psd      | Bin 0 -> 352069 bytes
 webapp/fmprod/src/site/site.xml                 |  33 +
 webapp/fmprod/src/site/xdoc/disquery/index.xml  | 106 ++
 webapp/fmprod/src/site/xdoc/servlet/index.xml   | 640 ++++++++++++
 webapp/fmprod/src/site/xdoc/tutorial/index.xml  | 659 +++++++++++++
 webapp/fmprod/src/site/xdoc/tutorials/index.xml |  36 +
 .../fmprod/src/site/xdoc/tutorials/lh/index.xml | 718 ++++++++++++++
 .../fmprod/src/site/xdoc/tutorials/ps/index.xml | 481 +++++++++
 .../fmprod/src/site/xdoc/tutorials/qh/index.xml | 704 +++++++++++++
 .../apache/oodt/xmlquery/CodecFactoryTest.java  |  61 ++
 .../org/apache/oodt/xmlquery/CodecTest.java     |  77 ++
 .../xmlquery/CompressedObjectCodecTest.java     |  42 +
 .../xmlquery/CompressedStringCodecTest.java     |  37 +
 .../oodt/xmlquery/EmptyByteArrayCodecTest.java  |  51 +
 .../org/apache/oodt/xmlquery/HeaderTest.java    | 142 +++
 .../apache/oodt/xmlquery/ObjectCodecTest.java   |  42 +
 .../apache/oodt/xmlquery/QueryElementTest.java  |  93 ++
 .../org/apache/oodt/xmlquery/ResultTest.java    | 166 ++++
 .../apache/oodt/xmlquery/StringCodecTest.java   |  37 +
 .../org/apache/oodt/xmlquery/XMLQueryTest.java  | 225 +++++
 .../handlers/ofsn/util/OFSNUtilsTest.java       |  59 ++
 .../xmlquery/ChunkedProductInputStreamTest.java | 170 ++++
 .../apache/oodt/xmlquery/LargeResultTest.java   |  54 +
 89 files changed, 11500 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/oodt/blob/4066b63b/webapp/fmprod/src/main/conf/displayableTypes.xml
----------------------------------------------------------------------
diff --git a/webapp/fmprod/src/main/conf/displayableTypes.xml b/webapp/fmprod/src/main/conf/displayableTypes.xml
new file mode 100644
index 0000000..aca9ad0
--- /dev/null
+++ b/webapp/fmprod/src/main/conf/displayableTypes.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--
+  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.
+-->
+<!DOCTYPE displayableTypes [
+  <!ELEMENT displayableTypes (type*)>
+  <!ELEMENT type (#PCDATA)>
+]>
+<displayableTypes>
+  <type>text/plain</type>
+  <type>text/richtext</type>
+  <type>text/enriched</type>
+  <type>text/tab-separated-values</type>
+  <type>text/html</type>
+  <type>text/xml</type>
+  <type>text/rtf</type>
+  <type>message/rfc822</type>
+  <type>message/partial</type>
+  <type>message/external-body</type>
+  <type>message/news</type>
+  <type>message/http</type>
+  <type>message/delivery-status</type>
+  <type>message/disposition-notification</type>
+  <type>message/s-http</type>
+  <type>application/rtf</type>
+  <type>application/pdf</type>
+  <type>image/jpeg</type>
+  <type>image/gif</type>
+  <type>image/tiff</type>
+  <type>image/png</type>
+  <type>audio/basic</type>
+  <type>audio/32kadpcm</type>
+  <type>audio/mpeg</type>
+  <type>video/mpeg</type>
+  <type>video/quicktime</type>
+  <type>model/vrml</type>
+</displayableTypes>

http://git-wip-us.apache.org/repos/asf/oodt/blob/4066b63b/webapp/fmprod/src/main/conf/mime.properties
----------------------------------------------------------------------
diff --git a/webapp/fmprod/src/main/conf/mime.properties b/webapp/fmprod/src/main/conf/mime.properties
new file mode 100755
index 0000000..af95ada
--- /dev/null
+++ b/webapp/fmprod/src/main/conf/mime.properties
@@ -0,0 +1,407 @@
+#  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.
+
+
+# Internet media types supported by OODT
+#
+# $Id: mime.properties,v 1.1.1.1 2004-03-02 19:37:13 kelly Exp $
+
+# These types aren't in the official list at IANA, but are listed
+# here for internal OODT use:
+
+application/vnd.jpl.large-product:				org.apache.oodt.xmlquery.StringCodec
+
+# These types aren't in the official list at IANA, but are supported
+# in various environments:
+
+application/x-java-serialized-object				org.apache.oodt.xmlquery.ObjectCodec
+application/java-vm						org.apache.oodt.xmlquery.ObjectCodec
+
+# This types are translated from the Internet media type registry at
+# ftp://ftp.iana.org/in-notes/iana/assignments/media-types/media-types
+
+text/plain:							org.apache.oodt.xmlquery.StringCodec
+text/richtext:							org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+text/enriched:							org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+text/tab-separated-values:					org.apache.oodt.xmlquery.StringCodec
+text/html:							org.apache.oodt.xmlquery.CompressedStringCodec
+text/sgml:							org.apache.oodt.xmlquery.CompressedStringCodec
+text/vnd.latex-z:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+text/vnd.fmi.flexstor:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+text/uri-list:							org.apache.oodt.xmlquery.StringCodec
+text/vnd.abc:							org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+text/rfc822-headers:						org.apache.oodt.xmlquery.StringCodec
+text/vnd.in3d.3dml:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+text/prs.lines.tag:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+text/vnd.in3d.spot:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+text/css:							org.apache.oodt.xmlquery.CompressedStringCodec
+text/xml:							org.apache.oodt.xmlquery.StringCodec
+text/rtf:							org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+text/directory:							org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+text/calendar:							org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+text/vnd.wap.wml:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+text/vnd.wap.wmlscript:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+text/vnd.motorola.reflex:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+text/vnd.fly:							org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+text/vnd.wap.sl:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+text/vnd.wap.si:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+text/t140:							org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+text/vnd.ms-mediapackage:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+text/vnd.IPTC.NewsML:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+text/vnd.IPTC.NITF:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+text/vnd.curl:							org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+text/vnd.DMClientScript:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+text/parityfec:							org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+multipart/mixed:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+multipart/alternative:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+multipart/digest:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+multipart/parallel:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+multipart/appledouble:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+multipart/header-set:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+multipart/form-data:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+multipart/related:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+multipart/report:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+multipart/voice-message:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+multipart/signed:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+multipart/encrypted:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+multipart/byteranges:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+message/rfc822:							org.apache.oodt.xmlquery.CompressedStringCodec
+message/partial:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+message/external-body:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+message/news:							org.apache.oodt.xmlquery.CompressedStringCodec
+message/http:							org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+message/delivery-status:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+message/disposition-notification:				org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+message/s-http:							org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/octet-stream:					org.apache.oodt.xmlquery.ByteArrayCodec
+application/postscript:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/oda:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/atomicmail:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/andrew-inset:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/slate:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/wita:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/dec-dx:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/dca-rft:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/activemessage:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/rtf:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/applefile:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/mac-binhex40:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/news-message-id:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/news-transmission:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/wordperfect5.1:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/pdf:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/zip:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/macwriteii:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/msword:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/remote-printing:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/mathematica:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/cybercash:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/commonground:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/iges:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/riscos:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/eshop:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/x400-bp:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/sgml:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/cals-1840:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/pgp-encrypted:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/pgp-signature:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/pgp-keys:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.framemaker:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.mif:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.ms-excel:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.ms-powerpoint:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.ms-project:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.ms-works:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.ms-tnef:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.svd:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.music-niff:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.ms-artgalry:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.truedoc:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.koan:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.street-stream:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.fdf:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/set-payment-initiation:				org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/set-payment:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/set-registration-initiation:			org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/set-registration:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.seemail:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.businessobjects:				org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.meridian-slingshot:				org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.xara:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/sgml-open-catalog:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.rapid:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.enliven:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.japannet-registration-wakeup:			org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.japannet-verification-wakeup:			org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.japannet-payment-wakeup:			org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.japannet-directory-service:			org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.intertrust.digibox:				org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.intertrust.nncp:				org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/prs.alvestrand.titrax-sheet:			org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.noblenet-web:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.noblenet-sealer:				org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.noblenet-directory:				org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/prs.nprend:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.webturbo:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/hyperstudio:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.shana.informed.formtemplate:			org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.shana.informed.formdata:			org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.shana.informed.package:				org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.shana.informed.interchange:			org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.$commerce_battelle:				org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.osa.netdeploy:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.ibm.MiniPay:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.japannet-jpnstore-wakeup:			org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.japannet-setstore-wakeup:			org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.japannet-verification:				org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.japannet-registration:				org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.hp-HPGL:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.hp-PCL:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.hp-PCLXL:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.musician:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.FloGraphIt:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.intercon.formnet:				org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vemmi:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.ms-asf:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.ecdis-update:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.powerbuilder6:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.powerbuilder6-s:				org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.lotus-wordpro:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.lotus-approach:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.lotus-1-2-3:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.lotus-organizer:				org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.lotus-screencam:				org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.lotus-freelance:				org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.fujitsu.oasys:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.fujitsu.oasys2:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.swiftview-ics:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.dna:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/prs.cww:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.wt.stf:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.dxr:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.mitsubishi.misty-guard.trustweb:		org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.ibm.modcap:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.acucobol:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.fujitsu.oasys3:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/marc:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.fujitsu.oasysprs:				org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.fujitsu.oasysgp:				org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.visio:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.netfpx:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.audiograph:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.epson.salt:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.3M.Post-it-Notes:				org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.novadigm.EDX:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.novadigm.EXT:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.novadigm.EDM:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.claymore:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.comsocaller:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/pkcs7-mime:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/pkcs7-signature:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/pkcs10:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.yellowriver-custom-menu:			org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.ecowin.chart:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.ecowin.series:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.ecowin.filerequest:				org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.ecowin.fileupdate:				org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.ecowin.seriesrequest:				org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.ecowin.seriesupdate:				org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/EDIFACT:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/EDI-X12:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/EDI-Consent:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.wrq-hp3000-labelled:				org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.minisoft-hp3000-save:				org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.ffsns:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.hp-hps:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.fujixerox.docuworks:				org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/xml:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.anser-web-funds-transfer-initiation:		org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.anser-web-certificate-issue-initiation:		org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.is-xpr:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.intu.qbo:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.publishare-delta-tree:				org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.cybank:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/batch-SMTP:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.uplanet.alert:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.uplanet.cacheop:				org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.uplanet.list:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.uplanet.listcmd:				org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.uplanet.channel:				org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.uplanet.bearer-choice:				org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.uplanet.signal:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.uplanet.alert-wbxml:				org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.uplanet.cacheop-wbmxl:				org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.uplanet.list-wbxml:				org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.uplanet.listcmd-wbxml:				org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.uplanet.channel-wbxml:				org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.uplanet.bearer-choice-wbxml:			org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.epson.quickanime:				org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.commonspace:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.fut-misnet:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.xfdl:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.intu.qfx:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.epson.ssf:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.epson.msf:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.powerbuilder7:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.powerbuilder7-s:				org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.lotus-notes:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/pkixcmp:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.wap.wmlc:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.wap.wmlscriptc:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.motorola.flexsuite:				org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.wap.wbxml:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.motorola.flexsuite.wem:				org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.motorola.flexsuite.kmr:				org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.motorola.flexsuite.adsi:			org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.motorola.flexsuite.fis:				org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.motorola.flexsuite.gotap:			org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.motorola.flexsuite.ttc:				org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.ufdl:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.accpac.simply.imp:				org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.accpac.simply.aso:				org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.vcx:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/ipp:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/ocsp-request:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/ocsp-response:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.previewsystems.box:				org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.mediastation.cdkey:				org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.pg.format:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.pg.osasli:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.hp-hpid:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/pkix-cert:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/pkix-crl:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.Mobius.TXF:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.Mobius.PLC:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.Mobius.DIS:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.Mobius.DAF:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.Mobius.MSL:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.cups-raster:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.cups-postscript:				org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.cups-raw:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/index:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/index.cmd:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/index.response:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/index.obj:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/index.vnd:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.triscape.mxs:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.powerbuilder75:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.powerbuilder75-s:				org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.dpgraph:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/http:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/sdp:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.eudora.data:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.fujixerox.docuworks.binder:			org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.vectorworks:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.grafeq:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.bmi:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.ericsson.quickcall:				org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.hzn-3d-crossword:				org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.wap.slc:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.wap.sic:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.groove-injector:				org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.fujixerox.ddd:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.groove-account:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.groove-identity-message:			org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.groove-tool-message:				org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.groove-tool-template:				org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.groove-vcard:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.ctc-posml:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.canon-lips:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.canon-cpdl:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.trueapp:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.s3sms:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/iotp:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.mcd:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.httphone:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.informix-visionary:				org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.msign:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.ms-lrm:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.contact.cmsg:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.epson.esf:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/whoispp-query:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/whoispp-response:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.mozilla.xul+xml:				org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/parityfec:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.palm:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.fsc.weblaunch:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/vnd.tve-trigger:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/dvcs:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+application/sieve:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+image/jpeg:							org.apache.oodt.xmlquery.ByteArrayCodec
+image/gif:							org.apache.oodt.xmlquery.ByteArrayCodec
+image/ief:							org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+image/g3fax:							org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+image/tiff:							org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+image/cgm:							org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+image/naplps:							org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+image/vnd.dwg:							org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+image/vnd.svf:							org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+image/vnd.dxf:							org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+image/png:							org.apache.oodt.xmlquery.ByteArrayCodec
+image/vnd.fpx:							org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+image/vnd.net-fpx:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+image/vnd.xiff:							org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+image/prs.btif:							org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+image/vnd.fastbidsheet:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+image/vnd.wap.wbmp:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+image/prs.pti:							org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+image/vnd.cns.inf2:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+image/vnd.mix:							org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+image/vnd.fujixerox.edmics-rlc:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+image/vnd.fujixerox.edmics-mmr:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+image/vnd.fst:							org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+audio/basic:							org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+audio/32kadpcm:							org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+audio/vnd.qcelp:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+audio/vnd.digital-winds:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+audio/vnd.lucent.voice:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+audio/vnd.octel.sbc:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+audio/vnd.rhetorex.32kadpcm:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+audio/vnd.vmx.cvsd:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+audio/vnd.nortel.vbk:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+audio/vnd.cns.anp1:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+audio/vnd.cns.inf1:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+audio/L16:							org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+audio/vnd.everad.plj:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+audio/telephone-event:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+audio/tone:							org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+audio/prs.sid:							org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+audio/vnd.nuera.ecelp4800:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+audio/vnd.nuera.ecelp7470:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+audio/mpeg:							org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+audio/parityfec:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+audio/MP4A-LATM:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+video/mpeg:							org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+video/quicktime:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+video/vnd.vivo:							org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+video/vnd.motorola.video:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+video/vnd.motorola.videop:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+video/vnd.fvt:							org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+video/pointer:							org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+video/parityfec:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+video/vnd.mpegurl:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+video/MP4V-ES:							org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+model/iges:							org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+model/vrml:							org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+model/mesh:							org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+model/vnd.dwf:							org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+model/vnd.gtw:							org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+model/vnd.flatland.3dml:					org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+model/vnd.vtu:							org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+model/vnd.mts:							org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+model/vnd.gdl:							org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+model/vnd.gs-gdl:						org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+model/vnd.parasolid.transmit.text:				org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec
+model/vnd.parasolid.transmit.binary:				org.apache.oodt.xmlquery.UnsupportedMimeTypeCodec

http://git-wip-us.apache.org/repos/asf/oodt/blob/4066b63b/webapp/fmprod/src/main/conf/ofsn-ps.xml
----------------------------------------------------------------------
diff --git a/webapp/fmprod/src/main/conf/ofsn-ps.xml b/webapp/fmprod/src/main/conf/ofsn-ps.xml
new file mode 100644
index 0000000..01939dd
--- /dev/null
+++ b/webapp/fmprod/src/main/conf/ofsn-ps.xml
@@ -0,0 +1,201 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--
+  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.
+-->
+<!--  
+Configures a new OODT OFSN style product server. This is a product server
+of the form:
+
+http://host/webgrid/prod?OFSN=/some/ofsn+AND+RT=sometype
+
+OFSN is an online file specification name, as defined by the PDS standards.
+RT is a transformation identifier, identifying a remote transformation to be applied
+at the given OFSN path.
+
+More more information on the OFSN style product servers, see the PDS original here:
+
+http://oodt/pds-client/guide/product
+   
+Required attributes:
+   id: defines a unique URN/id for this product server instance
+   name: defines a human readable name for this product server instance
+   productRoot: defines the root path in which the OFSN product server should start looking for 
+   paths based on a given OFSN
+
+FIXME: Change XML namespace URI for oodt prefix?
+-->
+<oodt:ofsn xmlns:oodt="http://oodt.jpl.nasa.gov/xml/namespaces/oodt/1.0"
+      id="urn:oodt:prod:ofsn"
+      name="OODT OFSN Style Product Handler"
+      productRoot="/some/path"
+      >
+      
+  <!--  defines a new OFSN handler. There are 2 valid types:
+     
+     listing: this type generates a list of files given an OFSN. The list will 
+     be returned and formatted in XML for easy parsing.
+     
+     get: this type returns the bits of the requested ofsn, after performing some
+     type of transformation on them.
+     
+     Required attributes:
+     
+     name: gives the handler type a identifiable name. This should be a valid RT name for use in the OODT
+     product server query, e.g., if you want the dir list non-recursive listing handler to be called on 
+     RT=DIRLIST1, then set name to "DIRLIST1", as below.
+     
+     type: either listing, or get, depending on the desired handler type.
+     
+     class: defines a class that implements either the org.apache.oodt.product.handlers.ofsn.OFSNListHandler
+     interface (for "listing" handlers), or the org.apache.oodt.product.handlers.ofsn.OFSNGetHandler (for
+     "get" handlers). Note that this class must be on the classpath in order for it to be referenced in
+     this configuration.
+  
+   -->
+   
+   <!-- 
+     Optionally, each handler can have its own configuration, specified on the form of
+       &lt;property name=&quot;some name&quot; value=&quot;some value&quot;/&gt;
+       
+       where some name is the name of the configuration property and some value is the
+       value of the configuration property.
+       
+       Optional properties (for GET handlers):
+       
+       property name: mimeType
+       property value: the desired MIME type (also referred to as content-type) a handler should return
+       content as (eg. "text/plain"). More formally, any value of the form 
+       "type/subtype(; parameter=...)*" as defined in RFC 2045.
+    -->
+    
+        
+   <!-- 
+   The DIRLIST1 type is identical to DIRLIST but does not recursively
+   descend into subdirectories.
+   -->
+  <handler name="DIRLIST1" type="listing" 
+       class="org.apache.oodt.product.handlers.ofsn.DirListNonRecursiveHandler"/>
+       
+       
+  <!-- 
+    The DIRLIST type returns an XML file with directory names (and only
+    directory names) and total size of files in each directory starting in
+    the requested directory and traversing into the subdirectories. 
+   -->
+  <handler name="DIRLIST" type="listing"
+       class="org.apache.oodt.product.handlers.ofsn.DirListRecursiveHandler"/>
+    
+
+  <!-- 
+    The DIRFILELIST1 is identical to DIRFILELIST except that it does not
+    recurse into subdirectories.
+   -->
+  <handler name="DIRFILELIST1" type="listing"
+       class="org.apache.oodt.product.handlers.ofsn.FileListNonRecursiveHandler"/>
+
+  <!-- 
+    The DIRFILELIST returns an XML document containing all of the filenames
+    (and only the files, not directories) and their sizes, recursing into
+    subdirectories.  
+   -->          
+  <handler name="DIRFILELIST" type="listing"
+       class="org.apache.oodt.product.handlers.ofsn.FileListRecursiveHandler"/>
+
+  <!-- 
+    The  RAW_SIZE  generates an XML document telling the size of the raw file that 
+    would be returned by the corresponding RAW type.  
+   -->     
+  <handler name="RAW_SIZE" type="listing"
+       class="org.apache.oodt.product.handlers.ofsn.RawSizeListHandler">
+     
+     <!-- 
+       Required attributes:
+          isSizeCmd: this value should be set to true in this handler to ensure that
+          only the size is printed in the OFSN doc.
+      -->
+     <property name="isSizeCmd" value="true"/>
+  </handler>
+
+   <!-- 
+    The FILELIST type returns an XML file naming the requested file and also
+    giving its size.   
+   -->
+  <handler name="FILE_LIST" type="listing"
+       class="org.apache.oodt.product.handlers.ofsn.SingleFileListHandler"/>
+    
+ 
+  <!-- 
+    The FILELISTZIP is similar to FILELIST except that it tells what the size
+    of the requested file would be if compressed into a ZIP archive.  
+  -->   
+  <handler name="FILE_LIST_ZIP" type="listing"
+       class="org.apache.oodt.product.handlers.ofsn.SingleZipFileListHandler">
+       
+       <!-- 
+        Optional attributes:
+          cacheDirRoot: defines the cache dir that the product server should use when asked to create temporary
+          files, e.g., by a listing or get handler. By default, if not specified, it defaults to /tmp
+       
+        -->
+       <property name="cacheDirRoot" value="/tmp"/>       
+  </handler>
+
+  <!-- 
+    The RAW type merely returns the requested file without any modification 
+    (MIME type application/octet-stream ). 
+  -->  
+  <handler name="RAW" type="get"
+       class="org.apache.oodt.product.handlers.ofsn.StdOFSNGetHandler"/>       
+       
+  
+  <!--  
+    The MD5 type returns an MD5 hash of the file bytes generated on the server side.
+   -->
+   
+   <handler name="MD5" type="get"
+       class="org.apache.oodt.product.handlers.ofsn.MD5GetHandler">
+       
+       <property name="mimeType" value="text/plain"/>
+       
+   </handler>
+
+
+  <!--  
+    The URL type returns a URL listing pointing to files within an OFSN
+    
+    (Optional) Use the below properties to customize the constructed URL returned:
+        1. prodServerHostname: the product server hostname
+        2. prodServerPort: the product server's port
+        3. prodServerContextRoot: the name of the product server webapp
+        4. productRoot: the root directory of the product server - identical
+                        to the root directory at the top of this XML file
+        5. returnType: the desired return type. i.e. RAW, MD5, etc.
+   -->
+  <handler name="URL" type="get"
+       class="org.apache.oodt.product.handlers.ofsn.URLGetHandler">
+       
+       <!-- the below values are the default if nothing specified
+       <property name="prodServerHostname" value="localhost"/>
+       <property name="prodServerPort" value="8080"/>
+       <property name="prodServerContextRoot" value="web-grid"/>
+       <property name="productRoot" value="/some/path"/>
+       <property name="returnType" value="RAW"/>
+       -->
+  	   
+       <property name="mimeType" value="text/plain"/>
+  	   
+  </handler>
+</oodt:ofsn>

http://git-wip-us.apache.org/repos/asf/oodt/blob/4066b63b/webapp/fmprod/src/main/dtd/query.dtd
----------------------------------------------------------------------
diff --git a/webapp/fmprod/src/main/dtd/query.dtd b/webapp/fmprod/src/main/dtd/query.dtd
new file mode 100755
index 0000000..0cf3401
--- /dev/null
+++ b/webapp/fmprod/src/main/dtd/query.dtd
@@ -0,0 +1,100 @@
+<?xml encoding="UTF-8"?>
+<!--
+  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.
+-->
+
+  <!ELEMENT query
+	(queryAttributes,
+         queryResultModeId,
+         queryPropogationType,
+	 queryPropogationLevels,
+         queryMimeAccept*,
+         queryMaxResults,
+         queryResults,
+         queryKWQString,
+	 queryStatistics?,
+         querySelectSet,
+         queryFromSet,
+	 queryWhereSet,
+	 queryResultSet)>
+
+    <!ELEMENT queryAttributes
+      (queryId, queryTitle*, queryDesc*, queryType*,
+       queryStatusId*, querySecurityType*, 
+       queryParentId*, queryChildId*,
+       queryRevisionNote*,
+       queryDataDictId*)>
+
+    <!ELEMENT queryStatistics (statistic*)>
+
+    <!ELEMENT querySelectSet
+	(queryElement*)>
+
+    <!ELEMENT queryFromSet
+	(queryElement*)>
+
+    <!ELEMENT queryWhereSet
+	(queryElement*)>
+
+      <!ELEMENT queryElement
+        (tokenRole*, tokenValue*)>
+
+    <!ELEMENT statistic (url, time)>
+
+    <!ELEMENT queryResultSet
+	(resultElement*)>
+
+      <!ELEMENT resultElement
+        (resultId*, resultMimeType*,
+         profId*, identifier*, resultHeader,
+         resultValue*)>
+      <!ATTLIST resultElement classified (true|false) 'false'>
+      <!ATTLIST resultElement validity CDATA #IMPLIED>
+
+    <!ELEMENT resultHeader (headerElement*)>
+    <!ELEMENT headerElement (elemName, elemType?, elemUnit?)>
+
+    <!ELEMENT queryId (#PCDATA)>
+    <!ELEMENT queryTitle (#PCDATA)>
+    <!ELEMENT queryType (#PCDATA)>
+    <!ELEMENT queryDesc (#PCDATA)>
+    <!ELEMENT queryParentId (#PCDATA)>
+    <!ELEMENT queryChildId (#PCDATA)>
+    <!ELEMENT queryStatusId (#PCDATA)>
+    <!ELEMENT querySecurityType (#PCDATA)>
+    <!ELEMENT queryRevisionNote (#PCDATA)>
+    <!ELEMENT queryDataDictId (#PCDATA)>
+    <!ELEMENT queryResultModeId (#PCDATA)>
+    <!ELEMENT queryPropogationType (#PCDATA)>
+    <!ELEMENT queryPropogationLevels (#PCDATA)>
+    <!ELEMENT queryMimeAccept (#PCDATA)>
+    <!ELEMENT queryMaxResults (#PCDATA)>
+    <!ELEMENT queryResults (#PCDATA)>
+    <!ELEMENT queryKWQString (#PCDATA)>
+    <!ELEMENT url (#PCDATA)>
+    <!ELEMENT time (#PCDATA)>
+    <!ELEMENT elemName (#PCDATA)>
+    <!ELEMENT elemType (#PCDATA)>
+    <!ELEMENT elemUnit (#PCDATA)>
+    <!ELEMENT elemValue (#PCDATA)>
+    <!ELEMENT resultId (#PCDATA)>
+    <!ELEMENT resultMimeType (#PCDATA)>
+    <!ELEMENT resultValue (#PCDATA)>
+    <!ATTLIST resultValue xml:space (default|preserve) 'default'>
+    <!ELEMENT profId (#PCDATA)>
+    <!ELEMENT identifier (#PCDATA)>
+    <!ELEMENT tokenRole (#PCDATA)>
+    <!ELEMENT tokenValue (#PCDATA)>

http://git-wip-us.apache.org/repos/asf/oodt/blob/4066b63b/webapp/fmprod/src/main/java/org/apache/oodt/product/HttpRedirectException.java
----------------------------------------------------------------------
diff --git a/webapp/fmprod/src/main/java/org/apache/oodt/product/HttpRedirectException.java b/webapp/fmprod/src/main/java/org/apache/oodt/product/HttpRedirectException.java
new file mode 100644
index 0000000..ce9711a
--- /dev/null
+++ b/webapp/fmprod/src/main/java/org/apache/oodt/product/HttpRedirectException.java
@@ -0,0 +1,40 @@
+/*
+ * 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.oodt.product;
+
+import org.apache.oodt.product.ProductException;
+
+/**
+ * A class 
+ * 
+ * @author mcayanan
+ *
+ */
+public class HttpRedirectException extends ProductException {
+  private static final long serialVersionUID = 4680689951141346403L;
+  private String location;
+
+  public HttpRedirectException(String location) {
+    super();
+    this.location = location;
+  }
+
+  public String getLocation() {
+    return location;
+  }
+}

http://git-wip-us.apache.org/repos/asf/oodt/blob/4066b63b/webapp/fmprod/src/main/java/org/apache/oodt/product/LargeProductQueryHandler.java
----------------------------------------------------------------------
diff --git a/webapp/fmprod/src/main/java/org/apache/oodt/product/LargeProductQueryHandler.java b/webapp/fmprod/src/main/java/org/apache/oodt/product/LargeProductQueryHandler.java
new file mode 100644
index 0000000..029e9ce
--- /dev/null
+++ b/webapp/fmprod/src/main/java/org/apache/oodt/product/LargeProductQueryHandler.java
@@ -0,0 +1,57 @@
+/*
+ * 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.oodt.product;
+
+/**
+ * Handle requests for products that are too large to fit in an {@link
+ * org.apache.oodt.xmlquery.XMLQuery} object.
+ *
+ * @author Kelly
+ * @version $Revision: 1.1.1.1 $
+ */
+public interface LargeProductQueryHandler extends QueryHandler {
+	/**
+	 * Retrieve a chunk of a product.
+	 *
+	 * The product is identified by a string ID.  The query handler should return a
+	 * binary chunk of the product using the given offset and length.  If the ID isn't
+	 * recognized, it should return null.  It should throw an exception if retrieval
+	 * fails for some reason.
+	 *
+	 * @param id Product ID.
+	 * @param offset Where in the product to get a chunk of it.
+	 * @param length How much of the product to get.
+	 * @return A chunk, or null if the <var>id</var> is unknown.
+	 * @throws ProductException if an error occurs.
+	 */
+	byte[] retrieveChunk(String id, long offset, int length) throws ProductException;
+
+	/**
+	 * Close off a product.
+	 *
+	 * This method indicates that the product is no longer required and its resources
+	 * can be freed by the query handler.  If the ID is unknown, no untoward action is
+	 * required.  It should throw an exception if there is an error during the
+	 * resource release (such as an {@link java.io.IOException} when closing a file.
+	 *
+	 * @param id Product ID.
+	 * @throws ProductException if an error occurs.
+	 */
+	void close(String id);
+}

http://git-wip-us.apache.org/repos/asf/oodt/blob/4066b63b/webapp/fmprod/src/main/java/org/apache/oodt/product/ProductException.java
----------------------------------------------------------------------
diff --git a/webapp/fmprod/src/main/java/org/apache/oodt/product/ProductException.java b/webapp/fmprod/src/main/java/org/apache/oodt/product/ProductException.java
new file mode 100755
index 0000000..83686a3
--- /dev/null
+++ b/webapp/fmprod/src/main/java/org/apache/oodt/product/ProductException.java
@@ -0,0 +1,62 @@
+/*
+ * 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.oodt.product;
+
+/**
+ * Checked exception to indicate a product fault.
+ *
+ * @author Kelly
+ */
+public class ProductException extends Exception {
+	/**
+	 * Construct a product exception with no detail message.
+	 */
+	public ProductException() {}
+
+	/**
+	 * Construct a product exception with the given detail message.
+	 *
+	 * @param msg Detail message.
+	 */
+	public ProductException(String msg) {
+		super(msg);
+	}
+
+	/**
+	 * Creates a new <code>ProductException</code> instance.
+	 *
+	 * @param cause a <code>Throwable</code> value.
+	 */
+	public ProductException(Throwable cause) {
+		super(cause);
+	}
+
+	/**
+	 * Creates a new <code>ProductException</code> instance.
+	 *
+	 * @param msg a <code>String</code> value.
+	 * @param cause a <code>Throwable</code> value.
+	 */
+	public ProductException(String msg, Throwable cause) {
+		super(msg, cause);
+	}
+
+	/** Serial version unique ID. */
+	static final long serialVersionUID = 8240102969482071451L;
+}

http://git-wip-us.apache.org/repos/asf/oodt/blob/4066b63b/webapp/fmprod/src/main/java/org/apache/oodt/product/QueryHandler.java
----------------------------------------------------------------------
diff --git a/webapp/fmprod/src/main/java/org/apache/oodt/product/QueryHandler.java b/webapp/fmprod/src/main/java/org/apache/oodt/product/QueryHandler.java
new file mode 100644
index 0000000..6addbce
--- /dev/null
+++ b/webapp/fmprod/src/main/java/org/apache/oodt/product/QueryHandler.java
@@ -0,0 +1,38 @@
+/*
+ * 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.oodt.product;
+
+import org.apache.oodt.xmlquery.XMLQuery;
+
+/**
+ * Handler for queries in a product service.
+ *
+ * @author Kelly
+ * @version $Revision: 1.1.1.1 $
+ */
+public interface QueryHandler {
+	/**
+	 * Run a query.
+	 *
+	 * @param q The query.
+	 * @return The response.
+	 * @throws ProductException if an error occurs.
+	 */
+	XMLQuery query(XMLQuery q) throws ProductException;
+}

http://git-wip-us.apache.org/repos/asf/oodt/blob/4066b63b/webapp/fmprod/src/main/java/org/apache/oodt/product/Retriever.java
----------------------------------------------------------------------
diff --git a/webapp/fmprod/src/main/java/org/apache/oodt/product/Retriever.java b/webapp/fmprod/src/main/java/org/apache/oodt/product/Retriever.java
new file mode 100755
index 0000000..a7b4ea2
--- /dev/null
+++ b/webapp/fmprod/src/main/java/org/apache/oodt/product/Retriever.java
@@ -0,0 +1,46 @@
+/*
+ * 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.oodt.product;
+
+/**
+ * Retrievers retrieve products.
+ *
+ * @author Kelly
+ * @version $Revision: 1.1.1.1 $
+ */
+public interface Retriever {
+	/**
+	 * Retrieve a chunk from a large product.
+	 *
+	 * @param productID Product ID.
+	 * @param offset Where in the product to retrieve the data.
+	 * @param length How much data to get.
+	 * @return The data.
+	 * @throws ProductException if an error occurs.
+	 */
+	byte[] retrieveChunk(String productID, long offset, int length) throws ProductException;
+
+	/**
+	 * Close off a large product.
+	 *
+	 * @param productID Product ID.
+	 * @throws ProductException if an error occurs.
+	 */
+	void close(String productID);
+}

http://git-wip-us.apache.org/repos/asf/oodt/blob/4066b63b/webapp/fmprod/src/main/java/org/apache/oodt/product/handlers/ofsn/AbstractCrawlLister.java
----------------------------------------------------------------------
diff --git a/webapp/fmprod/src/main/java/org/apache/oodt/product/handlers/ofsn/AbstractCrawlLister.java b/webapp/fmprod/src/main/java/org/apache/oodt/product/handlers/ofsn/AbstractCrawlLister.java
new file mode 100644
index 0000000..40b3094
--- /dev/null
+++ b/webapp/fmprod/src/main/java/org/apache/oodt/product/handlers/ofsn/AbstractCrawlLister.java
@@ -0,0 +1,116 @@
+/*
+ * 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.oodt.product.handlers.ofsn;
+
+//JDK imports
+import org.apache.oodt.product.ProductException;
+
+import java.io.File;
+import java.io.FileFilter;
+import java.util.Collections;
+import java.util.List;
+import java.util.Properties;
+import java.util.Stack;
+import java.util.Vector;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+//OODT imports
+
+/**
+ * 
+ * An abstract {@link OFSNListHandler} for generating file lists based on two
+ * simple flags: recurse, and crawlForDirs, indicating to crawl for directories
+ * rather than files.
+ * 
+ * @author mattmann
+ * @version $Revision$
+ * 
+ */
+public abstract class AbstractCrawlLister implements OFSNListHandler {
+
+  protected final static Logger LOG = Logger
+      .getLogger(AbstractCrawlLister.class.getName());
+
+  protected static final FileFilter FILE_FILTER = new FileFilter() {
+    public boolean accept(File pathname) {
+      return pathname.isFile();
+    }
+  };
+
+  protected static final FileFilter DIR_FILTER = new FileFilter() {
+    public boolean accept(File pathname) {
+      return pathname.isDirectory();
+    }
+  };
+
+  /*
+   * (non-Javadoc)
+   * 
+   * @see
+   * org.apache.oodt.product.handlers.ofsn.OFSNListHandler#configure(java.
+   * util.Properties)
+   */
+  public abstract void configure(Properties conf);
+
+  /*
+   * (non-Javadoc)
+   * 
+   * @see
+   * org.apache.oodt.product.handlers.ofsn.OFSNListHandler#getListing(java
+   * .lang.String)
+   */
+  public abstract File[] getListing(String ofsn) throws ProductException;
+
+  protected File[] crawlFiles(File dirRoot, boolean recur,
+      boolean crawlForDirs) {
+    if (dirRoot == null || ((!dirRoot.exists()))) {
+      throw new IllegalArgumentException("dir root: [" + dirRoot
+                                         + "] is null or non existant!");
+    }
+
+    List<File> fileList = new Vector<File>();
+
+    // start crawling
+    Stack<File> stack = new Stack<File>();
+    stack.push(dirRoot.isDirectory() ? dirRoot : dirRoot.getParentFile());
+    while (!stack.isEmpty()) {
+      File dir = (File) stack.pop();
+      LOG.log(Level.INFO, "OFSN: Crawling " + dir);
+
+      File[] productFiles;
+      productFiles = crawlForDirs ? dir.listFiles(DIR_FILTER) : dir.listFiles(FILE_FILTER);
+
+      if(productFiles!=null) {
+        Collections.addAll(fileList, productFiles);
+      }
+      if (recur) {
+        File[] subdirs = dir.listFiles(DIR_FILTER);
+        if (subdirs != null) {
+          for (File subdir : subdirs) {
+            stack.push(subdir);
+          }
+        }
+      }
+    }
+
+    return fileList.toArray(new File[fileList.size()]);
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/oodt/blob/4066b63b/webapp/fmprod/src/main/java/org/apache/oodt/product/handlers/ofsn/DirListNonRecursiveHandler.java
----------------------------------------------------------------------
diff --git a/webapp/fmprod/src/main/java/org/apache/oodt/product/handlers/ofsn/DirListNonRecursiveHandler.java b/webapp/fmprod/src/main/java/org/apache/oodt/product/handlers/ofsn/DirListNonRecursiveHandler.java
new file mode 100644
index 0000000..afabb4f
--- /dev/null
+++ b/webapp/fmprod/src/main/java/org/apache/oodt/product/handlers/ofsn/DirListNonRecursiveHandler.java
@@ -0,0 +1,60 @@
+/*
+ * 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.oodt.product.handlers.ofsn;
+
+//JDK imports
+import java.io.File;
+import java.util.Properties;
+
+//OODT imports
+import org.apache.oodt.product.ProductException;
+
+/**
+ * 
+ * Generates a directory listing, without recursing into the OFSN path.
+ * 
+ * @author mattmann
+ * @version $Revision$
+ * 
+ */
+public class DirListNonRecursiveHandler extends AbstractCrawlLister {
+
+  /*
+   * (non-Javadoc)
+   * 
+   * @see
+   * org.apache.oodt.product.handlers.ofsn.OFSNListHandler#getListing(java
+   * .lang.String)
+   */
+  public File[] getListing(String ofsn) throws ProductException {
+     return crawlFiles(new File(ofsn), false, true);
+  }
+
+  /*
+   * (non-Javadoc)
+   * 
+   * @see
+   * org.apache.oodt.product.handlers.ofsn.OFSNListHandler#configure(java.
+   * util.Properties)
+   */
+  public void configure(Properties conf) {
+     // no properties defined yet
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/oodt/blob/4066b63b/webapp/fmprod/src/main/java/org/apache/oodt/product/handlers/ofsn/DirListRecursiveHandler.java
----------------------------------------------------------------------
diff --git a/webapp/fmprod/src/main/java/org/apache/oodt/product/handlers/ofsn/DirListRecursiveHandler.java b/webapp/fmprod/src/main/java/org/apache/oodt/product/handlers/ofsn/DirListRecursiveHandler.java
new file mode 100644
index 0000000..00dd4ec
--- /dev/null
+++ b/webapp/fmprod/src/main/java/org/apache/oodt/product/handlers/ofsn/DirListRecursiveHandler.java
@@ -0,0 +1,63 @@
+/*
+ * 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.oodt.product.handlers.ofsn;
+
+//JDK imports
+import java.io.File;
+import java.util.Properties;
+
+//OODT imports
+import org.apache.oodt.product.ProductException;
+
+/**
+ * 
+ * Generates a directory listing, recursing into the OFSN path.
+ * 
+ * @author mattmann
+ * @version $Revision$
+ * 
+ */
+public class DirListRecursiveHandler extends AbstractCrawlLister {
+
+  /*
+   * (non-Javadoc)
+   * 
+   * @see
+   * org.apache.oodt.product.handlers.ofsn.AbstractCrawlLister#configure(java
+   * .util.Properties)
+   */
+  @Override
+  public void configure(Properties conf) {
+    // no properties yet
+
+  }
+
+  /*
+   * (non-Javadoc)
+   * 
+   * @see
+   * org.apache.oodt.product.handlers.ofsn.AbstractCrawlLister#getListing(
+   * java.lang.String)
+   */
+  @Override
+  public File[] getListing(String ofsn) throws ProductException {
+    return crawlFiles(new File(ofsn), true, true);
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/oodt/blob/4066b63b/webapp/fmprod/src/main/java/org/apache/oodt/product/handlers/ofsn/FileListNonRecursiveHandler.java
----------------------------------------------------------------------
diff --git a/webapp/fmprod/src/main/java/org/apache/oodt/product/handlers/ofsn/FileListNonRecursiveHandler.java b/webapp/fmprod/src/main/java/org/apache/oodt/product/handlers/ofsn/FileListNonRecursiveHandler.java
new file mode 100644
index 0000000..2d8cfea
--- /dev/null
+++ b/webapp/fmprod/src/main/java/org/apache/oodt/product/handlers/ofsn/FileListNonRecursiveHandler.java
@@ -0,0 +1,56 @@
+/*
+ * 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.oodt.product.handlers.ofsn;
+
+//JDK imports
+import java.io.File;
+import java.util.Properties;
+
+//OODT imports
+import org.apache.oodt.product.ProductException;
+
+/**
+ *
+ * A non recursive file listing from a given OFSN.
+ *
+ * @author mattmann
+ * @version $Revision$
+ *
+ */
+public class FileListNonRecursiveHandler extends AbstractCrawlLister {
+
+  /* (non-Javadoc)
+   * @see org.apache.oodt.product.handlers.ofsn.OFSNListHandler#configure(java.util.Properties)
+   */
+  @Override
+  public void configure(Properties conf) {
+    // TODO Auto-generated method stub
+    // nothing yet
+
+  }
+
+  /* (non-Javadoc)
+   * @see org.apache.oodt.product.handlers.ofsn.OFSNListHandler#getListing(java.lang.String)
+   */
+  @Override
+  public File[] getListing(String ofsn) throws ProductException {
+    return crawlFiles(new File(ofsn), false, false);
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/oodt/blob/4066b63b/webapp/fmprod/src/main/java/org/apache/oodt/product/handlers/ofsn/FileListRecursiveHandler.java
----------------------------------------------------------------------
diff --git a/webapp/fmprod/src/main/java/org/apache/oodt/product/handlers/ofsn/FileListRecursiveHandler.java b/webapp/fmprod/src/main/java/org/apache/oodt/product/handlers/ofsn/FileListRecursiveHandler.java
new file mode 100644
index 0000000..5543494
--- /dev/null
+++ b/webapp/fmprod/src/main/java/org/apache/oodt/product/handlers/ofsn/FileListRecursiveHandler.java
@@ -0,0 +1,55 @@
+/*
+ * 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.oodt.product.handlers.ofsn;
+
+//JDK imports
+import java.io.File;
+import java.util.Properties;
+
+//OODT imports
+import org.apache.oodt.product.ProductException;
+
+/**
+ *
+ * A recursive file listing from the provided ofsn.
+ *
+ * @author mattmann
+ * @version $Revision$
+ *
+ */
+public class FileListRecursiveHandler extends AbstractCrawlLister {
+
+  /* (non-Javadoc)
+   * @see org.apache.oodt.product.handlers.ofsn.AbstractCrawlLister#configure(java.util.Properties)
+   */
+  @Override
+  public void configure(Properties conf) {
+    // TODO Auto-generated method stub
+    // nothing yet
+  }
+
+  /* (non-Javadoc)
+   * @see org.apache.oodt.product.handlers.ofsn.AbstractCrawlLister#getListing(java.lang.String)
+   */
+  @Override
+  public File[] getListing(String ofsn) throws ProductException {
+    return crawlFiles(new File(ofsn), true, false);
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/oodt/blob/4066b63b/webapp/fmprod/src/main/java/org/apache/oodt/product/handlers/ofsn/MD5GetHandler.java
----------------------------------------------------------------------
diff --git a/webapp/fmprod/src/main/java/org/apache/oodt/product/handlers/ofsn/MD5GetHandler.java b/webapp/fmprod/src/main/java/org/apache/oodt/product/handlers/ofsn/MD5GetHandler.java
new file mode 100644
index 0000000..95ffe20
--- /dev/null
+++ b/webapp/fmprod/src/main/java/org/apache/oodt/product/handlers/ofsn/MD5GetHandler.java
@@ -0,0 +1,143 @@
+/*
+ * 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.oodt.product.handlers.ofsn;
+
+//JDK imports
+
+import org.apache.commons.codec.binary.Hex;
+import org.apache.commons.io.FileUtils;
+import org.apache.oodt.product.ProductException;
+
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.io.IOException;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+import java.util.Properties;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+//APACHE imports
+//OODT imports
+
+/**
+ * 
+ * A {@link OFSNGetHandler} to perform an MD5 for a file on the server side.
+ * 
+ * @author mattmann
+ * @version $Revision$
+ * 
+ */
+public class MD5GetHandler implements OFSNGetHandler {
+
+  private MessageDigest md = null;
+  private static Logger LOG = Logger.getLogger(MD5GetHandler.class.getName());
+  public MD5GetHandler() throws InstantiationException {
+    try {
+      this.md = MessageDigest.getInstance("MD5");
+    } catch (NoSuchAlgorithmException e) {
+      LOG.log(Level.SEVERE, e.getMessage());
+      throw new InstantiationException(e.getMessage());
+    }
+  }
+
+  /*
+   * (non-Javadoc)
+   * 
+   * @see
+   * org.apache.oodt.product.handlers.ofsn.OFSNListHandler#configure(java.
+   * util.Properties)
+   */
+  public void configure(Properties conf) {
+    // TODO Auto-generated method stub
+
+  }
+
+  /*
+   * (non-Javadoc)
+   * 
+   * @see
+   * org.apache.oodt.product.handlers.ofsn.OFSNGetHandler#retrieveChunk(java
+   * .lang.String, long, int)
+   */
+  public byte[] retrieveChunk(String filepath, long offset, int length)
+      throws ProductException {
+    try {
+      String hash = this.hashData(FileUtils.readFileToByteArray(new File(
+          filepath)));
+      byte[] retBytes = new byte[length];
+      byte[] hashBytes = hash.getBytes();      
+      ByteArrayInputStream is = new ByteArrayInputStream(hashBytes);
+      is.skip(offset);
+      is.read(retBytes, 0, length);
+      return retBytes;
+    } catch (IOException e) {
+      LOG.log(Level.SEVERE, e.getMessage());
+      throw new ProductException("Error reading bytes from file: [" + filepath
+          + "] MD5: Message: " + e.getMessage());
+    }
+  }
+
+  /*
+   * (non-Javadoc)
+   * 
+   * @see
+   * org.apache.oodt.product.handlers.ofsn.OFSNGetHandler#sizeOf(java.lang
+   * .String)
+   */
+  public long sizeOf(String filepath) {
+    try {
+      String hash = this.hashData(FileUtils.readFileToByteArray(new File(
+          filepath)));
+      return hash.getBytes().length;
+    } catch (IOException e) {
+      LOG.log(Level.SEVERE, e.getMessage());
+      return -1;
+    }
+  }
+
+  /**
+   * Use this method ot generate a test MD5 of a provide {@link File} specified
+   * in args[0].
+   * 
+   * @param args
+   *          Only need to specify 1 arg, the full path to the {@link File} to
+   *          MD5.
+   * @throws Exception
+   *           If any error occurs.
+   */
+  public static void main(String[] args) throws Exception {
+    if (args.length != 1) {
+      System.err.println("MD5GetHandler <file>");
+      System.exit(1);
+    }
+
+    String filepath = args[0];
+    String hashString = new MD5GetHandler().hashData(FileUtils
+        .readFileToByteArray(new File(filepath)));
+    System.out.println(hashString);
+  }
+
+  private String hashData(byte[] dataToHash) {
+    this.md.update(dataToHash, 0, dataToHash.length);
+    byte[] hash = this.md.digest();
+    return new String(Hex.encodeHex(hash));
+  }
+
+}


Mime
View raw message