|
Packit |
a4aae4 |
News for version 3.19.1
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Portability issues: Updated gnulib and mkstemps fixed as per user
|
|
Packit |
a4aae4 |
reports. Removed a test for block_size in HTTPCacheTest that failed on
|
|
Packit |
a4aae4 |
Fedora ppc64le system with XFS system
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Branches/tickets merged: hyrax390 (CppUnit test improvements)
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
News for version 3.19.0
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Bug fixes in memory usage for Vector types.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Refactored transform_to_dap4() methods and associated API
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Implmented transform_to_dap2() method.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Refactored test harnesses so that running individual
|
|
Packit |
a4aae4 |
tests is now a viable option.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
News for version 3.18.3
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Bug fix for DAP4 data transmissions.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
XML Parser fixes for DAP4: We are now tolerant of elements that
|
|
Packit |
a4aae4 |
are not in the DAP4 namespace, so the DMR document can be extended
|
|
Packit |
a4aae4 |
with additional information without breaking our parser.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
D4Group's clone (aka ptr_duplicate) method returned a D4Group and not
|
|
Packit |
a4aae4 |
a BaseType; fixed.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
News for version 3.18.2
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Fixed an issue with DAP4 CE parsing, double quotes and %20 escape
|
|
Packit |
a4aae4 |
characters.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Type fix for getopt() for platforms where char is unsigned by default.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Added more bigendian test baselines.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Added libuuid to the requirements listed in INSTALL.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
News for version 3.18.1
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Minor fix for the source distribution.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Fixed a long-standing bug in BaseType::set_send_p() and set_read_p().
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Added a way to build 'universal' baselines for tests that include
|
|
Packit |
a4aae4 |
data. Tests that included data had different checksums on different
|
|
Packit |
a4aae4 |
architectures and this meant two sets of baselines for them. No more.
|
|
Packit |
a4aae4 |
I'm keeping the old tests with their dual baselines (they test the
|
|
Packit |
a4aae4 |
checksum code) but all newer tests should use the 'universal' test
|
|
Packit |
a4aae4 |
macros.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Added DAP4 filter support!
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
News for version 3.17.3
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Fixed a soname error - Adding a const constructor seems to have
|
|
Packit |
a4aae4 |
*removed* the old constructor as far as some code is cncerned (it's
|
|
Packit |
a4aae4 |
still there, but with a different mangled name).
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
News for version 3.17.2
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Added tests for big-endian machines from Dan HorĂ¡k <dan@danny.cz>
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
News for version 3.17.1
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
A bug fix release.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Fix for endian detection issues and unqualified use of 'array' (it
|
|
Packit |
a4aae4 |
should have been libdap::array). The latter affects builds with
|
|
Packit |
a4aae4 |
recent versions of gcc.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
See the ChangeLog for other issues that this version addresses.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
News for version 3.17.0
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Better error reporting. Error objects are now always thrown with a
|
|
Packit |
a4aae4 |
code that 'make sense' and use the default code only when really
|
|
Packit |
a4aae4 |
necessary. This means that the BES will not report most Error throws
|
|
Packit |
a4aae4 |
as an internal error (only a few are) unless that's really the case.
|
|
Packit |
a4aae4 |
This is used, in turn, by the front end to make better error responses
|
|
Packit |
a4aae4 |
for users.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
The old timeout code is still present but not used. This matches
|
|
Packit |
a4aae4 |
changes made in the BES to correctly process timeouts.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Improved support for doxygen.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Support for DAP4: Attributes were sometimes mis-coded as Byte when
|
|
Packit |
a4aae4 |
they should have been Float32. Fixed.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Child Groups were sometimes printed twice. No more.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
News for version 3.16.0
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
I've bumped up the version because of an API change in libdap - the
|
|
Packit |
a4aae4 |
library no longer computes the DAP4 CRC32 checksum as part of the
|
|
Packit |
a4aae4 |
BaseType::intern_data() method. This API change affects DAP4 only.
|
|
Packit |
a4aae4 |
Otherwise, this is a bug-fix release for 3.15.1
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Bugs fixed:
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
getdap4 correctly produces output for dataset with child groups.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Tests now work correctly for big-endian machines - before the DMR tests
|
|
Packit |
a4aae4 |
were failing because the CRC32 codes are different for the same, e.g.,
|
|
Packit |
a4aae4 |
int32 value, with different byte order. Not addressed are the issues
|
|
Packit |
a4aae4 |
of how best to encode the byte order used when CRC32 computations are
|
|
Packit |
a4aae4 |
done. Thanks to the folks at RedHat for help (a VM) to work on this.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
News for version 3.15.1
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Bug fixes
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
News for version 3.15.0
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
The library now writes to the network using a child thread, allowing
|
|
Packit |
a4aae4 |
parallel processing of data reads and writes when one or more variables
|
|
Packit |
a4aae4 |
are returned (or when returning the result of an aggregation).
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
The library now supports writing 'vector' data (i.e., Array variables)
|
|
Packit |
a4aae4 |
in parts so that large arrays that are being built up over time can be
|
|
Packit |
a4aae4 |
serialized in pieces as the data becomes available. This is combined
|
|
Packit |
a4aae4 |
with the parallel I/O feature when serializing aggregations - other
|
|
Packit |
a4aae4 |
handlers could also take advantage of it
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
We fixed an issue in Vector where template methods were used in a way
|
|
Packit |
a4aae4 |
that broke inheritance, introducing a hard-to-diagnose bug in the NCML
|
|
Packit |
a4aae4 |
code. The problem was that variables that describe the 'aggregation
|
|
Packit |
a4aae4 |
dimension' could not be subset. That's now fixed.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
News for version 3.14.2
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
This version of the library _changes the behavior of BaseType::serialize()_
|
|
Packit |
a4aae4 |
so that memory allocated on the heap used to hold data (e.g., for an
|
|
Packit |
a4aae4 |
Array) will be deleted as soon as the data are serialized. This was added
|
|
Packit |
a4aae4 |
to reduce memory consumption when returning responses with many large
|
|
Packit |
a4aae4 |
variables. The change did not affect any of the code we normally test
|
|
Packit |
a4aae4 |
against; I think it was a largely undocumented 'feature' that the data
|
|
Packit |
a4aae4 |
were still present after serialized returned. However, if a module needs
|
|
Packit |
a4aae4 |
the data after serialize() is called, it can use a new method called
|
|
Packit |
a4aae4 |
serialize_no_release() to get the old behavior.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
News for version 3.14.1
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
We started using Travis-CI and Coverity for/with/on this code; there was
|
|
Packit |
a4aae4 |
a learning curve... ;-) Also some issues with the parsers have been
|
|
Packit |
a4aae4 |
addressed, hopefully resulting in more straightforward builds.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
News for version 3.14.0
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
This version of libdap contains the current DAP4 implementation for
|
|
Packit |
a4aae4 |
C++. The implementation is nearly complete, lacking only the CE filters
|
|
Packit |
a4aae4 |
for Sequences.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
News for version 3.13.3
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Memory leak fix in RValue.cc - affects server function evaluation only.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
News for version 3.13.2
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Fixed a memory leak in the CE parser when evaluating server functions.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
News for version 3.13.1
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Fix for a unit-test that uses the default server at test.opendap.org.
|
|
Packit |
a4aae4 |
This affects neither the API nor ABI of libdap; only the test baseline
|
|
Packit |
a4aae4 |
was changed.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
News for version 3.13.0
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Added a xml file to serve as input for the perl-based abi compatibility
|
|
Packit |
a4aae4 |
checker. Seems to be pretty slick; see abi-checker.xml.in for more info.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Some updates - mostly addition of #include <unistd.h> - for OSX 10.9's
|
|
Packit |
a4aae4 |
clang compiler.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
News for version 3.12.1
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Fixed the behavior of Sequence::read_row() so that the documented
|
|
Packit |
a4aae4 |
semantics of read() are used. This will require changes in some of the
|
|
Packit |
a4aae4 |
handlers but does not change the libray's ABI. Handler's that don't
|
|
Packit |
a4aae4 |
need the new/corrected behavior can use version 3.12.0.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
News for version 3.12.0
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Moved server functions out of libdap; they are now stored in a BES module.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Added support for building large (constant) arrays to be used in
|
|
Packit |
a4aae4 |
server functions. The arrays are defined using a new special form that
|
|
Packit |
a4aae4 |
the ConstraintEvaluator class supports. The server side functions are
|
|
Packit |
a4aae4 |
now in their own BES module (built as part of the BES for now) and
|
|
Packit |
a4aae4 |
it's possible to name the constant arrays. Arrays of 1 million
|
|
Packit |
a4aae4 |
elements can be made in a fraction of a second (although it will take
|
|
Packit |
a4aae4 |
longer to send the constraint to the server). See the README file for
|
|
Packit |
a4aae4 |
more details.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
News for version 3.11.7
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Bug fix for the server function caching code. Now if the function
|
|
Packit |
a4aae4 |
cache directory /tmp/dap_functions_cache exists, it will be used to
|
|
Packit |
a4aae4 |
cache the results of applying server functions. If the directory does
|
|
Packit |
a4aae4 |
not exist, then the function results won't be cached - a minor
|
|
Packit |
a4aae4 |
performance penalty in most cases.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
The size of the cache is set to 20GB. The size and location of the
|
|
Packit |
a4aae4 |
cache are fixed for this version of libdap but they will move into
|
|
Packit |
a4aae4 |
the bes.conf file as parameters in a future version of the server.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
News for version 3.11.6
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Changes to the way constraints are evaluated when they contain server
|
|
Packit |
a4aae4 |
functions. Now DAS and DDS objects can be returned from requests that
|
|
Packit |
a4aae4 |
include those constraints. The server function call results are
|
|
Packit |
a4aae4 |
cached, so that sending the same function calls several times will not
|
|
Packit |
a4aae4 |
evaluate those functions more than once.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
News for version 3.11.5
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Fixed a memory leak in XDRStreamMarshaller and a bug in
|
|
Packit |
a4aae4 |
DDS::add_var_nocopy().
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
News for version 3.11.4
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Merged to trunk; tagged.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
News for version 3.11.3
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Changed the return value for dap-config --libs so that it does not contain
|
|
Packit |
a4aae4 |
the curl static libs. This causes problems when linking on CentOS 6 in some
|
|
Packit |
a4aae4 |
cases.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
News for version 3.11.2
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
The new DAP3.3 Keywords are supported by the library. These are sort
|
|
Packit |
a4aae4 |
of a hidden feature of DAP4 that might not be used.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
There are many bug fixes in this update; check the ChangeLog or Trac.
|
|
Packit |
a4aae4 |
Two notable fixes:
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
* The way attributes are encoded has changed subtly so that now only
|
|
Packit |
a4aae4 |
spaces are escaped. This fixes a problem with our XML and RDF
|
|
Packit |
a4aae4 |
responses.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
* The XML output (i.e., the DDX) is now built using an XML library, so
|
|
Packit |
a4aae4 |
any encoding issues are its fault ;-) But, in a pragmatic sense,
|
|
Packit |
a4aae4 |
this has greatly simplified the library and sets the stage for
|
|
Packit |
a4aae4 |
further simplification of the methods that build responses. The
|
|
Packit |
a4aae4 |
behavior of those methods has not changed.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
News for version 3.11.1
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Merge of the Hyrax 3.6.2 fixes.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
A race condition in the HTTP cache was fixed.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Fixes for the OS/X package.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
News for version 3.11.0
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Constraint expressions can now include multiple function calls.
|
|
Packit |
a4aae4 |
Previously, when a function was used in the projection part of the CE
|
|
Packit |
a4aae4 |
and it was not a 'projection function,' but a function that returns
|
|
Packit |
a4aae4 |
data, only function could be called in the CE. Now the evaluator
|
|
Packit |
a4aae4 |
supports calling a series of functions. The results are returned in a
|
|
Packit |
a4aae4 |
Dataset object as before. Because this is a new behavior for the
|
|
Packit |
a4aae4 |
library I have bumped up the minor revision. This version is backward
|
|
Packit |
a4aae4 |
compatible with the previous version of the library.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Grid now prints the XML declaration correctly when a constrained Grid
|
|
Packit |
a4aae4 |
variable's type decays to a Structure. The expr-test program now has
|
|
Packit |
a4aae4 |
an XML option (-x) for use with constrained DDS/DDX output. This bug
|
|
Packit |
a4aae4 |
affected the usefulness of the DDX response.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
the geogrid() function now takes both (grid, <box points>) and (grid,
|
|
Packit |
a4aae4 |
lat array, lon array <box points>). This includes some minimal testing
|
|
Packit |
a4aae4 |
of the new code.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Bug fixes.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
News for version 3.10.2
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Changed the way the DAS object's attributes are merged into a DDS
|
|
Packit |
a4aae4 |
object, which did two things. First, the process of merging the
|
|
Packit |
a4aae4 |
attributes has a default behavior that will work if the DAS and DDS
|
|
Packit |
a4aae4 |
are built according to the DAP 2.0 specification, and second, the
|
|
Packit |
a4aae4 |
handlers can specialize the process to suite their own needs. This
|
|
Packit |
a4aae4 |
means that new handlers that build odd DAS objects will need to
|
|
Packit |
a4aae4 |
specialize the transfer_attributes() method defined by BaseType,
|
|
Packit |
a4aae4 |
Constructor and Grid. I've already done this for the current handlers
|
|
Packit |
a4aae4 |
we're distributing as part of Hyrax. This means that attributes from
|
|
Packit |
a4aae4 |
the netCDF handler appear correctly in Grid maps.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Speaking of the netCDF handler, it now builds with netcdf 4.1.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Build fixes galore, including new Requires: lines in the rpm spec
|
|
Packit |
a4aae4 |
files which should make it easier to short circuit installation
|
|
Packit |
a4aae4 |
problems with the handlers.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
The DDX no longer contains attributes with &0xdd; escape codes. When
|
|
Packit |
a4aae4 |
an XML document declares that it is UTF-8 codes < 0x20 are not
|
|
Packit |
a4aae4 |
allowed. We're using octal escapes again.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
The preceding fix, along with the corrected processing of the DAS
|
|
Packit |
a4aae4 |
object mean that two major issues with the DDX that hindered the use
|
|
Packit |
a4aae4 |
of that response in semantic web applications are gone.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
News for version 3.10.1b
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
We have removed the Server 3 (CGI) software from the dap-server
|
|
Packit |
a4aae4 |
package and, with that change, we have removed the deflate program
|
|
Packit |
a4aae4 |
from this library/package.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
The geogrid() function has been much improved. It will now answer
|
|
Packit |
a4aae4 |
requests where the latitude is upside down in the dataset and flip the
|
|
Packit |
a4aae4 |
result so that the north pole is 'up'. It will also handle requests
|
|
Packit |
a4aae4 |
that 'wrap around' the date line. Error messages are also improved.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
This library now implements DAP 3.3 including the OtherXML DAP
|
|
Packit |
a4aae4 |
attribute type (which will become AnyXML in DAP 4). The library now
|
|
Packit |
a4aae4 |
implements simple version negotiation and a DDX response that is DAP
|
|
Packit |
a4aae4 |
version sensitive. See the online DAP4 design documentation for more
|
|
Packit |
a4aae4 |
information (docs.opendap.org).
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Many, many fixes and extensions for DAP4 and NcML support. (NB: the
|
|
Packit |
a4aae4 |
NcML handler is a separate project).
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
News for version 3.9.2
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Memory leak fixed when using DDS::transfer_attributes on a DAS that uses the
|
|
Packit |
a4aae4 |
Alias keyword.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
News for version 3.9.1
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
The CE parser now returns an error if an array of structures that contains
|
|
Packit |
a4aae4 |
arrays is improperly constrained (the enclosing structure array _may_ be
|
|
Packit |
a4aae4 |
subsampled, but that subsampling must be the same for each of its fields. The
|
|
Packit |
a4aae4 |
fields can be independently subsampled.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
A problem with the client-side cache has been fixed.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Variable names can now be quoted! That is, in a CE you can say:
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
"my odd name"."% H2O"[10:13]
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
and it will parse. Must clients and all web browsers will encode all of this
|
|
Packit |
a4aae4 |
using the web's URL escape syntax, which his hard to read, but this means that
|
|
Packit |
a4aae4 |
any character can now appear in a variable name (double quotes can be escaped
|
|
Packit |
a4aae4 |
using a backslash and backslashes can be includes using '\\'). The quotes are
|
|
Packit |
a4aae4 |
optional, of course, so all CEs that work now will continue to work.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
News for version 3.9.0
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
libdap now supports DAP 3.2. The evolving DAP 3.x protocol is described at
|
|
Packit |
a4aae4 |
http://docs.opendap.org/index.php/DAP3/4. The most important change from DAP
|
|
Packit |
a4aae4 |
3.1 to 3.2 is:
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
DAP 3.2 introduces the notion of protocol negotiation, similar to HTTP's
|
|
Packit |
a4aae4 |
response type or encoding negotiation. The client MAY send an XDAP-Accept
|
|
Packit |
a4aae4 |
header to tell the server the highest version of the protocol that the
|
|
Packit |
a4aae4 |
client can understand. The server MUST then respond using only responses at
|
|
Packit |
a4aae4 |
or below that version number of the protocol. Note that an Error response
|
|
Packit |
a4aae4 |
(e.g., "The response you requested cannot be returned using the protocol
|
|
Packit |
a4aae4 |
version you understand") can be understood by any client. If a client does
|
|
Packit |
a4aae4 |
not send the XDAP-Accept header, then the server MUST assume a DAP 2.0/3.1
|
|
Packit |
a4aae4 |
client. The only functional difference between DAP 2.0, 3.0 and 3.1 is
|
|
Packit |
a4aae4 |
form/content of the version information returned in the HTTP response
|
|
Packit |
a4aae4 |
header.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
By allowing the server to respond with a lower version the protocol can
|
|
Packit |
a4aae4 |
support old servers (since that's how they will respond) and enable newer
|
|
Packit |
a4aae4 |
clients to treat the lower version responses as errors (because the newer
|
|
Packit |
a4aae4 |
servers can be expected to discriminate between different server versions).
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
New servers SHOULD always return a response that conforms to the version
|
|
Packit |
a4aae4 |
sent from the client in the XDAP-Accept header.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
In addition to returning the DAP protocol version using the XDAP header
|
|
Packit |
a4aae4 |
(which is a mechanism specific to HTTP), the protocol version will also be
|
|
Packit |
a4aae4 |
returned in the DDX Dataset element using the XML attribute dap-version.
|
|
Packit |
a4aae4 |
See DDX.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
With this version of libdap the DDX is slightly different for DAP 3.2 - it
|
|
Packit |
a4aae4 |
now includes DAP protocol version information and an xmlbase element.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
There was ambiguity regarding how an array of structures would be constrained.
|
|
Packit |
a4aae4 |
The web page of DAP 2 Errata has been updated with a clarification of this and
|
|
Packit |
a4aae4 |
the constraint expression parser has been updated to reflect that fix. See
|
|
Packit |
a4aae4 |
the DAP3/4 page and ticket 975 for the complete info. Short version: Suppose
|
|
Packit |
a4aae4 |
's' is an array of structures and 'm' is an array that is a member of 's'.
|
|
Packit |
a4aae4 |
You can constraint 'm' like this: s2[0:4].m[2:7]
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Now the notion that a dataset identifier (e.g., a file name) is bound to the
|
|
Packit |
a4aae4 |
DDS has been dropped and that identifier is bound to a variable. This lets
|
|
Packit |
a4aae4 |
the library be used in contexts where a DDS holds variables from several
|
|
Packit |
a4aae4 |
different places (e.g., files).
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
String attribute values were always quoted (quotes were added if not present
|
|
Packit |
a4aae4 |
in the data set) and while this was OK for the DAS response, it broke the
|
|
Packit |
a4aae4 |
DDX. Now quotes are added to DAS response but not the values themselves. See
|
|
Packit |
a4aae4 |
ticket 1163.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Nested Sequences were failing when the constraint forced one or more rows of
|
|
Packit |
a4aae4 |
the inner Sequence to be empty. Fixed.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
A number of build issues have been fixed in this version, see the ChangeLog
|
|
Packit |
a4aae4 |
file.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
News for version 3.8.2
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Significant improvements to the HTTP cache. The cache software could return
|
|
Packit |
a4aae4 |
erroneous responses in some rare cases when using multi-threaded code. Fixed.
|
|
Packit |
a4aae4 |
Also the entire caching system is now much more robust since the 'table' that
|
|
Packit |
a4aae4 |
contains information about individual entries is encapsulated in it's own
|
|
Packit |
a4aae4 |
class. The HTTP cache is still both thread-safe and _not_ multi-process safe.
|
|
Packit |
a4aae4 |
However, it should be possible to modify the HTTPCacheTable class to use a
|
|
Packit |
a4aae4 |
database system like MySQL or SQLite to make it MP-safe.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
The 'ancillary information' functions have been moved to their own class
|
|
Packit |
a4aae4 |
(from DODSFilter and the file cgi_util.cc).
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
I fixed the libdap win32 installer so that it does not install stuff in the
|
|
Packit |
a4aae4 |
win32 system directories anymore.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
News for version 3.8.1
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
The syntax for PROXY_SERVER and NO_PROXY_FOR have been fixed so that they are
|
|
Packit |
a4aae4 |
easier to use. PROXY_SERVER now takes a value like
|
|
Packit |
a4aae4 |
'http://user:pw@squid.proxy.edu:3128' and uses it correctly. In that value,
|
|
Packit |
a4aae4 |
all parts but the host name (squid.proxy.edu) are optional and the old syntax,
|
|
Packit |
a4aae4 |
as well as several common variants, are accepted. For the NO_PROXY_FOR entry,
|
|
Packit |
a4aae4 |
the '<protocol>,' is now optional. Only the HTTP protocol is supported or the
|
|
Packit |
a4aae4 |
proxy server.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
News for version 3.8.0, 29 February 2008
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
The libdap classes and code are now inside of the libdap namespace. In order
|
|
Packit |
a4aae4 |
to access any of the classes, for example, you will need to do one of the
|
|
Packit |
a4aae4 |
following. After including the libdap headers you can:
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
1. add a using statement for the entire libdap namespace:
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
using namespace libdap ;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
2. add a using statement for the classes that you will be using:
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
using libdap::DAS ;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
3. inside your code scope the use of libdap classes.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
libdap::DAS *das = code_to_get_das() ;
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
HTTPCache updated to cache an entry, returning not only the FILE pointer but
|
|
Packit |
a4aae4 |
also the name of the file in the cache. This way, the cached item could be
|
|
Packit |
a4aae4 |
passed to a data handler, such as the netcdf_handler, and read.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
The pkg build for Mac OSX was updated to automate the creation of the
|
|
Packit |
a4aae4 |
ReadMe.txt file, add a README and NEWS file to the dmg and automatically
|
|
Packit |
a4aae4 |
create the dmg using DropDMG.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
News for version 3.7.10, 28 November 2007
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Fixed XDRStreamMarshaller so that it no longer allocates a huge buffer. This
|
|
Packit |
a4aae4 |
fixes a bug where the BES fails to start on smaller machines.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
News for version 3.7.9, 21 November 2007
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Bumped up the soname version numbers for libdapclient and libdapserver due
|
|
Packit |
a4aae4 |
to changes in the HTTPResponse and AlarmHandler interfaces.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
The transfer_data() method defined for Sequence and Structure has been
|
|
Packit |
a4aae4 |
generalized and implemented for all classes. In the process, so issues with
|
|
Packit |
a4aae4 |
the way nested sequences were handled have been fixed. I renamed the method
|
|
Packit |
a4aae4 |
to intern_data() since it is now a part of libdap (and not just two classes).
|
|
Packit |
a4aae4 |
The method uses the read() methods defined for the type classes (Byte, ...,
|
|
Packit |
a4aae4 |
Grid) to read data into variables in a DDS as if they were read in using
|
|
Packit |
a4aae4 |
deserialize(). This is used by the ASCII response generator and might be used
|
|
Packit |
a4aae4 |
by other 'formatted output' generators.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Generated files (like the grammar files) are now shipped with the source
|
|
Packit |
a4aae4 |
distributions. (From Patrice Dumas)
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Methods which write output using the C++ iostream system have been added back
|
|
Packit |
a4aae4 |
into the library and are going to replace the FILE* versions of those
|
|
Packit |
a4aae4 |
methods. We have also added an 'Un/Marshaller' set of classes so that we can
|
|
Packit |
a4aae4 |
release a version of Hyrax (slated to be 1.4) that will improve BES/OLFS
|
|
Packit |
a4aae4 |
communication efficiency.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
The functionality of the Passive* type classes was subsumed by their parent
|
|
Packit |
a4aae4 |
classes and they were removed from the library to cut down on 'hierarchy
|
|
Packit |
a4aae4 |
clutter.' Some other unneeded files were also removed.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
The maximum size of a Str object was changes to 65535 (DODS_USHORT_INT-1) to
|
|
Packit |
a4aae4 |
accommodate HDF5 strings.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Checkouts from subversion now have no (?) generated files. We are keeping a
|
|
Packit |
a4aae4 |
copy of the grammars in subdirectory named 'grammarfiles.'
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
HTTP response codes are now available in libdap HTTPResponse objects. From
|
|
Packit |
a4aae4 |
Darren Hardy.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
News for version 3.7.8, 26 June 2007
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Updated the email address for support to support at opendap.org and changed
|
|
Packit |
a4aae4 |
the tech email list address to opendap-tech at opendap.org. This is part of
|
|
Packit |
a4aae4 |
the plan to shift support services to OPeNDAP and to use the tech email list
|
|
Packit |
a4aae4 |
as part of that plan.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Updated to the latest gnulib software.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Memory errors fixed:
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
In the HTTP processing code for clients which was triggered when a client
|
|
Packit |
a4aae4 |
read from an older server (older servers had malformed HTTP headers).
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
An error in the regular expression class (Regex) where the build
|
|
Packit |
a4aae4 |
generated flawed code on a 64-bit machine.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
OSX Build improvements.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Patrice Dumas' changes to dods-datatypes.h - Now the header uses the C99
|
|
Packit |
a4aae4 |
types unless the stdint.h header is not present.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
pkg-config support. From a patch by Patrice Dumas.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
General improvements to comments, strings and error messages throughout the
|
|
Packit |
a4aae4 |
libraries.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
News for version 3.7.7, 2 May 2007
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Fixed a bug where the build was not installing the dapserver and dapclient
|
|
Packit |
a4aae4 |
libraries.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Fixed a handful of platform-specific build issues.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
There are some minor performance improvements to the constraint evaluator.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Repaired some problems with the server-side functions.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
News for version 3.7.6, 12 March 2007
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Fixed a bug in the linear_scale() Constraint Expression function when that
|
|
Packit |
a4aae4 |
function was used with plain arrays.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
I fixed a build issue on linux for ml-structs caused by a bad/missing
|
|
Packit |
a4aae4 |
#include in GnuRegex.h.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
News for version 3.7.5, 7 Feb 2007
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Many bug fixes for the Server-Side functions linear_scale(), grid(),
|
|
Packit |
a4aae4 |
geogrid() and geoarray().
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Added dump method to the BaseType classes, DAS, DDS, DataDDS. To do
|
|
Packit |
a4aae4 |
this, created a DapObj base class for all of these to inherit from
|
|
Packit |
a4aae4 |
(directly or indirectly) and in the DapObj class is the operator<<
|
|
Packit |
a4aae4 |
method. This will aid in debugging. Created an indentation classes to
|
|
Packit |
a4aae4 |
help with dumping objects.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Win32 port fixes. The Win32 build is closer to the Unix build. Our
|
|
Packit |
a4aae4 |
hope is to get the two to be almost identical so that we can all build
|
|
Packit |
a4aae4 |
on Win32 and thus get away from having the win32 releases lag behind the
|
|
Packit |
a4aae4 |
Unix releases.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Fix in Vector for gcc 4.1
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
News for version 3.7.4, 02 Jan 2007
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Build enhancements and bug fixes. See ChangeLog for specifics.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
News for version 3.7.3, 24 Nov 2006
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Fixed unescattr() so that it works!
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Rob added improvements to the win32 build.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Fixed a number of bugs including: Problems with the DDS::transfer_attributes()
|
|
Packit |
a4aae4 |
method which broke libnc-dap; Added a new configuration parameter to .dodsrc
|
|
Packit |
a4aae4 |
so that SSL validation can be suppressed; Fixed problems with the change from
|
|
Packit |
a4aae4 |
\n to \r\n line terminators for MIME headers which slipped through the cracks
|
|
Packit |
a4aae4 |
the first time; and add gzip and compress to the set of accepted compression
|
|
Packit |
a4aae4 |
types supported by the client side.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Added Connect::request_ddx() which asks a server for the DDX response.
|
|
Packit |
a4aae4 |
Previously, it was possible to use getdap to print the DDX, but that object
|
|
Packit |
a4aae4 |
was actually built using the DAS and DDS from a server. Now the server is asked
|
|
Packit |
a4aae4 |
for the DDX. Servers should support this response to be compliant with DAP 3.1.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
In the ConstraintEvaluator class, the add_function() method now allows a server
|
|
Packit |
a4aae4 |
to override a function from libdap with a new definition of the same name.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
I added a new interface for the scalar types: value() and set_value() can be
|
|
Packit |
a4aae4 |
used to get and set values. These are much simple to use than the older
|
|
Packit |
a4aae4 |
val2buf() and buf2val() methods. This idea was copied from copied from the
|
|
Packit |
a4aae4 |
PassiveByte, ..., classes.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
New server-side functions for geographical constraints have been added. These
|
|
Packit |
a4aae4 |
functions provide a way to select parts of Grid or Array variables using
|
|
Packit |
a4aae4 |
Latitude and Longitude. Also added is a version() function which can be used
|
|
Packit |
a4aae4 |
by clients to figure out which version of functions is present. The version
|
|
Packit |
a4aae4 |
function has two forms, one which returns the information as plain text and
|
|
Packit |
a4aae4 |
one which returns the information in a small XML document. libdap 3.7.3 is a
|
|
Packit |
a4aae4 |
beta release of these functions. Note that these are _server-side_ functions
|
|
Packit |
a4aae4 |
so before they can be used, servers need to be built using this library and
|
|
Packit |
a4aae4 |
installed.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
The dap-config script has been fixed so that it behaves more like other
|
|
Packit |
a4aae4 |
such scripts.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
News for version 3.7.2
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Fixed a persistent bug in the GNURegex code. (ticket 389)
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Fixed a problem in HTTPConnect where the change from newline to cr/nl line
|
|
Packit |
a4aae4 |
terminators was not accommodated (no ticket, but part of the issues behind
|
|
Packit |
a4aae4 |
ticket 552).
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Added Sequence::transfer_data(). This method uses the read() method to read
|
|
Packit |
a4aae4 |
data and follows the same logic used by serialize to determine which data is
|
|
Packit |
a4aae4 |
'sent' but instead records the data in the d_values field. Thus a Sequence
|
|
Packit |
a4aae4 |
can transfer data to itself. The locally stored data apes the ability of the
|
|
Packit |
a4aae4 |
other classes to store a complete response and is the basis for the new ASCII
|
|
Packit |
a4aae4 |
response code (in dap-server/asciival) which Server4 uses.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
There's a fair amount of the geogrid() code now in place, although the
|
|
Packit |
a4aae4 |
function does not work, I have added a GeoConstraint class which is close to
|
|
Packit |
a4aae4 |
complete. The CEFunctionsTest unit tests fail.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
News for version 3.7.1
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Fixed bug #480. Attributes from the HDF4 server were not being handled in a
|
|
Packit |
a4aae4 |
way that made sense to netCDF clients.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Added a new method to AttrTable so that a vector of strings can be used to
|
|
Packit |
a4aae4 |
set a vector of attribute values in one call. No more need to build a loop
|
|
Packit |
a4aae4 |
every time you want to set values.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
The grid() CE function now conforms to the design submitted to URI as part of
|
|
Packit |
a4aae4 |
the REASoN award.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Fixed a bug when % signs were not handled correctly by the code in
|
|
Packit |
a4aae4 |
escaping.cc.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
News for version 3.7.0
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
The big change: The first of the DAP3/4 features was added to the libdap
|
|
Packit |
a4aae4 |
library; the library now includes the DAP protocol version number in all
|
|
Packit |
a4aae4 |
responses. A savvy client can test for this and process accordingly.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
A second feature, representation of the data source metadata in XML, is
|
|
Packit |
a4aae4 |
supported in alpha form. Expect the 'DDX' response to change slightly in the
|
|
Packit |
a4aae4 |
next release. The DDX returned now contains an obsolete element named 'Blob'
|
|
Packit |
a4aae4 |
which we won't be using. Other than the Blob element, the current DDX
|
|
Packit |
a4aae4 |
probably will not change much except for the addition of new datatypes,
|
|
Packit |
a4aae4 |
something that will take place only after other changes are made to the
|
|
Packit |
a4aae4 |
protocol. Many of the handlers now support returning the DDX, so developers
|
|
Packit |
a4aae4 |
can begin to play with it's capabilities.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
What's really nice about the DDX: It's cool that the DDX now encode the
|
|
Packit |
a4aae4 |
metadata in XML, but the really nice feature is that it combines information
|
|
Packit |
a4aae4 |
from the DDS and DAS, making the association of attributes to variables much
|
|
Packit |
a4aae4 |
easier.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Updated the reference guide (HTML pages in docs).
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Fixed a pernicious bug in GNURegex.cc
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Added the class ConstraintEvaluator. The DDS class now takes the constraint
|
|
Packit |
a4aae4 |
evaluator as a parameter, so it's possible to replace ours with your own.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
The single library libdap has been split into three libraries: libdap for the
|
|
Packit |
a4aae4 |
DAP functionality, libdapclient for the client-side classes and libdapserver
|
|
Packit |
a4aae4 |
for the server-side classes.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Added INSTALL.AIX which contains information about building libdap on AIX
|
|
Packit |
a4aae4 |
using the _native compiler_.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
News for version 3.6.2
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
This version includes two bug fixes.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
1. The library can now correctly reads binary data objects saved using the web
|
|
Packit |
a4aae4 |
interface. Before, this was very hard to do. The utility getdap has been
|
|
Packit |
a4aae4 |
modified so that it can decode these saved '.dods' files.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
2. The DODSFilter class used to build all of our data handlers no longer
|
|
Packit |
a4aae4 |
blocks when returning a data object to a web browser. This fixes a problem
|
|
Packit |
a4aae4 |
where the 'Get Binary' button on the data server's web interface would hang
|
|
Packit |
a4aae4 |
seemingly forever. In fact it did return the data blob, but only after the
|
|
Packit |
a4aae4 |
blocked handler had timed out.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
News for version 3.6.1
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Fixed a bug in deflate.c: Some comments used the C++ style comments and gcc
|
|
Packit |
a4aae4 |
rejected that.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Data server filters built with the 3.6.0 library were not compatible with the
|
|
Packit |
a4aae4 |
dap-server 3.6.0 software because the DODSFilter class did not recognize the
|
|
Packit |
a4aae4 |
-t option (which is used to pass the handler a timeout value).
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
News for version 3.6.0
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Added patches for RPM spec files from Patrice Dumas.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Fixed a problem where Grids with two or more dimensions with the same name
|
|
Packit |
a4aae4 |
were flagged as broken (by Grid::check_semantics). Now they are allowed as per
|
|
Packit |
a4aae4 |
the specification.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Added a new method get_parent() to AttrTable. This returns the parent
|
|
Packit |
a4aae4 |
container for this AttrTable.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
I removed the old iostream methods from the library. These methods should not
|
|
Packit |
a4aae4 |
be used because in many cases since other parts of the library use the C/stdio
|
|
Packit |
a4aae4 |
functions for I/O. In older versions of gcc, it was possible to mix the
|
|
Packit |
a4aae4 |
two types of I/O systems, but not now (and not in other compilers). To change
|
|
Packit |
a4aae4 |
your code, look in the file Removed_functions.txt to see the functions/methods
|
|
Packit |
a4aae4 |
that have been removed. In all cases there is a version that takes a FILE *
|
|
Packit |
a4aae4 |
in place of the ostream &. Use the FILE* version. If you're performing I/O
|
|
Packit |
a4aae4 |
that relies on operator<<() to do type conversions, use an ostringstream
|
|
Packit |
a4aae4 |
in your code and then write the string to stdout (or wherever) using fprintf
|
|
Packit |
a4aae4 |
like: fprintf(stdout, "%s", oss.str().c_str()). Ugly, but easier in some
|
|
Packit |
a4aae4 |
cases than replacing lots of tested C++ I/O with fprintf calls.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
I removed old methods in Connect that have been deprecated for more than
|
|
Packit |
a4aae4 |
a year. See Removed_functions.txt
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
I removed the old Pix methods. See removed_functions.txt.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
I removed the const char * overloads added to prevent collisions between
|
|
Packit |
a4aae4 |
the Pix and String (not string, but GNU's old libg String class) methods.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Added protocol version number header to responses which use the set_mime...()
|
|
Packit |
a4aae4 |
functions. The new header is called "XDAP-Protocol" and its value is the
|
|
Packit |
a4aae4 |
two digit DAP protocol version number. This is now used by the client-side
|
|
Packit |
a4aae4 |
deserialize() methods; I assume that a server that does not announce its
|
|
Packit |
a4aae4 |
protocol version is a 2.0 server.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Removed the set_mime...() functions which take an iostream; use the ones
|
|
Packit |
a4aae4 |
which take the FILE* instead. We replaced the iostream versions with FILE*
|
|
Packit |
a4aae4 |
versions a long time ago because the parsers all use FILE* I/O functions
|
|
Packit |
a4aae4 |
and mixing the C++ and C I/O is not predictable. The old functions were
|
|
Packit |
a4aae4 |
deprecated. To fix your code, just change the iostream variable to a FILE*.
|
|
Packit |
a4aae4 |
In most cases this will mean changing 'cout' to 'stdout.'
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
News for Release 3.5.3
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Changes to the Regex software. I've reimplemented the GNURegex code to
|
|
Packit |
a4aae4 |
use the only the POSIX functions. Because of this there are some subtle
|
|
Packit |
a4aae4 |
changes in the way the class Regex works. These changes address bugs that
|
|
Packit |
a4aae4 |
show up on Mac OS/X 10.4 (Tiger).
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
1) Meta characters like '{' now have to be escaped like '\\{'
|
|
Packit |
a4aae4 |
2) See the docs for the Regex::match and Regex::serach methods. Regex:match
|
|
Packit |
a4aae4 |
returns the number of characters that match or -1 if there's no match.
|
|
Packit |
a4aae4 |
Regex::serach returns the position of the _first_ match (not the longest
|
|
Packit |
a4aae4 |
as with POSIX) and the length of that first match in the value-result
|
|
Packit |
a4aae4 |
parameter 'matchlen'.
|
|
Packit |
a4aae4 |
3) The Regex constructor now takes only one argument, the regular expression
|
|
Packit |
a4aae4 |
to compile. There's a second ctor that takes a second parameter (an int)
|
|
Packit |
a4aae4 |
but it is a dummy.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
As a result of these changes, a small portion of the interface for libdap
|
|
Packit |
a4aae4 |
has changed.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Build improvements from Patrice Dumas.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Added a Mac OS/X package and RedHat rpm/srpm targets. There's also a pmsp
|
|
Packit |
a4aae4 |
file for use with Mac's PackageMaker.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
News for Release 3.5.2
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Fixed a bug where malformed Error objects from servers caused an exception.
|
|
Packit |
a4aae4 |
This caused the original error message to be lost, not very helpful.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
The library used a compile-time switch to control use of the factory class for
|
|
Packit |
a4aae4 |
creation of objects at run-time. This was causing more trouble than it was
|
|
Packit |
a4aae4 |
preventing, so I removed it. Code should switch from the 'virtual
|
|
Packit |
a4aae4 |
constructors' to the factory class now.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
The Test classes in the subdir 'test' should now produce the same values on
|
|
Packit |
a4aae4 |
64- and 32-bit machines.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Unit tests should all work (although one of the tests for util.cc is known to
|
|
Packit |
a4aae4 |
fail on FC4).
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Revamped the build to use automake.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Regression tests and the test classes are now in the subdir 'tests.'
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
The unit tests are now in the subdir 'unit-tests' and are not built or run by
|
|
Packit |
a4aae4 |
default. Some of these tests require access to the Internet to work and I
|
|
Packit |
a4aae4 |
decided to make then not run using the make check target from the top level
|
|
Packit |
a4aae4 |
(the regression tests in 'tests' do run using the top-level check target) so
|
|
Packit |
a4aae4 |
that the build would work w/o access to the net.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
The rpm spec file has been updated. See INSTALL for information about
|
|
Packit |
a4aae4 |
building rpm distributions.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Thanks to Patrice Dumas for help on the autoconf/make, with gnulib and the
|
|
Packit |
a4aae4 |
rpm spec file.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
News for Release 3.5.1 beta 2005/05/13
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
I changed some of the build parameters; the utility script is now named
|
|
Packit |
a4aae4 |
dap-config, the headers now install into $prefix/include/dap and the static
|
|
Packit |
a4aae4 |
library no longer has a version number appended. I've also written a rpm spec
|
|
Packit |
a4aae4 |
file which can be used to build a rpm file of/for a binary distribution. At
|
|
Packit |
a4aae4 |
this stage you'll need to be pretty savvy with RPM to get it to work; I'll
|
|
Packit |
a4aae4 |
write up instructions soon.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
News for Release 3.5.0 beta 2005/05/05
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Changes in the way the software is organized:
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
* First, the old 'DODS' CVS module is being broken up to facilitate more
|
|
Packit |
a4aae4 |
frequent releases of software. libdap++ has a new CVS module named
|
|
Packit |
a4aae4 |
'libdap.' To access the software using CVS, use 'cvs co libdap' (where in
|
|
Packit |
a4aae4 |
the past you used 'cvs co DODS/src/dap' or 'cvs co DODS' and then changed
|
|
Packit |
a4aae4 |
into the DODS/src/dap directory).
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
* The autoconf scripts have been updated; still no libtool or Makefile.am,
|
|
Packit |
a4aae4 |
but the scripts are much more robust.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
* The third-party packages are no longer bundled with the library. In a sense
|
|
Packit |
a4aae4 |
they never were, but they _were_ a part of the DODS CVS module. Now it's up
|
|
Packit |
a4aae4 |
to you to get and install the required packages. Look on the web site (or
|
|
Packit |
a4aae4 |
Google) for libxml2 and curl. We build using curl version 7.12.3 and libxml
|
|
Packit |
a4aae4 |
version 2.6.16; curl 7.12.0 and libxml2 2.5.7 should work.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
* The libdap software now installs in $prefix/{lib,include,bin} instead of
|
|
Packit |
a4aae4 |
inside the 'DODS tree.' By default $prefix is /usr/local; use the --prefix
|
|
Packit |
a4aae4 |
option of configure to specify a different directory than /usr/local. The
|
|
Packit |
a4aae4 |
library itself installs in $prefix/lib as libdap++.a.3.5; libdap++.a is
|
|
Packit |
a4aae4 |
symbolically linked to that file. The header files now install in
|
|
Packit |
a4aae4 |
$prefix/include/libdap-3.5; $prefix/include/libdap is symbolically linked
|
|
Packit |
a4aae4 |
to that directory. The utilities geturl and opendap-config have been
|
|
Packit |
a4aae4 |
renamed getdap and dap-config, respectively (the name geturl corresponds to
|
|
Packit |
a4aae4 |
another utility). The getdap utility is, except for the name change,
|
|
Packit |
a4aae4 |
exactly the same as geturl. The dap-config script provides a way to
|
|
Packit |
a4aae4 |
determine which libraries should be included when linking with a particular
|
|
Packit |
a4aae4 |
build of libdap++. It also provides information about the version of the
|
|
Packit |
a4aae4 |
library linked to $prefix/lib/libdap++.a and some other stuff. Use
|
|
Packit |
a4aae4 |
dap-config --help for a listing of all the options. Finally, the deflate
|
|
Packit |
a4aae4 |
program, which is used by some servers to provide compressed responses and
|
|
Packit |
a4aae4 |
is called by the library is not stored in $prefix/sbin (except on win32
|
|
Packit |
a4aae4 |
where it's stored in $prefix/bin).
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
The usage program is not currently installed; once we complete the
|
|
Packit |
a4aae4 |
reorganization process it will find a good home.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
Other changes to libdap++:
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
* The library now uses a factory class to determine how to instantiate
|
|
Packit |
a4aae4 |
specializations of Byte, Int32, et cetera. The class BaseTypeFactory
|
|
Packit |
a4aae4 |
defines the interface for the factory and provides a default implementation
|
|
Packit |
a4aae4 |
of the class. This implementation instantiates Byte, ..., Grid. Also
|
|
Packit |
a4aae4 |
supplied with the library is TestTypeFactory which instantiates the Test
|
|
Packit |
a4aae4 |
type classes (TestByte, ..., TestGrid). If your use of the library requires
|
|
Packit |
a4aae4 |
that the type classes be specialized, then you must modify your software so
|
|
Packit |
a4aae4 |
that it includes a factory class that specializes BaseTypeFactory. Then,
|
|
Packit |
a4aae4 |
when you create a DDS (or DataDDS) pass a pointer to an instance of your
|
|
Packit |
a4aae4 |
factory to the DDS constructor (or use the new DDS::set_factory() method).
|
|
Packit |
a4aae4 |
Look at BaseTypeFactory and the example specialization TestTypeFactory.
|
|
Packit |
a4aae4 |
It's very straightforward to make the change.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
For applications which don't specialize the type classes, the default
|
|
Packit |
a4aae4 |
factory should be fine. To avoid using the new DDS constructor (which
|
|
Packit |
a4aae4 |
requires that a pointer to an instance of BaseTypeFactory be supplied), your
|
|
Packit |
a4aae4 |
code must #define the symbol DEFAULT_BASETYPE_FACTORY. If this symbol is
|
|
Packit |
a4aae4 |
not defined (at compile time) then various compile-time errors will occur
|
|
Packit |
a4aae4 |
(the idea being this will prevent software from building and silently
|
|
Packit |
a4aae4 |
ignoring specializations of the type classes). If defined, this use the
|
|
Packit |
a4aae4 |
default factory class.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
The documentation for the DDS constructor has some more information.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
* The library contains support for the DDX object. The DDX will become the
|
|
Packit |
a4aae4 |
foundation of the DAP3 protocol. It uses XML to describe the information
|
|
Packit |
a4aae4 |
currently represented using our 'curly-brace' notation and also bundles
|
|
Packit |
a4aae4 |
the attributes along with the variables they describe. This will simplify
|
|
Packit |
a4aae4 |
many processing tasks for clients. The software provided simplifies
|
|
Packit |
a4aae4 |
generating the DDX by building it from existing DAS and DDS objects.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
* There has also been some significant re-factoring in DDS and DAS: The
|
|
Packit |
a4aae4 |
DDS:send() method has been copied over to DODSFilter and the version in DDS
|
|
Packit |
a4aae4 |
has been deprecated and will be removed in a future version of the library.
|
|
Packit |
a4aae4 |
The library uses STL iterators almost exclusively and the next version will
|
|
Packit |
a4aae4 |
eliminate the ancient Pix class.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
* The function dods_root() is now called libdap_root() and tests the
|
|
Packit |
a4aae4 |
environment variable LIBDAP_ROOT. If that variable is not set,
|
|
Packit |
a4aae4 |
libdap_root() returns the value passed to the --prefix option of configure
|
|
Packit |
a4aae4 |
or /usr/local if the option was not used. Added to libdap++ is a function
|
|
Packit |
a4aae4 |
libdap_version() which returns the version number of the library. Note that
|
|
Packit |
a4aae4 |
libdap_version() is declared as extern "C" so that it can be used in
|
|
Packit |
a4aae4 |
configure tests to check for the library.
|
|
Packit |
a4aae4 |
|
|
Packit |
a4aae4 |
* The servers no longer provide three programs to handle the das, dds and
|
|
Packit |
a4aae4 |
data requests. Instead one *_handler is provided. This reduces the size of
|
|
Packit |
a4aae4 |
the servers by a factor of three and paves the way toward integration of
|
|
Packit |
a4aae4 |
the HTML and ASCII code into the server binary, which will improve the
|
|
Packit |
a4aae4 |
performance and security of those features.
|