oodt-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mattm...@apache.org
Subject [24/88] [abbrv] [partial] oodt git commit: Record change for OODT-836, OODT-837.
Date Mon, 17 Jul 2017 23:05:39 GMT
http://git-wip-us.apache.org/repos/asf/oodt/blob/098cc4fa/grid/src/main/java/org/apache/oodt/grid/ProfileQueryServlet.java
----------------------------------------------------------------------
diff --git a/grid/src/main/java/org/apache/oodt/grid/ProfileQueryServlet.java b/grid/src/main/java/org/apache/oodt/grid/ProfileQueryServlet.java
deleted file mode 100755
index 478202d..0000000
--- a/grid/src/main/java/org/apache/oodt/grid/ProfileQueryServlet.java
+++ /dev/null
@@ -1,141 +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.grid;
-
-import org.apache.oodt.profile.Profile;
-import org.apache.oodt.profile.handlers.ProfileHandler;
-import org.apache.oodt.xmlquery.QueryElement;
-import org.apache.oodt.xmlquery.XMLQuery;
-import org.w3c.dom.Document;
-import org.w3c.dom.Node;
-
-import java.io.IOException;
-import java.util.*;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.xml.transform.OutputKeys;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.stream.StreamResult;
-
-
-/**
- * Profile query servlet handles profile queries.  It returns every matching profile from
- * every query handler that provides matching profiles.  If no handlers are installed,
- * then it returns an empty <profiles> document.
- * 
- */
-public class ProfileQueryServlet extends QueryServlet {
-	/** {@inheritDoc} */
-	protected List getServers(Configuration config) {
-		return config.getProfileServers();
-	}
-
-	/** {@inheritDoc} */
-	protected void handleQuery(XMLQuery query, List handlers, HttpServletRequest req, HttpServletResponse res)
-		throws IOException {
-		// Find if the query should be targeted to specific handlers.
-		Set ids = new HashSet();
-		if (query.getFromElementSet() != null) {
-		  for (Object o : query.getFromElementSet()) {
-			QueryElement qe = (QueryElement) o;
-			if ("handler".equals(qe.getRole()) && qe.getValue() != null) {
-			  ids.add(qe.getValue());
-			}
-		  }
-		}
-		
-		res.setContentType("text/xml");					       // XML, comin' at ya
-		res.getWriter().println("<?xml version='1.0' encoding='UTF-8'?>");     // UTF-8 no less.  Boo-ya.
-		res.getWriter().println("<!DOCTYPE profiles PUBLIC '"		       // Get a doctype in there for the highly ...
-			+ Profile.PROFILES_DTD_FPI + "' '"			       // ... anal ...
-			+ Profile.PROFILES_DTD_URL + "'>");		               // ... retentive.
-		res.getWriter().println("<profiles>");				       // Start tag for the whole /sbin/fsck mess
-		Transformer transformer = null;					       // Start out w/no transformer and no doc
-		Document doc = null;						       // Don't make 'em if we don't need 'em
-		boolean sentAtLeastOne = false;					       // Track if we send any profiles at all
-		Exception exception = null;					       // And save any exception
-	  for (Object handler1 : handlers) {
-		try {           // To iterate over each handler
-		  ProfileHandler handler = (ProfileHandler) handler1;            // Get the handler
-		  String id = handler.getID();                                   // Get the ID, and if targeting to IDs
-		  if (!ids.isEmpty() && !ids.contains(id)) {
-			continue;             // ... and it's not one we want, skip it.
-		  }
-		  List results = handler.findProfiles(query);                    // Have it find profiles
-		  if (results == null) {
-			results = Collections.EMPTY_LIST;         // Assume nothing
-		  }
-		  for (Object result1 : results) {          // For each matching profile
-			Profile profile = (Profile) result1;                   // Get the profile
-			if (transformer == null) {                       // No transformer/doc yet?
-			  transformer = createTransformer();             // Then make the transformer
-			  doc = Profile.createProfileDocument();         // And the doc
-			}                                   // And use the doc ...
-			Node profileNode = profile.toXML(doc);                   // To render the profile into XML
-			DOMSource source = new DOMSource(profileNode);         // And the XML becomes is source
-			StreamResult result = new StreamResult(res.getWriter()); // And the response is a result
-			transformer.transform(source, result);                   // And serialize into glorious text
-			sentAtLeastOne = true;                       // OK, we got at least one out the doo
-		  }
-		} catch (Exception ex) {                           // Uh oh
-		  exception = ex;                               // OK, just hold onto it for now
-		}
-	  }
-		if (!sentAtLeastOne && exception != null) {			       // Got none out the door and had an error?
-			res.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,    // Then we can report it.
-				exception.getMessage());
-			return;
-		}
-
-		// However, if we get here, we got at least one profile out the door. In
-		// that case, hide any error that might've occurred from subsequent
-		// handlers.  (Or, if we get here, there were no errors.  Yay.)
-		res.getWriter().println("</profiles>");				       // End tag for the whole fsck'n mess
-	}
-
-	/**
-	 * Create a transformer, properly configured for XML text serialization.
-	 *
-	 * @return a <code>Transformer</code> value.
-	 * @throws TransformerException if an error occurs.
-	 */
-	private static Transformer createTransformer() throws TransformerException {
-		Transformer transformer;
-		synchronized (TRANSFORMER_FACTORY) {
-			transformer = TRANSFORMER_FACTORY.newTransformer();
-		}
-		transformer.setOutputProperty(OutputKeys.METHOD, "xml");
-		transformer.setOutputProperty(OutputKeys.VERSION, "1.0");
-		transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
-		transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
-		transformer.setOutputProperty(OutputKeys.STANDALONE, "no");
-		transformer.setOutputProperty(OutputKeys.INDENT, "yes");
-		transformer.setOutputProperty(OutputKeys.MEDIA_TYPE, "text/xml");
-		transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4");
-
-		return transformer;
-	}
-
-	/** Sole transformer factory this class will ever need. */
-	private static final TransformerFactory TRANSFORMER_FACTORY = TransformerFactory.newInstance();
-}
-

http://git-wip-us.apache.org/repos/asf/oodt/blob/098cc4fa/grid/src/main/java/org/apache/oodt/grid/ProfileServer.java
----------------------------------------------------------------------
diff --git a/grid/src/main/java/org/apache/oodt/grid/ProfileServer.java b/grid/src/main/java/org/apache/oodt/grid/ProfileServer.java
deleted file mode 100755
index f273fa6..0000000
--- a/grid/src/main/java/org/apache/oodt/grid/ProfileServer.java
+++ /dev/null
@@ -1,71 +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.grid;
-
-import org.apache.oodt.profile.handlers.ProfileHandler;
-
-/**
- * A profile server.
- * 
- */
-public class ProfileServer extends Server {
-  /**
-   * Creates a new <code>ProfileServer</code> instance.
-   * 
-   * @param configuration
-   *          System configuration.
-   * @param className
-   *          Class name of profile handler.
-   */
-  public ProfileServer(Configuration configuration, String className) {
-    super(configuration, className);
-  }
-
-  /** {@inheritDoc} */
-  protected String getType() {
-    return "profile";
-  }
-
-  public int hashCode() {
-    return super.hashCode() ^ 0x55555555;
-  }
-
-  public boolean equals(Object obj) {
-    return super.equals(obj) && obj instanceof ProfileServer;
-  }
-
-  public String toString() {
-    return "ProfileServer[" + super.toString() + "]";
-  }
-
-  /**
-   * Create a query handler from this server.
-   * 
-   * @return a <code>ProfileHandler</code> value.
-   * @throws ClassNotFoundException
-   *           if the class can't be found.
-   * @throws InstantiationException
-   *           if the handler can't be instantiated.
-   * @throws IllegalAccessException
-   *           if the handler has no public constructor.
-   */
-  public ProfileHandler createProfileHandler() throws ClassNotFoundException,
-      InstantiationException, IllegalAccessException {
-    return (ProfileHandler) createHandler();
-  }
-}

http://git-wip-us.apache.org/repos/asf/oodt/blob/098cc4fa/grid/src/main/java/org/apache/oodt/grid/QueryServlet.java
----------------------------------------------------------------------
diff --git a/grid/src/main/java/org/apache/oodt/grid/QueryServlet.java b/grid/src/main/java/org/apache/oodt/grid/QueryServlet.java
deleted file mode 100755
index 13f902e..0000000
--- a/grid/src/main/java/org/apache/oodt/grid/QueryServlet.java
+++ /dev/null
@@ -1,274 +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.grid;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Properties;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.xml.sax.SAXException;
-import org.apache.oodt.xmlquery.XMLQuery;
-
-/**
- * Query servlet provides common query functionality for profile queries and product
- * queries.  It treats GETs as POSTs, retrieves the complete XMLQuery (if the
- * <code>xmlq</code> request parameter appears) or constructs a new XMLQuery (using the
- * <code>q</code> request parameter, which contains just a query expression), updates
- * system properties for the handlers, instantiates any new handlers, and then runs the
- * query.
- *
- */
-public abstract class QueryServlet extends GridServlet {
-	/**
-	 * Get a list of {@link Server}s that will provide handlers to handle the query.
-	 * Subclasses implement this by returning a list of either {@link ProductServer}s
-	 * or {@link ProfileServer}s.
-	 *
-	 * @param config a <code>Configuration</code> value.
-	 * @return a <code>List</code> value of {@link Server}s of some kind.
-	 */
-	protected abstract List getServers(Configuration config);
-
-	/**
-	 * Handle the query.  Subclasses implement this by parsing the query and returning
-	 * some results.
-	 *
-	 * @param query The query to handle.
-	 * @param handlers A list of either product <code>QueryHandler</code>s or profile <code>ProfileHandler</code>s.
-	 * @param req a <code>HttpServletRequest</code> value.
-	 * @param res a <code>HttpServletResponse</code> value.
-	 * @throws IOException if an I/O error occurs.
-	 * @throws ServletException if a servlet error occurs.
-	 */
-	protected abstract void handleQuery(XMLQuery query, List handlers, HttpServletRequest req, HttpServletResponse res)
-		throws IOException;
-
-	/**
-	 * Treat GETs as POSTs.
-	 *
-	 * @param req a <code>HttpServletRequest</code> value.
-	 * @param res a <code>HttpServletResponse</code> value.
-	 * @throws IOException if an error occurs.
-	 * @throws ServletException if an error occurs.
-	 */
-	public void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException {
-		doPost(req, res);
-	}
-
-	/**
-	 * Handle the query.
-	 *
-	 * @param req a <code>HttpServletRequest</code> value.
-	 * @param res a <code>HttpServletResponse</code> value.
-	 * @throws IOException if an error occurs.
-	 * @throws ServletException if an error occurs.
-	 */
-	public void doPost(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException {
-		try {
-			XMLQuery query = getQuery(req, res);			       // Get the query
-			if (query == null) {
-			  return;                       // No query? My favorite case, right here!
-			}
-
-			Configuration config = getConfiguration();		       // Get the current configuration.
-			updateProperties(config);				       // Using it, update the system properties
-			updateHandlers(getServers(config));			       // And any servers.
-
-			List handlerObjects = new ArrayList(handlers.size());	       // Start with no handlers.
-		  for (Object handler : handlers) {           // For each server
-			InstantiedHandler ih = (InstantiedHandler) handler;   // Get its handler
-			handlerObjects.add(ih.getHandler());               // Add its handler
-		  }
-			handleQuery(query, handlerObjects, req, res);		       // Handlers: handle query, please
-		} catch (RuntimeException ex) {
-			throw ex;
-		} catch (Exception ex) {
-			throw new ServletException(ex);
-		}
-	}
-
-	/**
-	 * Get the query from an HTTP request.  The request must have either a
-	 * <code>xmlq</code> parameter (which is given priority) or a <code>q</code>
-	 * parameter.  We expect <code>xmlq</code> to contain the XML text format of an
-	 * XMLQuery object.  <code>q</code> can contain just the query expression, from
-	 * which we'll construct a fresh <code>XMLQuery</code> with reasonable defaults.
-	 * If the user specifies the <code>q</code> paramater, we'll treat it as a parsed
-	 * query, letting the XMLQuery class parse it and build its various expression
-	 * stacks according to the DIS syntax.  The user can specify the <code>unp</code>
-	 * parameter to control this behavior, though.  Set to the string
-	 * <code>true</code> and we'll treat the query as <em>unparsed</em>, and the
-	 * XMLQuery class should leave it alone.  Otherwise, an other value (or
-	 * unspecified) will be interpreted as <code>false</code>, meaning the query will
-	 * be parsed.
-	 *
-	 * @param req a <code>HttpServletRequest</code> value.
-	 * @param res a <code>HttpServletResponse</code> value.
-	 * @return a <code>XMLQuery</code> value.
-	 * @throws IOException if an error occurs.
-	 */
-	protected XMLQuery getQuery(HttpServletRequest req, HttpServletResponse res) throws IOException {
-		String xmlq = req.getParameter("xmlq");				       // Grab any xmlq
-		String q = req.getParameter("q");				       // Grab any q
-		String unp = req.getParameter("unp");				       // And grab any unp (pronounced "unp")
-		if (xmlq == null) {
-		  xmlq = "";                           // No xmlq?  Use epsilon
-		}
-		if (q == null) {
-		  q = "";                               // No q?  Use lambda
-		}
-		if (unp == null) {
-		  unp = "";                           // Use some other greek letter for empty str
-		}
-		String[] mimes = req.getParameterValues("mime");		       // Grab any mimes
-		if (mimes == null) {
-		  mimes = EMPTY_STRING_ARRAY;                   // None?  Use empty array
-		}
-
-		if (xmlq.length() > 0) {
-		  try {                           // Was there an xmlq?
-			return new XMLQuery(xmlq);                       // Use it in its entirety, ignoring the rest
-		  } catch (SAXException ex) {                           // Can't parse it?
-			res.sendError(HttpServletResponse.SC_BAD_REQUEST,           // Then that's a bad ...
-				"cannot parse xmlq: " + ex.getMessage());           // ... request, which I hate
-			return null;                               // so flag it with a null
-		  }
-		} else if (q.length() > 0) {					       // Was there a q?
-			boolean unparsed = "true".equals(unp);			       // If so, was there also an unp?
-			return new XMLQuery(q, "wgq", "Web Grid Query",		       // Use it to make an XMLQuery
-				"Query from Web-Grid", /*ddID*/null,                   // And all of these extra
-				/*resultModeId*/null, /*propType*/null,                // parameters really annoy
-				/*propLevels*/null, /*maxResults*/Integer.MAX_VALUE,   // the poop out of me
-				Arrays.asList(mimes), !unparsed);                      // It's just a query for /sbin/fsck sake!
-		}
-
-		res.sendError(HttpServletResponse.SC_BAD_REQUEST, "xmlq or q parameters required");
-		return null;
-	}
-
-	/**
-	 * Update the query handlers instantiated.
-	 *
-	 * @param servers a <code>List</code> of {@link Server}s.
-	 * @throws ClassNotFoundException if a class can't be found.
-	 * @throws InstantiationException if a class can't be instantiated.
-	 * @throws IllegalAccessException if a constructor isn't public.
-	 */
-	private synchronized void updateHandlers(List servers) throws ClassNotFoundException, InstantiationException,
-		IllegalAccessException {
-		eachServer:
-	  for (Object server1 : servers) {               // For each server
-		Server server = (Server) server1;                   // Grab the server
-		for (Object handler1 : handlers) {           // For each handler
-		  InstantiedHandler handler = (InstantiedHandler) handler1; // Grab the handler
-		  if (handler.getServer().equals(server))               // Have we already instantiated?
-		  {
-			continue eachServer;                   // Yes, try the next server
-		  }
-		}
-		InstantiedHandler handler                       // No.  Create ...
-			= new InstantiedHandler(server, server.createHandler()); // ... a fresh handler
-		handlers.add(handler);                           // Save it
-	  }
-
-		for (Iterator i = handlers.iterator(); i.hasNext();) {		       // Now, for each handler
-			InstantiedHandler handler = (InstantiedHandler) i.next();      // Grab the handler
-			if (!servers.contains(handler.getServer()))		       // Does its server still exist?
-			{
-			  i.remove();                           // If not, remove the handler
-			}
-		}
-	}
-
-	/**
-	 * Update system properties used by query handlers, if any have changed.
-	 *
-	 * @param config a <code>Configuration</code> value.
-	 */
-	private synchronized void updateProperties(Configuration config) {
-		if (properties != null) {					       // Any old properties?
-			if (properties.equals(config.getProperties())) {
-			  return;           // Yes, any changes?  No?  Then done.
-			}
-		  for (Object o : properties.keySet()) {
-			System.getProperties().remove(o);           // and remove it.
-		  }
-		}
-		properties = (Properties) config.getProperties().clone();	       // Now copy the new settings
-		System.getProperties().putAll(properties);			       // And set them!
-	}
-
-	/**
-	 * Instantiated query handlers.
-	 *
-	 * These are either <code>ProfileHandler</code>s or product <code>QueryHandler</code>s.
-	 */
-	protected List handlers = new ArrayList();
-
-	/** Current settings of system properties. */
-	private Properties properties;
-
-	/**
-	 * An instantiated handler.  This is a <code>ProfileHandler</code> or a product
-	 * <code>QueryHandler</code> along with the {@link Server} that defined it.
-	 */
-	private static class InstantiedHandler {
-		/**
-		 * Creates a new <code>InstantiedHandler</code> instance.
-		 *
-		 * @param server a <code>Server</code>.
-		 * @param handler a <code>ProfileHandler</code> or a product <code>QueryHandler</code>.
-		 */
-		InstantiedHandler(Server server, Object handler) {
-			this.server = server;
-			this.handler = handler;
-		}
-
-		/**
-		 * Get the server that defined this handler.
-		 *
-		 * @return a <code>Server</code> value.
-		 */
-		public Server getServer() {
-			return server;
-		}
-
-		/**
-		 * Get the handler.
-		 *
-		 * @return a <code>ProfileHandler</code> or a product <code>QueryHandler</code>.
-		 */
-		public Object getHandler() {
-			return handler;
-		}
-
-		/** Server that defines the handler. */
-		private Server server;
-
-		/** A <code>ProfileHandler</code> or a product <code>QueryHandler</code> */
-		private Object handler;
-	}
-
-	/** So we don't create a bunch of empty string arrays, here's the only one we'll ever need. */
-	private static final String[] EMPTY_STRING_ARRAY = new String[0];
-}

http://git-wip-us.apache.org/repos/asf/oodt/blob/098cc4fa/grid/src/main/java/org/apache/oodt/grid/RestfulProductQueryServlet.java
----------------------------------------------------------------------
diff --git a/grid/src/main/java/org/apache/oodt/grid/RestfulProductQueryServlet.java b/grid/src/main/java/org/apache/oodt/grid/RestfulProductQueryServlet.java
deleted file mode 100644
index 4b7068b..0000000
--- a/grid/src/main/java/org/apache/oodt/grid/RestfulProductQueryServlet.java
+++ /dev/null
@@ -1,88 +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.grid;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Enumeration;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.oodt.xmlquery.XMLQuery;
-
-/**
- * The {@link RestfulProductQueryServlet} is an alternative to the standard {@link ProductQueryServlet} 
- * that allows clients to use a more intuitive syntax for encoding query constraints, than the traditional
- * DIS-style syntax. 
- * For example, instead of encoding a request as: 
- * "?q=identifier+EQ+urn:nasa:pds:phx_lidar:reduced:LS075RLS_00902835894_1885M1+AND+package+EQ+TGZ"
- * a client could encode it as:
- * "?identifier=urn:nasa:pds:phx_lidar:reduced:LS075RLS_00902835894_1885M1&package=TGZ".
- * Note that this servlet is meant to be back-ward compatible, i.e. it will first process a request by
- * parsing the "xmlq=" and "q=" parameters. If those are not found, it will build a request by combining 
- * all the available HTTP parameters in logical AND.
- * Note also that this servlet is NOT enabled by default 
- * (i.e. it must be explicitly configured by changing the web-grid deployment descriptor web.xml).
- * 
- * @author Luca Cinquini
- *
- */
-public class RestfulProductQueryServlet extends ProductQueryServlet {
-	
-	private static final long serialVersionUID = 1L;
-
-	/**
-	 * Overridden implementation that defaults to the standard behavior if the parameters "q" or "xmlq" are found,
-	 * otherwise it uses the available request parameters to build a constraint query with logical AND.
-	 */
-	@Override
-	protected XMLQuery getQuery(HttpServletRequest req, HttpServletResponse res) throws IOException {
-		
-		// if DIS-style parameters are found, default to standard processing
-		if (req.getParameter("xmlq") !=null || req.getParameter("q")!=null) {
-		  return super.getQuery(req, res);
-			
-		// combine all HTTP (name, value) pairs into XML query string with logical AND
-		} else {
-			
-			StringBuilder q = new StringBuilder("");
-			Enumeration<String> parameterNames = req.getParameterNames();
-			while (parameterNames.hasMoreElements()) {
-				String paramName = parameterNames.nextElement();
-				String[] paramValues = req.getParameterValues(paramName);
-			  for (String paramValue : paramValues) {
-				if (q.length() > 0) {
-				  q.append(" AND ");
-				}
-				q.append(paramName).append(" EQ ").append(paramValue);
-			  }
-			}
-			
-			// build XMLQuery object from HTTP parameters
-			// no need to URL-encode since this request doesn't go over the network
-			System.out.println("Executing query="+q.toString());
-			return new XMLQuery(q.toString(), "wgq", "Web Grid Query",	
-					"Query from Web-Grid", /*ddID*/null,                   
-					/*resultModeId*/null, /*propType*/null,                
-					/*propLevels*/null, /*maxResults*/Integer.MAX_VALUE,   
-					new ArrayList<String>(), true);			
-		}
-		
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/oodt/blob/098cc4fa/grid/src/main/java/org/apache/oodt/grid/Server.java
----------------------------------------------------------------------
diff --git a/grid/src/main/java/org/apache/oodt/grid/Server.java b/grid/src/main/java/org/apache/oodt/grid/Server.java
deleted file mode 100755
index 84185e1..0000000
--- a/grid/src/main/java/org/apache/oodt/grid/Server.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.grid;
-
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.xml.sax.SAXException;
-
-import java.io.Serializable;
-import java.net.URL;
-import java.net.URLClassLoader;
-import java.util.List;
-
-/**
- * An abstract server defines the code base and class name of a query handler.
- * 
- */
-public abstract class Server implements Serializable {
-  /**
-   * Creates a new <code>Server</code> instance.
-   * 
-   * @param configuration
-   *          System configuration.
-   * @param className
-   *          Class name of the query handler.
-   */
-  public Server(Configuration configuration, String className) {
-    this.configuration = configuration;
-    this.className = className;
-  }
-
-  /**
-   * Render this server into XML.
-   * 
-   * @param owner
-   *          Owning document.
-   * @return This server, as XML.
-   */
-  public Node toXML(Document owner) {
-    Element elem = owner.createElement("server");
-    elem.setAttribute("className", className);
-    elem.setAttribute("type", getType());
-    return elem;
-  }
-
-  /**
-   * Get the class name of the query handler.
-   * 
-   * @return Class name of the query handler.
-   */
-  public String getClassName() {
-    return className;
-  }
-
-  /**
-   * Create the handler.
-   * 
-   * @return an instantiated handlre.
-   * @throws ClassNotFoundException
-   *           if the handler class can't be found.
-   * @throws InstantiationException
-   *           if the handler object can't be created.
-   * @throws IllegalAccessException
-   *           if the handler class doesn't provide a public no-args
-   *           constructor.
-   */
-  public Object createHandler() throws ClassNotFoundException,
-      InstantiationException, IllegalAccessException {
-    List urlList = configuration.getCodeBases();
-    Class clazz;
-    if (urlList.isEmpty()) {
-      clazz = Class.forName(className);
-    } else {
-      URL[] urls = (URL[]) urlList.toArray(new URL[urlList.size()]);
-      URLClassLoader loader = new URLClassLoader(urls, getClass()
-          .getClassLoader());
-      clazz = loader.loadClass(className);
-    }
-    return clazz.newInstance();
-  }
-
-  /**
-   * Set the class name of the handler.
-   * 
-   * @param className
-   *          Class name of the handler.
-   */
-  public void setClassName(String className) {
-    this.className = className;
-  }
-
-  /**
-   * Return the type of the handler.
-   * 
-   * @return Either <code>product</code> or <code>profile</code>.
-   */
-  protected abstract String getType();
-
-  public int hashCode() {
-    return configuration.hashCode() ^ className.hashCode();
-  }
-
-  public boolean equals(Object obj) {
-    if (obj == this) {
-      return true;
-    }
-    if (obj instanceof Server) {
-      Server rhs = (Server) obj;
-      return className.equals(rhs.className);
-    }
-    return false;
-  }
-
-  public String toString() {
-    return "Server[className=" + className + "]";
-  }
-
-  /**
-   * Create a server from an XML element.
-   * 
-   * @param elem
-   *          XML element, presumed to be a &lt;server&gt; element.
-   * @return a <code>Server</code> subclass.
-   * @throws SAXException
-   *           if the element can't be properly parsed.
-   */
-  public static Server create(Configuration configuration, Element elem)
-      throws SAXException {
-    String type = elem.getAttribute("type");
-
-    String className = elem.getAttribute("className");
-
-    // Replace with a factory some day...
-    if ("product".equals(type)) {
-      return new ProductServer(configuration, className);
-    } else if ("profile".equals(type)) {
-      return new ProfileServer(configuration, className);
-    } else {
-      throw new SAXException("unknown server type `" + type + "'");
-    }
-  }
-
-  /** Configuration. */
-  protected Configuration configuration;
-
-  /** Class name of the handler class. */
-  protected String className;
-
-  private static final URL[] EMPTY_URL_ARRAY = new URL[0];
-}

http://git-wip-us.apache.org/repos/asf/oodt/blob/098cc4fa/grid/src/main/java/org/apache/oodt/grid/Utility.java
----------------------------------------------------------------------
diff --git a/grid/src/main/java/org/apache/oodt/grid/Utility.java b/grid/src/main/java/org/apache/oodt/grid/Utility.java
deleted file mode 100755
index e160e52..0000000
--- a/grid/src/main/java/org/apache/oodt/grid/Utility.java
+++ /dev/null
@@ -1,82 +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.grid;
-
-/**
- * Utility methods for web grid.
- * 
- */
-public class Utility {
-  /**
-   * Provide XHTML-safe escaping for a string. Basically, this is the same as
-   * XML-escaping, but since some user agents don't recognize
-   * <code>&amp;apos;</code>, we use <code>&amp;#39;</code> instead.
-   * 
-   * @param str
-   *          String to escape.
-   * @return <var>str</var> escaped.
-   */
-  public static String esc(String str) {
-    StringBuilder s = new StringBuilder(str.length()); // Assume at least the same
-    // length
-    for (int i = 0; i < str.length(); ++i) { // For each character
-      char c = str.charAt(i); // Grab the character
-      switch (c) { // Now consider what it is ...
-      case '<': // A less than?
-        s.append("&lt;"); // Well, that's &lt;
-        break;
-      case '>': // A greater than?
-        s.append("&gt;"); // That's &gt;
-        break;
-      case '&': // An ampersand?
-        s.append("&amp;"); // We all know what that is
-        break;
-      case '\'': // A tick?
-        s.append("&#39;"); // Not &apos; ! TRICKY!
-        break;
-      case '\"': // A quote?
-        s.append("&quot;"); // Yadda, yadda, yadda
-        break;
-      default: // Anything else may pass
-        s.append(c); // ... through unchanged
-        break;
-      }
-    }
-    return s.toString(); // Donenacious.
-  }
-
-  /**
-   * Tell if a host name refers to the localhost. This checks the standard IPv6
-   * address, IPv4 address, and host name for localhost.
-   * 
-   * @param host
-   *          Host name to check.
-   * @return True if <var>host</var> names the localhost.
-   */
-  public static boolean isLocalhost(String host) {
-    return "0:0:0:0:0:0:0:1".equals(host) || "127.0.0.1".equals(host)
-        || "localhost".equals(host);
-  }
-
-  /**
-   * Do not call.
-   */
-  private Utility() {
-    throw new IllegalStateException("This is a \u00abutility\u00bb class");
-  }
-}

http://git-wip-us.apache.org/repos/asf/oodt/blob/098cc4fa/grid/src/main/webapp/META-INF/context.xml
----------------------------------------------------------------------
diff --git a/grid/src/main/webapp/META-INF/context.xml b/grid/src/main/webapp/META-INF/context.xml
deleted file mode 100755
index a82645f..0000000
--- a/grid/src/main/webapp/META-INF/context.xml
+++ /dev/null
@@ -1,23 +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.
--->
-<Context
-   cookies='true'
-   override='true'
-   privileged='false'
-   reloadable='false'
-   unpackWAR='true'/>

http://git-wip-us.apache.org/repos/asf/oodt/blob/098cc4fa/grid/src/main/webapp/WEB-INF/jetty-web.xml
----------------------------------------------------------------------
diff --git a/grid/src/main/webapp/WEB-INF/jetty-web.xml b/grid/src/main/webapp/WEB-INF/jetty-web.xml
deleted file mode 100755
index 52b2379..0000000
--- a/grid/src/main/webapp/WEB-INF/jetty-web.xml
+++ /dev/null
@@ -1,21 +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.
--->
-<!DOCTYPE Configure PUBLIC '-//Mort Bay Consulting//DTD Configure 1.2//EN' 'http://jetty.mortbay.org/configure_1_2.dtd'>
-<Configure class='org.mortbay.jetty.servlet.WebApplicationContext'>
-  <Set name='extractWAR'>true</Set>
-</Configure>

http://git-wip-us.apache.org/repos/asf/oodt/blob/098cc4fa/grid/src/main/webapp/WEB-INF/web.xml
----------------------------------------------------------------------
diff --git a/grid/src/main/webapp/WEB-INF/web.xml b/grid/src/main/webapp/WEB-INF/web.xml
deleted file mode 100755
index 98dfcef..0000000
--- a/grid/src/main/webapp/WEB-INF/web.xml
+++ /dev/null
@@ -1,86 +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.
--->
-<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
-<web-app>
-  <icon>
-    <small-icon>images/webapp-small.png</small-icon>
-    <large-icon>images/webapp-large.png</large-icon>
-  </icon>
-  <display-name>Web Grid</display-name>
-  <description>
-    Web Grid is an OODT web application that provides HTTP based
-    access to OODT profile and product query handlers.  It also
-    includes web accessible configuration and updates with a simple
-    administrative security policy.
-  </description>
-  <distributable/>
-  <servlet>
-    <servlet-name>product</servlet-name>
-    <display-name>Product</display-name>
-    <description>
-    </description>
-    <servlet-class>org.apache.oodt.grid.ProductQueryServlet</servlet-class>
-  </servlet>
-  <servlet>
-    <servlet-name>profile</servlet-name>
-    <display-name>Profile</display-name>
-    <description>
-    </description>
-    <servlet-class>org.apache.oodt.grid.ProfileQueryServlet</servlet-class>
-  </servlet>
-  <servlet>
-    <servlet-name>config</servlet-name>
-    <display-name>Configure</display-name>
-    <description>
-    </description>
-    <servlet-class>org.apache.oodt.grid.ConfigServlet</servlet-class>
-  </servlet>
-  <servlet>
-    <servlet-name>login</servlet-name>
-    <display-name>Login</display-name>
-    <description>
-    </description>
-    <servlet-class>org.apache.oodt.grid.LoginServlet</servlet-class>
-  </servlet>
-  <servlet-mapping>
-    <servlet-name>product</servlet-name>
-    <url-pattern>/prod</url-pattern>
-  </servlet-mapping>
-  <servlet-mapping>
-    <servlet-name>profile</servlet-name>
-    <url-pattern>/prof</url-pattern>
-  </servlet-mapping>
-  <servlet-mapping>
-    <servlet-name>config</servlet-name>
-    <url-pattern>/conf</url-pattern>
-  </servlet-mapping>
-  <servlet-mapping>
-    <servlet-name>login</servlet-name>
-    <url-pattern>/login</url-pattern>
-  </servlet-mapping>
-  <session-config>
-    <session-timeout>0</session-timeout>
-  </session-config>
-  <welcome-file-list>
-    <welcome-file>index.html</welcome-file>
-  </welcome-file-list>
-  <error-page>
-    <exception-type>org.apache.oodt.grid.AuthenticationRequiredException</exception-type>
-    <location>/error.jsp</location>
-  </error-page>
-</web-app>

http://git-wip-us.apache.org/repos/asf/oodt/blob/098cc4fa/grid/src/main/webapp/config.jsp
----------------------------------------------------------------------
diff --git a/grid/src/main/webapp/config.jsp b/grid/src/main/webapp/config.jsp
deleted file mode 100755
index 1c5c699..0000000
--- a/grid/src/main/webapp/config.jsp
+++ /dev/null
@@ -1,205 +0,0 @@
-<%@ page language="java" session="true" contentType="text/html; charset=UTF-8" info="Config" errorPage="error.jsp" 
-  import="java.util.Map,java.util.Iterator,org.apache.oodt.grid.Server,org.apache.oodt.grid.Utility,java.net.URL" %>
-<!--
-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.
--->
-<jsp:useBean id="cb" scope="session" class="org.apache.oodt.grid.ConfigBean"/>
-<?xml version='1.0' encoding='UTF-8'?>
-<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
-<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
-  <head>
-    <title>Web Grid Configuration</title>
-    <link rel='stylesheet' type='text/css' href='style.css'/>
-  </head>
-  <body>
-    <h1>Web Grid Configuration</h1>
-
-    <% if (cb.getMessage().length() > 0) { %>
-      <div class='error'><jsp:getProperty name='cb' property='message'/></div>
-    <% } %>
-
-    <form action='conf' method='post'>
-
-      <fieldset>
-        <legend>Administrative Settings</legend>
-	<div class='field'>
-          <label for='passwordField'>New Administrator Password</label>
-          <div class='fieldHelp'>
-            Leave blank to leave password unchanged.
-          </div>
-	  <input id='passwordField' type='password' name='password'/>
-        </div>
-
-	<div class='field'>
-	  <label for='lhf'>Require Administrative Access from Local Host Only</label>
-	  <div class='fieldHelp'>
-	    Click Yes to enable administrative access from browsers
-	    running on the local web-server host only.  Click No to
-	    allow any host to access these administrative pages.
-	  </div>
-	  <input id='lhf' type='radio' name='localhost' value='on' <%= cb.isLocalhostRequired()? "checked='checked'" : "" %> />Yes
-	  <input type='radio' name='localhost' value='off' <%= !cb.isLocalhostRequired()? "checked='checked'" : "" %> />No
-	</div>
-
-        <div class='field'>
-          <label for='httpsField'>Require HTTPS for Administrative Access</label>
-          <div class='fieldHelp'>
-	    Click Yes to require HTTPS for access to these administrative pages. Note that this will require
-	    your web server to also support HTTPS. If you're not sure, <strong>click No</strong>.
-          </div>
-          <input id='httpsField' type='radio' name='https' value='on' <%= cb.isHttpsRequired()? "checked='checked'" : "" %> />Yes
-          <input type='radio' name='https' value='off' <%= !cb.isHttpsRequired()? "checked='checked'" : "" %> />No
-        </div>
-      </fieldset>
-
-      <fieldset>
-	<legend>System Properties</legend>
-	<div class='field'>
-	  <div class='fieldHelp'>To add a new system property, enter
-	    its key and value at the bottom.  You can change the values
-	    of existing properties. To delete an existing property,
-	    check the box to its right.</div>
-	  <table>
-	    <thead><tr><th>#</th><th>Key</th><th>Value</th><th>Delete?</th></tr></thead>
-	    <tbody>
-	    <% int row = 1; for (Iterator i = cb.getProperties().entrySet().iterator(); i.hasNext(); ++row) {
-	       Map.Entry entry = (Map.Entry) i.next();
-	       String key = (String) entry.getKey();
-	       String val = (String) entry.getValue();
-	    %>
-	      <tr class='<%= row % 2 == 0? "evenRow" : "oddRow"%>'>
-		<td><%= row %>.</td>
-		<td><span class='key'><%= Utility.esc(key) %></span></td>
-		<td><input type='text' name='val-<%= Utility.esc(key) %>' value='<%= Utility.esc(val) %>'/></td>
-		<td><input type='checkbox' name='del-<%= Utility.esc(key) %>'/></td>
-	      </tr>
-	    <% } %>
-	      <tr class='newRow'>
-		<td>(New)</td>
-		<td><input type='text' id='newkey' name='newkey'/></td>
-		<td><input type='text' id='newval' name='newval'/></td>
-		<td>&#x00a0;</td>
-	      </tr>
-	    </tbody>
-	  </table>
-	</div>
-      </fieldset>
-
-      <fieldset>
-	<legend>Code Bases</legend>
-	<div class='fieldHelp'>Specify a URL for each code base.  URLs
-	  to files are assumed to be jar files.  URLs that end in a
-	  <code>/</code> refer to directories containing class files.
-	  Check the box to delete a code base.
-	</div>
-
-	<table>
-	  <thead><tr><th>#</th><th>Code Base</th><th>Delete?</th></thead>
-	  <tbody>
-	  <% row = 0; for (Iterator i = cb.getConfiguration().getCodeBases().iterator(); i.hasNext(); ++row) {
-	    URL codeBaseURL = (URL) i.next();
-	  %>
-	    <tr class='<%= row+1 % 2 == 0? "evenRow" : "oddRow"%>'>
-	      <td><%= row+1 %>.</td>
-	      <td><%= Utility.esc(codeBaseURL.toString()) %></td>
-	      <td><input type='checkbox' name='delcb-<%= row %>'/></td>
-	    </tr>
-	  <% } %>
-	    <tr class='newRow'>
-	      <td>(New)</td>
-	      <td><input type='text' name='newcb'/></td>
-	      <td>&#x00a0;</td>
-	    </tr>
-	  </tbody>
-	</table>
-      </fieldset>
-
-      <table>
-        <caption>Query Handlers</caption>
-        <tbody>
-          <tr style="vertical-align: top;">
-            <td>
-	      <fieldset>
-		<legend>Product Query Handlers</legend>
-		<div class='field'>
-		  <div class='fieldHelp'>Specify the class name for each
-		    product query handler; the class must implement the
-		    <code>org.apache.oodt.product.QueryHandler</code> interface.</div>
-		  <table>
-		    <thead><tr><th>#</th><th>Class Name</th><th>Delete?</th></tr></thead>
-		    <tbody>
-		    <% row = 0; for (Iterator i = cb.getProductServers().iterator(); i.hasNext(); ++row) {
-		      Server server = (Server) i.next();
-		      String className = server.getClassName();
-		    %>
-		      <tr class='<%= row % 2 == 0? "oddRow" : "evenRow" %>'>
-			<td><%= row+1 %>.</td>
-			<td><code><%= Utility.esc(className) %></code></td>
-			<td><input type='checkbox' name='drm-<%= row %>'/></td>
-		      </tr>
-		    <% } %>
-		      <tr class='newRow'>
-			<td>(New)</td>
-			<td><input type='text' name='d-newcn'/></td>
-			<td>&#x00a0;</td>
-		      </tr>
-		    </tbody>
-		  </table>
-		</div>
-	      </fieldset>
-            </td>
-            <td>
-	      <fieldset>
-		<legend>Profile Query Handlers</legend>
-		<div class='field'>
-		  <div class='fieldHelp'>Specify the class name for each
-		    profile query handler; the class must implement the
-		    <code>org.apache.oodt.profile.handlers.ProfileHandler</code> interface.</div>
-		  <table>
-		    <thead><tr><th>#</th><th>Class Name</th><th>Delete?</th></tr></thead>
-		    <tbody>
-		    <% row = 0; for (Iterator i = cb.getProfileServers().iterator(); i.hasNext(); ++row) {
-		      Server server = (Server) i.next();
-		      String className = server.getClassName();
-		    %>
-		      <tr class='<%= row % 2 == 0? "oddRow" : "evenRow" %>'>
-			<td><%= row+1 %>.</td>
-			<td><code><%= Utility.esc(className) %></code></td>
-			<td><input type='checkbox' name='mrm-<%= row %>'/></td>
-		      </tr>
-		    <% } %>
-		      <tr class='newRow'>
-			<td>(New)</td>
-			<td><input type='text' name='m-newcn'/></td>
-			<td>&#x00a0;</td>
-		      </tr>
-		    </tbody>
-		  </table>
-		</div>
-	      </fieldset>
-            </td>
-          </tr>
-        </tbody>
-      </table>
-
-      <div class='formControls'>
-        <input type='submit' name='submit' value='Save Changes'/>
-      </div>
-
-    </form>
-
-  </body>
-</html>

http://git-wip-us.apache.org/repos/asf/oodt/blob/098cc4fa/grid/src/main/webapp/error.jsp
----------------------------------------------------------------------
diff --git a/grid/src/main/webapp/error.jsp b/grid/src/main/webapp/error.jsp
deleted file mode 100755
index 3305a36..0000000
--- a/grid/src/main/webapp/error.jsp
+++ /dev/null
@@ -1,60 +0,0 @@
-<%@ page language="java" session="true" contentType="text/html; charset=UTF-8" info="Config" isErrorPage="true" 
-  import="org.apache.oodt.grid.AuthenticationRequiredException,java.io.StringWriter,java.io.PrintWriter"
-%>
-<!--
-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.
--->
-<jsp:useBean id="cb" scope="session" class="org.apache.oodt.grid.ConfigBean"/>
-<?xml version='1.0' encoding='UTF-8'?>
-<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
-<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
-  <head>
-    <title>Web Grid</title>
-    <link rel='stylesheet' type='text/css' href='style.css'/>
-  </head>
-  <body>
-    <%! StringWriter s = new StringWriter();
-    PrintWriter w = new PrintWriter(s); %>
-    <% exception.printStackTrace(w); w.close(); %>
-
-    <h1>Web Grid</h1>
-    <% if (cb.getMessage().length() > 0) { %>
-      <div class='error'><jsp:getProperty name='cb' property='message'/></div>
-    <% } %>
-
-    <% if (exception instanceof AuthenticationRequiredException) { %>
-      <form action='login' method='post'>
-        <fieldset>
-	  <legend>Log In</legend>
-	  <div class='field'>
-	    <label for='pw'>Administrator password:</label>
-	    <div class='fieldHelp'>
-	      Passwords are case sensitve; check your CAPS LOCK key, if necessary.
-	    </div>
-	    <input id='pw' type='password' name='password'/>
-	  </div>
-	  <div class='formControls'>
-	    <input type='submit' name='submit' value='Log In'/>
-          </div>
-        </fieldset>
-      </form>
-   <% } else { %>
-     <h1>Error</h1>
-     <div>Exception <code><%= exception.getClass().getName() %></code>: <%= exception.getMessage() %></div>
-     <pre><%= s.getBuffer().toString() %></pre>
-   <% } %>
-  </body>
-</html>

http://git-wip-us.apache.org/repos/asf/oodt/blob/098cc4fa/grid/src/main/webapp/images/webapp-large.png
----------------------------------------------------------------------
diff --git a/grid/src/main/webapp/images/webapp-large.png b/grid/src/main/webapp/images/webapp-large.png
deleted file mode 100755
index 87a5bb0..0000000
Binary files a/grid/src/main/webapp/images/webapp-large.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/oodt/blob/098cc4fa/grid/src/main/webapp/images/webapp-small.png
----------------------------------------------------------------------
diff --git a/grid/src/main/webapp/images/webapp-small.png b/grid/src/main/webapp/images/webapp-small.png
deleted file mode 100755
index d0dd963..0000000
Binary files a/grid/src/main/webapp/images/webapp-small.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/oodt/blob/098cc4fa/grid/src/main/webapp/index.html
----------------------------------------------------------------------
diff --git a/grid/src/main/webapp/index.html b/grid/src/main/webapp/index.html
deleted file mode 100755
index 3d2f161..0000000
--- a/grid/src/main/webapp/index.html
+++ /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.
--->
-<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
-<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
-  <head>
-    <title>Web Grid</title>
-    <link rel="stylesheet" type="text/css" href="style.css" />
-  </head>
-  <h1>Web Grid</h1>
-  <ul>
-    <li><a href='config.jsp'>Configure</a> the system</li>
-    <li><a href='http://oodt.jpl.nasa.gov/web-grid/'>Learn more</a> about OODT web-based grid technologies</li>
-  </ul>
-  <p>OODT is a product of the <a href="http://www.apache.org/">Apache Software Foundation</a>. Check out 
-  our <a href="http://oodt.apache.org/">web page</a> for more information.
-  </p>
-</html>

http://git-wip-us.apache.org/repos/asf/oodt/blob/098cc4fa/grid/src/main/webapp/style.css
----------------------------------------------------------------------
diff --git a/grid/src/main/webapp/style.css b/grid/src/main/webapp/style.css
deleted file mode 100755
index 0cce428..0000000
--- a/grid/src/main/webapp/style.css
+++ /dev/null
@@ -1,161 +0,0 @@
-/*
-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.
-*/
-body {
-        font-family: "Lucida Grande", Helvetica, sans;
-	background-color: white;
-	color: black;
-	margin: 2em;
-	padding: 0;
-	vertical-align: top;
-}
-
-h1 {
-        font-size: 160%;
-}
-
-h2 {
-        font-size: 150%;
-}
-
-h3 {
-        font-size: 140%;
-	border-bottom: none;
-	font-weight: bold;
-}
-
-fieldset {
-        border: 1 solid #336699;
-	margin: 1em 0 1em 0;
-	padding: 0 1em 1em 1em;
-	line-height: 1.5em;
-	width: auto;
-}
-
-legend {
-        background: white;
-	padding: 0.5em;
-	font-size: 90%;
-}
-
-form {
-        border: none;
-	margin: 0;
-}
-
-textarea {
-        font: 110% "American Typewriter", Courier, monospace; 
-        border: 1 solid #369;
-	color: black;
-	background-color: white;
-	width: 100%;
-}
-
-input {
-        font-family: <dtml-var fontFamily>;
-	visibility: visible;
-	border: 1 solid #369;
-	color: black;
-	background-color: white;
-	vertical-align: middle;
-}
-
-select {
-        border: 1 solid #369;
-	color: black;
-	vertical-align: top;
-}
-
-.field {
-        top: 0;
-	left: 0;
-	margin: 0 1em 1em 0; 
-}
-
-.field .field {
-        margin: 1em 0 0 0;
-}
-
-.field label {
-        font-size: 100%;
-        font-weight: bold;
-}
-
-.fieldRequired {
-        background: url(required.gif) center left no-repeat;
-        padding: 0 0 0 8px;
-        color: black;
-} 
-
-.fieldHelp {
-        font-size: 90%;
-        color: #666;
-        margin: 0 0 0.2em 0;
-}
-
-.formHelp:hover {
-        color: black;
-	cursor: default;
-}
-
-.formControls {
-        margin: 1em 0 0 0; 
-}
-
-.error {
-        /* Class for error indication in forms */
-	color: #ff6633;
-	border: 1 solid #ff6633;
-	padding: 1em;
-	margin: 0 0 1em 0;
-	width: 68% !important;
-}
-
-.evenRow {
-        background: #eee;
-}
-
-.newRow {
-	border-top: solid;
-	border-width: 1;
-	background: #ffe;
-}
-
-th {
-        border-bottom: solid;
-	border-width: 1px;
-        vertical-align: top;
-}
-
-tr {
-        vertical-align: top;
-}
-
-td {
-        vertical-align: top;
-}
-
-tbody {
-        vertical-align: top;
-}
-
-table {
-        vertical-align: top;
-}
-
-caption {
-	font-size: 150%
-}

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

http://git-wip-us.apache.org/repos/asf/oodt/blob/098cc4fa/grid/src/site/resources/images/web-grid.psd
----------------------------------------------------------------------
diff --git a/grid/src/site/resources/images/web-grid.psd b/grid/src/site/resources/images/web-grid.psd
deleted file mode 100755
index e9d898e..0000000
Binary files a/grid/src/site/resources/images/web-grid.psd and /dev/null differ

http://git-wip-us.apache.org/repos/asf/oodt/blob/098cc4fa/grid/src/site/resources/slides.pdf
----------------------------------------------------------------------
diff --git a/grid/src/site/resources/slides.pdf b/grid/src/site/resources/slides.pdf
deleted file mode 100755
index 82f64ce..0000000
Binary files a/grid/src/site/resources/slides.pdf and /dev/null differ

http://git-wip-us.apache.org/repos/asf/oodt/blob/098cc4fa/grid/src/site/site.xml
----------------------------------------------------------------------
diff --git a/grid/src/site/site.xml b/grid/src/site/site.xml
deleted file mode 100644
index 1a85fa9..0000000
--- a/grid/src/site/site.xml
+++ /dev/null
@@ -1,30 +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="Web Grid">
-
-  <body>
-    <links>
-      <item name="OODT" href="../oodt-site/"/>
-      <item name="Grid" href="../grid/"/>
-    </links>
-
-  <menu ref="reports" inherit="bottom"/>
-  
-  </body>
-
-</project>

http://git-wip-us.apache.org/repos/asf/oodt/blob/098cc4fa/grid/src/site/xdoc/index.xml
----------------------------------------------------------------------
diff --git a/grid/src/site/xdoc/index.xml b/grid/src/site/xdoc/index.xml
deleted file mode 100755
index 78e4ea7..0000000
--- a/grid/src/site/xdoc/index.xml
+++ /dev/null
@@ -1,73 +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.
--->
-<document>
-  <properties>
-    <title>Web Grid</title>
-    <author email='Sean.Kelly@jpl.nasa.gov'>Sean Kelly</author>
-  </properties>
-  <!-- Sirius Isness - Irrational Substance -->
-  <body>
-    <section name='Web Grid'>
-      <p>The OODT <a href='/grid/'>grid services</a>
-	(<a href='/grid-product/'>product</a>
-	and <a href='/grid-profile/'>profile</a> services) use CORBA
-	or RMI as their underlying network transport.  However,
-	limitations of CORBA and RMI make them inappropriate for
-	large-scale deployments.  For one, both are procedural
-	mechanisms, providing a remote interface that resembles a
-	method call.  This makes streaming of data from a service
-	impossible, because there are limitations to the sizes of data
-	structures that can be passed over a remote method call.
-	Instead, repeated calls must be made to retrieve each block of
-	a product, making transfer speeds horribly slow compared to
-	HTTP or FTP.  (Block-based retrieval of profiles was never
-	implemented, resulting in out of memory conditions for large
-	profile results, which is another problem.)
-      </p>
-      <p>Second, both CORBA and RMI rely on a central name registry.
-	The registry makes an object independent of its network
-	location, enabling a client to call it by name (looking up its
-	last known location in the registry).  However, this requires
-	that server objects be able to make outbound network calls to
-	the registry (through any outbound firewall), and that the
-	registry accept those registrations (through any inbound
-	firewall).  This required administrative action at
-	institutions hosting server objects and at the institution
-	hosting the registry.  Often, these firewall exceptions would
-	change without notice as system adminstrators changed at each
-	location (apparently firewall exceptions are poorly documented
-	everywhere).
-      </p>
-      <p>Further, in the two major deployments of OODT (PDS and EDRN),
-	server objects have almost never moved, nullifying any benefit
-	of the registry.  This project, OODT Web Grid, avoids the
-	prolems of CORBA and RMI by using HTTP as the transport
-	mechanism for products and profiles.  Further, it provides a
-	password-protected mechanism to add new sets of product and
-	profile query handlers, enabling seamless activation of
-	additional capabilities.
-      </p>
-    </section>
-    <section name='Documentation'>
-      <p>Further documentation on Web Grid is forthcoming.  In the
-	mean time, check out these <a href='./slides.pdf'>presentation
-	slides</a>.  (Don't worry, they're not in PowerPoint format.)
-      </p>
-    </section>
-  </body>
-</document>

http://git-wip-us.apache.org/repos/asf/oodt/blob/098cc4fa/grid/src/test/org/apache/oodt/grid/ConfigurationTest.java
----------------------------------------------------------------------
diff --git a/grid/src/test/org/apache/oodt/grid/ConfigurationTest.java b/grid/src/test/org/apache/oodt/grid/ConfigurationTest.java
deleted file mode 100755
index e54281b..0000000
--- a/grid/src/test/org/apache/oodt/grid/ConfigurationTest.java
+++ /dev/null
@@ -1,180 +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.grid;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.URL;
-import java.util.Arrays;
-import junit.framework.TestCase;
-import org.xml.sax.SAXException;
-
-/**
- * Test the {@link Configuration} class.
- * 
- */
-public class ConfigurationTest extends TestCase {
-  /**
-   * Creates a new <code>ConfigurationTest</code> instance.
-   * 
-   * @param caseName
-   *          Test case name.
-   */
-  public ConfigurationTest(String caseName) {
-    super(caseName);
-  }
-
-  /**
-   * Set up by creating a temporary config file.
-   * 
-   * @throws Exception
-   *           if an error occurs.
-   */
-  public void setUp() throws Exception {
-    super.setUp();
-    System.setProperty("javax.xml.parsers.DocumentBuilderFactory",
-        "org.apache.xerces.jaxp.DocumentBuilderFactoryImpl");
-    System.setProperty("javax.xml.parsers.SAXParserFactory",
-        "org.apache.xerces.jaxp.SAXParserFactoryImpl");
-    System.setProperty("javax.xml.transform.TransformerFactory",
-        "org.apache.xalan.processor.TransformerFactoryImpl");
-    configFile = File.createTempFile("config", ".xml");
-    configFile.deleteOnExit();
-  }
-
-  /**
-   * Tear down by deleting the temporary config file.
-   * 
-   * @throws Exception
-   *           if an error occurs.
-   */
-  public void tearDown() throws Exception {
-    configFile.delete();
-    super.tearDown();
-  }
-
-  /**
-   * Test to see if the default values of the {@link Configuration} are
-   * reasonable.
-   * 
-   * @throws IOException
-   *           if an error occurs.
-   * @throws SAXException
-   *           if an error occurs.
-   */
-  public void testDefaults() throws IOException, SAXException {
-    Configuration config = new Configuration(configFile);
-    assertTrue("Expect localhost not required by default", !config
-        .isLocalhostRequired());
-    assertTrue("Expect https not required by default", !config
-        .isHTTPSrequired());
-    assertTrue("Expect no product servers by default", config
-        .getProductServers().isEmpty());
-    assertTrue("Expect no profile servers by default", config
-        .getProfileServers().isEmpty());
-    assertTrue("Default password not set", Arrays.equals(
-        Configuration.DEFAULT_PASSWORD, config.getPassword()));
-    assertTrue("Expect no properties", config.getProperties().isEmpty());
-    assertTrue("Expect no code bases", config.getCodeBases().isEmpty());
-  }
-
-  /**
-   * Test to see if the mutators work.
-   * 
-   * @throws IOException
-   *           if an error occurs.
-   * @throws SAXException
-   *           if an error occurs.
-   */
-  public void testMutators() throws IOException, SAXException {
-    Configuration config = new Configuration(configFile);
-
-    assertTrue(!config.isHTTPSrequired());
-    config.setHTTPSrequired(true);
-    assertTrue("Cannot set https as required", config.isHTTPSrequired());
-
-    assertTrue(!config.isLocalhostRequired());
-    config.setLocalhostRequired(true);
-    assertTrue("Cannot set localhost as required", config.isLocalhostRequired());
-
-    byte[] password = { (byte) 'x', (byte) 'y', (byte) 'z' };
-    assertTrue(Arrays.equals(Configuration.DEFAULT_PASSWORD, config
-        .getPassword()));
-    config.setPassword(password);
-    assertTrue("Cannot change password", Arrays.equals(password, config
-        .getPassword()));
-
-    try {
-      config.setPassword(null);
-      fail("Null password allowed");
-    } catch (IllegalArgumentException good) {
-    }
-
-    // Profile/product servers in the config have no mutators to test (they
-    // return references to each Set). Same with Properties and code bases.
-  }
-
-  /**
-   * Test to see if XML serialization works.
-   * 
-   * @throws IOException
-   *           if an error occurs.
-   * @throws SAXException
-   *           if an error occurs.
-   */
-  public void testSerialization() throws IOException, SAXException {
-    Configuration a = new Configuration(configFile);
-
-    byte[] password = { (byte) 'x', (byte) 'y', (byte) 'z' };
-    URL prodServerURL = new URL("http://localhost/prod.jar");
-    URL profServerURL = new URL("http://localhost/prof.jar");
-    ProductServer prod = new ProductServer(a, "prod");
-    ProfileServer prof = new ProfileServer(a, "prof");
-
-    a.setLocalhostRequired(true);
-    a.setHTTPSrequired(true);
-    a.setPassword(password);
-    a.getProductServers().add(prod);
-    a.getProfileServers().add(prof);
-    a.getProperties().setProperty("a", "b");
-    a.getCodeBases().add(prodServerURL);
-    a.getCodeBases().add(profServerURL);
-    a.save();
-
-    Configuration b = new Configuration(configFile);
-    assertTrue("localhost state not saved", b.isLocalhostRequired());
-    assertTrue("https state not saved", b.isHTTPSrequired());
-    assertTrue("Password not saved", Arrays.equals(password, b.getPassword()));
-    assertEquals("Product server not saved", 1, b.getProductServers().size());
-    assertEquals("Product server not saved properly", prod, b
-        .getProductServers().iterator().next());
-    assertEquals("Profile server not saved", 1, b.getProfileServers().size());
-    assertEquals("Profile server not saved properly", prof, b
-        .getProfileServers().iterator().next());
-    assertEquals("Properties not saved properly", "b", b.getProperties()
-        .getProperty("a"));
-    assertEquals("Code bases not saved properly", 2, b.getCodeBases().size());
-    assertTrue(b.getCodeBases().contains(prodServerURL));
-    assertTrue(b.getCodeBases().contains(profServerURL));
-
-    assertEquals("Configuration.equals doesn't work", a, b);
-  }
-
-  /** Test config file. */
-  private File configFile;
-}

http://git-wip-us.apache.org/repos/asf/oodt/blob/098cc4fa/opendapps/pom.xml
----------------------------------------------------------------------
diff --git a/opendapps/pom.xml b/opendapps/pom.xml
deleted file mode 100644
index 0d8b27c..0000000
--- a/opendapps/pom.xml
+++ /dev/null
@@ -1,99 +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.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <parent>
-    <groupId>org.apache.oodt</groupId>
-    <artifactId>oodt-core</artifactId>
-    <version>1.1-SNAPSHOT</version>
-    <relativePath>../core/pom.xml</relativePath>
-  </parent>
-  <artifactId>opendapps</artifactId>
-  <name>Apache OODT Configurable OPeNDAP Profile Server</name>
-  <description>A generic, configurable Apache OODT profile server
-  implementation that easily connects to OPeNDAP data sources. Connections 
-  are configured via an XML configuration file, providing information on how 
-  to extract and translate datasets from OPeNDAP and THREDDS into OODT profiles.</description>
-  <!-- All dependencies should be listed in core/pom.xml and be ordered alphabetically by package and artifact.
-     Once the dependency is in the core pom, it can then be used in other modules without the version tags.
-     For example, within core/pom.xml:
-
-      <dependency>
-      <groupId>com.amazonaws</groupId>
-      <artifactId>aws-java-sdk</artifactId>
-      <version>1.7.4</version>
-    </dependency>
-
-     Elsewhere in the platform:
-     <dependency>
-      <groupId>com.amazonaws</groupId>
-      <artifactId>aws-java-sdk</artifactId>
-    </dependency>
-
-     Where possible the same dependency version should be used across the whole platform but if required the version
-     can be overridden in a specific pom and should have a comment explaing why the version has been overridden
-  -->
-  <dependencies>
-    <dependency>
-      <groupId>edu.ucar</groupId>
-      <artifactId>netcdf4</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>edu.ucar</groupId>
-      <artifactId>opendap</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.oodt</groupId>
-      <artifactId>oodt-profile</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.oodt</groupId>
-      <artifactId>oodt-xmlquery</artifactId>
-    </dependency>
-  </dependencies>
-  <build>
-    <plugins>
-      <plugin>
-        <artifactId>maven-assembly-plugin</artifactId>
-        <configuration>
-          <descriptorRefs>
-            <descriptorRef>jar-with-dependencies</descriptorRef>
-          </descriptorRefs>
-        </configuration>
-        <!-- enable creation of single jar to use this module stand alone -->
-        <executions>
-          <execution>
-            <id>make-assembly</id>
-            <!-- bind to the packaging phase -->
-            <goals>
-              <goal>single</goal>
-            </goals>
-            <!-- this is used for inheritance merges -->
-            <phase>package</phase>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
-  <scm>
-    <!--<connection>scm:svn:https://svn.apache.org/repos/asf/oodt/trunk/opendapps</connection>
-    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/oodt/trunk/opendapps</developerConnection>
-    <url>http://svn.apache.org/viewvc/oodt/trunk/opendapps</url>-->
-    <tag>0.13-SNAPSHOT</tag>
-  </scm>
-</project>

http://git-wip-us.apache.org/repos/asf/oodt/blob/098cc4fa/opendapps/src/main/java/org/apache/oodt/opendapps/DapNames.java
----------------------------------------------------------------------
diff --git a/opendapps/src/main/java/org/apache/oodt/opendapps/DapNames.java b/opendapps/src/main/java/org/apache/oodt/opendapps/DapNames.java
deleted file mode 100644
index 6ee2378..0000000
--- a/opendapps/src/main/java/org/apache/oodt/opendapps/DapNames.java
+++ /dev/null
@@ -1,37 +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.opendapps;
-
-
-/**
- * 
- * A set of named constants for extracting information from OPeNDAP {@link opendap.dap.DAS}
- * profiles.
- * 
- */
-public interface DapNames {
-
-  String ACTUAL_RANGE = "actual_range";
-
-  String UNITS = "units";
-
-  String START = "start";
-
-  String END = "end";
-
-}

http://git-wip-us.apache.org/repos/asf/oodt/blob/098cc4fa/opendapps/src/main/java/org/apache/oodt/opendapps/DatasetCrawler.java
----------------------------------------------------------------------
diff --git a/opendapps/src/main/java/org/apache/oodt/opendapps/DatasetCrawler.java b/opendapps/src/main/java/org/apache/oodt/opendapps/DatasetCrawler.java
deleted file mode 100644
index 760dea6..0000000
--- a/opendapps/src/main/java/org/apache/oodt/opendapps/DatasetCrawler.java
+++ /dev/null
@@ -1,126 +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.opendapps;
-
-//JDK imports
-
-import org.apache.oodt.cas.metadata.Metadata;
-import org.apache.oodt.opendapps.config.OpendapConfig;
-import org.apache.oodt.opendapps.extractors.MetadataExtractor;
-import org.apache.oodt.opendapps.extractors.ThreddsMetadataExtractor;
-
-import java.util.List;
-import java.util.Map;
-import java.util.Vector;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import thredds.catalog.InvAccess;
-import thredds.catalog.InvCatalogRef;
-import thredds.catalog.InvDataset;
-import thredds.catalog.InvService;
-import thredds.catalog.ServiceType;
-import thredds.catalog.crawl.CatalogCrawler;
-
-/**
- * Crawls a catalog and returns all the datasets and their references.
- * 
- */
-public class DatasetCrawler implements CatalogCrawler.Listener {
-
-  private static Logger LOG = Logger.getLogger(DatasetCrawler.class.getName());
-
-  private List<String> urls = new Vector<String>();
-
-  private Map<String, Metadata> datasetMet;
-
-  private String datasetURL = null;
-  
-  private OpendapConfig conf = null;
-
-  public DatasetCrawler(String datasetURL, OpendapConfig conf) {
-    this.datasetURL = datasetURL.endsWith("/") ? datasetURL : datasetURL + "/";
-    this.datasetMet = new ConcurrentHashMap<String, Metadata>();
-    this.conf = conf;
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see
-   * thredds.catalog.crawl.CatalogCrawler.Listener#getCatalogRef(thredds.catalog
-   * .InvCatalogRef, java.lang.Object)
-   */
-  public boolean getCatalogRef(InvCatalogRef dd, Object context) {
-    return true;
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see
-   * thredds.catalog.crawl.CatalogCrawler.Listener#getDataset(thredds.catalog
-   * .InvDataset, java.lang.Object)
-   */
-  public void getDataset(InvDataset dd, Object context) {
-  	String url = this.datasetURL + dd.getCatalogUrl().split("#")[1];
-
-    LOG.log(Level.FINE, url + " is the computed access URL for this dataset");
-    // look for an OpenDAP access URL, only extract metadata if it is found
-    List<InvAccess> datasets = dd.getAccess();
-    if (dd.getAccess() != null && dd.getAccess().size() > 0) {
-      for (InvAccess single : datasets) {
-        InvService service = single.getService();
-        // note: select the OpenDAP access URL based on THREDDS service type
-        if (service.getServiceType() == ServiceType.OPENDAP) {
-          LOG.log(Level.FINE, "Found OpenDAP access URL: " + single.getUrlPath());
-          String opendapurl = this.datasetURL + single.getUrlPath();
-          // extract metadata from THREDDS catalog
-          MetadataExtractor extractor = new ThreddsMetadataExtractor(dd);
-          Metadata met = new Metadata();
-          extractor.extract(met, conf);
-          // index metadata by opendap access URL
-          this.datasetMet.put(opendapurl, met);
-          this.urls.add(opendapurl);
-          break;
-        }
-      }
-    }
-  }
-
-  /**
-   * Gets the set of String {@link java.net.URL}s crawled.
-   * 
-   * @return A {@link List} of {@link String} representations of {@link java.net.URL}s.
-   */
-  public List<String> getURLs() {
-    return this.urls;
-  }
-
-  /**
-   * Returns the exracted THREDDS {@link InvDataset} metadata. The dataset
-   * metadata is mapped to the unique THREDDS dataset URL.
-   * 
-   * @return the exracted THREDDS {@link InvDataset} metadata.
-   */
-  public Map<String, Metadata> getDatasetMet() {
-    return this.datasetMet;
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/oodt/blob/098cc4fa/opendapps/src/main/java/org/apache/oodt/opendapps/DatasetExtractor.java
----------------------------------------------------------------------
diff --git a/opendapps/src/main/java/org/apache/oodt/opendapps/DatasetExtractor.java b/opendapps/src/main/java/org/apache/oodt/opendapps/DatasetExtractor.java
deleted file mode 100644
index ba22df8..0000000
--- a/opendapps/src/main/java/org/apache/oodt/opendapps/DatasetExtractor.java
+++ /dev/null
@@ -1,188 +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.opendapps;
-
-//JDK imports
-import org.apache.oodt.cas.metadata.Metadata;
-import org.apache.oodt.opendapps.config.OpendapConfig;
-import org.apache.oodt.xmlquery.XMLQuery;
-
-import java.io.FileNotFoundException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.StringTokenizer;
-import java.util.Vector;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import opendap.dap.DConnect;
-import opendap.dap.DataDDS;
-import thredds.catalog.crawl.CatalogCrawler;
-import ucar.nc2.util.CancelTask;
-
-//OODT imports
-//NetCDF-Java imports
-
-/**
- * 
- * This class takes in a query and the main catalog url and returns a list of
- * relevant dataset urls
- * 
- */
-public class DatasetExtractor {
-
-  private static Logger LOG = Logger
-      .getLogger(DatasetExtractor.class.getName());
-
-  public static final String FINDALL = "PFunction=findall";
-
-  public static final String FINDSOME = "PFunction=findsome";
-
-  public static final String FINDQUERY = "PFunction=findquery";
-
-  private String q;
-
-  private String mainCatalogURL;
-
-  private String datasetURL;
-
-  private List<String> allUrls;
-
-  private Map<String, Metadata> datasetMet;
-  
-  private OpendapConfig conf;
-
-  public DatasetExtractor(XMLQuery q, String mainCatalogURL, String datasetURL, OpendapConfig conf) {
-    this.q = q.getKwdQueryString().trim();
-    this.mainCatalogURL = mainCatalogURL;
-    this.datasetURL = datasetURL;
-    this.conf = conf;
-    this.initExtraction();
-  }
-
-  public List<String> getDapUrls() {
-    List<String> urls = null;
-
-    if (this.q.contains(FINDALL)) {
-      urls = this.allUrls;
-    } else if (this.q.contains(FINDSOME)) {
-      urls = this.getFindSome();
-    } else if (this.q.contains(FINDQUERY)) {
-      urls = this.getFindQuery();
-    }
-
-    return urls;
-  }
-
-  public Metadata getDatasetMet(String opendapUrl){
-    return this.datasetMet.get(opendapUrl);
-  }
-
-  private void initExtraction() {
-    DatasetCrawler listener = new DatasetCrawler(this.datasetURL, this.conf);
-    CancelTask ignore = new CancelTask() {
-      public boolean isCancel() {
-        return false;
-      }
-
-      public void setError(String msg) {
-        LOG.log(Level.WARNING, msg);
-      }
-
-      @Override
-      public void setProgress(String s, int i) {
-
-      }
-
-    };
-
-    LOG.log(Level.FINE, "catalogURL: " + this.mainCatalogURL);
-    // Note: look for all datasets, that have either a urlPath="" attribute, or a <access> subelement
-    CatalogCrawler crawler = new CatalogCrawler(CatalogCrawler.USE_ALL, false, listener);
-    crawler.crawl(this.mainCatalogURL, ignore, System.out, this);
-    this.allUrls = listener.getURLs();
-    this.datasetMet = listener.getDatasetMet();
-  }
-
-  private List<String> getFindQuery() {
-    LOG.log(Level.FINE, "PFunction: findquery selected: orig query: [" + this.q
-        + "]");
-    String queryExpression = "";
-    Pattern parameterPattern = Pattern.compile("PParameter=\"(.+?)\"");
-    Matcher urlsMatch = parameterPattern.matcher(this.q);
-    while (urlsMatch.find()) {
-      queryExpression = urlsMatch.group(1);
-    }
-
-    List<String> datasetUrls = new Vector<String>();
-
-    for (String datasetUrl : this.allUrls) {
-      DConnect dConn = null;
-      try {
-        dConn = new DConnect(datasetUrl, true);
-      } catch (FileNotFoundException e) {
-        LOG.log(Level.SEVERE, e.getMessage());
-        LOG.log(Level.WARNING, datasetUrl
-            + " is neither a valid URL nor a filename.");
-      }
-      try {
-        DataDDS dds = null;
-        if (dConn != null) {
-          dds = dConn.getData(queryExpression, null);
-        }
-
-        if (dds != null) {
-          datasetUrls.add(datasetUrl);
-        }
-      } catch (Exception e) {
-        LOG.log(Level.SEVERE, e.getMessage());
-        LOG.log(Level.SEVERE, " Some DAP2Exception or not a validate DDS", e);
-      }
-    }
-
-    return datasetUrls;
-
-  }
-
-  private List<String> getFindSome() {
-    LOG.log(Level.FINE, "PFunction: findsome selected");
-    String urlsString = "";
-    Pattern parameterPattern = Pattern.compile("PParameter=\"(.+?)\"");
-    Matcher urlsMatch = parameterPattern.matcher(this.q);
-    while (urlsMatch.find()) {
-      urlsString = urlsMatch.group(1);
-    }
-
-    LOG.log(Level.FINE, "PParameter: [" + urlsString
-        + "] parsed from original string query: [" + this.q + "]");
-
-    List<String> openDapUrls = new ArrayList<String>();
-
-    StringTokenizer tokens = new StringTokenizer(urlsString, ",");
-    while (tokens.hasMoreTokens()) {
-      openDapUrls.add(tokens.nextToken());
-    }
-
-    LOG.log(Level.FINE, "OPeNDAP urls: [" + openDapUrls + "]");
-    return openDapUrls;
-  }
-
-}


Mime
View raw message