Revision history for Lim

0.20    2015-08-26
        - Release 0.20

        BIG CHANGES:
        - Change REST HTTP method convention, a HTTP POST is now mapped to
          Create and HTTP PUT is mapped to Update. This affects all non-Lim
          clients API calls.
        - Gone with the old Module, in with the 'new' Name... for
          Lim::Component (affects all modules).
        - Added transport for RabbitMQ.
        - Added support for transports for clients.
        - Add single option to RPC collection definition.
        - Use UTF8 in JSON since we return the tag that its in UTF8.
        - Merge arrays in configuration instead of overwriting allowing for
          plugin/module specific URI configurations etc.
        - No default URI configured in agent.yaml.
        - Object debug, RPC debug and debug logging is now default off.

        Other changes:
        - Reworked handling groups for lim-agentd, trying to get all
          secondary groups in also. Use setsid when daemonizing the process
          and added user/group options to lim-agentd.
        - Fixed plugins() call in Lim::Agent::CLI.
        - Use hosts manually if AnyEvent < 6.01.
        - Implement resolve helper functions that can be configured to skip
          DNS. Use them in Lim::RPC::Transport::HTTP and Lim::RPC::Client.
        - Try to force detection of event backend for old AnyEvents (< 6.01).
        - Lim::RPC::V() now gives the key where data is missing.
        - Dump data on validation error in Lim::RPC::Call.
        - Bugfix URIMaps, was not including call in map key so that same map
          could be used with different calls resulting in wrong call.
        - Add more debug to Lim::Util::run_cmd.
        - Only exit on INT in lim-agentd if we are foregrounded (not daemon).
        - Allow alpha numeric in REST calls.
        - Fix predata in URIMaps.
        - Add config rpc.json.pretty to configure REST and JSONRPC transports
          to print pretty JSON.
        - Add HTTP::Request object to Lim::RPC::Callback that all calls get
          and add X-Lim-Base-URL header to the request so it can be used in
          REST HATEOAS.
        - Autoflush if foreground.
        - Added serve() in Lim::RPC::Transport and called when serving
          a module.
        - Handle Connection header and keep-alive more correct.
        - Use correct Content-Type for REST requests
        - Debug output for loaded modules
        - Extract user/pass information from URI and give more information to
          the Transport for calls.
        - Use localhost 80/443 as default values in HTTP Client Transport.
        - Do not croak if the configuration directory isnt readable by the
          current user.
        - New plugin.load_all setting to load all plugins, otherwise only load
          plugins in plugin.load.
        - Add configuration option to specify what plugin should be served on
          which URI.
        - Specify URI specific transport configuration.
        - Server can now close Transports nicely.
        - A bit better handling of Component calls CLI, Client and Server.
        - Better error on RPC::Server->serve when a plugin only have client
          part installed.
        - If there is no def and no data it should be ok.
        - Make sure HTTP::Status code is integer.
        - Use URI::Escape::XS if exists.
        - Fix maximum request length check for HTTP.
        - Fix Lim::Error::toString() return and Lim::Error handling of message.
        - Do not start unless we got URIs.
        - RabbitMQ transport will now re-resolve/connect on failure.
        - Correct URI::Escape::XS/URI::Escape use to prevent redefined
          warnings.
        - Use auto_delete for RabbitMQ exchanges and channels instead of
          trying to cleanup that ourselves. This prevents one lim-agentd
          to prematurely end exchanges and channels that others might use.
        - Reopen RabbitMQ channels if they are cancels outside our control.
        - Weaken logger object in all classes to hopefully prevent weird
          situations where logger still exists in global destruction
          (Log4perl: Seems like no initialization happened.).
        - Use class as category for all logger to enable better filtering.

0.20_07 2015-08-10
        - Release 0.20 candidate 07

        Changes:
        - Weaken logger object in all classes to hopefully prevent weird
          situations where logger still exists in global destruction
          (Log4perl: Seems like no initialization happened.).
        - Use class as category for all logger to enable better filtering.

0.20_06 2015-08-07
        - Release 0.20 candidate 06

        Changes:
        - Reopen RabbitMQ channels if they are cancels outside our control.

0.20_05 2015-08-06
        - Release 0.20 candidate 05

        Changes:
        - Use auto_delete for RabbitMQ exchanges and channels instead of
          trying to cleanup that ourselves. This prevents one lim-agentd
          to prematurely end exchanges and channels that others might use.

0.20_04 2015-07-30
        - Release 0.20 candidate 04

        Changes:
        - Correct URI::Escape::XS/URI::Escape use to prevent redefined
          warnings.

0.20_03 2015-07-30
        - Release 0.20 candidate 03

        Changes:
        - Do not start unless we got URIs.
        - RabbitMQ transport will now re-resolve/connect on failure.

0.20_02 2015-07-30
        - Release 0.20 candidate 02

        BIG CHANGES:
        - Merge arrays in configuration instead of overwriting allowing for
          plugin/module specific URI configurations etc.
        - No default URI configured in agent.yaml.
        - Object debug, RPC debug and debug logging is now default off.

0.20_01 2015-07-28
        - Release 0.20 candidate 01

        BIG CHANGES:
        - Change REST HTTP method convention, a HTTP POST is now mapped to
          Create and HTTP PUT is mapped to Update. This affects all non-Lim
          clients API calls.
        - Gone with the old Module, in with the 'new' Name... for
          Lim::Component (affects all modules).
        - Added transport for RabbitMQ.
        - Added support for transports for clients.
        - Add single option to RPC collection definition.
        - Use UTF8 in JSON since we return the tag that its in UTF8.

        Other changes:
        - Reworked handling groups for lim-agentd, trying to get all
          secondary groups in also. Use setsid when daemonizing the process
          and added user/group options to lim-agentd.
        - Fixed plugins() call in Lim::Agent::CLI.
        - Use hosts manually if AnyEvent < 6.01.
        - Implement resolve helper functions that can be configured to skip
          DNS. Use them in Lim::RPC::Transport::HTTP and Lim::RPC::Client.
        - Try to force detection of event backend for old AnyEvents (< 6.01).
        - Lim::RPC::V() now gives the key where data is missing.
        - Dump data on validation error in Lim::RPC::Call.
        - Bugfix URIMaps, was not including call in map key so that same map
          could be used with different calls resulting in wrong call.
        - Add more debug to Lim::Util::run_cmd.
        - Only exit on INT in lim-agentd if we are foregrounded (not daemon).
        - Allow alpha numeric in REST calls.
        - Fix predata in URIMaps.
        - Add config rpc.json.pretty to configure REST and JSONRPC transports
          to print pretty JSON.
        - Add HTTP::Request object to Lim::RPC::Callback that all calls get
          and add X-Lim-Base-URL header to the request so it can be used in
          REST HATEOAS.
        - Autoflush if foreground.
        - Added serve() in Lim::RPC::Transport and called when serving
          a module.
        - Handle Connection header and keep-alive more correct.
        - Use correct Content-Type for REST requests
        - Debug output for loaded modules
        - Extract user/pass information from URI and give more information to
          the Transport for calls.
        - Use localhost 80/443 as default values in HTTP Client Transport.
        - Do not croak if the configuration directory isnt readable by the
          current user.
        - New plugin.load_all setting to load all plugins, otherwise only load
          plugins in plugin.load.
        - Add configuration option to specify what plugin should be served on
          which URI.
        - Specify URI specific transport configuration.
        - Server can now close Transports nicely.
        - A bit better handling of Component calls CLI, Client and Server.
        - Better error on RPC::Server->serve when a plugin only have client
          part installed.
        - If there is no def and no data it should be ok.
        - Make sure HTTP::Status code is integer.
        - Use URI::Escape::XS if exists.
        - Fix maximum request length check for HTTP.
        - Fix Lim::Error::toString() return and Lim::Error handling of message.

0.19    2013-09-02
        - Release 0.19
        - New module Lim::Util::DBI - Create a DBH that is executed in a forked
          process.

0.18    2013-08-23
        - Release 0.18
        - Make a bootstrap sub in the Client class of Lim::Component's to detect
          if they are already bootstrapped so we don't do it for each new Client
          object.
        - Add runtime options to lim-agentd to start as another user/group
        - Add API to Lim::RPC::Server so you can get the transports and to the
          Lim::RPC::Transport so you can get the host/port listened to.
        - Change test to use dynamic ports

0.17    2013-08-12
        - Release 0.17

0.16    2013-08-07
        - Release 0.16

0.15    2013-08-04
        - Release 0.15

0.14    2013-08-02
        - Release 0.14

0.13    2013-04-15
        - Release 0.13

0.12    2012-08-03
        - Release 0.12