"SfR Fresh" - the SfR Freeware/Shareware Archive

Member "libdap-3.8.2/NEWS" of archive libdap-3.8.2.tar.gz:


As a special service "SfR Fresh" has tried to format the requested source page into HTML format using source code syntax highlighting with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file. That can be also achieved for any archive member file by clicking within an archive contents listing on the first character of the file(path) respectively on the according byte size field.
    1 
    2 $Id: NEWS 18929 2008-06-23 19:56:53Z jimg $
    3 
    4 News for version 3.8.2
    5 
    6 Significant improvements to the HTTP cache. The cache software could return
    7 erroneous responses in some rare cases when using multi-threaded code. Fixed.
    8 Also the entire caching system is now much more robust since the 'table' that
    9 contains information about individual entries is encapsulated in it's own
   10 class. The HTTP cache is still both thread-safe and _not_ multi-process safe.
   11 However, it should be possible to modify the HTTPCacheTable class to use a
   12 database system like MySQL or SQLite to make it MP-safe.
   13 
   14 The 'ancillary information' functions have been moved to their own class
   15 (from DODSFilter and the file cgi_util.cc).
   16 
   17 I fixed the libdap win32 installer so that it does not install stuff in the
   18 win32 system directories anymore.
   19 
   20 News for version 3.8.1
   21 
   22 The syntax for PROXY_SERVER and NO_PROXY_FOR have been fixed so that they are
   23 easier to use. PROXY_SERVER now takes a value like
   24 'http://user:pw@squid.proxy.edu:3128' and uses it correctly. In that value,
   25 all parts but the host name (squid.proxy.edu) are optional and the old syntax,
   26 as well as several comman variants, are accepted. For the NO_PROXY_FOR entry,
   27 the '<protocol>,' is now optional. Only the HTTP protocol is supported or the
   28 proxy server.
   29 
   30 News for version 3.8.0, 29 February 2008
   31 
   32 The libdap classes and code are now inside of the libdap namespace. In order
   33 to access any of the classes, for example, you will need to do one of the
   34 following. After including the libdap headers you can:
   35 
   36 1. add a using statement for the entire libdap namespace:
   37 
   38 using namespace libdap ;
   39 
   40 2. add a using statement for the classes that you will be using:
   41 
   42 using libdap::DAS ;
   43 
   44 3. inside your code scope the use of libdap classes.
   45 
   46 libdap::DAS *das = code_to_get_das() ;
   47 
   48 HTTPCache updated to cache an entry, returning not only the FILE pointer but
   49 also the name of the file in the cache. This way, the cached item could be
   50 passed to a data handler, such as the netcdf_handler, and read.
   51 
   52 The pkg build for Mac OSX was updated to automate the creation of the
   53 ReadMe.txt file, add a README and NEWS file to the dmg and automatically
   54 create the dmg using DropDMG.
   55 
   56 News for version 3.7.10, 28 November 2007
   57 
   58 Fixed XDRStreamMarshaller so that it no longer allocates a huge buffer. This
   59 fixes a bug where the BES fails to start on smaller machines.
   60 
   61 News for version 3.7.9, 21 November 2007
   62 
   63 Bumped up the soname version numbers for libdaoclient and libdapserver due
   64 to changes in the HTTPResponse and AlarmHandler interfaces.
   65 
   66 The transfer_data() method defined for Sequence and Structure has been
   67 generalized and implemented for all classes. In the process, so issues with
   68 the way nested sequences were handled have been fixed. I renamed the method
   69 to intern_data() since it is now a part of libdap (and not just two classes).
   70 The method uses the read() methods defined for the type classes (Byte, ...,
   71 Grid) to read data into variables in a DDS as if they were read in using
   72 deserialize(). This is used by the ASCII response generator and might be used
   73 by other 'formatted output' generators.
   74 
   75 Generated files (like the grammar files) are now shipped with the source
   76 distributions. (From Patrice Dumas)
   77 
   78 Methods which write output using the C++ iostream system have been added back
   79 into the library and are going to replace the FILE* versions of those
   80 methods. We have also added an 'Un/Marshaller' set of classes so that we can
   81 release a version of Hyrax (slated to be 1.4) that will improve BES/OLFS
   82 communication efficiency.
   83 
   84 The functionality of the Passive* type classes was subsumed by their parent
   85 classes and they were removed from the library to cut down on 'hierarchy
   86 clutter.' Some other unneeded files were also removed.
   87 
   88 The maximum size of a Str object was changes to 65535 (DODS_USHORT_INT-1) to
   89 accommodate HDF5 strings. 
   90 
   91 Checkouts from subversion now have no (?) generated files. We are keeping a
   92 copy of the grammars in subdirectory named 'grammarfiles.'
   93 
   94 HTTP response codes are now available in libdap HTTPResponse objects. From
   95 Darren Hardy.
   96 
   97 News for version 3.7.8, 26 June 2007
   98 
   99 Updated the email address for support to support at opendap.org and changed
  100 the tech email list address to opendap-tech at opendap.org. This is part of
  101 the plan to shift support services to OPeNDAP and to use the tech email list
  102 as part of that plan.
  103 
  104 Updated to the latest gnulib software.
  105 
  106 Memory errors fixed: 
  107 
  108     In the HTTP processing code for clients which was triggered when a client
  109     read from an older server (older servers had malformed HTTP headers).
  110 
  111     An error in the regular expression class (Regex) where the build
  112     generated flawed code on a 64-bit machine.
  113 
  114 OSX Build improvements.
  115 
  116 Patrice Dumas' changes to dods-datatypes.h - Now the header uses the C99
  117 types unless the stdint.h header is not present.
  118 
  119 pkg-config support. From a patch by Patrice Dumas.
  120 
  121 General improvements to comments, strings and error messages throughout the
  122 libraries. 
  123 
  124 News for version 3.7.7, 2 May 2007
  125 
  126 Fixed a bug where the build was not installing the dapserver and dapclient
  127 libraries. 
  128 
  129 Fixed a handful of platform-specific build issues.
  130 
  131 There are some minor performance improvements to the constraint evaluator.
  132 
  133 Repaired some problems with the server-side functions.
  134 
  135 News for version 3.7.6, 12 March 2007
  136 
  137 Fixed a bug in the linear_scale() Constraint Expression function when that
  138 function was used with plain arrays.
  139 
  140 I fixed a build issue on linux for ml-structs caused by a bad/missing
  141 #include in GnuRegex.h.
  142 
  143 News for version 3.7.5, 7 Feb 2007
  144 
  145 Many bug fixes for the Server-Side functions linear_scale(), grid(),
  146 geogrid() and geoarray().
  147 
  148 Added dump method to the BaseType classes, DAS, DDS, DataDDS. To do
  149 this, created a DapObj base class for all of these to inherit from
  150 (directly or indirectly) and in the DapObj class is the operator<<
  151 method. This will aid in debugging. Created an indentation classes to
  152 help with dumping objects.
  153 
  154 Win32 port fixes. The Win32 build is closer to the Unix build. Our
  155 hope is to get the two to be almost identical so that we can all build
  156 on Win32 and thus get away from having the win32 releases lag behind the
  157 Unix releases.
  158 
  159 Fix in Vector for gcc 4.1
  160 
  161 News for version 3.7.4, 02 Jan 2007
  162 
  163 Build enhancements and bug fixes. See ChangeLog for specifics.
  164 
  165 News for version 3.7.3, 24 Nov 2006
  166 
  167 Fixed unescattr() so that it works!
  168 
  169 Rob added improvements to the win32 build.
  170 
  171 Fixed a number of bugs including: Problems with the DDS::transfer_attributes()
  172 method which broke libnc-dap; Added a new configuration parameter to .dodsrc
  173 so that SSL validation can be suppressed; Fixed problems with the change from
  174 \n to \r\n line terminators for MIME headers which slipped through the cracks
  175 the first time; and add gzip and compress to the set of accepted compression
  176 types supported by the client side.
  177 
  178 Added Connect::request_ddx() which asks a server for the DDX response. 
  179 Previously, it was possible to use getdap to print the DDX, but that object
  180 was actually built using the DAS and DDS from a server. Now the server is asked
  181 for the DDX. Servers should support this response to be compliant with DAP 3.1.
  182 
  183 In the ConstraintEvaluator class, the add_function() method now allows a server
  184 to override a function from libdap with a new definition of the same name.
  185 
  186 I added a new interface for the scalar types: value() and set_value() can be
  187 used to get and set values. These are much simple to use than the older
  188 val2buf() and buf2val() methods. This idea was copied from copied from the 
  189 PassiveByte, ..., classes.
  190 
  191 New server-side functions for geographical constraints have been added. These
  192 functions provide a way to select parts of Grid or Array variables using
  193 Latitude and Longitude. Also added is a version() function which can be used
  194 by clients to figure out which version of functions is present. The version
  195 function has two forms, one which returns the information as plain text and
  196 one which returns the information in a small XML document. libdap 3.7.3 is a
  197 beta release of these functions. Note that these are _server-side_ functions
  198 so before they can be used, servers need to be built using this library and
  199 installed.
  200 
  201 The dap-config script has been fixed so that it behaves more like other 
  202 such scripts.
  203 
  204 News for version 3.7.2
  205 
  206 Fixed a persistent bug in the GNURegex code. (ticket 389)
  207 
  208 Fixed a problem in HTTPConnect where the change from newline to cr/nl line
  209 terminators was not accommodated (no ticket, but part of the issues behind
  210 ticket 552).
  211 
  212 Added Sequence::transfer_data(). This method uses the read() method to read
  213 data and follows the same logic used by serialize to determine which data is
  214 'sent' but instead records the data in the d_values field. Thus a Sequence
  215 can transfer data to itself. The locally stored data apes the ability of the
  216 other classes to store a complete response and is the basis for the new ASCII
  217 response code (in dap-server/asciival) which Server4 uses.
  218 
  219 There's a fair amount of the geogrid() code now in place, although the
  220 function does not work, I have added a GeoConstraint class which is close to
  221 complete. The CEFunctionsTest unit tests fail.
  222 
  223 News for version 3.7.1
  224 
  225 Fixed bug #480. Attributes from the HDF4 server were not being handled in a
  226 way that made sense to netCDF clients.
  227 
  228 Added a new method to AttrTable so that a vector of strings can be used to
  229 set a vector of attribute values in one call. No more need to build a loop
  230 every time you want to set values.
  231 
  232 The grid() CE function now conforms to the design submitted to URI as part of
  233 the REASoN award.
  234 
  235 Fixed a bug when % signs were not handled correctly by the code in
  236 escaping.cc. 
  237 
  238 News for version 3.7.0
  239 
  240 The big change: The first of the DAP3/4 features was added to the libdap
  241 library; the library now includes the DAP protocol version number in all
  242 responses. A savvy client can test for this and process accordingly. 
  243 
  244 A second feature, representation of the data source metadata in XML, is
  245 supported in alpha form. Expect the 'DDX' response to change slightly in the
  246 next release. The DDX returned now contains an obsolete element named 'Blob'
  247 which we won't be using. Other than the Blob element, the current DDX
  248 probably will not change much except for the addition of new datatypes,
  249 something that will take place only after other changes are made to the
  250 protocol. Many of the handlers now support returning the DDX, so developers
  251 can begin to play with it's capabilities. 
  252 
  253 What's really nice about the DDX: It's cool that the DDX now encode the
  254 metadata in XML, but the really nice feature is that it combines information
  255 from the DDS and DAS, making the association of attributes to variables much
  256 easier. 
  257 
  258 Updated the reference guide (HTML pages in docs).
  259 
  260 Fixed a pernicious bug in GNURegex.cc
  261 
  262 Added the class ConstraintEvaluator. The DDS class now takes the constraint
  263 evaluator as a parameter, so it's possible to replace ours with your own.
  264 
  265 The single library libdap has been split into three libraries: libdap for the 
  266 DAP functionality, libdapclient for the client-side classes and libdapserver
  267 for the server-side classes.
  268 
  269 Added INSTALL.AIX which contains information about building libdap on AIX
  270 using the _native compiler_. 
  271 
  272 News for version 3.6.2
  273 
  274 This version includes two bug fixes. 
  275 
  276 1. The library can now correctly reads binary data objects saved using the web
  277 interface. Before, this was very hard to do. The utility getdap has been
  278 modified so that it can decode these saved '.dods' files.
  279 
  280 2. The DODSFilter class used to build all of our data handlers no longer 
  281 blocks when returning a data object to a web browser. This fixes a problem
  282 where the 'Get Binary' button on the data server's web interface would hang
  283 seemingly forever. In fact it did return the data blob, but only after the 
  284 blocked handler had timed out.
  285 
  286 News for version 3.6.1
  287 
  288 Fixed a bug in deflate.c: Some comments used the C++ style comments and gcc
  289 rejected that.
  290 
  291 Data server filters built with the 3.6.0 library were not compatible with the
  292 dap-server 3.6.0 software because the DODSFilter class did not recognize the
  293 -t option (which is used to pass the handler a timeout value).
  294 
  295 News for version 3.6.0
  296 
  297 Added patches for RPM spec files from Patrice Dumas.
  298 
  299 Fixed a problem where Grids with two or more dimensions with the same name 
  300 were flagged as broken (by Grid::check_semantics). Now they are allowed as per
  301 the specification.
  302 
  303 Added a new method get_parent() to AttrTable. This returns the parent 
  304 container for this AttrTable.
  305 
  306 I removed the old iostream methods from the library. These methods should not
  307 be used because in many cases since other parts of the library use the C/stdio 
  308 functions for I/O. In older versions of gcc, it was possible to mix the
  309 two types of I/O systems, but not now (and not in other compilers). To change
  310 your code, look in the file Removed_functions.txt to see the functions/methods
  311 that have been removed. In all cases there is a version that takes a FILE *
  312 in place of the ostream &. Use the FILE* version. If you're performing I/O
  313 that relies on operator<<() to do type conversions, use an ostringstream 
  314 in your code and then write the string to stdout (or wherever) using fprintf
  315 like: fprintf(stdout, "%s", oss.str().c_str()). Ugly, but easier in some
  316 cases than replacing lots of tested C++ I/O with fprintf calls.
  317 
  318 I removed old methods in Connect that have been deprecated for more than
  319 a year. See Removed_functions.txt
  320 
  321 I removed the old Pix methods. See removed_functions.txt.
  322 
  323 I removed the const char * overloads added to prevent collisions between
  324 the Pix and String (not string, but GNU's old libg String class) methods.
  325 
  326 Added protocol version number header to responses which use the set_mime...()
  327 functions. The new header is called "XDAP-Protocol" and its value is the 
  328 two digit DAP protocol version number. This is now used by the client-side
  329 deserialize() methods; I assume that a server that does not announce its
  330 protocol version is a 2.0 server.
  331 
  332 Removed the set_mime...() functions which take an iostream; use the ones 
  333 which take the FILE* instead. We replaced the iostream versions with FILE*
  334 versions a long time ago because the parsers all use FILE* I/O functions
  335 and mixing the C++ and C I/O is not predictable. The old functions were
  336 deprecated. To fix your code, just change the iostream variable to a FILE*.
  337 In most cases this will mean changing 'cout' to 'stdout.' 
  338 
  339 News for Release 3.5.3
  340 
  341 Changes to the Regex software. I've reimplemented the GNURegex code to 
  342 use the only the POSIX functions. Because of this there are some subtle
  343 changes in the way the class Regex works. These changes address bugs that
  344 show up on Mac OS/X 10.4 (Tiger).
  345 
  346 1) Meta characters like '{' now have to be escaped like '\\{'
  347 2) See the docs for the Regex::match and Regex::serach methods. Regex:match 
  348    returns the number of characters that match or -1 if there's no match.
  349    Regex::serach returns the position of the _first_ match (not the longest
  350    as with POSIX) and the length of that first match in the value-result
  351    parameter 'matchlen'.
  352 3) The Regex constructor now takes only one argument, the regular expression
  353    to compile. There's a second ctor that takes a second parameter (an int)
  354    but it is a dummy.
  355    
  356 As a result of these changes, a small portion of the interface for libdap
  357 has changed.
  358    
  359 Build improvements from Patrice Dumas.
  360 
  361 Added a Mac OS/X package and RedHat rpm/srpm targets. There's also a pmsp
  362 file for use with Mac's PackageMaker.
  363 
  364 News for Release 3.5.2
  365 
  366 Fixed a bug where malformed Error objects from servers caused an exception.
  367 This caused the original error message to be lost, not very helpful.
  368 
  369 The library used a compile-time switch to control use of the factory class for
  370 creation of objects at run-time. This was causing more trouble than it was
  371 preventing, so I removed it. Code should switch from the 'virtual
  372 constructors' to the factory class now.
  373 
  374 The Test classes in the subdir 'test' should now produce the same values on
  375 64- and 32-bit machines.
  376 
  377 Unit tests should all work (although one of the tests for util.cc is known to
  378 fail on FC4).
  379 
  380 Revamped the build to use automake. 
  381 
  382 Regression tests and the test classes are now in the subdir 'tests.'
  383 
  384 The unit tests are now in the subdir 'unit-tests' and are not built or run by
  385 default. Some of these tests require access to the Internet to work and I
  386 decided to make then not run using the make check target from the top level
  387 (the regression tests in 'tests' do run using the top-level check target) so
  388 that the build would work w/o access to the net.
  389 
  390 The rpm spec file has been updated. See INSTALL for information about
  391 building rpm distributions.
  392 
  393 Thanks to Patrice Dumas for help on the autoconf/make, with gnulib and the
  394 rpm spec file.
  395 
  396 News for Release 3.5.1 beta 2005/05/13
  397 
  398 I changed some of the build parameters; the utility script is now named
  399 dap-config, the headers now install into $prefix/include/dap and the static
  400 library no longer has a version number appended. I've also written a rpm spec
  401 file which can be used to build a rpm file of/for a binary distribution. At
  402 this stage you'll need to be pretty savvy with RPM to get it to work; I'll
  403 write up instructions soon.
  404 
  405 News for Release 3.5.0 beta 2005/05/05
  406 
  407 Changes in the way the software is organized:
  408 
  409 * First, the old 'DODS' CVS module is being broken up to facilitate more
  410   frequent releases of software. libdap++ has a new CVS module named
  411   'libdap.' To access the software using CVS, use 'cvs co libdap' (where in
  412   the past you used 'cvs co DODS/src/dap' or 'cvs co DODS' and then changed
  413   into the DODS/src/dap directory).
  414 
  415 * The autoconf scripts have been updated; still no libtool or Makefile.am,
  416   but the scripts are much more robust.
  417 
  418 * The third-party packages are no longer bundled with the library. In a sense
  419   they never were, but they _were_ a part of the DODS CVS module. Now it's up
  420   to you to get and install the required packages. Look on the web site (or
  421   Google) for libxml2 and curl. We build using curl version 7.12.3 and libxml
  422   version 2.6.16; curl 7.12.0 and libxml2 2.5.7 should work.
  423 
  424 * The libdap software now installs in $prefix/{lib,include,bin} instead of
  425   inside the 'DODS tree.' By default $prefix is /usr/local; use the --prefix
  426   option of configure to specify a different directory than /usr/local. The
  427   library itself installs in $prefix/lib as libdap++.a.3.5; libdap++.a is
  428   symbolically linked to that file. The header files now install in
  429   $prefix/include/libdap-3.5; $prefix/include/libdap is symbolically linked
  430   to that directory. The utilities geturl and opendap-config have been
  431   renamed getdap and dap-config, respectively (the name geturl corresponds to
  432   another utility). The getdap utility is, except for the name change,
  433   exactly the same as geturl. The dap-config script provides a way to
  434   determine which libraries should be included when linking with a particular
  435   build of libdap++. It also provides information about the version of the
  436   library linked to $prefix/lib/libdap++.a and some other stuff. Use
  437   dap-config --help for a listing of all the options. Finally, the deflate
  438   program, which is used by some servers to provide compressed responses and
  439   is called by the library is not stored in $prefix/sbin (except on win32
  440   where it's stored in $prefix/bin).
  441 
  442   The usage program is not currently installed; once we complete the
  443   reorganization process it will find a good home.
  444 
  445 Other changes to libdap++:
  446 
  447 * The library now uses a factory class to determine how to instantiate
  448   specializations of Byte, Int32, et cetera. The class BaseTypeFactory
  449   defines the interface for the factory and provides a default implementation
  450   of the class. This implementation instantiates Byte, ..., Grid. Also
  451   supplied with the library is TestTypeFactory which instantiates the Test
  452   type classes (TestByte, ..., TestGrid). If your use of the library requires
  453   that the type classes be specialized, then you must modify your software so
  454   that it includes a factory class that specializes BaseTypeFactory. Then,
  455   when you create a DDS (or DataDDS) pass a pointer to an instance of your
  456   factory to the DDS constructor (or use the new DDS::set_factory() method).
  457   Look at BaseTypeFactory and the example specialization TestTypeFactory.
  458   It's very straightforward to make the change.
  459 
  460   For applications which don't specialize the type classes, the default
  461   factory should be fine. To avoid using the new DDS constructor (which
  462   requires that a pointer to an instance of BaseTypeFactory be supplied), your
  463   code must #define the symbol DEFAULT_BASETYPE_FACTORY. If this symbol is
  464   not defined (at compile time) then various compile-time errors will occur
  465   (the idea being this will prevent software from building and silently
  466   ignoring specializations of the type classes). If defined, this use the
  467   default factory class.
  468 
  469   The documentation for the DDS constructor has some more information.
  470 
  471 * The library contains support for the DDX object. The DDX will become the
  472   foundation of the DAP3 protocol. It uses XML to describe the information
  473   currently represented using our 'curly-brace' notation and also bundles
  474   the attributes along with the variables they describe. This will simplify
  475   many processing tasks for clients. The software provided simplifies
  476   generating the DDX by building it from existing DAS and DDS objects.
  477 
  478 * There has also been some significant re-factoring in DDS and DAS: The
  479   DDS:send() method has been copied over to DODSFilter and the version in DDS
  480   has been deprecated and will be removed in a future version of the library.
  481   The library uses STL iterators almost exclusively and the next version will
  482   eliminate the ancient Pix class.
  483 
  484 * The function dods_root() is now called libdap_root() and tests the
  485   environment variable LIBDAP_ROOT. If that variable is not set,
  486   libdap_root() returns the value passed to the --prefix option of configure
  487   or /usr/local if the option was not used. Added to libdap++ is a function
  488   libdap_version() which returns the version number of the library. Note that
  489   libdap_version() is declared as extern "C" so that it can be used in
  490   configure tests to check for the library.
  491 
  492 * The servers no longer provide three programs to handle the das, dds and
  493   data requests. Instead one *_handler is provided. This reduces the size of
  494   the servers by a factor of three and paves the way toward integration of
  495   the HTML and ASCII code into the server binary, which will improve the
  496   performance and security of those features.