This project has been migrated to GitHub:
Releases are available for download at:
Some documentation in this project Wiki will remain available here until it is migrated to GitHub.
- Add minimum request interval and use it to avoid sending web service requests too quickly. At 50 milliseconds the throttling will not engage for the vast majority of users.
- Numerous fixes to handling of Federated requests.
Highlights of changes:
- Support for much larger range of sample rates. Outside of the range 32767 to 1/32767 integer sample rates are approximated whenever possible.
- Rewrite of all decoding and encoding routines to replace those used from qlib2, now the entire project is LGPL licensed.
ChangeLog since 2.17:
- Remove limitation on sample rate before calling ms_genfactmult() in the normal path of packing records. Previously generating the factor and multiplier was not attempted for rates higher than 32,767. - ms_genfactmult() now support a much larger range of integer sample rates and periods. - ms_genfactmult() now sets the factor and multiplier using the SECONDS/SAMPLE notation for sample rates less than 1.0 to retain precision for low rates. - ms_genfactmult() now assumes the specified rate is a sample period in seconds if the samprate value is negative. - Add ms_rsqrt64() as a general use reciprocal sqrt for doubles. - Use memcpy() instead of assignment when unpacking float32 and float64 samples to avoid problems with NaN's. Thanks Lion Krischer. - Add test for reading records without Blockette 1000. - Reformat all source code using included clang-format profile. - A more elegant sanity check for output length in packing by mbyt. - Improvements for test suite, more consistency. - Remove msr_decode_steim? from libmseed.def, they are internal. - Add sanity to length check before memset calls in packing functions. - Check for environment variables ENCODE_DEBUG and DECODE_DEBUG and set debugging output, at this point it is Steim frame details and differences being encoded/decoded. - Fix padding in steim encoding routines. - Remove unneeded output buffer checks in steim decoding routines. - Replace data sample packing and unpacking routines from qlib2 with new routines developed from scratch. All code is now LGPL licensed. - Add test suite with tests for encoding, decoding, parsing, etc. - Update licensing to GNU-LGPL version 3 and include (L)GPL licenses in LICENSE.txt. - Define needed C99 int types for MSVC 2012 or earlier. Previously this was only done for versions earlier than MSVC 2010.
Web Service Shell version 2 is a major update that adds the capability to define multiple endpoints and adds more flexibility in naming services. Incremental improvements include adding a new logging method and more consistent error messages. The core concept of providing a web service that can be configured via simple properties files to utilize external resources remains the same.
- Configure multiple, arbitrary endpoints. Previously, only one endpoint, “query” was provided. Now it is possible to define multiple endpoints and define endpoint names by configuration. Each endpoint may have its own list of supported media types and may include static or dynamic HTTP response header adjustments.
- The web service naming convention (and URL path) has been generalized to support simple or multi-level naming conventions while still supporting the original, three level FDSN standard of “/fdsnws/<service>/<majorversion>/“
- Endpoints that return content proxied from other resources (e.g. files or other endpoints) are supported. In version 1, only one endpoint, “application.wadl” was available to deliver XML content. In version 2, multiple proxy endpoints may be configured, along with respective media types. Also, endpoint “application.wadl” may be removed if it is not needed.
- A new loggingMethod to support RabbitMQ has been added.
- Time values in usage log messages are standardized to UTC time so that time is not affected by other system settings.
- Version 2 has improved consistency for error messages
- A few unused parameters are removed
Changes needed for upgrading a service from version 1 to version 2
- Configuration file naming conventions have changed slightly to support generalized service naming capability.
- Additional syntax is used to define endpoints plus their respective parameters see WSS 2.2 Documentation at https://seiscode.iris.washington.edu/projects/webserviceshell/wiki/Web_Service_Shell for details on naming conventions and configuration parameter changes.
Binaries are posted for the latest version (0.9) of Seismic Canvas. This is the last beta version before 1.0RC is released in January. Binaries are now available for both 32 and 64 bit Windows and some Linux distros.
- Issue 633 - Added a check for non-zero exit code from the command line handler after
stdoutis closed. Also added error text to
stdoutstream if a non-zero exit code is encountered.
- Issue 631 - In the service parameter configuration file (servicename-1-param.cfg), the parameter
aliaseshas been added to more easily define short-hand versions of parameter names (i.e. net/network). These identical parameters no longer need to be defined separately in the parameter configuration file.
- Issue 607 - In the service configuration file (servicename-1-service.cfg), the parameter
outputTypehas been replaced with
outputTypesand now determines the MIME type returned to the HTTP header.
- Issue 606 - Various fixes to logging messages and content.
- Issue 473 – Update error response for service root documentation page. Now, information is more clearly displayed when the root documentation page is not available.
- Issue 688 – A new resource endpoint has been added (‘v2/swagger’). The respective parameter ‘swaggerV2URL’ has been added to the service configuration file (SERVICENAME-1-service.cfg).
- Issue 690 – Updated error handling when the service WADL is not found.
- Issue 707 – Fixed a bug where start and end times were not listed in the service usage logs if the times were not specified in the query.
- Issue 724 – Added the boolean parameter ‘corsEnabled’ to the service configuration file to include the Access-Control-Allow-Origin header in the HTTP response.
- Issue 733 – A new resource endpoint has been added (‘info’). The respective parameter ‘infoHandlerProgram’ has been added to the service configuration file (SERVICENAME-1-service.cfg)
Restore capability to write output miniSEED to stdout by specifying the output file as a single dash, e.g. "-o -"
This release adds support for non-persistent (session) cookies for HTTP requests. This release will also retry requests resulting in authentication errors a single time as a work around edge-case authentication issues.
Change since 2.16m:
- Round Fixed Section Data Header start time values to the nearest tenth of millisecond and restrict the microsecond offset value to a range between -50 and +49 as recommended in SEED. Previously start times were truncated at tenths of millisecond resolution and the microsecond offset value was between 0 and +99. This also addresses a bug where microsecond offsets were off by 100ms for times before Jan 1 1970. Thanks to Lion Krischer for reporting.
Also available in: Atom