Select Git revision
DefaultTAPLog.java
-
gmantele authored
[TAP] Come back on the v1.0 definition of TAPLog and fix a bug (missing DB table name in logs for CREATE, INSERT, DROP TABLE ; name missing in getFullDBName(TAPTable))
gmantele authored[TAP] Come back on the v1.0 definition of TAPLog and fix a bug (missing DB table name in logs for CREATE, INSERT, DROP TABLE ; name missing in getFullDBName(TAPTable))
VlkbServletFile.java 4.29 KiB
//
// return content of xml
// (used for VOSI capabilityVOSI and availability.xml)
//
import java.io.IOException;
import java.io.PrintWriter;
import java.io.File;
import java.io.OutputStream;
import java.util.Enumeration;
import java.util.*; // ArrayList<String>
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletOutputStream; // for SOOA
// from vlkb_mergefiles.java - dir & file handling
import java.io.*;
import java.nio.file.*;
import static java.nio.file.StandardCopyOption.*;
// serve VOSI resources from xml files (for now implemented as strings, not files FIXME)
public class VlkbServletFile
extends javax.servlet.http.HttpServlet
{
// for logs and debug
String className = this.getClass().getSimpleName();
// VOSI
// String accessURL = null; // FIXME now read from MERGEURL later introduce own param
// String funcName = "vlkb_cutout"; // FIXME read from config file
private static final String availStr =
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
+ "<vosi:availability "
+ " xmlns:vosi=\"http://www.ivoa.net/xml/VOSIAvailability/v1.0\">"
+ " <vosi:available>true</vosi:available>"
+ " <vosi:note> VLKB-SODA " + Version.asString + " is accepting queries </vosi:note>"
+ "</vosi:availability>";
private String capsStr = null;
protected void SetCapsStr(String URL, String funcName)
{
if(URL != null)
{
String accessURL = stripTrailingSlash(URL);
capsStr =
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
+ "<vosi:capabilities "
+ "xmlns:vosi=\"http://www.ivoa.net/xml/VOSICapabilities/v1.0\" "
+ "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" "
+ "xmlns:vod=\"http://www.ivoa.net/xml/VODataService/v1.1\">"
+ " <capability standardID=\"ivo://ivoa.net/std/VOSI#capabilities\">"
+ " <interface xsi:type=\"vod:ParamHTTP\" version=\"1.0\">"
+ " <accessURL use=\"full\">"
+ accessURL + "/capabilities"
+ " </accessURL>"
+ " </interface>"
+ " </capability>"
+ " <capability standardID=\"ivo://ivoa.net/std/VOSI#availability\">"
+ " <interface xsi:type=\"vod:ParamHTTP\" version=\"1.0\">"
+ " <accessURL use=\"full\">"
+ accessURL + "/availability"
+ " </accessURL>"
+ " </interface>"
+ " </capability>"
+ " <capability standardID=\"ivo://ivoa.net/std/SODA#sync-1.0\">"
+ " <interface xsi:type=\"vod:ParamHTTP\" role=\"std\" version=\"1.0\">"
+ " <accessURL use=\"full\">"
+ accessURL + "/" + funcName
+ " </accessURL>"
+ " </interface>"
+ " </capability>"
+ " <capability standardID=\"ivo://ivoa.net/std/SODA#async-1.0\">"
+ " <interface xsi:type=\"vod:ParamHTTP\" role=\"std\" version=\"1.0\">"
+ " <accessURL use=\"full\">"
+ accessURL + "/" + funcName + "_uws/soda_cuts"
+ " </accessURL>"
+ " </interface>"
+ " </capability>"
+ "</vosi:capabilities>";
}
}
String stripTrailingSlash(String path)
{
if (path.endsWith("/"))
return path.substring(0,path.length()-1);
else
return path;
}
protected void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
StringBuffer requestURL = request.getRequestURL();
System.out.println(className + " vlkb req from: " + request.getRemoteAddr()
+ " doGet: " + requestURL.toString());
PrintWriter writer = response.getWriter();
response.setContentType("text/xml");
if(-1 != requestURL.lastIndexOf("/capabilities"))
{
String fullURL = request.getRequestURL().toString();
String baseURL = fullURL.substring(0,requestURL.lastIndexOf("/"));
SetCapsStr(baseURL, "soda");
writer.println(capsStr);
}
else if(-1 != requestURL.lastIndexOf("/availability"))
{
writer.println(availStr);
}
// error FIXME what to do if none of above given ? e.g. misconfigured web.xml
writer.close();
return;
}
}