- 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 <[email protected]>
Authored: Sun Jul 16 11:33:30 2017 -0700
Committer: Chris Mattmann <[email protected]>
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));
+  }
+
+}

Reply via email to