WebHub Object Pascal Components

Packages Renamed to include platform v2.140
It is necessary to uninstall any older version of the WebHub Components before installing v2.140+. If you are on Windows 7, you may need to run REGEDIT and delete the old WebHub packages from HKEY_CURRENT_USER\Software\Embarcadero\BDS\8.0\Known Packages (or equivalent). Delete every package in the pkgd15 folder. The new ones will all be in pkg_d15_win32 (with underlines, with the win32 suffix).
The runtime names have been simplified to omit the 'RT'. The design time names use 'ide' instead of 'DT'. All packages end in the lowercase compiler abbreviation and the platform, e.g. d15_win32.
It is no longer necessary to install ANY of the run time ZaphodsMap and WebHub packages. You should end up with four fewer packages installed in the Delphi IDE.
The package source has moved to a single set of files in lib\pkg_src with LibSuffix used to compile differently-named BPLs. One can still have two or more versions of Delphi installed on a single machine, and/or multiple versions of WebHub applications on the same machine.
Files are NOT shipping for D09 and D10 any longer.
OLD -> NEW examples shown for Delphi XE (d15):
  • ZaphodsMapRT_D15 -> ZaphodsMapLib_d15_win32
  • ZaphodsMapDT_D15 -> ZaphodsMap_ide_d15_win32
  • WebHubRT_D15 -> WebHub_d15_win32
  • WebHubDT_D15 -> WebHub_ide_d15_win32
  • WebHubDBRT_D15 -> WebHubDB_d15_win32
  • WebHubDBDT_D15 -> WebHubDB_ide_d15_win32
  • WebHubBDERT_D15 -> WebHubBDE_d15_win32
  • WebHubBDEDT_D15 -> WebHubBDE_ide_d15_win32
  • WebHubNewAppIDWizard_D15 -> WebHubNewAppIDWizard_d15_win32
  • WebHubWizardDT_D15 -> WebHubWizard_ide_d15_win32
  • WebHubWizardComponents_D15 -> WebHubWizardComponents_ide_d15_win32
The regex library (ldiRegExD15) was not changed in v2.140. It is undergoing a major revision to support Unicode and 64-bit Pascal (done in v2.145).
  • The subfolders under webhub\lib have also changed, OLD -> NEW:
    • lib\d15 -> lib\dcu_d15_win32
    • lib\pkgd15 -> lib\pkg_d15_win32
    Example, old package list: vcl;vclx;vcldb;vcldbx;soaprtl;xmlrtl;inet;ldiRegExD15;ZaphodsMapRT_D15;WebHubRT_d15;WebHubDBRT_d15 to new package list: vcl;vclx;vcldb;vcldbx;soaprtl;xmlrtl;inet;ldiRegExD15;ZaphodsMapLib;WebHub;WebHubDB
    Example, new package list, as of v2.145 (ldiRegExD15 becomes ldiRegExLib): vcl;vclx;vcldb;vcldbx;soaprtl;xmlrtl;inet;ldiRegExLib;ZaphodsMapLib;WebHub;WebHubDB
    PascalCompilerCode v2.140
    The uCode function returns a code such as "d15_win32" instead of D15 now.
    Fixes to NativeXml v2.140
    Two significant fixes were made to the NativeXml unit. Both were involved in SOAP support for WebHub.
    UTF-8 content within the default value is now supported.
    If the XML document is loaded from a UTF8String, then the encoding tag is required. If not present, an Assertion exception is raised as a reminder. Previously there was an access violation.
    For Delphi XE, for cases where you have the content already in a UTF8String, you can call the new ReadFromUTF8String method to load up your TNativeXml document.
    SOAP processing slightly faster v2.140
    An unnecessary conversion to/from XML has been eliminated from the processing done by the WebHub components when handling a SOAP request.
    Invalid Page error message improved slightly v2.142
    In the situation of an invalid PageID being requested by a surfer, report the name of the InvalidPage that was defined for the application in its XML file, when different from the default.
    ucMP.pas improved for Unicode Delphi v2.142
    function CPUManufacturer and dependent functions now work in Delphi 2009..Delphi XE. See new unit, ucMPHardware.pas. These routines are 32-bit only, with no plans to wite 64-bit variations. If this matters to you, please contact tech support.
    Variables of type Extended removed wherever possible v2.142
    Because the SizeOf Extended is changing from 10 bytes to 8 bytes with Delphi on win64... the few TPack and WebHub routines which used that type of variable have been altered.
    This note is here as a hint that you should search your own Delphi code for the use of Extended.
    webmailCaptcha uses em not b v2.142
    The TwhWebCaptcha component now generates its special text using <em_tag> instead of <b_tag>, to be more compliant with current HTML standards.
    Just change your CSS from b to em if you had previously implemented this for the b bold tag. Check the DYNHELP page for details.
    Component Installer - fixed typo v2.142
    The Component Setup had been trying to install a spurious ZaphodsMap ide package name, with a double underline in the name. This was quite problematic in Delphi 7; Delphi XE compensated better and gave no error messages. You can see the typo if you look in REGEDIT at the list of Known Packages. It would be best to delete the invalid package name from the registry. (You would have this problem if you had installed v2.040 to v2.042 around March to July 2011.) Sorry for the inconvenience and thanks to the developer who spotted the bad filename.
    Bugfix in function UTF8ToUnicode in ucAnsiUtil.pas for non-Unicode Delphi v2.142
    Stack overflow fixed.
    NowGMT function no longer in ucWinAPI.pas v2.143
    NowGMT is in the ucMsTime unit; cross-platform.
    TtpTempFileDelete.PathFromCentralInfo property is obsolete v2.143
    This property was always false and was not used.
    If you have it in your DFM file(s), just delete it.
    Fix in tpSyncObjs.pas for 64-bit v2.143
    tpInterlockedCompareExchange is now overloaded for use on 64-bit
    IfInactiveForSec fixed htWebApp.pas v2.144
    It had been working on milliseconds; fixed to seconds.
    Improvement for eval users v2.144
    The reminder-to-license text is now inserted before the closing body tag.
    ucCodeSiteInterface compiles with CodeSite Express v2.145
    There are no more calls to CodeSite.Write, which is considered use of the ScratchPad and unsupported in CodeSite Express.
    New regular expression library v2.145
    This version of WebHub includes ldi.RegEx.RegularExpressions as DCU and BPL. This supports 32- and 64-bit Delphi, and includes explicit support for Ansi, UTF-8 and UTF-16 strings.
    Built from PCRE v8.12 source. Compare against the version of PCRE used by the RegularExpressions unit shipped by Embarcadero.
    Package name changed from ldiRegExD15 to ldiRegExLib (runtime) ldiRegEx_ide (design time). The library suffix, e.g. d15_win32, is now consistent with the other WebHub package names.
    If you used the ldi RegEx units, change coIgnoreCase to poIgnoreCase in your custom code. Contact tech support if you require source. The online documentation is NOT in sync with the new ldi.RegEx.RegularExpressions syntax yet. You could look at the source to whsample_Decode.pas for one way of using the new syntax.
    Syntax varies depending on whether you want to match UnicodeString, UTF8String, or AnsiString data. Use Match(), Match8(), MatchA; Matches(), Matches8(), MatchesA(); ActivatePattern, ActivatePattern8, ActivatePatternA; GroupValue, GroupValue8, GroupValueA accordingly.
    Old-Delphi support for misc RegEx features v2.146
    There are four aspects to the WebHub components that depend on RegEx. These four features were not supported for non-Unicode Delphi in v2.145 but they are available again now. Those four features are: syntax highlighting on the Html > Files and other panels; ajax support; wizard for making a new WebHub application; and the Count feature within the Decode panel.
    WebHub BDE packages available 32-bit only v2.145, v3.145
    Embarcadero ships the Borland Database Engine Run Time Library (bdertl) as 32-bit only, for Delphi XE2.
    Static resources moved to faster server 05-Sep-2011
    The changes listed here apply to WebHub v2.053 although you may want to wait until you have v2.148+ so that your ZMAdmin files are in sync.
    Change http://webhub.com/dtd to http://static.webhub.com/dtd in all DOCTYPE lines in your WHTEKO files for faster load times (at least in Dreamweaver, where validation is active).
    Change http://webhub.com/xsd to http://static.webhub.com/xsd in all XML files. This step can be done for you by the WebHub Runtime Setup.
    Change http://webhub.com/js to http://static.webhub.com/js if you are referencing the JavaScript prototype library, or link to the file on google, https://ajax.googleapis.com/ajax/libs/prototype/
    Essential fix to SplitFive function in ucString.pas v2.148
    There had been a fatal flaw when one passed in overlapping input and output parameters. Fixed.
    Memory leak fixed in iniLink.pas v2.149
    whsample_CoverMgmt.pas improved v2.149
    This sample unit is designed to let you make your own utility to turn cover pages on and off by AppID. It now works the same for old- and new-ipc and has been tested with Hub v2.148 and v3.149.
  • (top)

    The Hub, WebHubAdmin, ZMAdmin

    Hub.exe compiled with Delphi XE v2.141
    The old Hub, compiled with D07, is also available, in case you need it. It is in the extra 7z archive which you will find on FTP in the same location as the WebHub Runtime Setup.
    Control Panel components not included v2.142
    Tentatively, the whcp (WebHub Control Panel) components are not compiled into Hub.exe. They were active around 2001 with the whcp HubAppID. They are not required for the hubvers application.
    WebHubAdmin loads appvers instead of hubvers v2.143
    WebHubAdmin now loads the default AppID (which is appvers by default) instead of the default HubAppID (which has been hubvers in recent years).
    You can change the AppID via the menu: WebHubApp > Pick AppID
    Hub will approve any valid license until after year 2050 v2.143
    For anyone concerned about using their existing hub license for many decades into the future, note that Hub v2.143 will continue to approve your current license and serial number until after year 2050. This is for the current hub, current ipc (mailslots).
    Hub v2.142 approves licenses until year 2035.
    IPC new-versus-old now noted in EXE and DLL file properties v2.144
    If you need to check whether your HUB.EXE or other binaries from HREF Tools are using the old- or new-ipc, check the File Properties. The description should include the needed information.
    WebHub Runtime Setup installs Hub service silently v2.145
    Previously a dialog box popped up to tell you that the service installed, even when running the Setup in silent mode. Now the hub always installs with -silent and there is no dialog box.
    As before, the hub installs as a service that must be started manually.
    WebHub v3.145 uses new-ipc v2.145, v3.145
    WebHub will be released as a pair of versions, e.g. 2.145 and 3.145. The 2.x version uses old-ipc. The 3.x version uses new-ipc.
    Other than ipc, the source for the pair is identical.
    The Setup file for the new-ipc will have an _X_ in the filename, for cross-platform, although currently only a Windows version is shipping.
    There is no active HubApp in the new-ipc Hub. After testing ?r:version and ?r:echo, you should test your own custom application built with the new-ipc components. i.e. do not bother testing ?hubvers:pgversion
    Improved reliability of new-ipc Runtime System v3.147
    At this point, if you start the hub, then w3svc, then your custom app, you should be able to serve pages successfully with the new-ipc edition of WebHub. This version is running live on 4 of our servers as of 31-August-2011, BUT, it is not in use on any medium- or high-traffic servers yet.
    Expect ongoing improvements in speed and general usability of the new-ipc system in the next 1-3 weeks.
    New bin\WebHubGuardian.exe v2.148
    Relevant for old-ipc only.
    The WebHub Guardian is an optional program which you can run on a production server in order to make sure that a certain number of instances of your WebHub EXEs are running.
    It works based on the configuration that you enter in ZMAdmin, for a given AppID, i.e. minimum and maximum number of instances. If those numbers are 0, then monitoring is avoided.
    If you run your WebHub apps as services, you would run the guardian as a service. (WebHubGuardian -install). Alternatively you can run it as a regular application.
    There is one extra required setting, the WHTemp folder -- to be prompted for by ZMAdmin in v2.148. TO DO.
    The old-ipc guardian is compatible with very old WebHub applications as long as you make some small modifications to those apps. To see the required mods, look at the current source for the WebHub Demos, and look at the whdemo_Extensions.pas unit. Search for comments "WebHub Guardian" and add comparable lines to your own application. If you are using old components, the GetWHTemp function will not be available, so you will have to use some other way to code for the location that you configure in ZMAdmin.
    Hub.exe compiled with Delphi XE2 v3.148
    The new-ipc Hub included in WebHub Runtime is being compiled with Delphi XE2, win32, as of 07-Sep-2011 02:00 gmt.
    Old-ipc Connected Panels shows #Calls v2.148
    Previously the count of calls was reported only for the runners, not for the Apps, on the Connected Panel within WebHubAdmin.

    WebHub Runners

    Support for Unicode Delphi SOAP Client v2.140
    A small change was needed in runisa.dll to support SOAP clients compiled with, for example, Delphi XE.
    Reference: WebHub demo with AppID "htun", Delphi source "whSlowSpam.dpr"
    Default ISAPI runner compiled with Delphi XE v2.144
    When you install runisa.dll, you may notice that the filesize is significantly larger. This is because it was compiled with Delphi XE. It may also run faster. If you want to run the variation compiled with Delphi 7, look in the Extra archive for the file.
    New runner commands v3.147
    As of August 2011, these are for the new-ipc runner only.
    r:version replaces version
    r:echo replaces echo
    r:ipc indicates the style of interprocess comms. The answer will be 'x' for cross-platform.
    r:pcv gives the Pascal compiler code, e.g. d15_win32 for Delphi XE.