4.7.011 Updates

Bugs

  • Bug in the definition of the log and home registry directories in the configuration tool.
  • Security: OpenSSL version changed to 1.0.01g. This version corrects an important security issue named "heartbleed".
  • Bug correction in the encoding of the output buffer.

Modifications

  • Http headers: possibility to define several http headers with the same name. This is useful for cookies. The COMMAND:SET_HTTP_HEADER command has been modified with an APPEND parameter.
  • Logs: the time precision is now the millisecond in the log files.
  • Registry: test if an entry exists. We added a parameter "ENTRY" to the REGISTRY:EXISTS command in order to test existence of a single entry.
  • Linux compatibility: we compiled with older versions of glibc (2.11.3) in order to be compatible with more linux versions.

New features

  • Web services: possibility to define several hosts in the parameters, each associated to a wsdl port.
  • Web services: the web service path defined in the wsdl can be customized for each web service.
  • Confirmation dialog when deleting a registry key from the configuration interface.
  • The process ID (PID) is now recorded in the nirva.run file located in the Bin directory.
  • Session cookie: the session ID can be transmitted as a cookie between web browser and Nirva server. This is done by using the new SYSTEM:SESSION:USE_ID_COOKIE command in the open session procedure.
  • Logs: a new parameter in logs configuration allows flushing logs at each line written. This is now the default.
  • Package file definition: possibility to have a relative file (relative to the current section) in the copyfile command instead of an absolute path. The ".." can also be used in order to point to the parent folder.
  • Java procedures: Class cache. We implemented a class cache in memory in order for the system to not reload a java procedure class. This saves time and potentially hides a Sun JVM bug in heap management.
  • Java procedures: Environment class loaders. As an option, an environment class loader can be defined for java procedures at system, application, service or web service level. This class loader is then used as a parent class loader for each procedure loaded in the corresponding environment. This improves performance (avoids loading some jars at each call of a procedure) and allows sharing global jar files for the entire environment. The global jars must be in a subdirectory named JavaLib in the Procs directory.
  • Open session: possibility to change or remove a parameter of the original command in the session open procedure.
  • Security: we added a mechanism in order to check that command parameters do not contain themselves a nirva command. This check injection mechanism is used by default but can be disabled in the application configuration file (dsc file).
  • Encoding: adding a message in the console and in the log if an encoding issue is detected (ex encoding non iso character to iso)