diff --git a/data-discovery/src/main/java/vlkb/webapi/FormatResponseFilter.java b/data-discovery/src/main/java/vlkb/webapi/FormatResponseFilter.java index 7515fe06a03ba8d21b4fc36a051e20fdadff1657..53eee4a3e4a5679b2d8c46a45fdc4afad1190a76 100644 --- a/data-discovery/src/main/java/vlkb/webapi/FormatResponseFilter.java +++ b/data-discovery/src/main/java/vlkb/webapi/FormatResponseFilter.java @@ -52,9 +52,15 @@ class FormatResponseWrapper extends HttpServletResponseWrapper public class FormatResponseFilter implements Filter { private static final Logger LOGGER = Logger.getLogger("FormatResponseFilter"); - private static final FormatResponseSettings settings = FormatResponseSettings.getInstance("formatresponsefilter.properties"); + private static final FormatResponseSettings settings = FormatResponseSettings.getInstance( + "formatresponsefilter.properties"); final String RESPONSE_ENCODING = "UTF-8"; + final String DEFAULT_RESPONSEFORMAT = settings.defaults.responseFormat; + final String DEFAULT_SKY_SYSTEM = settings.defaults.skySystem; + final String DEFAULT_SPEC_SYSTEM = settings.defaults.specSystem; + final String DEFAULT_TIME_SYSTEM = "MJD_UTC"; // FIXME take from confif file + protected Subsurvey[] dbSubsurveyArr = null; private String reqQueryString; @@ -101,10 +107,9 @@ public class FormatResponseFilter implements Filter // FIXME add invalid param excpetions -> params already parsed in servlet Coord coord = new Coord(); - coord.pos = Pos.parsePos(params); - coord.pos.setSystem(Pos.System.ICRS); - coord.band = Band.parseBand(params); - coord.time = Time.parseTime(params); + coord.pos = Pos.parsePos(params, DEFAULT_SKY_SYSTEM); + coord.band = Band.parseBand(params, DEFAULT_SPEC_SYSTEM); + coord.time = Time.parseTime(params, DEFAULT_TIME_SYSTEM); coord.pol = Pol.parsePol(params); ObsCore[] obsCoreArr = queryObsCore(pubdidArr, diff --git a/data-discovery/src/main/java/vlkb/webapi/FormatResponseSettings.java b/data-discovery/src/main/java/vlkb/webapi/FormatResponseSettings.java index dcebe2af1ecc626fb97a16f970cc56c01628c464..3c582d88b9f28b65a3a4c5058ae49c58461a68cb 100644 --- a/data-discovery/src/main/java/vlkb/webapi/FormatResponseSettings.java +++ b/data-discovery/src/main/java/vlkb/webapi/FormatResponseSettings.java @@ -11,6 +11,14 @@ class FormatResponseSettings { private static final Logger LOGGER = Logger.getLogger("FormatResponseSettings"); + public static class DefaultParamValues + { + String responseFormat; + String skySystem; + String specSystem; + boolean showDuration; + } + /* public static class DBConn { @@ -58,6 +66,7 @@ class FormatResponseSettings public DBConn dbConn; public ServiceUrls serviceUrls; + public DefaultParamValues defaults; // will not start without config-file; no reasonable code-defaults can be invented @@ -74,8 +83,9 @@ class FormatResponseSettings DBConn dbConn = loadDBConn(properties); ServiceUrls serviceUrls = loadServiceUrls(properties); + DefaultParamValues defaults = loadDefaults(properties); - return new FormatResponseSettings(dbConn, serviceUrls); + return new FormatResponseSettings(dbConn, serviceUrls, defaults); } else { @@ -92,10 +102,11 @@ class FormatResponseSettings - private FormatResponseSettings(DBConn dbConn, ServiceUrls serviceUrls) + private FormatResponseSettings(DBConn dbConn, ServiceUrls serviceUrls, DefaultParamValues defaults) { this.dbConn = dbConn; this.serviceUrls = serviceUrls; + this.defaults = defaults; } @@ -121,6 +132,15 @@ class FormatResponseSettings return serviceUrls; } + private static DefaultParamValues loadDefaults(Properties properties) + { + DefaultParamValues defaults = new DefaultParamValues(); + defaults.responseFormat = properties.getProperty("default_response_format", "application/fits").strip(); + defaults.skySystem = properties.getProperty("default_sky_system", "ICRS").strip(); + defaults.specSystem = properties.getProperty("default_spec_system", "WAVE_Barycentric").strip(); + defaults.showDuration = "yes".equals(properties.getProperty("show_duration", "no").strip()); + return defaults; + } } diff --git a/data-discovery/src/main/java/vlkb/webapi/SearchServlet.java b/data-discovery/src/main/java/vlkb/webapi/SearchServlet.java index 8bda8da1d27022a176125dc9ed998bceae7f2c26..50b95224115b27f03e56ba27e4db2e87de6978ed 100644 --- a/data-discovery/src/main/java/vlkb/webapi/SearchServlet.java +++ b/data-discovery/src/main/java/vlkb/webapi/SearchServlet.java @@ -24,6 +24,12 @@ public class SearchServlet extends javax.servlet.http.HttpServlet private static final Logger LOGGER = Logger.getLogger("PSearch"); private static final SearchSettings settings = SearchSettings.getInstance("search.properties"); + final String RESPONSE_ENCODING = "utf-8"; + final String DEFAULT_RESPONSEFORMAT = settings.defaults.responseFormat; + final String DEFAULT_SKY_SYSTEM = settings.defaults.skySystem; + final String DEFAULT_SPEC_SYSTEM = settings.defaults.specSystem; + final String DEFAULT_TIME_SYSTEM = "MJD_UTC"; // FIXME take from config file + public void init() throws ServletException { @@ -66,9 +72,9 @@ public class SearchServlet extends javax.servlet.http.HttpServlet // new based on vlkb-volib Coord coord = new Coord(); - coord.pos = Pos.parsePos(params); - coord.band = Band.parseBand(params); - coord.time = Time.parseTime(params); + coord.pos = Pos.parsePos(params, DEFAULT_SKY_SYSTEM); + coord.band = Band.parseBand(params, DEFAULT_SPEC_SYSTEM); + coord.time = Time.parseTime(params, DEFAULT_TIME_SYSTEM); coord.pol = Pol.parsePol(params); /* query Obscore table */ diff --git a/data-discovery/src/main/java/vlkb/webapi/SearchSettings.java b/data-discovery/src/main/java/vlkb/webapi/SearchSettings.java index 0a08c5eb83bb4bdecf4eef27e6ca0427f4387c17..bf8c0ea3f26799415779a6dc85c296cffaacb65f 100644 --- a/data-discovery/src/main/java/vlkb/webapi/SearchSettings.java +++ b/data-discovery/src/main/java/vlkb/webapi/SearchSettings.java @@ -11,6 +11,15 @@ class SearchSettings { private static final Logger LOGGER = Logger.getLogger("SearchSettings"); + public static class DefaultParamValues + { + String responseFormat; + String skySystem; + String specSystem; + boolean showDuration; + } + + /* public static class DBConn { @@ -30,8 +39,8 @@ class SearchSettings } } */ - public DBConn dbConn; - + public DBConn dbConn; + public DefaultParamValues defaults; // will not start without config-file; no reasonable code-defaults can be invented public static SearchSettings getInstance(String settingsFileName) @@ -46,8 +55,9 @@ class SearchSettings properties.load(ins); DBConn dbConn = loadDBConn(properties); + DefaultParamValues defaults = loadDefaults(properties); - return new SearchSettings(dbConn); + return new SearchSettings(dbConn, defaults); } else { @@ -64,9 +74,10 @@ class SearchSettings - private SearchSettings(DBConn dbConn) + private SearchSettings(DBConn dbConn, DefaultParamValues defaults) { this.dbConn = dbConn; + this.defaults = defaults; } @@ -81,5 +92,15 @@ class SearchSettings return dbConn; } + private static DefaultParamValues loadDefaults(Properties properties) + { + DefaultParamValues defaults = new DefaultParamValues(); + defaults.responseFormat = properties.getProperty("default_response_format", "application/fits").strip(); + defaults.skySystem = properties.getProperty("default_sky_system", "ICRS").strip(); + defaults.specSystem = properties.getProperty("default_spec_system", "WAVE_Barycentric").strip(); + defaults.showDuration = "yes".equals(properties.getProperty("show_duration", "no").strip()); + return defaults; + } + } diff --git a/java-libs/lib/vlkb-volib-0.9-SNAPSHOT.jar b/java-libs/lib/vlkb-volib-0.9-SNAPSHOT.jar index 94a329a806bb4c43df0d25c3d36896d6b28ccce4..9ba5160584a847c38f4cae9a2732f69845e30032 100644 Binary files a/java-libs/lib/vlkb-volib-0.9-SNAPSHOT.jar and b/java-libs/lib/vlkb-volib-0.9-SNAPSHOT.jar differ