<?xml version="1.0"?>
<!--
 *
 * Copyright (c) 2012-2017, jcabi.com
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met: 1) Redistributions of source code must retain the above
 * copyright notice, this list of conditions and the following
 * disclaimer. 2) Redistributions in binary form must reproduce the above
 * copyright notice, this list of conditions and the following
 * disclaimer in the documentation and/or other materials provided
 * with the distribution. 3) Neither the name of the jcabi.com nor
 * the names of its contributors may be used to endorse or promote
 * products derived from this software without specific prior written
 * permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT
 * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
 * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
 * OF THE POSSIBILITY OF SUCH DAMAGE.
 -->
<document xmlns="http://maven.apache.org/changes/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/changes/1.0.0 http://maven.apache.org/xsd/changes-1.0.0.xsd">
    <body>
        <release version="0.7.21" date="24 Jul 2013" description="com.jcabi.immutable">
            <action dev="yegor" issue="274" type="add">
                com.jcabi.immutable.* classes added
            </action>
        </release>
        <release version="0.7.19" date="7 May 2013" description="extra features in @Loggable, some fixes">
            <action dev="yegor" issue="240" type="add">
                @Loggable.skipArgs and @Loggable.skipResult arguments
                for more compact logging
            </action>
        </release>
        <release version="0.7.18" date="1 May 2013" description="bug fixes in @Loggable">
            <action dev="yegor" issue="234" type="add">
                @Cacheable.FlushBefore and @Cacheable.FlushAfter replaced
                @Cacheable.Flush
            </action>
            <action dev="yegor" issue="227" type="add">
                full stack trace is reported when waiting for a thread
            </action>
            <action dev="yegor" issue="209" type="add">
                thread name is reported when waiting
            </action>
            <action dev="yegor" issue="207" type="add">
                default time limit set to one minute
            </action>
        </release>
        <release version="0.7.17" date="8 Apr 2013" description="better behavior of @Loggable">
            <action dev="yegor" issue="200" type="add">
                "ignore" attribute added to @Loggable annotation to allow
                filtering out of valid exceptions
            </action>
        </release>
        <release version="0.7.16" date="6 Apr 2013" description="@Timeable annotation">
            <action dev="yegor" issue="186" type="add">
                @Timeable annotation added to terminate long-running
                Java methods
            </action>
            <action dev="yegor" issue="184" type="add">
                "prepend" attribute for Loggable annotations to log
                method both entry and exit points
            </action>
        </release>
        <release version="0.7.15" date="19 Mar 2013" description="bug fixes and small improvements">
            <action dev="yegor" issue="175" type="add">
                Logging messages improved in MethodCacher, now they
                contain execution time and an age of cached object
            </action>
            <action dev="yegor" issue="173" type="fix">
                Cyclic reference problem fixed in Immutability checker
            </action>
            <action dev="yegor" issue="172" type="fix">
                Entire package is more exception safe
            </action>
        </release>
        <release version="0.7.13" date="7 Mar 2013" description="@Valid for method responses">
            <action dev="yegor" issue="155" type="add">
                Methods annotated with @Valid are validated
                for validness of their responses, just like method
                arguments are validated with the same JSR-303 annotation
            </action>
            <action dev="yegor" issue="129" type="add">
                @Loggable can annotate entire class to enable
                logging of every method in a class (private, protected, and private)
            </action>
            <action dev="yegor" issue="156" type="add">
                @Loggable trimming mechanism is configurable with
                an extra parameter
            </action>
        </release>
        <release version="0.7.11" date="5 Mar 2013" description="@NotNull for method response validation">
            <action dev="yegor" issue="132" type="add">
                Methods annotated with JSR-303 @NotNull are validated
                for non-nullness of their responses
            </action>
        </release>
        <release version="0.7.9" date="27 Feb 2013" description="APT works together with AspectJ">
            <action dev="yegor" issue="132" type="add">
                Integrated Annotation Processing Tool (APT) with
                AspectJ, now they work together without conflicts
            </action>
        </release>
        <release version="0.7.8" date="17 Feb 2013" description="@Immutable annotation added">
            <action dev="yegor" issue="133" type="add">
                @Immutable annotation added to control class
                immutability in runtime
            </action>
        </release>
        <release version="0.7.6" date="6 Jan 2013" description="@Loggable annotation reports time limitations">
            <action dev="yegor" issue="124" type="add">
                @Loggable-annotated methods report warnings
                when their execution time is above the specified
                and configurable limit (50 msec by default)
            </action>
        </release>
        <release version="0.7.2" date="29 Aug 2012" description="@Loggable annotation and aspect">
            <action dev="yegor" issue="101" type="add">
                @Loggable annotation introduced and an AOP aspect,
                that allows you to log every call to a class method,
                through SLF4J
            </action>
        </release>
        <release version="0.1.10" date="30 Aug 2012" description="first version"/>
    </body>
</document>
