SoureForce Bug/Feature IDs- SF: old SourceForce report numbers;
- SFN: new SourceForce report numbers (post June 2013)
- SFF: new SourceForce 'feature' request numbers
To find a report from the old number use the following link: https://sourceforge.net/p/whitebeam/bugs/**/ and replace ** with the old SF: number. 18th April 2019 : Release 1.3.36- SFN 139 - Clear prepared statement status when database connection lost
- SFN 140 - Schedule template - dispatching 'triggers' fails when there is more the one listener
- SFN 141 - Maintain fractional part of date/time passed to templates. Had minimum granularity of 1 sec.
- SFN 142 - Fix memory leak in the Semaphore template
- SFN 143 - Schedule template - dates and 'localtimestamp'
- SFN 144 - 'C' bindings should return JS_TRUE/FALSE, not JSVAL_TRUE/FALSE
- SFN 145 - Fixed handling of nulls in JSON encoding and decoding
- SFN 146 - Buffer overrun in HTTP request/response processing
- SFN 147 - Support OpenSSL library versions 1.0.2 and 1.1
- SFN 148 - Fix DBMirror replication error on Postgres 9.x onwards
- SFN 149 - Compile time error with ECPG on Postgres 9.6
- SFN 151 - Set m_eof flag in Binary object implementation
- SFN 85 - Postgres I/F - include flags to auto-convert PG bools and dates to correct JS types
- SFF 86 - Support Authorization HTTP header or holding WB session IDs
- SFF 87 - Remove 7000 byte limit on catalogue itemdata
- SFF 88 - Update ApacheContext to work with both Apache 2.2 and 2.4
- SFF 89 - Contact template: add 'searchAlias' and 'aliasType'
- SFF 90 - Audit template: Add rb.audit.move method
- SFF 91 - HttpRequest - Allow HTTP and SSL version to be specified
29th January 2016 : Release 1.3.34- SFF 83 - New 'alias' template to assign 'names' to contact records
- SFF 82 - Contact/Catalogue templates: Make the monitor code a run time option (-M)
- SFF 81 - Collection template. Filter spec now include min/maxTargetID
- SFF 80 - Collection template. sortBy to include options to sort on target fields.
- SFF 79 - Add rb:include and rb:script tracing
- SFF 78 - Schedule template event iterator - filter based on min/max state
- SFN 137 - Contact template. Remove slow debug call to PasswordCheck()
- SFN 136 - Replace all crypt() symbols with WBcrypt()
- SFN 135 - Catalogue template, item 'sortBy' date option fixed
- SFN 134 - Unitialised value in encryption/hash library calls from JS when JS param missing
- SFN 133 - Throw a Javscript error when attempting to send NaN to a template
- SFN 132 - Increase Whitebeam/Contacts bcrypt cost from minimum/default of 4/4 to 8/12
- SFN 131 - Schedule Template: Extract timestamp in correct time zone to avoid simply dropping
the zone and effectively getting the wrong time.
26th August 2015 : Release 1.3.32- SFF 73 - Implement fast native JSON support
- SFF 74 - Allow the XML template interface to encode opaque values as JSON values
- SFF 75 - Compile switch to encode XML template messages using single quotes (more efficient)
- SFF 76 - GraphicImage - add 'alphaPreserve' and 'alphaBlendMode' methods to allow correct
manipulation of alpha channel images
- SFF 77 - Schedule template - action iterator. Filter results to those listening for a specific trigger.
- SFN 129 - Fix dbmirror on Postgres version 9.x
- SFN 130 - Fix critical seg fault in JavaScript caused by SmptRequest initialisation.
11th March 2015 : Release 1.3.30- SFF 67 - Support compress/uncompress for Binary objects
- SFF 64 - Change Whitebeam PE to support fully UTF8 Virtual Hosts (Apache 2.x only)
- SFF 68 - Provide town/city lookup database (rb.city template)
- SFF 71 - Collection template - Extend allData to allow relationData to be omitted
- SFF 72 - Collection template - Add hasTargetFromList to search parameters
- SFN 128 - Catalogue/Contact template database connection recovery
- SFN 127 - Postdata corrupted for large data sizes
- SFN 126 - Collection template request can over-write existing data
- SFN 125 - Fix HasData overrun in Context template
- SFN 124 - Potential ContextMem crash with old PE against new template
19th October 2014 : Release 1.3.27- SFF:61 - Add lineNumber property to XML tags.
- SFF:62 - Add 'exists' property on XML elements
- SFF:63 - Add rb.debug.log
- SFF:65 - File template - return list of associated contacts in iterator
- SFF:66 - Attach a file with a set of contacts on create
- SFN:121 - base 64 encoding in emails
- SFN:122 - Memory leak in http request/lib curl comms
- SFN:123 - Memory leak in Counter, Sempahore and Context templates
4th June 2014 : Release 1.3.25- SFF:39 - Merge in SteveD's changes to have Whitebeam work on 64 bit Linux
- SFN:118 - Fix loss of context public key
- SFF:60 - Add Binary.txlatePath to do Apache path transforms
- Expose 'encrypt' and 'sign' methods from openSSL library
- Update 'WbString.hmac' function to support SHA1 with implicit key
24th April 2014 : Release 1.3.24- SFF:59 - Process UTF-8 post data correctly
- SFN:116 - Fix length returned from rb.page.postdata
- SFN:117 - Update config.sub as part of migration to 64 bit
17th Febraury 2014 : Release 1.3.23- SFF:58 - Allow Whtiebeam to run JavaScript only files to allow access to NodeJS scripts
- SFF:57 - Search for audit records associated with a number of contact records
- SFF:56 - Implement rb.page.session.flush() to do an early write to context server
- SFF:55 - Make rb.catalogue.item.remove optionally remove all attached files
- SFF:54 - Allow HttpRequest to set key pathenames
- SFF:53 - Implement Binary.stat
- SFF:52 - Implement Binary.prototype.stat
- SFF:51 - Session Management - ability to lock a session to a specific IP address
- SFF:50 - Session Management - lazy session data loading
- SFF:49 - Context Template, session management and security
- SFF:46 - Audit Template, support audit records agaisnt scheduler actions and events
- SFN:115 - Correctly change log/logBody(false) in rb.schedule.event.modify
- SFF:113 - Context template - set/removePublicKey must set the modified context flag
- SFN:112 - Repeated scheduler events stall on HTTP timeout - no repeats happen
- SFN:111 - Remove spurious no-cache header
- SFN:110 - Add an index on audit table: (instance,client_id,contact_id)
- SFN:109 - Change scheduler process management
- SFN:108 - Change the way Binary object file names are sanitised and resolved.
21st August 2013 : Release 1.3.21- SFN:104 - Fix buffer problem in the schedule template.
- SFN:105 - Remove error report when calling 'destroy' on a destroyed XML element
- SFN:106 - Fix rebuild problem moving an XML element from one parent to another
22nd July 2013 : Release 1.3.20- SFN:98 - Increase file template name field length from 50 to 150 chars
- SFN:97 - Fix the rb:authenticate tag (base64 decode)
- SFN:96 - Improved support for atomic attributes in XML documents
- SFN:99 - Fix to idMap code to avoid loss of nodes.
- SFN:100 - Fix rb:include to report XML errors from parsed files.
- SFN:101 - Improve error detection and reporting in XmlBuildJSTag
- SFN:103 - Fix error reporting/exception propagation in SmtpRequest
8th May 2013 : Release 1.3.18Minor release with a number of bug fixes and a few feature enhancements to templates: - SF:3612891 - Audit template - sort by summary
- SF:3603159 - Schedule template fix - incorrect field used.
- SF:3603160 - Schedule: add rb.schedule.event.count
- SF:3603161 - Schedule: add rb.schedule.event.bulkRemove
- SF:3600059 - Feature enhancement - use SIMILAR TO in preference to ILIKE
for template type field comparisons.
- SF:3600060 - Fix unitialised variable in SmtpRequest $ substitutions.
- SF:3600061 - Fix 'when' parameter to eb.schedule.action.listen.
- SF:3600062 - Schedule Template; Add 'contactID' to the parameters passed
to the URL call when a trigger is invoked.
- SF:3600727 - Fix redundant template iterator requests.
- SF:3600728 - Fix memory leak in contact template (EXEC SQL SELECT)
29th December 2012 : Release 1.3.16This update to Whitebeam adds significant functionality to the Whitebeam platform,
primarily in the area of scheduling and message queues. - SF:3592410 - Fix access to rb:eval created attributes in macrotags.
- SF:3592418 - Make SmtpRequest address sanitiser conform with RFC2822.
- SF:3597167 - Fix adjacent substitutions in SmtpRequest.
- SF:3592422 - Feature request: Wrap Whitebeam debug with a div.
Schedule Template- SF:3594791 - Enhance to support listener and anonymous 'trigger' functionality
allowing the scheduler to take the role of decoupling
message queue for modular applications.
- SF:3594300 - Can't search on the contact ID field.
- SF:3594299 - Changing owner ID
- SF:3594298 - search field "isInContacts" is not currently implemented in
the template (as in no code in the template to support this)
- SF:3597340 - correctly store the log.logBody attributes against events
- SF:3597342 - Replace wb_epoch_to_date with built-in to_timestamp.
File Template- SF:3592416 - Fix default max-rows valud for the file template
- SF:3592423 - Add 'modifiedTime' as a search option in the file template.
- SF:3592424 - Fix problem overwriting mime-type in an iterator set request.
Contact Template- SF:3592421 - Replace memberOf code in contact template to use
SQL ARRAY syntax to avoid an additional database query.
Approximately 20% performance saving.
28th September 2012 : Release 1.3.14Hot on the heals of 1.3.12 this release includes some valuable functionality that builds on the previous release. Presentation Engine- SF:3572391 - Modify HttpRequest (bad name with hindsight!) to better expose
libcurl's support for other protocols - specifically in this
instance SFTP.
File Template- SF:3571580 - Fix error in iterator code that can result in early termination
of the iterator loop.
- SF:3571574 - Modify maxRows handling for fragments and add this to the
search spec.
- SF:3571515 - Add customData and type attributes
- SF:3571513 - Support isInContactsAllLevels to recurse through the contact list
Contact Template- SF:3571457 - Contact template. Provide a means of reading the stored
and sortable modifiedTime attribute.
24th September 2012 : Release 1.3.12- SF:3568227, SF:3568230
Support for large (>template comms limit) files by supporting
file 'fragments' with backward compatible API.
- SF:3571174 - Add 'modifiedTime' to contact records and allow sort/search.
- SF:3568387 - Enhancements to Chat template to support polling of multiple
rooms - allowing efficient implementation of FB like 1-to-1
conversations.
- SF:3568228 - Allow files to be associated with contacts
- SF:3540413 - Allow XPath exporession to reference JavaScript properties
against an arbitrary object rather than just the global object.
- SF:3540411 - Fix UTF8 encoding for character values > 0x7FF. Currently the
encoding for these values is truncated.
- SF:3544625 - provide access to the current page's global object.
- SF:3544635 - Add '+' to set of characters in a URL escaped value.
- SF:3567308 - Correctly abort page execution when XML errors are detected in
page structure. Do *not* continue with the execution phase.
- SF:3568354 - Prevent template locking up and flooding system resource when
receiving an invalid length field. Close connection instead.
14th June 2012 : Release 1.3.10Bug fix release - SF:3535205 - Maintenance release to fix overflow in the contact template
for large data sets.
4th June 2012 : Release 1.3.9- SF:3530502 - New scheduling template (rb.schedule.XXX)
- SF:3532094 - Complete re-write of the file template to use libpq rather
than embedded SQL. This primarily fixes an annoying slow memory
leak but also results in a doubling of performance.
- SF:3530499 - Use CrbString::CalcXmlEncLength when estimating response
size in the catalogue template.
- SF:3530497 - Import/export contact template password hash value
- SF:3530496 - New feature: Support proxy authentication in HttpRequest
- SF:3530495 - Fix to base64 decode function
- SF:3467885 - fixed bug in SmtpRequest.fromString - error decoding headers
when there is not at least one header.
- SF:3468913 - Add bulkRemove to the Audit template
- SF:3468912 - add minID, maxID, minTime and maxTime to auditQueryData
28th December 2011 : Release 1.3.7- Enhanced SmtpRequest to better support ESMPT DSN functions
- Modify the Whitebeam Shell (wbsh) to accept stdin as post data
- Add isInContactAllLevels to the catalogue search parameters to cause the
item search to include all descendents of contacts in the isContactIn array
9th December 2011 : Release 1.3.6Context Template (and rb.page.session)1st December 2011 : Release 1.3.5Presentation Engine:Catalogue template:Contact template- SF:3412265 - Fix SQL generated for searchParentName and searchParentDescription.
- SF:3412268 - Test for regexp_matches before seaching. If available
(PostgreSQL 8.3 and above) then use that function for rank searches. If
not available then drop back to the older, slower PL/SQL matchString.
- SF:3414395 - Increase customData size to 200K.
Context template (and rb.page.session)- SF:3445340 - Add rb.page.session.newID() to move current session to a new ID. To be used
as a security measure when people log into a site via SSL.
- SF:3445336 - Allow access to the underlying session data areas. Rather than a single
data area rb.page.session.write/read can
File template- SF:3421179 - fix file template to allow a server and port number to be specified
4th May 2011 : Release 1.3.4Significant enhancements in this release to the contact template and
the addition of a 'postcode' template in the contrib directory. Contact template changes:- Add a 'location' field to contacts - a structure comprising
a [longitude,latitude] pair.
- Enhance searchFlags to include the ability to search (and sort)
based on distance from a specific [longitude,latitude]
- Ability to constrain a search to only those contacts within a
specific radius (eg 10 miles).
- Add hasContactIDfromList to allow an application to constrain
returned contacts to only those in a very specific list. This
is useful primarily when validating contactIDs returned from
a client.
- Add a 'bulkRemove' method. This takes the same search spec as
'get' but removes all matching INDIVIDUALS. NOTE: the request
only allows INDIVIDUALs to be removed. Attempts to specify
searchOU in the searchFlags cause an error to be returned.
- Add bulkCommunityModify method. This allows (only) individuals to
be added to or removed from a specific community. The individuals
are selected using the same keywords/searchFlags as the
get/count/bulkRemove methods.
- Changed some constraints in the database to automated the removal
of ancillary information when a contact record is removed from
the database.
- Add repeatable random sampling into contact searches. This has two
parts: allowing searchFlags.sort to take a value of 'random' and
implementing searchFlags.randomSeed to optionally preset the
random number generator.
- SF:3297440 - Add 'minID' to searchFlags. This is necessary if you want to read
through a large data set over a long period and it's important you
don't read the same record twice. Example is a bulk emailer reading
a chunk of records every, say, 15 minutes. If a record with a low
contactID is removed part way through the process one record will
receive the email twice.
Catalogue template- SF:3297440 - Add 'minID' to itemSearchType. This is necessary if you want to read
through a large data set over a long period and it's important you
don't read the same record twice or skip a record that should be
included.
Postcode template- Provide a mapping from a domain specific postcode to a global
longitude/latitude.
- Provides a utility method 'distance' to return the number of
miles between two points.
Bug Fixes- SF:3184800 - The template compiler (tgen) has been fixed to support
the return of optional structures in the results to the
Presentation Engine.
- SF:3184999 - Bug encoding optional structures in the PE to be sent
to a template.
- SF:3192307 - Fix to collection template to correctly decode
iterator handle where a keyword search has been
specified in the search parameters.
- SF:3297438 - Fix SQL error in audit template
- SF:3297445 - Prevent catalogue from using a SQL OFFSET that is
negative (check value passed from Presentation
Engine).
12th February 2011 : Release 1.3.2- SF:3178931 - Bug fix to rb.page.formdata(true) implementation
- SF:3178932 - Fix to SQL generated for rb.catalogue.get/count search
params where isItemInNode includes negative numbers.
12th January 2011 : Release 1.3.1- Add 'maxRows' attribute to rb.collection.getArcs parameter. Allows
the application to control the amount of data extracted from the
database and returned from the collection template.
- Removed some build errors and some warnings reported by stricter
processing in the latest GCC compiler. Generally these are due to
type casts between const and non-const values.
- SF:3162704 - re-write common/replicate to detect and recover
from loss of connect to either the SLAVE or MASTER
databases
- SD:3162701 - fix bug whereby dbmirror/replicate may attempt to
apply the same transaction twice to the SLAVE database
- SF:2992221 - bug fix to CrbBinaryObj::AppendData
- SF:3010110 - enhancement to support HTML 5 multiple file input.
- SF:3156178 - randomness of session IDs improved. Session IDs are now
16 byte random strings.
- SF:3156181 - support for field[] array processing of form parameters
- SF:3156195 - consistent escaping of rb:eval attribute values
- SF:3156201 - minValue and maxValue added to contact template searchFlags
- SF:3156206 - Fix configure error when building against recent
Postgres releases installed through RPMs
17th April 2010 : Release 1.2.2- Updated SpiderMonkey JavaScript engine to the most recent
release from Moziall - 1.7. This release includes all the functionality released
in Mozilla 2 as described at the following reference :
http://developer.mozilla.org/en/docs/New_in_JavaScript_1.7
- Re-write the HttpRequest class to use 'libcurl' in preference
to the homebrew code. This adds support for HTTPS. If libcurl
is *not* available then internal code is still used. New
implementation is significantly more functional than the
previous release.
- Update SmtpRequest class to provide better error reporting
and the abilty to use SMTP address verification without
sending an email.
- Database replication : improve 'replicate' to support bringing
up a slave *without* having to shut down the master database.
- Contact template : Support 'value' field for communities as
well as OU and Individuals.
- Contact template : Correctly serialise value into an INT_64
rather than float in SQL expressions.
- Catalogue : re-code code that manages the containment tree to
remove the 'accidental' ability of orphaning all contained items
simply by writin a item back to the catalogue unchanged.
- Fix JavaScript escaping in audit, collection and chat templates.
- Enhance Postgres native interface to include execParams and
and execParamsArray to allow parameters to be passed to a SQL
statement without having to first escape, or in the case of
binary object, encode. Apart from safety this is much more
efficient when storing big binary objects in the database.
PgConnection.prototype.execParams.
- Fix XPath string(NodeSet) function to return the value of the
first node in the set.
- Add 'innerHTML' and 'innerXML' methods to XML tags allowing
a text fragment to be parsed and built into a tree as done
in client-side environments.
- XML tag.clean() added to make it easier to manage memory
usage in very large page builds
- Change JS script initialisation order to be compatible with
JS1.8rc1 (not added to CVS yet!).
- Enhancements to the collection template to support date
range searches and provide more flexibility. See documentation
for detail.
18th October 2007: Release 1.1.5Build Environment- Add a build target, RC script and config file for Debian packages
- Add a configure option --with-pgsql_server, in case the
Postgres server headers are not in an obvious or guessable
place.
- Look for APR headers in more places, and tidy up some build
dependencies which occur in some distributions.
New Templates- New 'template/contrib' directory to hold useful but non-core
templates.
- First contributed template provides a service to map IPv4
addresses to country for geographically aware applications.
Graphic Library- Whitebeam can now link with the 'libgd' graphics library, adding
a class 'GraphicImage'. GraphicImage provides for on-the-fly
generation of bitmaps (JPEG, GIF, PNG) from JavaScript.
2nd April 2007: Release 1.1.4This was to be the major Whitebeam release. Due to various
external work pressures this became an internal release. FROM THIS RELEASE WHITEBEAM HAS ADOPTED THE BSD LICENSE License change- Licence change to BSD from a combination of Redbourne
Public License (RPL) and Gnu GPL. This opens Whitebeam up to
a wider audience.
New templates- Add 'chat' template. Provides efficient central co-ordination
for building an interactive 'chat' application based on
Whitebeam.
- Add 'audit' template. Place for applications to store and
retrieve 'audit' information. Records are associated with
either a contact, catalogue item or catalogue node.
- Add the 'collection' template allowing arbitary collections of
contacts, items and nodes to be easily maintained.
Template changes- Add numeric 'value' attribute to contact template to provide
a way of ordering contact records according to priority, weight
or other application specific requirement.
- A separate 'keywords' field added to the contact template to allow
text seaching of contact records without having to search all other
fields.
- Catalogue : Allow sort order to include 'number of nodes linking
to this item' - and ability to return the number of links. Alows
nodes to be used as flags - and searching based on maximum matching
flags.
- Change processing of 'sort' in contact iterator to allow ordering
of results according to multiple fields (importance then by name
for example).
- Improve contact and catalogue search methods by including a
'searchMethod="rank"'. Rank depends on a pl/pgsql function
which counts the number of keyword matches database records
ordering by most matches first.
- Allow item searches to be restricted to items under categories
(nodes) that are attached to at least one of a set of contact
communities. This allows automated access restrictions to be
place on branches of a category tree.
- Add 'containers' field to contact iterator flags to query which
elements are containers of another (or a set of others).
- Add 'maxRows' search attribute for contact and cat items. Allows
application to 'hint' at number of rows expected to be processed
allowing the templates to much better optimise large bulk requests
such as reports.
- Add pl/pgsql search function and integrate with other templates.
Allows 'best match' searching rather than any keyword.
- Postgres Templates are more likely to reopen a lost DB connection.
- Include support for strong encryption of passwords in the contact
template by default.
Core application engine enhancements- Enhance 'HttpRequest' to allow a specific target IP/name to
be provided for each request. This allows HTTP requests when the
server can't be correctly resolved with DNS.
- Enhance 'HttpRequest' to allow response to be returned as a
Binary object.
- Support hierarchical mime-encoding in SmtpRequest to support
embedded images within email messages
- Add toBase64() and fromBase64() methods to Binary object.
- Incorporate the latest SpiderMonkey JavaScript engine
release (JS 1.5 Final)
- Subsequently update the SpiderMonkey JavaScript engine
release (JS 1.7) to match latest Thunderbird/Firefox releases.
- Improve error reporting and add a stack-trace to error page.
Build environment- Add OpenBSD 3.8 to working build targets.
- Add Fedora Core 4 thru 7 to working build targets.
- SF bug 1355392 fixed : invalid SMTP encoding for
'quoted-printable' encoding.
Reported bugs fixed- SF bug 1355386 fixed : Site template fails to build against
versions of Postgres earlier than 8.0.
- SF bug 1385551 fixed : Root of the Whitebeam ROM (rb) is now sealed
to prevent side-effects from one page execution leaking to another
page.
- SF bug 1385596 fixed : Replace global variable used to measure page
execution time with attribute in the page context object.
5th October 2005 : Release 0.9.37- SF bug 1312930
: 'replicate' now builds on Fedora
- SF bug 1281522
: Fix bug in XML parser/JavaScript interface
whereby a pointer is referenced after being released.
- SF bug 1243361
: Fixes to use of INT32 to hold catalogue
item/node IDs. Database representation is 'int8' and must be
represented in the engine as 64 bit integers in order to
avoid trucation in large databases.
- SF bug 1243478
: representing contact/node/item IDs are 32 bits
rather than 64 bit - IDs were effectively truncated in very
large or long-lived databases.
- New 'SITE' template contributed by
YELLOWHAWK,
and released under the GNU GPL. This is used to store application global data in
an efficient manner. This removes the need to store global information
in catalogue items. Typical uses are for storing configurable
parameters and 'caching' commonly used, infrequently changing data.
- Addition of a 'name' and 'type'
field to catalogue items. The 'name'
field is an important addition to 'code'. Type recognises the fact
that the catalogue is not restricted in what it holds. The 'type'
field can be used to restrict searches to specific types of
entity stored in the catalogue.
- Change page processing for Postgres so that any non-terminated
transactions are automatically closed (rollback)
- Price range searching in the catalogue template (find all products
with prices in the rance x<=price<=y.
- Contact interator can now optionally return contact membership
as well as raw contact information - removing the need to
make multiple calls when generating tabular output.
- Improved catalogue template SQL for recursive decent through
branch of the tree.
- Improved iterator performance in the contact template for
large membership databases.
- Additional contact template methods for removing all nodes,
items or contacts from parent contact records.
- Increase item description field size to 1000 characters to
be consistent with the node description field.
- Updated documentation syntax for templates so that fields can
be ordered for display in a different (more logical) order
from the protocol.
15th April 2005 : Release 0.9.35 *MAJOR RELEASE*- Add 'last_modified_field' in the catalogue template 'items'
table to the Presentation Engine interface. This field has
always been present, but unused. Field is changed from
DATE to TIMESTAMP to make it more useful.
- General purpose 'C' implementation of the DBmirror Perl
script DBmirror.pl. The Perl implementation was pretty
inefficient taking 10s of seconds to copy a single large
field (not good for the file template!). The C implementation
can be used outside of Whitebeam - it's not Whitebeam
specific. Works with both the 7.x and 8.x versions of
DBmirror (which did some significant tweaks to the schema!)
- Update to the catalogue template iterator code to make more
efficient use of the database during searches. Remove some
table joins for the restul set *unless* they are required.
- Consistency on PDU sizes for templates.
- Modify the catalogue iterator code to correctly cap message
size if the amount of data in the response reaches a
specific threshold (rather than causing a protocol error)
-
Support for Postgres Database replication using DBmirror.
This includes scripts to configure the standard Whitebeam
database along with necessary documentation. Allows a
Master version of the Whitebeam database to be replicated
to any number of other postgres servers.
-
New implementation of the File template that uses BYTEA
to store data rather than large objects. This allows most
existing database replication systems to work (in theory!)
-
Increase field size for catalogue. code, name, description
and keywords are now all 250 characters.
-
Work around for problem with the JavaScript engine whereby
calling JS_ValueToString on a native object that does not
have an explicit 'toString' method causes a exception. This
affects SmtpRequest and PgsqlConnection (and poss PgsqlResult)
-
Add PgsqlConnection.removeLargeObj to remove a Postgres
large object by OID.
-
Added mapping of OIDOID to JavaScript number (was defaulting
to a string).
-
Fix PgsqlConnection.connect return result to correctly
return true/false depending on whether a connection request
succeeds. Previous versions always return 'true'.
-
Add PgsqlConnection.prototype.connected property that returns
true (connected) or false to reflect the connection status of
this object.
-
Fix native Postgres Large Object interface. Incorrect parameter
checking on openLargeObject method.
-
Add new directories for modular builds of mod_whitebeam for
Apache 1.x and Apache 2.x
-
Relocate Apache Interface files (ApIf) and stubs for tidiness
and ease of re-use. Also sorts out the slightly circular
references when building tgen.
-
Update autoconf files for autoconf 2.5x - These do not seem to
be backward compatible with older autoconf versions.
-
Make autoconf search harder for Postgres files on OpenBSD and
Fedora. This should reduce or eliminate the need for --with-pgsql
configure options.
-
Fairly large overhaul of how apache is detected. Assumes that
modular builds are the way forward, and tries to find Apache
headers on your system instread of requiring an apache source
tree present.
-
Update message template to survive if there is no NNTP server
present. Previously it would SEGV.
-
Include new file2-pgsql template - This uses a modified schema
which makes Postgres replication possible.
- Fix a compile-time error in file2-pgsql.
31st December 2004 : Release 0.9.32- Fix lockup problem with memory based context server,
semaphore and counter templates
- Add support for <rb:insertblock..> tag.
A macro version of this
has beem around for a long time. This native version
means applications can reduce the include size of an
application and gain some additional performance. The
inserted block doesn't have to be represented in the
JavaScript engine.
- Updates to the contact and catalogue templates to provide
more sophisticated searches.
- Improve Postgres interface by using pgsql type information
allowing us to create 'numeric' values rather than
string values for all fields. Requires access to
Postgres server header files (pg_type.h). This requires
a separate make target when building Postgres from source
(gmake install-all-headers in the Postres build directory)
- This version has been tested against Postgres version 8.
29th September 2004 : Release 0.9.30 *MAJOR RELEASE*- MAJOR : New rich
Postgres API allowing direct manipulation
of a Postgres database from JavaScript within web pages.
- MAJOR : Add the ability to
write to the local file system. Write
access requires the Apache process to have write access to
the virtual servers file space. This is an extension of
the existing Binary object interface. Files can only
exist within the current virtual server for this object.
- rb:test *attribute*. Allows any tag in a Presentation Page
to be dynamically included or excluded from the document
being constructed.
5th August 2004 : Release 0.9.28- Renovate the build system so that it now builds on
RedHat 9, Fedora and other recent OS releases
using the latest Apache and openSSL versions.
- Update build to work with 7.4.* releases of PostgreSQL.
- Add 'counter' template - mechanism for storing global
counters with atomic set/inc/dec operations. Can be safely
modified and read by multiple PE instances.
- Add <if... tag. Simple conditionals that reduce the tag
count for tests that do not require an 'else' component.
- Add 'test' attribute to <include which, if present
is evaluated. A result of 'false' means to file is
not loaded into the Presentation Engine.
- New 'log' template. This provides an interface to the
log analysis programme 'Analog' and provides a fairly
simple way to provide sites with online log reports
without the client having access to the raw log files,
or having to install an analysis program themselves.
- Add rb.debug.time - which returns the amount of time since
the presentation engine started to process this page. This
is useful for profiling and optimisation.
- ContextMem (memory based session tracking) has additional method 'fastGet'. This allows
the presentation engine to get the context ID *and*
context information in a single call. Given almost
all pages now use the session data to cache information
this removes one template call per page generated.
- Add a memory only implementation of the Context server -
templates/redbourne/ContextMem. This should be faster
for environments that do not require thousands of
simultaneous sessions.
- Modify PostgreSQL template common library to use embedded
SQL calls to connect with the database rather than
calls to the underlying ECPG library.
2nd January 2004 : Release 0.9.27- Fix XPath relational expressions involving scalars.
- Fix 'marksession' in the case where there is only a fragment
identifier (don't modify).
- provide option on rb.page.session.url to skip ampersand
escape (rare situation where this is required is to
generate a URL for a meta-tag redirect. In this case the
ampersand must *not* be escaped).
1st November 2003 : Release 0.9.26- Major upgrade to the contact and catalogue templates to support
more flexible/functional searching and sorting of information help
within the database.
- Fixed rendering issue for XML parser. When switched from HTML to
XML mode should render <BR> as <BR/>. Only an issue when
switching mode from HTML/Hybrid to XML.
- Update to contact template data sorting options to bring in
line with both the documentation and the modifications made
to the catalogue template in this area.
21st August 2003 : Release 0.9.25- First release of the new Semaphore template. Accessible within
Presentation Pages via rb.semaphore requests. Documentation is
on the Whitebeam site (www.whitebeam.org)
24th July 2003 : Release 0.9.24- Generalised catalogue 'hasNodeID' to allow querries for items
that are effectively joined to two specified nodes.
- Fixed bug in XPath when comparing a node-set with a string
for <, <=, > and >= operators. Should first convert to a
number.
7th February 2003 : Release 0.9.23- Added 'hasNodeID', 'hasContactID' and 'sortBy' to the
rb.catalogue.item.get search parameters. Added 'hasContactID'
and 'sortBy' to rb.catalogue.category.get search parameters.
- Increased contact communication size limit from 64K to 128K (RP)
- Fix XPath string functions and added in a couple of missing
functions for compatibility.
- Fix bug in CrbString:ToUpper and ::ToLower that cause a crash
if called.
- Fix XPath comparison behaviour to be conformant to the XPath
specification. Previous versions incorrectly evaluate '<', '>' etc
in the case where one or both operands were node sets.
- Fix seg fault in XPath in nested parenthesised sub expressions that
do not evaluate to XPath node sets.
- Remove '+' from the set of valid XML name characters.
10th December 2002 : Release 0.9.22- Add 'after::' and 'before::' XPath axis. These effectively provide
missing functionality from XPath that allows one to determine the
next element in a document in standard tree parsing order.
- Fix an old problem with using XML parsers in JavaScript. For a
while now - errors in the XML they parse were counted - but the
messages never recorded. Stems from an interface change to support
XPath a while back. JS parser now correctly record XML errors.
- Fix a problem in the Binary object whereby unless you read a file
to completion the file handle can be left open (no fclose) and so can
over time leak resources.
- Fix some interface bugs in SmptRequest class introduced in 0.9.21
- Fix implementation of XPath 'following::' axis.
19th November 2002 : Release 0.9.21- Add 'SmtpRequest' class to the Presentation Engine. Allows multi-part
unlimited length emails to be generated. (PW)
- Fix XPath bug reported by University of Houston - Clear Lake in which
node() returns just XML tags rather than all element types.
- Fix to tgen to allow BSD builds to succeed (PW)
- Fix SQL error in the catalogue when the request
rb.catalogue.item.get({ID:contact, idMkr:'C', allLevels:1}); (PW)
- Fix to message template - freeing buffer then using the contents of
the underlying buffer. Can cause messages sent to INN to be lost. (PW)
- Fixed a couple of build issues with Linux. *Should* now build with
Linux! (PW)
- Removed potential problem in XML parser that would cause it to fail to
detect a binary encoding (only used for template interface) (PW)
.
- Remove potential infinite loop in iterator handling (PW)
.
- Fixed bug whereby 'aBinObj instanceof Binary' (where aBinObj is a
binary object from the template interface or form parameters)
always returns 'false'
- Fixed XPath expression problem. the expression '/' previously generates
an error rather than return the root of the XML tree.(PW)
11th August 2002 : Release 0.9.20- Improve error reporting in pages (reduce number of 'false' errors one
tends to get) (PW).
- Change to the XML parser to allow XML Processing Instructions to have
assigned handlers - and then use this to implement PHP/ASP like script
wrappers (PW).
- 'PHP' like script inclusion supported for XML processing instructions:
<?rbscript some-javascript ?>
<?= javascript ?>
(PW)
- Changed behaviour of rb.debug.mode to put the engine into real debug
mode. Previously it simply controlled the recording of debug output.
There are however times when there is a problem in the live site -
caused by data on the live site - that cannot easily be debugged on
the test site (without the data). Now setting the debug mode to true
will cause an error page even in a live site (PW)
- In <rb:parser...> add 'debugmode' and 'parsemode' attributes to
control debug and parser behaviour. (PW)
- XPATH - implementation of 'preceding::' inadvertantly included the
node itself - modified code to correctly remove 'self' from the
result set in this case (PW)
- <rb:include...> and <rb:script...> include an optional 'once'
attribute. If present with a value of 'yes' Whitebeam will
not process the file if it has already been processed within
this page (PW).
- Parsing for attribute values in html/hybrid mode - in the case where the
value is *not
- quoted. Modified to read all characters until whitespace.
This fix makes up for issues with some vendors web-writing software that
only puts attribute values in quotes if they contain whitespace!
NO PUBLIC RELEASE : Release 0.9.19- Fix a potential, but unlikely SEGV condition in the network layer (SD)
- Tidy-ups to silence several C++ compiler warnings (SD)
- New README to cover building an Apache DSO (SD)
- New module script to assist building of Apache/Whitebeam DSO (SD/RP)
- Context template falls-back to memory database if it cannot use
its on-disk datafile. (SD)
- Added rb.page.env.*() support to access the Apache 'previous' request
allowing the implementation of bespoke error handling pages
(eg 404 handler). (PW)
- Fixed issue in Postgres implementation of the catalogue template
that cause 0.9.18 to incorrectly read the contents of the database. (PW)
- Fixed CrbString::XmlDecode and caused the rb:repeatfor and rb:test
tag implementations to correctly XmlDecode the string before
calling JavaScript. (PW)
- Add filename/line numbers to XML parser errors generated when the
tree is executed. These were missing in the previous builds. (PW)
10/01/2002 : Release 0.9.18- Changed the build system to use 'autoconf' (RP)
- Fix memory leak in XPath implementation. (PW)
- Increase JavaScript memory threshold to 10Mbytes, stack to 32K (PW)
- Fix code that checks for recursive includes of files (PW)
- Fix output limit checks to correctly stop generating output once the
configured limit is reached. (PW)
- Add 'bound' XPath extension function. (PW)
- Add some initial notes on using the 'message' template. (SD)
01/12/2001 : Release 0.9.17 - internal release.Fixed dynamic SQL quoting problem in the PostgreSQL version
of the contact template. (PW)Template Interface now throws mainly exceptions rather than
XmlIf_ReportErrors where there may be a benefit in catching such
errors in a Pattern Page.17/11/2001 : Release 0.9.16 / 1.0-pre2Added <rb:parser...> to control the page parser. (PW)Fix bug in rb.*.fwrite and rb.page.format on Linux systems.
The last character of a parameter could get truncated. (PW)Changes to the underlying JavaScript to XML translation.
Attribute and elements are now implemented using a 'lazy resolve'
that should at least cut down the memory overhead of extensive
XML activity within the Presentation Engine. No changes
to the JavaScript API. (PW)Modified SteveDs test scripts to more thoroughly test the
XML interface. Some of these tests will fail for version
prior to 0.9.16. (PW)Fix httpRequest bug (PW)7/11/2001 : Release 0.9.15 / 1.0-pre1Fix the version number defines (SD/PW)Add new "rb:automarksession" tag (PW)Add Ignore Whitespace facility (PW)Make parser more tolerant on close of comment tags. (PW)Fix parsing of hex/octal numbers (PW)Further XPath extensions (PW)Optimise rb.*.write calls to take multiple parameters (PW)Clean-up some JS objects before exit. (PW)17/10/2001 : Release 0.9.14Remove a debug define for some speedups (SD/PW)Find/fix memory leak in template comms (SD)Fix bug in XPath range check in reversed nodeset (PW)Fix bug in XPath returning empty nodeset (PW)Add XPath "translate" function for completeness(PW)26/9/2001 : Release 0.9.12Fix header date format to match RFC (PW)Modify handling of some XPath expressions (PW)Fix a float-parse error (PW)Added support for non-standard HTML TAG <spacer> (SD)Added rb.[page|debug].fwrite, rb.page.format methods (PW)25/9/2001 : Release 0.9.11Cache-Control is now much more flexible (PW)Fix double-cookie-header bug (PW)Fix header output when using rb.page.writeraw() (PW)Fix XPath parsing further (PW)21/9/2001 : Release 0.9.10Rationalise some common code in database templates (AO)Fix some XPath parsing errors (PW)Teach the parser about the >?xml ...< PI (PW)In Html mode, the parser now accepts HTML "slackness" (PW)18/9/2001 : Release 0.9.9Initial port of File template to PostgreSQL (AO)Fix password authentication code to work again (SD)SQL optimisation for Postgres catalogue template (AO)13/9/2001 : Release 0.9.8Initial port of Catalogue template to PostgreSQL (AO)Backport of DB2 changes to contact template tp PostgreSQL (SD)Provide schema SQL for PostgreSQL (SD)12/9/2001 : Release 0.9.7Several catalogue template fixes (AO)DB2 contact and catalogue templates receive some new calls (AO/RP)Additional escaping for PGSQL in Contact template (SD)5/9/2001 : Release 0.9.6Fix some XPath language components (PW)Restrict the httpRequest Methods on the Redbourne build (RP)Cleanly modify the Apache version string (PW)20/8/2001 : Release 0.9.5Fix SQL escaping of "'" in Contact template (RP)Fix sending of cookies to be more secure (PW)Fix sending of cookies (PW)Binary objects now understand zero-length files (PW)Fix rb:marksession on <a> tags (PW)3/8/2001 : Release 0.9.4Write protect Whitebeam implemented methods correctly (PW)31/7/2001 : Release 0.9.3More XPath tidyups (PW)More comms-layer tidyups (SD)Iterators broke, so fixed them (PW)Comms-layer speedup, particularly on BSD systems (SD)Remove one un-needed thread in Context server (SD)XPath implementation and subsequent fixes (PW)Fix the cacheing of context data by the presentation engine (PW)Clean up JS GC_roots on exit. (PW)Make some error message texts more accurate (PW)12/7/2001 : Release 0.9.2Fix XML DOM problem when traversing an <rb:include< tag (PW)Fix an rb:eval attribute-vanishing problem (PW)Improve build targets for pgsql templates (SD)Further make-system cleanups (SD)Replace Crypto code so local libraries get used (RP/SD)
(Prevents question of legality of distribution)Much updated message template now parses news/mail messages
with some degree of understanding (RP)Message template now used SMTP instead of spawning sendmail (RP)Several other bugfixes. (PW)05/07/2001 : Release 0.9.1Re-located DB2 based templates into their own subdirectory (SD)Added contacts-pgsql template, port of contacts template to
PostgreSQL (RP)Fix in RBString to not translate CR to LF! (PW)Remove various Accidentally included files/directories. (SD)28/06/2001 : Release 0.9.0- Initial public release. (RP)
|