oodt-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mattm...@apache.org
Subject [21/88] [abbrv] [partial] oodt git commit: Record change for OODT-836, OODT-837.
Date Mon, 17 Jul 2017 23:05:36 GMT
http://git-wip-us.apache.org/repos/asf/oodt/blob/098cc4fa/product/src/main/java/org/apache/oodt/product/handlers/ofsn/OFSNGetHandler.java
----------------------------------------------------------------------
diff --git a/product/src/main/java/org/apache/oodt/product/handlers/ofsn/OFSNGetHandler.java b/product/src/main/java/org/apache/oodt/product/handlers/ofsn/OFSNGetHandler.java
deleted file mode 100644
index c619883..0000000
--- a/product/src/main/java/org/apache/oodt/product/handlers/ofsn/OFSNGetHandler.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * 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.util.Properties;
-
-//OODT imports
-import org.apache.oodt.product.ProductException;
-
-/**
- * 
- * The default OFSN handler for getting remote data.
- * 
- * @author mattmann
- * @version $Revision$
- * 
- */
-public interface OFSNGetHandler {
-
-  /**
-   * Retrieves a chunk of data from the remote file.
-   * 
-   * @param filepath
-   *          The path to the remote file.
-   * @param offset
-   *          The offset in the remote data to retrieve.
-   * @param length
-   *          The length of data to read
-   * @return The byte[] data, read, or null otherwise.
-   * @throws ProductException
-   *           If any error occurs.
-   */
-  byte[] retrieveChunk(String filepath, long offset, int length)
-      throws ProductException;
-
-  /**
-   * Returns the size of the remote data, which may be the entire file in
-   * question, or some subset/transformation on it.
-   * 
-   * @param filepath
-   *          The remote file in question.
-   * @return The size of the remote file, potentially after a remote
-   *         transformation has occured.
-   */
-  long sizeOf(String filepath);
-
-  /**
-   * Configures this handler with the provided configuration stored in a
-   * {@link Properties} object.
-   * 
-   * @param conf
-   *          The configuration for this list handler.
-   */
-  void configure(Properties conf);
-
-}

http://git-wip-us.apache.org/repos/asf/oodt/blob/098cc4fa/product/src/main/java/org/apache/oodt/product/handlers/ofsn/OFSNHandlerConfig.java
----------------------------------------------------------------------
diff --git a/product/src/main/java/org/apache/oodt/product/handlers/ofsn/OFSNHandlerConfig.java b/product/src/main/java/org/apache/oodt/product/handlers/ofsn/OFSNHandlerConfig.java
deleted file mode 100644
index 8c8aa18..0000000
--- a/product/src/main/java/org/apache/oodt/product/handlers/ofsn/OFSNHandlerConfig.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * 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.util.Properties;
-
-/**
- * 
- * A configuration element in the XML config file for the OFSN handler.
- * 
- * @author mattmann
- * @version $Revision$
- * 
- */
-public class OFSNHandlerConfig {
-
-  private String className;
-
-  private String type;
-
-  private String name;
-  
-  private Properties handlerConf;
-
-  /**
-   * @param className
-   * @param type
-   * @param name
-   */
-  public OFSNHandlerConfig(String className, String type, String name) {
-    super();
-    this.className = className;
-    this.type = type;
-    this.name = name;
-    this.handlerConf = new Properties();
-  }
-
-  /**
-   * 
-   */
-  public OFSNHandlerConfig() {
-    super();
-  }
-
-  /**
-   * @return the className
-   */
-  public String getClassName() {
-    return className;
-  }
-
-  /**
-   * @param className
-   *          the className to set
-   */
-  public void setClassName(String className) {
-    this.className = className;
-  }
-
-  /**
-   * @return the type
-   */
-  public String getType() {
-    return type;
-  }
-
-  /**
-   * @param type
-   *          the type to set
-   */
-  public void setType(String type) {
-    this.type = type;
-  }
-
-  /**
-   * @return the name
-   */
-  public String getName() {
-    return name;
-  }
-
-  /**
-   * @param name
-   *          the name to set
-   */
-  public void setName(String name) {
-    this.name = name;
-  }
-
-  /**
-   * @return the handlerConf
-   */
-  public Properties getHandlerConf() {
-    return handlerConf;
-  }
-
-  /**
-   * @param handlerConf the handlerConf to set
-   */
-  public void setHandlerConf(Properties handlerConf) {
-    this.handlerConf = handlerConf;
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/oodt/blob/098cc4fa/product/src/main/java/org/apache/oodt/product/handlers/ofsn/OFSNListHandler.java
----------------------------------------------------------------------
diff --git a/product/src/main/java/org/apache/oodt/product/handlers/ofsn/OFSNListHandler.java b/product/src/main/java/org/apache/oodt/product/handlers/ofsn/OFSNListHandler.java
deleted file mode 100644
index 5e23d58..0000000
--- a/product/src/main/java/org/apache/oodt/product/handlers/ofsn/OFSNListHandler.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * 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;
-
-/**
- * <p>
- * Classes that implement this interface define how to return file listings on a
- * remote server from an <code>ofsn</code>.
- * </p>
- * 
- * @author mattmann
- * @version $Revision$
- * 
- */
-public interface OFSNListHandler {
-
-  /**
-   * Handlers that implement this method take an <code>O</code>nline
-   * <code>F</code>ile <code>S</code>pecification <code>N</code>ame and return
-   * back a listing of files on the remote server.
-   * 
-   * @param ofsn
-   *          The OFSN path to list files from.
-   * @return An array of {@link File} objects.
-   * @throws ProductException
-   *           If any error occurs performing the listing on the server side.
-   */
-  File[] getListing(String ofsn) throws ProductException;
-
-  /**
-   * Configures this handler with the provided configuration stored in a
-   * {@link Properties} object.
-   * 
-   * @param conf
-   *          The configuration for this list handler.
-   */
-  void configure(Properties conf);
-}

http://git-wip-us.apache.org/repos/asf/oodt/blob/098cc4fa/product/src/main/java/org/apache/oodt/product/handlers/ofsn/RawSizeListHandler.java
----------------------------------------------------------------------
diff --git a/product/src/main/java/org/apache/oodt/product/handlers/ofsn/RawSizeListHandler.java b/product/src/main/java/org/apache/oodt/product/handlers/ofsn/RawSizeListHandler.java
deleted file mode 100644
index 883e1b5..0000000
--- a/product/src/main/java/org/apache/oodt/product/handlers/ofsn/RawSizeListHandler.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * 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;
-
-/**
- *
- * Handles a listing request for the raw size of a file. This listing
- * returns a single file or directory, which will then have its size
- * computed.
- *
- * @author mattmann
- * @version $Revision$
- *
- */
-public class RawSizeListHandler implements OFSNListHandler {
-
-  /* (non-Javadoc)
-   * @see org.apache.oodt.product.handlers.ofsn.OFSNListHandler#configure(java.util.Properties)
-   */
-  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)
-   */
-  public File[] getListing(String ofsn) throws ProductException {
-    if (!new File(ofsn).exists()) {
-          throw new ProductException("file: [" + ofsn
-                  + "] does not exist!");
-      }
-      return new File[] { new File(ofsn) };
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/oodt/blob/098cc4fa/product/src/main/java/org/apache/oodt/product/handlers/ofsn/SingleFileListHandler.java
----------------------------------------------------------------------
diff --git a/product/src/main/java/org/apache/oodt/product/handlers/ofsn/SingleFileListHandler.java b/product/src/main/java/org/apache/oodt/product/handlers/ofsn/SingleFileListHandler.java
deleted file mode 100644
index 45d559c..0000000
--- a/product/src/main/java/org/apache/oodt/product/handlers/ofsn/SingleFileListHandler.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * 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;
-
-import org.apache.oodt.product.ProductException;
-
-/**
- * 
- * Returns a single remote file listing of the given ofsn.
- * 
- * @author mattmann
- * @version $Revision$
- * 
- */
-public class SingleFileListHandler implements OFSNListHandler {
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see
-   * org.apache.oodt.product.handlers.ofsn.OFSNListHandler#configure(java.
-   * util.Properties)
-   */
-  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)
-   */
-  public File[] getListing(String ofsn) throws ProductException {
-    if (!new File(ofsn).exists()) {
-      throw new ProductException("file: [" + ofsn + "] does not exist!");
-    }
-    return new File[] { new File(ofsn) };
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/oodt/blob/098cc4fa/product/src/main/java/org/apache/oodt/product/handlers/ofsn/SingleZipFileListHandler.java
----------------------------------------------------------------------
diff --git a/product/src/main/java/org/apache/oodt/product/handlers/ofsn/SingleZipFileListHandler.java b/product/src/main/java/org/apache/oodt/product/handlers/ofsn/SingleZipFileListHandler.java
deleted file mode 100644
index 748a534..0000000
--- a/product/src/main/java/org/apache/oodt/product/handlers/ofsn/SingleZipFileListHandler.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * 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;
-
-//OODT imports
-import org.apache.oodt.product.handlers.ofsn.util.OFSNUtils;
-import org.apache.oodt.product.ProductException;
-
-//JDK imports
-import java.io.File;
-import java.util.Properties;
-
-
-/**
- * 
- * Generates a listing of the size of a remote file identified by its OFSN as a
- * zip would be.
- * 
- * @author mattmann
- * @version $Revision$
- * 
- */
-public class SingleZipFileListHandler implements OFSNListHandler {
-
-  private String cacheRoot;
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see
-   * org.apache.oodt.product.handlers.ofsn.OFSNListHandler#configure(java.
-   * util.Properties)
-   */
-  public void configure(Properties conf) {
-    // TODO Auto-generated method stub
-
-    this.cacheRoot = conf.getProperty("cacheDirRoot");
-
-    if (this.cacheRoot == null) {
-      this.cacheRoot = "/tmp";
-    }
-
-    if (!this.cacheRoot.endsWith("/")) {
-      this.cacheRoot += "/";
-    }
-
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see
-   * org.apache.oodt.product.handlers.ofsn.OFSNListHandler#getListing(java
-   * .lang.String)
-   */
-  public File[] getListing(String ofsn) throws ProductException {
-    if (!new File(ofsn).exists()) {
-      throw new ProductException("file: [" + ofsn + "] does not exist!");
-    }
-
-    String zipFilePath = this.cacheRoot + new File(ofsn).getName() + ".zip";
-    File zipFile = OFSNUtils.buildZipFile(zipFilePath, new File[] { new File(
-        ofsn) });
-    return new File[] { zipFile };
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/oodt/blob/098cc4fa/product/src/main/java/org/apache/oodt/product/handlers/ofsn/StdOFSNGetHandler.java
----------------------------------------------------------------------
diff --git a/product/src/main/java/org/apache/oodt/product/handlers/ofsn/StdOFSNGetHandler.java b/product/src/main/java/org/apache/oodt/product/handlers/ofsn/StdOFSNGetHandler.java
deleted file mode 100644
index cb344e9..0000000
--- a/product/src/main/java/org/apache/oodt/product/handlers/ofsn/StdOFSNGetHandler.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * 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.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Properties;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-//OODT imports
-
-/**
- * 
- * Standard way of retrieving a file without performing 
- * any transformation on it.
- * 
- * @author mattmann
- * @version $Revision$
- * 
- */
-public class StdOFSNGetHandler implements OFSNGetHandler {
-  private static Logger LOG = Logger.getLogger(StdOFSNGetHandler.class.getName());
-  /*
-   * (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 {
-    InputStream in = null;
-    byte[] buf = null;
-
-    try {
-      in = new FileInputStream(new File(filepath));
-
-      buf = new byte[length];
-      int numRead;
-      long numSkipped;
-      numSkipped = in.skip(offset);
-      if (numSkipped != offset) {
-        throw new ProductException("Was not able to skip: [" + offset
-            + "] bytes into product: num actually skipped: [" + numSkipped
-            + "]");
-      }
-
-      numRead = in.read(buf, 0, length);
-
-      if (numRead != length) {
-        throw new ProductException("Was not able to read: [" + length
-            + "] bytes from product: num actually read: [" + numRead + "]");
-      }
-    } catch (IOException e) {
-      LOG.log(Level.SEVERE, e.getMessage());
-      throw new ProductException("IO exception retrieving chunk of product: ["
-          + filepath + "]: Message: " + e.getMessage());
-    } finally {
-      if (in != null) {
-        try {
-          in.close();
-        } catch (Exception ignore) {
-        }
-
-      }
-    }
-
-    return buf;
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see
-   * org.apache.oodt.product.handlers.ofsn.OFSNGetHandler#sizeOf(java.lang
-   * .String)
-   */
-  public long sizeOf(String filepath) {
-     return new File(filepath).length();
-  }
-
-  /* (non-Javadoc)
-   * @see org.apache.oodt.product.handlers.ofsn.OFSNGetHandler#configure(java.util.Properties)
-   */
-  public void configure(Properties conf) {
-    // no properties to configure    
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/oodt/blob/098cc4fa/product/src/main/java/org/apache/oodt/product/handlers/ofsn/URLGetHandler.java
----------------------------------------------------------------------
diff --git a/product/src/main/java/org/apache/oodt/product/handlers/ofsn/URLGetHandler.java b/product/src/main/java/org/apache/oodt/product/handlers/ofsn/URLGetHandler.java
deleted file mode 100644
index 20944f3..0000000
--- a/product/src/main/java/org/apache/oodt/product/handlers/ofsn/URLGetHandler.java
+++ /dev/null
@@ -1,252 +0,0 @@
-/*
- * 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.ByteArrayInputStream;
-import java.io.File;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.Properties;
-import java.util.logging.Logger;
-
-//OODT imports
-import org.apache.oodt.product.ProductException;
-import org.apache.oodt.product.handlers.ofsn.AbstractCrawlLister;
-import org.apache.oodt.product.handlers.ofsn.OFSNGetHandler;
-
-/**
-  * A {@link OFSNGetHandler} for returning a URL listing pointing to files within an OFSN
- * 
- * NOTE: Configuration parameters for this class include:
- * 1. Server hostname
- * 2. Server port
- * 3. Webapp context-root
- * 4. Path to product-root
- * 5. Return type desired for URLs
- * 
- * @author rverma
- * @version $Revision$
- *
- */
-public class URLGetHandler extends AbstractCrawlLister implements OFSNGetHandler {
-
-	Logger LOG = Logger.getLogger(URLGetHandler.class.getName());
-	
-	// Constants
-	private static final String PROD_SERVER_HOSTNAME = "prodServerHostname";
-	private static final String PROD_SERVER_PORT = "prodServerPort";
-	private static final String PROD_SERVER_CONTEXT = "prodServerContextRoot";
-	private static final String PRODUCT_ROOT = "productRoot";
-	private static final String RETURN_TYPE = "returnType";
-	
-	protected static final String DEFAULT_RETURN_VALUE="";
-	protected static final String DEFAULT_PROD_SERVER_HOSTNAME = "localhost";
-	protected static final String DEFAULT_PROD_SERVER_PORT = "8080";
-	protected static final String DEFAULT_PROD_SERVER_CONTEXT = "web-grid";
-	protected static final String DEFAULT_PRODUCT_ROOT = "/some/path";
-	protected static final String DEFAULT_RETURN_TYPE = "RAW";
-	
-	// Instance
-	private String prodServerHostname = "";
-	private String prodServerPort = "";
-	private String prodServerContext = "";
-	private String productRoot = "";
-	private String returnType = "";
-	
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.oodt.product.handlers.ofsn.AbstractCrawlLister#configure(java.util.Properties)
-	 */
-	public void configure(Properties prop) {
-		
-		if (prop != null) {
-			if (prop.getProperty(PROD_SERVER_HOSTNAME) != null) {
-			  this.prodServerHostname = prop.getProperty(PROD_SERVER_HOSTNAME);
-			} else {
-				LOG.warning("Configuration property ["+PROD_SERVER_HOSTNAME+"] not specified, using default");
-				this.prodServerHostname = DEFAULT_PROD_SERVER_HOSTNAME;
-			}
-			LOG.info("Property ["+PROD_SERVER_HOSTNAME+"] set with value ["+this.prodServerHostname+"]");
-			
-			if (prop.getProperty(PROD_SERVER_PORT) != null) {
-			  this.prodServerPort = prop.getProperty(PROD_SERVER_PORT);
-			} else {
-				LOG.warning("Configuration property ["+PROD_SERVER_PORT+"] not specified, using default");
-				this.prodServerPort = DEFAULT_PROD_SERVER_PORT;
-			}
-			LOG.info("Property ["+PROD_SERVER_PORT+"] set with value ["+this.prodServerPort+"]");
-			
-			if (prop.getProperty(PROD_SERVER_CONTEXT) != null) {
-			  this.prodServerContext = prop.getProperty(PROD_SERVER_CONTEXT);
-			} else {
-				LOG.warning("Configuration property ["+PROD_SERVER_CONTEXT+"] not specified, using default");
-				this.prodServerContext = DEFAULT_PROD_SERVER_CONTEXT;
-			}
-			LOG.info("Property ["+PROD_SERVER_CONTEXT+"] set with value ["+this.prodServerContext+"]");
-			
-			if (prop.getProperty(PRODUCT_ROOT) != null) {
-			  this.productRoot = prop.getProperty(PRODUCT_ROOT);
-			} else {
-				LOG.warning("Configuration property ["+PRODUCT_ROOT+"] not specified, using default");
-				this.productRoot = DEFAULT_PRODUCT_ROOT;
-			}
-			LOG.info("Property ["+PRODUCT_ROOT+"] set with value ["+this.productRoot+"]");
-			
-			if (prop.getProperty(RETURN_TYPE) != null) {
-			  this.returnType = prop.getProperty(RETURN_TYPE);
-			} else {
-				LOG.warning("Configuration property ["+RETURN_TYPE+"] not specified, using default");
-				this.returnType = DEFAULT_RETURN_TYPE;
-			}
-			LOG.info("Property ["+RETURN_TYPE+"] set with value ["+this.returnType+"]");
-			
-		} else {
-			LOG.warning("Configuration properties could not be loaded");
-		}
-		
-	}
-
-	/*
-	 * (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 {
-	  
-		LOG.info("Retrieving chunk of URL listing for path: ["+filepath+"] at offset "
-	    			+ offset+" for "+length+" bytes");
-
-		String urlListing = DEFAULT_RETURN_VALUE;
-		try {
-			urlListing = getURLListing(filepath);
-		} catch (ProductException e) {
-			LOG.warning("Unable to obtain byte chunk ("+offset+" - "+(offset+length)+") " 
-					+ "for filepath listing ["+filepath+"]");
-			LOG.warning(e.getMessage());
-		} catch (IllegalArgumentException e) {
-			LOG.warning("Unable to obtain byte chunk ("+offset+" - "+(offset+length)+") " 
-					+ "for filepath listing ["+filepath+"]");
-			LOG.warning(e.getMessage());
-		}
-		
-        // Convert listing to bytes
-        byte[] retBytes = new byte[length];
-        byte[] metBytes = urlListing.getBytes();      
-        ByteArrayInputStream is = new ByteArrayInputStream(metBytes);
-        is.skip(offset);
-        is.read(retBytes, 0, length);
-        
-        return retBytes;
-	}
-
-	/**
-	 * Returns a new-line separated list of URLs for all files located under the given filepath
-	 * 
-	 * @param filePath the absolute path to a root-directory to get a product listing for
-	 * @return a string containing a new-line separated list of URLs
-	 * @throws ProductException
-	 */
-	private String getURLListing(String filePath) throws ProductException, 
-			IllegalArgumentException {     
-		
-		// crawl and collect all files (including within subdirs) under filepath
-		File[] fileListing = getListing(filePath);
-		 
-		// convert each crawled file's path into an OFSN download link
-		StringBuilder stringBuilder = new StringBuilder();
-	  for (File aFileListing : fileListing) {
-		File file = (File) aFileListing;
-		stringBuilder.append(buildOFSNURL(file).toString());
-		stringBuilder.append("\n");
-	  }
-		
-    	return stringBuilder.toString();
-	}
-	
-	/**
-	 * Returns a URL object representing the URL associated with this particular product file.
-	 * 
-	 * The URL is defined to have items such as: hostname, server port, server context root,
-	 * and return type configured based upon a product server configuration file
-	 * 
-	 * @param file the product file
-	 * @return a URL
-	 */
-	private URL buildOFSNURL(File file) {
-		URL url = null;
-		
-		String fileRelativePath = file.getAbsolutePath().substring(this.productRoot.length());
-		
-		// construct a URL for the file, optionally using a port if available
-		String ofsnPath;
-		if (this.prodServerPort != null) {
-			if (!this.prodServerPort.isEmpty()) {
-				ofsnPath = "http://" + this.prodServerHostname 
-				+ ":" + this.prodServerPort + "/" + this.prodServerContext 
-				+ "/prod?q=OFSN=" + fileRelativePath + "+AND+RT%3D" + this.returnType;
-			} else {
-				ofsnPath = "http://" + this.prodServerHostname 
-				+ "/" + this.prodServerContext + "/prod?q=OFSN=" + fileRelativePath 
-				+ "+AND+RT%3D" + this.returnType;
-			}
-		} else {
-			ofsnPath = "http://" + this.prodServerHostname 
-			+ "/" + this.prodServerContext + "/prod?q=OFSN=" + fileRelativePath 
-			+ "+AND+RT%3D" + this.returnType;
-		}
-		
-		try {
-			url = new URL(ofsnPath);
-		} catch (MalformedURLException e) {
-			LOG.warning(e.getMessage());
-		}
-		
-		return url;
-	}
-	
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.oodt.product.handlers.ofsn.OFSNGetHandler#sizeOf(java.lang.String)
-	 */
-	public long sizeOf(String filepath) {
-		String urlListing = DEFAULT_RETURN_VALUE;
-		try {
-			urlListing = getURLListing(filepath);
-		} catch (ProductException e) {
-			LOG.warning("Unable to obtain size information for filepath listing ["+filepath+"]");
-			LOG.warning(e.getMessage());
-		} catch (IllegalArgumentException e) {
-			LOG.warning("Unable to obtain size information for filepath listing ["+filepath+"]");
-			LOG.warning(e.getMessage());
-		}
-		
-		return urlListing.getBytes().length;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.oodt.product.handlers.ofsn.AbstractCrawlLister#getListing(java.lang.String)
-	 */
-	public File[] getListing(String filePath) throws ProductException, 
-			IllegalArgumentException {
-		return crawlFiles(new File(filePath), true, false);
-	} 
-
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/oodt/blob/098cc4fa/product/src/main/java/org/apache/oodt/product/handlers/ofsn/metadata/OFSNMetKeys.java
----------------------------------------------------------------------
diff --git a/product/src/main/java/org/apache/oodt/product/handlers/ofsn/metadata/OFSNMetKeys.java b/product/src/main/java/org/apache/oodt/product/handlers/ofsn/metadata/OFSNMetKeys.java
deleted file mode 100644
index e56d7aa..0000000
--- a/product/src/main/java/org/apache/oodt/product/handlers/ofsn/metadata/OFSNMetKeys.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * 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.metadata;
-
-/**
- * Met keys for use in OFSN handler definition.
- * 
- * @author mattmann
- * @version $Revision$
- * 
- */
-public interface OFSNMetKeys {
-
-  String LISTING_CMD = "listing";
-
-  String GET_CMD = "get";
-  
-  String OFSN_XML_CONF_FILE_KEY = "org.apache.oodt.product.handlers.ofsn.xmlConfigFilePath";
-  
-  String OFSN_COMPUTE_DIR_SIZE = "org.apache.oodt.product.handlers.ofsn.computeDirSize";
-  
-  String OFSN_COMPUTE_FILE_SIZE = "org.apache.oodt.product.handlers.ofsn.computeFileSize";
-
-
-}

http://git-wip-us.apache.org/repos/asf/oodt/blob/098cc4fa/product/src/main/java/org/apache/oodt/product/handlers/ofsn/metadata/OFSNXMLConfigMetKeys.java
----------------------------------------------------------------------
diff --git a/product/src/main/java/org/apache/oodt/product/handlers/ofsn/metadata/OFSNXMLConfigMetKeys.java b/product/src/main/java/org/apache/oodt/product/handlers/ofsn/metadata/OFSNXMLConfigMetKeys.java
deleted file mode 100644
index f4f8c53..0000000
--- a/product/src/main/java/org/apache/oodt/product/handlers/ofsn/metadata/OFSNXMLConfigMetKeys.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * 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.metadata;
-
-
-/**
- * 
- * Met Keys for the {@link org.apache.oodt.product.handlers.ofsn.OFSNFileHandlerConfigurationReader}
- * 
- * @author mattmann
- * @version $Revision$
- * 
- */
-public interface OFSNXMLConfigMetKeys {
-
-  String OFSN_CFG_ID_ATTR = "id";
-
-  String OFSN_CFG_NAME_ATTR = "name";
-
-  String OFSN_PRODUCT_ROOT_ATTR = "productRoot";
-
-  String HANDLER_TAG = "handler";
-
-  String HANDLER_CLASSNAME_ATTR = "class";
-
-  String HANDLER_NAME_ATTR = "name";
-
-  String HANDLER_TYPE_ATTR = "type";
-
-  String PROPERTY_TAG = "property";
-
-  String PROPERTY_NAME_ATTR = "name";
-
-  String PROPERTY_VALUE_ATTR = "value";
-  
-  /* optional handler property attributes supported by all handlers */
-  String PROPERTY_MIMETYPE_ATTR = "mimeType";
-
-}

http://git-wip-us.apache.org/repos/asf/oodt/blob/098cc4fa/product/src/main/java/org/apache/oodt/product/handlers/ofsn/metadata/OFSNXMLMetKeys.java
----------------------------------------------------------------------
diff --git a/product/src/main/java/org/apache/oodt/product/handlers/ofsn/metadata/OFSNXMLMetKeys.java b/product/src/main/java/org/apache/oodt/product/handlers/ofsn/metadata/OFSNXMLMetKeys.java
deleted file mode 100644
index 0bcdd75..0000000
--- a/product/src/main/java/org/apache/oodt/product/handlers/ofsn/metadata/OFSNXMLMetKeys.java
+++ /dev/null
@@ -1,43 +0,0 @@
-
-/*
- * 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.metadata;
-
-/**
- * @author mattmann
- * @version $Revision$
- *
- * <p>Describe your class here</p>.
- */
-public interface OFSNXMLMetKeys {
-    
-    String DIR_RESULT_TAG = "dirResult";
-    
-    String DIR_ENTRY_TAG = "dirEntry";
-    
-    String OFSN_TAG = "OFSN";
-    
-    String FILE_SIZE_TAG = "fileSize";
-    
-    String XML_MIME_TYPE = "text/xml";
-    
-    // FIXME: change namespace URI?
-    String DIR_LISTING_NS = "http://oodt.jpl.nasa.gov/xml/namespaces/dirlist/1.0";
-
-}

http://git-wip-us.apache.org/repos/asf/oodt/blob/098cc4fa/product/src/main/java/org/apache/oodt/product/handlers/ofsn/metadata/OODTMetKeys.java
----------------------------------------------------------------------
diff --git a/product/src/main/java/org/apache/oodt/product/handlers/ofsn/metadata/OODTMetKeys.java b/product/src/main/java/org/apache/oodt/product/handlers/ofsn/metadata/OODTMetKeys.java
deleted file mode 100644
index 56ff703..0000000
--- a/product/src/main/java/org/apache/oodt/product/handlers/ofsn/metadata/OODTMetKeys.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * 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.metadata;
-
-/**
- * @author mattmann
- * @version $Revision$
- *
- * <p>Describe your class here</p>.
- */
-public interface OODTMetKeys {
-    
-    String XMLQUERY_QUERYELEM_ROLE_ELEM = "elemName";
-
-}

http://git-wip-us.apache.org/repos/asf/oodt/blob/098cc4fa/product/src/main/java/org/apache/oodt/product/handlers/ofsn/metadata/XMLQueryMetKeys.java
----------------------------------------------------------------------
diff --git a/product/src/main/java/org/apache/oodt/product/handlers/ofsn/metadata/XMLQueryMetKeys.java b/product/src/main/java/org/apache/oodt/product/handlers/ofsn/metadata/XMLQueryMetKeys.java
deleted file mode 100644
index b9f1f79..0000000
--- a/product/src/main/java/org/apache/oodt/product/handlers/ofsn/metadata/XMLQueryMetKeys.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * 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.metadata;
-
-/**
- * @author mattmann
- * @version $Revision$
- *
- * <p>Describe your class here</p>.
- */
-public interface XMLQueryMetKeys {
-    
-    String OFSN = "OFSN";
-    
-    String RETURN_TYPE = "RT";
-}

http://git-wip-us.apache.org/repos/asf/oodt/blob/098cc4fa/product/src/main/java/org/apache/oodt/product/handlers/ofsn/util/OFSNObjectFactory.java
----------------------------------------------------------------------
diff --git a/product/src/main/java/org/apache/oodt/product/handlers/ofsn/util/OFSNObjectFactory.java b/product/src/main/java/org/apache/oodt/product/handlers/ofsn/util/OFSNObjectFactory.java
deleted file mode 100644
index 6de92e9..0000000
--- a/product/src/main/java/org/apache/oodt/product/handlers/ofsn/util/OFSNObjectFactory.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * 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.util;
-
-//OODT imports
-import org.apache.oodt.product.handlers.ofsn.OFSNGetHandler;
-import org.apache.oodt.product.handlers.ofsn.OFSNListHandler;
-
-//JDK imports
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-/**
- * 
- * The Object factory to use in the OFSN product server.
- * 
- * @author mattmann
- * @version $Revision$
- * 
- */
-public final class OFSNObjectFactory {
-
-  private static final Logger LOG = Logger.getLogger(OFSNObjectFactory.class
-      .getName());
-
-  /**
-   * <p>
-   * Constructs a new {@link OFSNListHandler} from the specified
-   * <code>className</code>.
-   * </p>
-   * 
-   * @param className
-   *          The class name of the OFSNListHandler object to create.
-   * @return A newly constructed {@link OFSNListHandler} object.
-   */
-  public static OFSNListHandler getListHandler(String className) {
-    try {
-      Class<OFSNListHandler> listHandler = (Class<OFSNListHandler>) Class
-          .forName(className);
-      return listHandler.newInstance();
-    } catch (ClassNotFoundException e) {
-      LOG.log(Level.SEVERE, e.getMessage());
-      LOG.log(Level.WARNING,
-          "ClassNotFoundException when loading list handler class " + className
-              + " Message: " + e.getMessage());
-    } catch (InstantiationException e) {
-      LOG.log(Level.SEVERE, e.getMessage());
-      LOG.log(Level.WARNING,
-          "InstantiationException when loading list handler class " + className
-              + " Message: " + e.getMessage());
-    } catch (IllegalAccessException e) {
-      LOG.log(Level.SEVERE, e.getMessage());
-      LOG.log(Level.WARNING,
-          "IllegalAccessException when loading list handler class " + className
-              + " Message: " + e.getMessage());
-    }
-
-    return null;
-  }
-
-  /**
-   * <p>
-   * Constructs a new {@link OFSNGetHandler} from the specified
-   * <code>className</code>.
-   * </p>
-   * 
-   * @param className
-   *          The class name of the OFSNGetHandler object to create.
-   * @return A newly constructed {@link OFSNGetHandler} object.
-   */
-  public static OFSNGetHandler getGetHandler(String className) {
-    try {
-      Class<OFSNGetHandler> getHandler = (Class<OFSNGetHandler>) Class
-          .forName(className);
-      return getHandler.newInstance();
-    } catch (ClassNotFoundException e) {
-      LOG.log(Level.SEVERE, e.getMessage());
-      LOG.log(Level.WARNING,
-          "ClassNotFoundException when loading get handler class " + className
-              + " Message: " + e.getMessage());
-    } catch (InstantiationException e) {
-      LOG.log(Level.SEVERE, e.getMessage());
-      LOG.log(Level.WARNING,
-          "InstantiationException when loading get handler class " + className
-              + " Message: " + e.getMessage());
-    } catch (IllegalAccessException e) {
-      LOG.log(Level.SEVERE, e.getMessage());
-      LOG.log(Level.WARNING,
-          "IllegalAccessException when loading get handler class " + className
-              + " Message: " + e.getMessage());
-    }
-
-    return null;
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/oodt/blob/098cc4fa/product/src/main/java/org/apache/oodt/product/handlers/ofsn/util/OFSNUtils.java
----------------------------------------------------------------------
diff --git a/product/src/main/java/org/apache/oodt/product/handlers/ofsn/util/OFSNUtils.java b/product/src/main/java/org/apache/oodt/product/handlers/ofsn/util/OFSNUtils.java
deleted file mode 100644
index b8b4583..0000000
--- a/product/src/main/java/org/apache/oodt/product/handlers/ofsn/util/OFSNUtils.java
+++ /dev/null
@@ -1,197 +0,0 @@
-/*
- * 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.util;
-
-//OODT imports
-
-import org.apache.commons.io.FileUtils;
-import org.apache.commons.io.FilenameUtils;
-import org.apache.oodt.commons.xml.XMLUtils;
-import org.apache.oodt.product.handlers.ofsn.OFSNHandlerConfig;
-import org.apache.oodt.product.handlers.ofsn.metadata.OFSNMetKeys;
-import org.apache.oodt.product.handlers.ofsn.metadata.OFSNXMLMetKeys;
-import org.apache.oodt.product.handlers.ofsn.metadata.OODTMetKeys;
-import org.apache.oodt.xmlquery.QueryElement;
-import org.apache.oodt.xmlquery.XMLQuery;
-
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.util.Iterator;
-import java.util.List;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipOutputStream;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
-
-//JDK imports
-//APACHE imports
-
-/**
- * 
- * 
- * @author mattmann
- * @version $Revision$
- * 
- */
-public final class OFSNUtils implements OODTMetKeys, OFSNXMLMetKeys,
-    OFSNMetKeys {
-  public static final int INT = 1024;
-  private static Logger LOG = Logger.getLogger(OFSNUtils.class.getName());
-  public static String extractFieldFromQuery(XMLQuery query, String name) {
-    for (Iterator<QueryElement> i = query.getWhereElementSet().iterator(); i
-        .hasNext();) {
-      QueryElement element = i.next();
-      if (element.getRole().equals(XMLQUERY_QUERYELEM_ROLE_ELEM)
-          && element.getValue().equalsIgnoreCase(name)) {
-        // get the next element and ensure that it is a LITERAL, and
-        // return that
-        QueryElement litElement = i.next();
-        return litElement.getValue();
-      }
-    }
-
-    return null;
-  }
-
-  public static Document getOFSNDoc(List<File> fileList, OFSNHandlerConfig cfg,
-      String productRoot, boolean showDirSize, boolean showFileSize) {
-    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
-    factory.setNamespaceAware(true);
-    Document document;
-
-    try {
-      DocumentBuilder builder = factory.newDocumentBuilder();
-      document = builder.newDocument();
-
-      Element root = (Element) document.createElement(DIR_RESULT_TAG);
-      XMLUtils.addAttribute(document, root, "xmlns", DIR_LISTING_NS);
-      document.appendChild(root);
-
-      for (File file : fileList) {
-        Element dirEntryElem = XMLUtils.addNode(document, root, DIR_ENTRY_TAG);
-        String ofsn = toOFSN(file.getAbsolutePath(), productRoot);
-        //This ensures that we get ofsn names with unix style separators.
-        //On a Windows machine, the product server would return '\'
-        //separators.
-        String unixStyleOFSN = FilenameUtils.separatorsToUnix(ofsn);
-        if (cfg.getType().equals(LISTING_CMD)) {
-          if (!Boolean.valueOf(cfg.getHandlerConf().getProperty("isSizeCmd"))) {
-            XMLUtils.addNode(document, dirEntryElem, OFSN_TAG, unixStyleOFSN);
-          }
-        }
-
-        long size = Long.MIN_VALUE;
-
-        if (file.isDirectory()) {
-          if (showDirSize) {
-            size = FileUtils.sizeOfDirectory(file);
-          }
-        } else {
-          if (showFileSize) {
-            size = file.length();
-          }
-        }
-
-        if (size != Long.MIN_VALUE) {
-          XMLUtils.addNode(document, dirEntryElem, FILE_SIZE_TAG, String
-              .valueOf(size));
-        }
-      }
-
-      return document;
-    } catch (ParserConfigurationException e) {
-      LOG.log(Level.SEVERE, e.getMessage());
-      return null;
-    }
-
-  }
-
-  public static String relativeize(String path, String productRoot) {
-    return productRoot + (path.startsWith("/") ? path.substring(1) : path);
-  }
-
-  public static File buildZipFile(String zipFileFullPath, File[] files) {
-    // Create a buffer for reading the files
-    byte[] buf = new byte[INT];
-    ZipOutputStream out = null;
-
-    try {
-      // Create the ZIP file
-      out = new ZipOutputStream(new FileOutputStream(zipFileFullPath));
-
-      for (File file : files) {
-        FileInputStream in = new FileInputStream(file);
-
-        // Add ZIP entry to output stream.
-        out.putNextEntry(new ZipEntry(file.getName()));
-
-        // Transfer bytes from the file to the ZIP file
-        int len;
-        while ((len = in.read(buf)) > 0) {
-          out.write(buf, 0, len);
-        }
-
-        // Complete the entry
-        out.closeEntry();
-        in.close();
-      }
-    } catch (IOException e) {
-      LOG.log(Level.SEVERE, e.getMessage());
-    } finally {
-      if (out != null) {
-        try {
-          out.close();
-        } catch (Exception ignore) {
-        }
-
-      }
-    }
-
-    return new File(zipFileFullPath);
-
-  }
-
-  public static boolean validateOFSN(String ofsn) {
-      if (ofsn == null) {
-          return false;
-      } else {
-          return !ofsn.equals("") && !ofsn.matches(".*\\.\\..*");
-      }
-  }
-  
-  private static String toOFSN(String absolutePath, String productRootPath) {
-    if (absolutePath.startsWith(productRootPath)) {
-      return absolutePath.substring(productRootPath.length());
-    } else {
-      // must have been a *.zip file, generated in some cache dir
-      // just return the file name
-      return new File(absolutePath).getName();
-    }
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/oodt/blob/098cc4fa/product/src/main/java/org/apache/oodt/xmlquery/ChunkedProductInputStream.java
----------------------------------------------------------------------
diff --git a/product/src/main/java/org/apache/oodt/xmlquery/ChunkedProductInputStream.java b/product/src/main/java/org/apache/oodt/xmlquery/ChunkedProductInputStream.java
deleted file mode 100644
index f4376f0..0000000
--- a/product/src/main/java/org/apache/oodt/xmlquery/ChunkedProductInputStream.java
+++ /dev/null
@@ -1,215 +0,0 @@
-/*
- * 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.xmlquery;
-
-import org.apache.oodt.product.ProductException;
-import org.apache.oodt.product.Retriever;
-
-import java.io.IOException;
-import java.io.InputStream;
-
-/**
- * Streamer for chunked products.
- *
- * This streamer starts a background thread to repeatedly read chunks of a product into a
- * bounded buffer.  Reads read from chunks in the buffer.
- *
- * @author Kelly
- * @version $Revision: 1.5 $
- */
-final class ChunkedProductInputStream extends InputStream {
-	/**
-	 * Creates a new <code>ChunkedProductInputStream</code> instance.
-	 *
-	 * @param id Product ID.
-	 * @param retriever Retriever to use.
-	 * @param size How big the product is.
-	 */
-	ChunkedProductInputStream(String id, Retriever retriever, long size) {
-		this.id = id;							       // Save product ID
-		this.size = size;						       // Save size
-		this.retriever = retriever;					       // And the retriever used to get chunks
-		open = true;							       // Start out open
-		eof = false;                                                           // And not yet reached EOF, even if size=0
-	}
-
-
-	/**
-	 * Read a single byte.
-	 *
-	 * This method reads from a chunk stored in the bounded buffer.  It may block if
-	 * there are no more blocks in the buffer.
-	 *
-	 * @return Byte, or -1 if at end of file.
-	 * @throws IOException if an error occurs.
-	 */
-	public int read() throws IOException {
-		checkOpen();                                                           // Make sure the stream's open
-		if (eof) {
-		  throw new IOException("End of file");                   // Already reached EOF?  You lose.
-		}
-		fetchBlock();							       // Get a block.
-		if (eof) {
-		  return -1;                               // No more blocks?  Signal EOF.
-		}
-		return block[blockIndex++];					       // Yield next byte (promoted) from block.
-	}
-
-	/**
-	 * Read into an array.
-	 *
-	 * This method reads from a chunk stored in the bounded buffer.  It may block if
-	 * there are no more blocks in the buffer.
-	 *
-	 * @param b a <code>byte[]</code> value.
-	 * @param offset Where in <var>b</var> to save read bytes.
-	 * @param length How many bytes to try to read.
-	 * @return Number of bytes actually read, or -1 at end of file.
-	 * @throws IOException if an error occurs.
-	 */
-	public int read(byte[] b, int offset, int length) throws IOException {
-		checkOpen();							       // Check if open
-		if (offset < 0 || offset > b.length || length < 0 || (offset + length) > b.length || (offset + length) < 0) {
-		  throw new IllegalArgumentException("Illegal offset=" + offset + "/length=" + length
-											 + " for byte array of length " + b.length);
-		} else if (length == 0)						       // Want zero?
-		{
-		  return 0;                               // Then you get zero
-		}
-		if (eof) {
-		  throw new IOException("End of file");                   // Already reached EOF?  You lose.
-		}
-		fetchBlock();							       // Get a block.
-		if (eof) {
-		  return -1;                               // No more blocks?  Signal EOF.
-		}
-		int amount = Math.min(length, block.length - blockIndex);	       // Return requested amount or whatever's left
-		System.arraycopy(block, blockIndex, b, offset, amount);		       // Transfer
-		blockIndex += amount;						       // Advance
-		return amount;							       // Done
-	}
-
-	/**
-	 * Fetch another block.
-	 *
-	 * @throws IOException if an error occurs.
-	 */
-	private void fetchBlock() throws IOException {
-		if (block == null || blockIndex == block.length) {
-		  try {               // No block, or current block exhausted?
-			if (productIndex == size) {                       // No more blocks left to get?
-			  block = null;                           // Drop current block
-			  eof = true;                           // Signal EOF
-			} else {                               // Otherwise there are more blocks
-			  int x = (int) Math.min(BLOCK_SIZE, size - productIndex);  // Can only fetch so much
-			  block = retriever.retrieveChunk(id, productIndex, x);  // Get x's worth of data
-			  blockIndex = 0;                           // Start at block's beginning
-			  productIndex += block.length;                   // Advance product index by block size
-			}
-		  } catch (ProductException ex) {
-			throw new IOException(ex.getMessage());
-		  }
-		}
-	}
-
-	/**
-	 * Return number of bytes currently available.
-	 *
-	 * If we have a block, the amount of available bytes is whatever's in the block.
-	 * Otherwise we don't know how many bytes, and we could block, so say zero are available.
-	 *
-	 * @return an <code>int</code> value.
-	 * @throws IOException if an error occurs.
-	 */
-	public int available() throws IOException {
-		checkOpen();							       // Open?
-		return block == null? 0 : block.length - blockIndex;		       // If no current block, you can only get 0
-	}
-
-	public void close() throws IOException {
-		checkOpen();							       // Open?
-	  retriever.close(id);					       // Tell retriever we're done
-	  open = false;						       // Flag it
-	}
-
-	/**
-	 * Mark is not supported.
-	 *
-	 * @param limit Unused parameter.
-	 */
-	public void mark(int limit) {
-		throw new UnsupportedOperationException("Mark not supported");
-	}
-
-	/**
-	 * Reset is not supported.
-	 */
-	public void reset() {
-		throw new UnsupportedOperationException("Reset not supported");
-	}
-
-	/**
-	 * Mark/reset operations are not supported.
-	 *
-	 * @return False.
-	 */
-	public boolean markSuppoted() {
-		return false;
-	}
-	
-	/**
-	 * Throw an exception if the stream's closed.
-	 *
-	 * @throws IOException if the stream's closed.
-	 */
-	private void checkOpen() throws IOException {
-		if (open) {
-		  return;
-		}
-		throw new IOException("Stream closed");
-	}
-
-	/** Product ID. */
-	private String id;
-
-	/** What can retrieve the product. */
-	private Retriever retriever;
-
-	/** How big the product is. */
-	private long size;
-
-	/** Current block or null if there's no current block. */
-	private byte[] block;
-
-	/** From where in <code>block</code> to read. */
-	private int blockIndex;
-
-	/** From where in the product to read the next block. */
-	private long productIndex = 0L;
-
-	/** True if we got to the end of file. */
-	private boolean eof;
-	
-	/** Is the stream open? */
-	private boolean open;
-
-  public static final int VAL = 4096;
-  /** Size of chunks. */
-	private static final int BLOCK_SIZE = Integer.getInteger("org.apache.oodt.xmlquery.blockSize", VAL);
-}

http://git-wip-us.apache.org/repos/asf/oodt/blob/098cc4fa/product/src/main/java/org/apache/oodt/xmlquery/LargeResult.java
----------------------------------------------------------------------
diff --git a/product/src/main/java/org/apache/oodt/xmlquery/LargeResult.java b/product/src/main/java/org/apache/oodt/xmlquery/LargeResult.java
deleted file mode 100644
index 316650d..0000000
--- a/product/src/main/java/org/apache/oodt/xmlquery/LargeResult.java
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- * 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.xmlquery;
-
-import java.util.List;
-import java.util.StringTokenizer;
-import java.io.InputStream;
-import java.io.IOException;
-
-// FIXME: change MIME type application/vnd.jpl.large-product?
-
-/**
- * A <em>large</em> result is a result for <em>large</em> products.
- *
- * What is large?  Some might say large is something that exceeds most other things of
- * like kind in bulk, capacity, quantity, superficial dimensions, or number of constituent
- * units.  Large might be big, great, capacious, extensive.  Large might be opposed to
- * small; as, a large horse; a large house or room; a large lake or pool; a large jug or
- * spoon; a large vineyard; a large army; a large city.  Some might say that particularly
- * if they're named Webster.
- *
- * @author Kelly
- * @version $Revision: 1.2 $
- */
-public class LargeResult extends Result {
-	/**
-	 * Creates a new <code>LargeResult</code> instance.
-	 *
-	 * @param result a <code>Result</code> value.
-	 */
-	public LargeResult(Result result) {
-		super(result.getID(), "application/vnd.jpl.large-product", result.getProfileID(), result.getResourceID(),
-			result.getHeaders(), transformMimeType(result));
-		StringTokenizer st = new StringTokenizer((String) value);
-		st.nextToken();
-		this.size = Long.parseLong(st.nextToken());
-	}
-
-	/**
-	 * Creates a new <code>LargeResult</code> instance.
-	 *
-	 * @param id Result ID.
-	 * @param mimeType MIME type.
-	 * @param profileID Profile ID.
-	 * @param resourceID Resource ID.
-	 * @param headers Headers.
-	 * @param size Size of the product.
-	 */
-	public LargeResult(String id, String mimeType, String profileID, String resourceID, List headers, long size) {
-		super(id, "application/vnd.jpl.large-product", profileID, resourceID, headers, mimeType + " " + size);
-		this.size = size;
-	}
-
-	/**
-	 * Get the size of the product.
-	 *
-	 * @return Its size.
-	 */
-	public final long getSize() {
-		return size;
-	}
-
-	public final String getMimeType() {
-		return new StringTokenizer((String) value).nextToken();
-	}
-
-	/**
-	 * Return the result's value.
-	 *
-	 * @return a String.
-	 * @deprecated This method always treats its value as if it were a String.  Worse,
-	 * for very large results, it cannot contain the entire result in memory.  Use
-	 * {@link #getInputStream} instead to perform stream processing on result data.
-	 */
-	public final Object getValue() {
-		Object value = null;
-		InputStream in = null;
-		try {
-			if (size > Integer.MAX_VALUE) {
-			  throw new IllegalStateException("Cannot use getValue() for this product, result is too large; "
-											  + "use LargeResult.getInputStream instead");
-			}
-			int sizeToRead = (int) size;
-			byte[] buf = new byte[sizeToRead];
-			int index = 0;
-			int num;
-			in = getInputStream();
-			while ((num = in.read(buf, index, sizeToRead)) != -1) {
-				index += num;
-				sizeToRead -= num;
-				if (sizeToRead == 0) {
-				  break;
-				}
-			}
-
-			// OK, this sucks.  Sucks sucks sucks.  Look, getValue is not to
-			// be used anyway.  It sucks.  But dammit, there's some annoying
-			// code over in EDRN which is using it when they should be using
-			// getInputStream.  Basically, if you call this, you're a hoser.
-			// And if you call it and you're not expecting a String, you're a
-			// loser/hoser.  DEPRECATED!
-			value = new String(buf);
-
-		} catch (IOException ex) {
-			throw new IllegalStateException("Unexpected IOException: " + ex.getMessage());
-		} finally {
-			if (in != null) {
-			  try {
-				in.close();
-			  } catch (IOException ignore) {
-			  }
-			}
-		}
-		return value;
-	}
-
-	/** Size of the product. */
-	private long size;
-
-	/**
-	 * Get an input stream that streams the result from the product server.
-	 *
-	 * @return an <code>InputStream</code> value.
-	 * @throws IOException if an error occurs.
-	 */
-	public InputStream getInputStream() throws IOException {
-		return new ChunkedProductInputStream(id, retriever, size);
-	}
-
-	/**
-	 * Given an existing <code>Result</code> yield its MIME type.
-	 *
-	 * The existing <code>Result</code> might be a <code>LargeResult</code>, in which
-	 * case the real MIME type is hidden in the value.  Otherwise, it's directly in
-	 * the object.
-	 *
-	 * @param result a <code>Result</code> value.
-	 * @return The MIME type.
-	 */
-	private static String transformMimeType(Result result) {
-		if ("application/vnd.jpl.large-product".equals(result.mimeType)) {
-		  return (String) result.value;
-		} else {
-		  return result.mimeType + " 0";
-		}
-	}
-
-	/** Serial version unique ID. */
-	static final long serialVersionUID = -969838775595705444L;
-}

http://git-wip-us.apache.org/repos/asf/oodt/blob/098cc4fa/product/src/site/resources/images/delegation.png
----------------------------------------------------------------------
diff --git a/product/src/site/resources/images/delegation.png b/product/src/site/resources/images/delegation.png
deleted file mode 100644
index aea86e3..0000000
Binary files a/product/src/site/resources/images/delegation.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/oodt/blob/098cc4fa/product/src/site/resources/images/delegation.psd
----------------------------------------------------------------------
diff --git a/product/src/site/resources/images/delegation.psd b/product/src/site/resources/images/delegation.psd
deleted file mode 100644
index 9b74dca..0000000
Binary files a/product/src/site/resources/images/delegation.psd and /dev/null differ

http://git-wip-us.apache.org/repos/asf/oodt/blob/098cc4fa/product/src/site/resources/images/grid-product.jpg
----------------------------------------------------------------------
diff --git a/product/src/site/resources/images/grid-product.jpg b/product/src/site/resources/images/grid-product.jpg
deleted file mode 100644
index 7b1126e..0000000
Binary files a/product/src/site/resources/images/grid-product.jpg and /dev/null differ

http://git-wip-us.apache.org/repos/asf/oodt/blob/098cc4fa/product/src/site/site.xml
----------------------------------------------------------------------
diff --git a/product/src/site/site.xml b/product/src/site/site.xml
deleted file mode 100644
index 0b2c94c..0000000
--- a/product/src/site/site.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one or more contributor
-license agreements.  See the NOTICE.txt 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.
--->
-<project name="Product Service">
-
-  <body>
-    <links>
-      <item name="OODT" href="../oodt-site/"/>
-      <item name="Grid" href="../grid/"/>
-    </links>
-
-    <menu ref="reports" inherit="bottom"/>
-    <menu name="User's Guide">
-      <item name="Tutorials" href="tutorials/"/>
-      <item name="Product Servlet" href="servlet/"/>
-    </menu>
-  </body>
-</project>

http://git-wip-us.apache.org/repos/asf/oodt/blob/098cc4fa/product/src/site/xdoc/servlet/index.xml
----------------------------------------------------------------------
diff --git a/product/src/site/xdoc/servlet/index.xml b/product/src/site/xdoc/servlet/index.xml
deleted file mode 100644
index 22f9bd5..0000000
--- a/product/src/site/xdoc/servlet/index.xml
+++ /dev/null
@@ -1,243 +0,0 @@
-<?xml version="1.0" 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.
--->
-<document>
-  <properties>
-    <title>Using the Product Servlet</title>
-    <author email="kelly@apache.org">Sean Kelly</author>
-  </properties>
-
-  <body>
-    <section name="Using the Product Servlet">
-      <p>The query servlet is nice for general purpose queries, but for
-	those who just want to retrieve products, it's a bit annoying to
-	have to process all that XML and do base-64 conversions.  Is there
-	a simpler way?  Absolutely.  The product servlet deals with just
-	products, and delivers them in their appropriate form direct over
-	HTTP.
-      </p>
-    </section>
-    <section name="Requirements">
-
-      <p>The product servlet provides HTTP access to products, so
-	naturally, you'll need to use a language or system that supports
-	HTTP client access to HTTP servers.  Where can you find such a
-	system?  Your handy-dandy web browser is one!  Most programming
-	languages also have HTTP APIs either built-in or freely available.
-      </p>
-
-      <p>You also need to know</p>
-
-      <ul>
-	<li>The URL of the product servlet that has access to the
-	  product server you want to query.</li>
-	<li>The object name of the product server you want to
-	  access.</li>
-	<li>The keyword query expression that can be understood by the
-	  product server.</li>
-      </ul>
-    </section>
-    <section name="Making a Query">
-
-      <p>The product servlet accepts either <code>GET</code> or
-	<code>POST</code> requests of URL-encoded form data.  In
-	response, it delivers a matching product (if any can be found)
-	in the format appropriate to the product's MIME type.  You can
-	also request a specific MIME type.  If there's no matching
-	product, you get HTTP error 404 (not found).
-      </p>
-
-      <p>The parameters that the servlet expects are:</p>
-
-      <table border="0" cellpadding="3" cellspacing="0">
-
-	<thead>
-	  <tr>
-	    <th>Parameter Name</th>
-	    <th>Obligation</th>
-	    <th>Meaning</th>
-	  </tr>
-	</thead>
-
-	<tbody>
-	  <tr>
-	    <td><code>object</code></td>
-	    <td>Once</td>
-	    <td>Names the product server to receive the query.  This
-	      parameter must be specified exactly once and takes the form
-	      <code>urn:eda:<var>proto</var>:<var>name</var></code>, such
-	      as <code>urn:eda:rmi:PDS.Atmos.Product</code> for the
-	      RMI-accessed Atmoshpheres node of the Planetary Data System.
-	    </td>
-
-	  </tr>
-
-	  <tr>
-	    <td><code>keywordQuery</code></td>
-	    <td>Once</td>
-	    <td>Lists the keyword query expression to pass to the
-	      product server, such as <code>PatientID = 19928</code> or
-	      <code>ONLINE_FILE_SPECIFICATION_NAME =
-		data/images/mars.jpg</code>.
-	    </td>
-
-	  </tr>
-
-	  <tr>
-	    <td><code>id</code></td>
-	    <td>None or Once</td>
-	    <td>Optional parameter that identifies a single product to
-	      retrieve if more than one product match.  A product server
-	      may return multiple matching products.  By default, the
-	      product servlet returns the first matching product only.  By
-	      specifying the <code>id</code> parameter, you can select a
-	      specific product when more than one match.  (In practice,
-	      not a single product server <em>to date</em> has ever
-	      returned more than one match.)
-	    </td>
-
-	  </tr>
-
-	  <tr>
-	    <td><code>mimeType</code></td>
-	    <td>Zero to Many</td>
-	    <td>Optional parameter that lists acceptable MIME types for
-	      the product (see below).
-	    </td>
-
-	  </tr>
-
-	</tbody>
-      </table>
-    </section>
-    <section name="MIME Types">
-
-      <p>Many product servers are capable of conversion of products from
-	a system-specific storage medium into an Internet-standard
-	interoperable format.  Internet-standard MIME types are what
-	drives this mechanism.  The product servlet can take a list of
-	specific MIME types and pass them to the product server for
-	consideration in retrieving your products.
-      </p>
-
-      <p>MIME type conversions are like <em>suggestions</em> to product
-	servers.  Product servers are not obligated to honor all
-	conversions, and indeed you may well receive 404 (not found) for a
-	conversion that makes no sense to a particular product server
-	(such as an audio clip to <code>text/html</code>).
-      </p>
-
-      <p>The <code>mimeType</code> parameter is what drives this
-	mechanism.  By specifying one or more <code>mimeType</code>
-	parameters in your <code>GET</code> or <code>POST</code> request,
-	you list the preferred MIME types in which you would like the
-	product delivered.  Furthermore, you can use wildcards to further
-	enable a product server to satisfy you.  The ordering of the
-	parameters is significant.
-      </p>
-
-      <p>Here are some examples.  Suppose the request URI part of the
-	URL contained:</p>
-
-      <pre>...mimeType=text/rtf&amp;mimeType=text/*...</pre>
-
-      <p>This specifies two MIME types:</p>
-
-      <ol>
-	<li><code>text/rtf</code>, the Rich Text Format, is the
-	  preferred format for delivering products.
-	</li>
-
-	<li><code>text/*</code> means any text type.  Any text is better
-	  than no text if for some reason the product server can't give a
-	  Rich Text Format product.
-	</li>
-      </ol>
-
-      <p>Here's another example:</p>
-
-      <pre>...mimeType=image/png&amp;mimeType=image/jpeg...</pre>
-
-      <p>This indicates that you'd like a Portable Network Graphic
-	format image, if possible, but will settle for a JPEG-JFIF format
-	image.  No other image format (especially not the proprietary and
-	ancient GIF format) is acceptable.  Adding an additional
-	<code>&amp;mimeType=image/*</code> would mean any image format
-	would be fine.  Adding <code>&amp;mimeType=*/*</code> means
-	<em>any format</em> would be acceptable, be it audio, video, text,
-	image, or otherwise.
-      </p>
-
-      <p>If there are <em>no</em> <code>mimeType</code> parameters, then
-	the product servlet uses a default list containing just
-	<code>*/*</code>, meaning any type is fine.
-      </p>
-    </section>
-    <section name="Example">
-
-      <p>To retrieve an image of Mars from the PDS product server at the
-	Imaging Node, in PNG format if possible and any image format
-	otherwise, try the following:
-      </p>
-
-      <p><code><a
-	    href="http://starbrite.jpl.nasa.gov/prod?mimeType=image/png&amp;mimeType=image/*&amp;object=urn:eda:rmi:PDS.Img.Product&amp;keywordQuery=ONLINE_FILE_SPECIFICATION_NAME+%3D+thumbnail/mgs-m-moc-na_wa-2-sdp-l0-v1.0/mgsc_1082/m09063/m0906352.imq.jpg">http://starbrite.jpl.nasa.gov/prod?<br/>mimeType=image/png&amp;<br/>mimeType=image/*&amp;<br/>object=urn:eda:rmi:PDS.Img.Product&amp;<br/>keywordQuery=OFSN+%3D+thumbnail/mgs-m-moc-na_wa-2-sdp-l0-v1.0/mgsc_1082/m09063/m0906352.imq.jpg</a></code></p>
-
-      <p>This URL contains linebreaks for readability only.  Let's take
-	this URL apart to see what's going on:
-      </p>
-
-      <ul>
-	<li>The URL to the product servlet in this case is
-	  <code>http://starbrite.jpl.nasa.gov/prod</code>.  Often the URL
-	  will take this form, or may be
-	  <code>http://<var>hostname</var>/servlet/jpl.oodt.servlets.ProductServlet</code>.
-	  Most people prefer the shorter form.
-	</li>
-
-	<li>The question mark <code>?</code> separates the request URI
-	  from its parameters.
-	</li>
-
-	<li>The first parameter, <code>mimeType=image/png</code>, says
-	  that Portable Network Graphics images are preferred.
-	</li>
-
-	<li>The second parameter, <code>mimeType=image/*</code>, says
-	  that if the product server can't convert to or other provide
-	  Portable Network Graphics format images, then <em>any image
-	    format</em> is acceptable.
-	</li>
-
-	<li>The third parameter,
-	  <code>object=urn:eda:rmi:PDS.Img.Product</code>, identifies the
-	  product server.
-	</li>
-
-	<li>The fourth parameter, <code>keywordQuery=...</code> names
-	  the query expression.  In this case, it's <code>OFSN =
-	    thumbnail/mgs-m-moc-na_wa-2-sdp-l0-v1.0/mgsc_1082/m09063/m0906352.imq.jpg</code>.
-	</li>
-      </ul>
-
-      <p>The response to this URL's GET request is a JPEG-JFIF image
-	(sorry, PNG's not yet available from the PDS Image Node)
-	containing a picture of some planetary surface.  Neat, huh?
-      </p>
-    </section>
-  </body>
-</document>

http://git-wip-us.apache.org/repos/asf/oodt/blob/098cc4fa/product/src/site/xdoc/tutorials/index.xml
----------------------------------------------------------------------
diff --git a/product/src/site/xdoc/tutorials/index.xml b/product/src/site/xdoc/tutorials/index.xml
deleted file mode 100755
index e130ea9..0000000
--- a/product/src/site/xdoc/tutorials/index.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" 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.
--->
-<document>
-  <properties>
-    <title>Product Service Tutorials</title>
-    <author email="Sean.Kelly@jpl.nasa.gov">Sean Kelly</author>
-  </properties>
-
-  <body>
-    <section name="Product Service Tutorials">
-      <p>The following tutorials are available:</p>
-      <ul>
-	<li><a href="./ps">Your First Product Service</a></li>
-	<li><a href="./qh">Developing a Query Handler</a></li>
-	<li><a href="./lh">Serving Large Products</a></li>
-      </ul>
-    </section>
-  </body>
-</document>
-
-


Mime
View raw message