VA Smalltalk enables software developers to create highly portable, scaleable, multi-tier business applications using object-oriented technology. VA Smalltalk allows for incremental and rapid development of new Smalltalk applications. Developers can build and deploy enterprise Web service solutions for dynamic e-business using VA Smalltalk.
Please refer to the Instantiations Smalltalk home page for technical information including tips and product updates made after this product release. The web page includes information about what's included in the release, and how to contact us as well as hints and tips for using and deploying VA Smalltalk.
You can download the latest product updates, as well as product add-ons, from the Instantiations Smalltalk download page.
Each supported VA Smalltalk platform has three downloadable components:
If you do not already have a suitable unzip program, then you can download a no-charge unzip program such as Info-ZIP.
Note: The gunzip program will not work with the VA *.zip files. The VA *.zip files are multi-file archives; gunzip is only designed to handle single compressed files.
You must unzip the client and manager zips on the same kind of machine that you intend to install them on. Do not, for example, unzip a Solaris client install onto a Windows machine.
Complete install instructions, such as how to set up EMSRV, can be found in the Installation Guide. The Installation Guide is in the doc directory of the unzipped client or manager install directory tree (it is the same document in both zip files):
Note: Fedora Core 14 requires xterm to be installed in order to open the README file from the installer. You can also use another file viewer to browse the README in the cd_c directory of the client install (or the cd_m directory of the manager install.)
Note: There are special steps for installing on UNIX and Windows Vista or Windows 7 which are documented in the Installation Guide.
The Installation Guide is also available online.
To install VA Smalltalk, follow the instructions for your specific platform.
We recommend you install the manager before you install the client.
If you are new to Smalltalk, we recommend you install the client with the on-line documentation. Once you have installed the manager and the client, refer to the Installation Guide for further instructions on how to configure your environment before you launch VA Smalltalk.
If you have a version of VisualAge Smalltalk or VA Smalltalk already installed, please refer to the Migration Guide for important information before using VA Smalltalk V8.5. The Migration Guide can be read online at Migration Guide or it can be installed with the VA Smalltalk Client by selecting the "VA Smalltalk Documentation" feature.
This section lists the corrections and enhancements introduced by each release of the VA Smalltalk product.
Case Title ----- ------------------------------
---------------------------- 32729 Inspecting a ScaledDecimal can result in 'Could not print receiver' error 33487 Add TIFF Group 4 compression support 38222 Unable to tell the difference between a released and unreleased subapp in StsApplicationManager 44664 The DirectedMessage class should implement the ANSI <valuable> protocol 45357 Error loading Mastering ENVY/Developer Testing Extensions 46134 'Walkback.log' hard coded in VAST system 46726 Add Option to Change the Source Code Text Pane background Color 47574 Error 33: Exit due to missing Image file message is confusing 47925 Client demands "Transfer-Encoding: chunked" 48034 Add Code Completion to the Browsers 48067 Code does not highlight for long methods 48096 example of non-standard colors in WkTables 48132 System-wide logging support 48168 Add Setting Framework to consolidate support for preferences 48169 .INI file bitmapPath is truncated at 256 characters 48199 Crash in VM due to uncontrolled Smalltalk stack growth 48204 VASmalltalk 8.0.2 bug in exception handling 48209 Example of nonstandard colors in an EwTableTree 48211 Move SUnit tests into separate maps and features 48248 Refactory Testing map contains required map links 48251 In Smalllint, ParseTreeLintRule>#genericPatternForSelector: uses unimplemented method withIndexDo: 48271 Add ability to query icx file(s) for build number 48342 Remove obsolete support from EsbBenchmarks 48345 Change Float and ScaledDecimal 32-bit hash to give better distribution 48369 TIFFTag for Photometric Interpretation has wrong data size on output 48370 CgTIFFFileFormat uses comparison instead of assignment when creating a palette 48405 SstRmiDgc >> #importing:clientData:callData: should use IdentitySet 48451 NLS Catalog File Editor should open in first (or only) NLS directory 48460 Add support for Deprecation exception 48476 Ssl Certificates have expired for the Secure Web Service and Ssl Examples 48480 ExceptionSet>>#, does not accept anExceptionSet as its argument 48499 LCTime does not have a formatter for milliseconds 48528 EsSymbolLiteral>>#isValidSelector: doesn't catch all the bad ones 48564 INI files with '[' (open square bracket) characters in the value field are misparsed 48600 VisualAgeAssist class has wrong Instantiation's address 48611 PsiPlatformEHSCompatibility application has extraneous app configuration expression 48619 OrderedCollection>>at:ifAbsentPut: added for Seaside portability 48632 Upgrade Grease to 1.0.5+ and Seaside to 3.0.5+ 48633 HttpContinue Constant in SstHttpConstants Pool has incorrect value - change to '100-continue'
The following sections list some important information about some of the components and features. For the latest product information, please refer to Instantiations Smalltalk web page.
Be sure that your numlock key is turned off if you are using the composition editor. The numlock will prevent parts from being dropped on the Composition Editor.
Each time the Slider part is repainted the "X Error: BadWindow (invalid Window parameter)" message is printed in the xterm window where VA Smalltalk was launched.
The Slider part still functions normally.
The rebar control consists of one or more bands, each of which may contain a child widget control. Neither the color of the rebar control nor the colors of the individual bands is settable. Rebars with fixed-width bands should be placed in a fixed size window.
On MVS, an .ini file is optional. On all other platforms, an .ini file is required. The .ini file may have the same name and be in the same directory as your executable (on Unix, the executable is es or esnx). The .ini file can also have the same name and be in the same directory as your .icx or .ic file.
In addition, you can specify your .ini file as a command line parameter. For example, you can launch your program by typing the following:
abt -imyapp.icx -ini:c:\any.ini
Core tabbed browsers are available for Windows and UNIX: Class, Class Hierarchy, Class Shadow and Applications browsers.
Extensions to tabbed browsers available on Windows: Class Edition, Methods and Method Edition Browsers.
VerifyMemorySpaces, VerifyVMSlots, VerifyImage can be used to identify Smalltalk
memory corruption. Since these primitives write to the TTY Transcript, the image
to be verified must be started with the '-l
No additional information at this time.
When using stored procedures with the new Oracle 8 database connection, the Get schema function on the Stored Procedure Specification Settings view only works for procedures that are not contained in packages. Users must manually define host variables for procedures that are contained in packages.
On Unix, if you are using database features and experience a core dump when exiting VA Smalltalk, comment out the PlatformLibrary>>shutDown method. An alternative solution for your packaged application is to execute the following code when exiting:
Prior to this fix, the only provided method for changing the Oracle initialization mode was to create a subclass of AbtOracle8DatabaseManager in order to override the #userDefinedInitializeMode method. While this method is still available, it is now possible to change the default initialization mode by setting a class variable. The provided method for doing this is AbtOracle8DatabaseManager class>>#defaultInitializeMode:. The shipped default value is OCI_DEFAULT, which is unchanged from previous VA Smalltalk version. See the comment in AbtOracle8DatabaseManager class>>#defaultInitializeMode: for other possible values.
Some database applications will need to add a prerequisite for the AbtRecordStructureApp application. Applications that use Database Parts will not need to add this prerequisite because the parts will include the AbtRecordStructureApp application. If an application manipulates instances of any of the subclasses of AbtRow, they will probably need to add this prerequisite.
If you package your application and get the error The attribute Pub <Attr name> does not exist at runtime, you need to include the AbtRecordStructureApp application.
To ensure all information is displayed on your computer, we encourage you to use the highest resolution offered by your display terminal.
If you get no response from Smalltalk when requesting Help (from the Help menu or F1), the most likely cause is that the browser and/or the newsreader installed on the system cannot be found. To correct this problem, edit the .ini file (for example, abt.ini) and add links to the installed browser and/or newsreader in the [Help] stanza -- you will see examples of specifying Firefox and Thunderbird. You can specify either a complete path to the browser and/or newsreader (not usually necessary) or a relative path.
Enter one of the following URLs into your browser:
The NLS versions of Lotus Notes must be installed on the native Operating System (OS) platforms, in order for Notes to work. If a US-English version of Lotus Notes is installed on the native OS, then the user will not be able to input either SBCS or DBCS characters correctly. This is a restriction with Lotus Notes.
When detaching a file attachment using the Domino connection, the detached file is corrupted. The problem only shows up if the attachment is BASE64 encoded. Detaching the same attachment using the Notes Client works fine. Detaching via Domino connection also works fine if the file has been attached manually using the Notes Client.
There are no known current issues with multiprocessor boxes under any recent version of Windows since Windows 2000. Under much older versions of Windows such as Windows NT, repository corruption was observed on multiprocessor machines. It was never reproducible or diagnosed, but speculation at the time was that the problem was a file sharing bug in Windows itself (that has likely been long since corrected). As far as we know, no fix is necessary under any recent version of Windows. As long as you us the -mp switch, you should not have any problem using EMSRV under any recent version of Windows. We have had no reports of manager corruption in the past 5 years or more. Many customers are running with the -mp override. In any case you should always make sure to have a current backup available in case there is any sort of problem. If you are still concerned about this issue, you can always use a single processor box or use a single-processor VMWare image. Note: Without the override results in a warning WARNING: Running EMSRV for Windows NT/2000 on multiprocessor hardware is not supported due to suspected operating system bugs that may result in repository corruptions. Install and run EMSRV on a machine with a single processor or start EMSRV with the -mp option to bypass this check. Note: When starting with the -mp command line option, EMSRV will still report a warning to the console (or to the Application Log if EMSRV is running as a service): WARNING: Running EMSRV for Windows NT/2000 on multiprocessor hardware is not supported due to suspected operating system bugs that may result in repository corruptions. You have chosen to start EMSRV with the -mp option to bypass a check that normally restricts EMSRV from running on multiprocessor hardware. This may cause repositories to become corrupted.
EMSRV native password validation on Linux uses Pluggable Authentication Modules (PAM). The sample PAM file shipped with VA Smalltalk is correct for older Linux distributions, but does not work for newer distributions.
Use copy and paste to share OLE objects between the Windows Explorer and an OLE Client part. Dropping an OLE object that was dragged from the Windows Explorer onto an OLE Client part does not work.
No additional information at this time.
An SST HTTP server can write an "access" log containing an entry for each request received by the server. Entries in the log are formatted according to the default format used by the Apache HTTP server in order to enable tooling for Apache logs to be used for SST logs as well.
The access log is initialized in SstHttpServer>>startUp. If an access log is desired, it can be specified in 2 ways:
By default, when an error occurs, the walkback information is written to TranscriptTTY. This causes the walkback information to be written to the console or to a log file identified by the -l command line option. Since TranscriptTTY does unbuffered character-at-a-time output, it can be very time consuming to write a large volume of walkback information.
An alternative output mechanism is avasilable. When it is enabled, this mechanism writes the walkback information to a file stream. This is a buffered operation which can be more than an order of magnitude faster than writing to TranscriptTTY.
To enable writing the walkback information to a file stream, you must provide the name of the walkback log in the .ini file:
CORBA IIOP facilities provided by SST in previous releases are obsolete as of this release. The implementation provided in previous releases continues to be shipped with this release, but all methods have been recategorized as 'OBSOLETE'. There will be no further development or enhancement of these facilities, and they may be removed from the product in a future release.
Customer applications which made use of these facilities in a previous release will continue to be supported as they are migrated to this current release.
Customers are advised to make use of Web Services technologies, such as XML and WSDL, for future interoperability strategies.
The RMI in Server Smalltalk has been tested with JDK 1.3 through JDK1.5, using the same techniques that were required for JDK 1.2.
When trying to use the interactive debugger, if you are getting the error EHOSTNOTFOUND or EADDRNOTAVAIL on the runtime side, the problem may be that your runtime machine cannot resolve the dotted TCP/IP address of your development machine. You can work around this problem by adding an entry to the hosts file on the runtime machine for your development machine.
Uninstalling VA Assist is a bit involved. To uninstall the feature,
DBCS cookies are not supported using the Servlet Interface. This is a limitation of the HTTP Server.
Consider the following excerpt from the schema and mapping specs: Schema 1: <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/
2001/XMLSchema" xmlns="http://exampleSchemas. com/thisSchema" xmlns:ais="http:// exampleSchemas.com/ StatusSchema" targetNamespace="http:// exampleSchemas.com/thisSchema" elementFormDefault="qualified" attributeFormDefault=" unqualified"> <xs:import namespace="http:// exampleSchemas.com/ StatusSchema" schemaLocation="StatusSchema. xsd"/> <xs:element name="SessionRequest" type="StartSessionRequestType" /> <xs:element name="SessionResponse" type=" StartSessionResponseType"/> <xs:complexType name="SessionRequestType"/> <xs:complexType name="SessionResponseType"> <xs:sequence> <xs:element ref="ais:Status" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="SessID" type="xs:string" minOccurs="0"/> </xs:sequence> </xs:complexType> </xs:schema> Mapping Spec for SessionRequest: <?xml version="1.0"?> <!DOCTYPE XmlMappingSpec SYSTEM "abtxmap.dtd"> <!-- NameSpaceURI must match with the namespace on the Schema --> <XmlMappingSpec Name="StartSession.map" NameSpaceURI="http:// exampleSchemas.com/thisSchema" > <ClassTypeMapping TypeName="SessionRequest" ClassName=" ExStartSessionRequest"/> <ClassTypeMapping TypeName="SessionResponse" ClassName=" ExStartSessionResponse"> <AttributeMapping ClassAttribute="status" NameSpaceURI="http:// exampleSchemas.com/ StatusSchema"> <SubElement>Status</ SubElement> </AttributeMapping> <AttributeMapping ClassAttribute="sessionId"> <SubElement>SessID</ SubElement> </AttributeMapping> </ClassTypeMapping> Mapping Spec for Status: </XmlMappingSpec> <?xml version="1.0"?> <!DOCTYPE XmlMappingSpec SYSTEM "abtxmap.dtd"> <!-- NameSpaceURI must match with the namespace on the Schema --> <XmlMappingSpec Name="TransactionStatus.map" NameSpaceURI="http:// exampleSchemas.com/ StatusSchema"> <ClassTypeMapping TypeName="Status" ClassName="ExStatus"> <AttributeMapping ClassAttribute="returnCode"> <SubElement>Code</SubElement> </AttributeMapping> <AttributeMapping ClassAttribute=" returnCodeDescription"> <SubElement>Description</ SubElement> </AttributeMapping> </ClassTypeMapping> </XmlMappingSpec> After deploying the web service and sending a request, the web services framework did not deserialize this response: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <env:Envelope xmlns:env="http://schemas. xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/ 2001/XMLSchema-instance" xmlns:soapenc="http://schemas. xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/ 2001/XMLSchema"> <env:Body> <SessionResponse xmlns="http://exampleSchemas. com/thisSchema" <Status xmlns="http://exampleSchemas. com/StatusSchema"> <Code>0</Code> <Description>ok</Description> </Status> <SessionID>ABCDEF</SessionID> </StartSessionResponse> </env:Body> </env:Envelope> It reported the error: "XML mapping error ##ObjectInitializationError: ''Unable to process element ''''TransactionStatus''''''' ". The problem occurred because the code considered the Status element to be in the "http://exampleSchemas.com/ thisSchema" namespace, not in the namespace of the imported schema. The framework was modified to take into account the namespace of the prefix on an element with a ref attribute.
The schema parser in VA Smalltalk is recursive. Whenever a schema import is encountered, a new parser is created which begins to parse that schema. The new parser is added to a stack. This process continues until there are no more schemas to be imported; then the final schema import is completed. The previous import is then completed until the stack is unwoundd. If an imported schema imports a schema which has already been imported by a previous schema, an infinite loop results and an out of memory condition is encountered. For example:
WSDL A imports Schema A. Schema A imports Schema B. Schema B imports Schema A.
Modifications were made to track schemas which have currently begun to be imported and to skip duplicate imports.
Deployment Problem The typical error message in this situation occurs during deployment with the message: 'The type an AbtXmlQName(requestheader:
WachoviaRequestHeader) for WSDL part ''SomeWSDLPart'' could not be determined' The problem occurred when the "document/literal wrapped" style of wsdl was used and the element was defined in an imported namespace, e.g., <wsdl:definitions ... xmlns:importedNamespace=" myNamespace2" <wsdl:types> <xs:schema xmlns:xs="http://www.w3.org/ 2001/XMLSchema"> <xs:import namespace="myNamespace2" schemaLocation="C:\ aSchemaLocation"/> </xs:schema> </wsdl:types> <wsdl:message name="RequestMessage"> <wsdl:part element="importedNamespace: Request" name="Request"/> </wsdl:message> An instance of the SstWsdlDefinitions class contains the parsed artifacts of the web service including the schemas defined or imported in the types section. WsdlDefinitions has an instance variable "types" which contains an instance of the SstWsdlTypes class. namespacemappings instance variable. During parsing of the types section, schema namepsaces were added to a dictionary assigned to this variable. The schemas themselves were placed into the schemas instance variable. Only namespaces of schemas defined wtihin the section and schemas directly imported within the types section are included. However, these imported schemas often import other schemas. The imported schema's namespaces and prefixes are not assigned to the schemas dictionary; they appear in the WsdlDefinitons types instance variable in its imports dictionary. Since this dictionary is not searched during the deserailziation/serialization process, nor during the wsdl message parsing process, web services with this type of schema importation could not be deployed or serialized/deserialized. Code was added to cache all namespaces contained in imported schemas during parsing; when all schemas were imported, iterate through the cache and: 1. place all namespaces into the SsdWsdlDefinitions namespaceMappings Dictionary 2. place all schemas in the SstWsdlTypes schemas dictionary Serialization Problem All necessary namespaces were not included in the Soap request envelope if imported namespaces and schemas were needed to fully define the request. Code was added to examine all schema elements included in the request and to add their namespaces to the Soap envelope. Important! In order to retain backward compatibility, the new processing has been made optional on a container--wide basis. To use it, create a container using: SstWSContainer>> createContainerUsingDocLiteral WrappedNamed: aString
A schema element which contained a ref attribute to a type in another namespace was not serialized with the correct prefix in the Soap request envelope. Consider the following excerpt from a schema: ... <xs:schema xmlns:thisNamespace ="http://thisnnamespace.net/" xmlns:cust ="http://customer.net/" targetNamespace="http://
thisnnamespace.net/" > <xs:import namespace="http://customer. net/" schemaLocation="C:\ theSchemaLocationl"/> <xs:element name="StatementRequest"> <xs:complexType> <xs:sequence> <xs:element ref="cust:Customer"/> </xs:sequence> </xs:complexType> </xs:element> .... Prior to V8.0, the SOAP serialization would produce the following in a request envelope: <SOAP-ENV:Envelope xmlns:SOAP-ENV="http:// schemas.xmlsoap.org/soap/ envelope/" xmlns:thisNamespace ="http://thisnnamespace.net/" xmlns:cust ="http://customer.net/" xmlns:xsd="http://www.w3.org/ 2001/XMLSchema" xmlns:xsi="http://www.w3.org/ 2001/XMLSchema-instance"> <SOAP-ENV:Body> <thisNamespace: StatementRequest> <thisNamespace:Customer> <cust:Name>Bob Smith</cust:Name> <cust:acctNumber>02789</cust: acctNumber> </thisNamespace:Customer> </thisNamespace: StatementRequest> </SOAP-ENV:Body> </SOAP-ENV:Envelope> The code has been modified to result in the request envelope: <SOAP-ENV:Envelope xmlns:SOAP-ENV="http:// schemas.xmlsoap.org/soap/ envelope/" xmlns:thisNamespace ="http://thisnnamespace.net/" xmlns:cust ="http://customer.net/" xmlns:xsd="http://www.w3.org/ 2001/XMLSchema" xmlns:xsi="http://www.w3.org/ 2001/XMLSchema-instance"> <SOAP-ENV:Body> <thisNamespace: StatementRequest> <cust:Customer> <cust:Name>Bob Smith</cust:Name> <cust:acctNumber>02789</cust: acctNumber> </cust:Customer> </thisNamespace: StatementRequest> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Since the Customer complex type is imported from the "http://customer.net/" namespace, the prefix for cust: should be used to qualify it.
The default resource qualifier is <varoot>/xml where <varoot> is the installation directory.
A problem occurs on Unix if a web service attempts to write into this directory since normally
this directory can only be written into by the root user. The solution is to change permission
The same problem ocurs on Windows 7 and Vista with UAC active.
Seaside 3.0.5+ / Grease 1.0.5+ level of function is delivered in this release. This includes the following:
Seaside support is documented in Dynamic Web development with Seaside.
The XML parser automatically performs code page conversion before attempting to parse an XML stream. Many code pages are handled seamlessly using the default code page conversion routine of the runtime operating system. However, there are some character encodings that cannot be converted. Unsupported code page conversions cause walkbacks at execution time.
The following code pages are not supported:
The VA Smalltalk XML support attempts to map XML character set encodings to valid code pages. The default mappings can be overridden using the API shown in the following example:
AbtXmlStreamConverter mapEncoding: 'UTF-8' toCodePage: 65001.
VA Smalltalk uses the code page conversion support APIs that are built in to each of the supported platforms. Therefore, code page mappings may be different for different operating systems. If you encounter a debugger with the following message it is likely that you have encountered an unmapped or mismapped encoding.
Abt.Nls.160.e: Conversion from code page <sourceCodePage> to code page <targetCodePage> is not supported.
THIS DOCUMENT IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. INSTANTIATIONS DISCLAIMS ALL WARRANTIES, WHETHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR PURPOSE AND MERCHANTABILITY WITH RESPECT TO THE INFORMATION IN THIS DOCUMENT. BY FURNISHING THIS DOCUMENT, INSTANTIATIONS GRANTS NO LICENSES TO ANY PATENTS OR COPYRIGHTS.
(C) Copyright Instantiations Corporation 2005, 2011. All rights reserved.