<?xml version="1.0" encoding="UTF-8"?>
<!--

    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.

-->


<?xml-stylesheet href="../../nbbuild/javadoctools/apichanges.xsl" type="text/xsl"?>
<!DOCTYPE apichanges PUBLIC "-//NetBeans//DTD API changes list 1.0//EN" "../../nbbuild/javadoctools/apichanges.dtd">

<!-- INFO FOR PEOPLE ADDING CHANGES:
[most of contents snipped - see openide's apichanges for how-to instructions]
<change>
    <api name="compiler"/>
    <summary>Some brief description here, can use <b>XHTML</b></summary>
    <version major="1" minor="99"/>
    <date day="13" month="6" year="2001"/>
    <author login="jrhacker"/>
    <compatibility addition="yes"/>
    <description>
        The main description of the change here.
        Again can use full <b>XHTML</b> as needed.
    </description>
    <class package="org.openide.compiler" name="DoWhatIWantCompiler"/>
    <issue number="14309"/>
</change>
-->

<apichanges>

<!-- First, a list of API names you may use: -->
<apidefs>
        <apidef name="CommonTestrunnerAPI">Common Test Runner API</apidef>
</apidefs>

<!-- ACTUAL CHANGES BEGIN HERE: -->

<changes>
    <change id="TestSession_finishSuite">
        <api name="CommonTestrunnerAPI"/>
        <summary>TestSession.finishSuite method added</summary>
        <version major="2" minor="26"/>
        <date day="8" month="10" year="2021"/>
        <author login="dbalek"/>
        <compatibility addition="yes"/>
        <description>
            TestSession.finishSuite() method added.
        </description>
        <class package="org.netbeans.modules.gsf.testrunner.api" name="TestSession"/>
    </change>
    <change id="CommonTestrunnerAPI_Public">
        <api name="CommonTestrunnerAPI"/>
        <summary>Common Test Runner API made public</summary>
        <version major="2" minor="22"/>
        <date day="19" month="2" year="2021"/>
        <author login="dbalek"/>
        <compatibility addition="yes"/>
        <description>
            Common Test Runner API made public instead of long list of friend modules.
        </description>
        <package name="org.netbeans.modules.gsf.testrunner.api"/>
        <package name="org.netbeans.modules.gsf.testrunner.plugin"/>
    </change>
    <change id="TestCreatorProvider_Registration_Identifier">
        <api name="CommonTestrunnerAPI"/>
        <summary>Added identifier attribute in TestCreatorProvider @Registration</summary>
        <version major="2" minor="6"/>
        <date day="24" month="7" year="2015"/>
        <author login="theofanis"/>
        <compatibility addition="yes"/>
        <description>
            Added identifier attribute in TestCreatorProvider @Registration.
            This attribute should never change to facilitate e.g. usage statistics.
        </description>
        <class package="org.netbeans.modules.gsf.testrunner.api" name="TestCreatorProvider"/>
        <issue number="253523"/>
    </change>
    <change id="TestCreatorProvider_Context_Properties">
        <api name="CommonTestrunnerAPI"/>
        <summary>Added methods to get/set configuration properties</summary>
        <version major="2" minor="5"/>
        <date day="23" month="7" year="2015"/>
        <author login="theofanis"/>
        <compatibility addition="yes"/>
        <description>
            Added getter and setter in order to be able to transfer configuration properties
            from the configuration panel inside the "Create Tests" dialog into TestCreatorProvider.Context.
        </description>
        <class package="org.netbeans.modules.gsf.testrunner.api" name="TestCreatorProvider"/>
        <issue number="253523"/>
    </change>
    <change id="TestCreatorProvider_constants">
        <api name="CommonTestrunnerAPI"/>
        <summary>Introducing various constants.</summary>
        <version major="2" minor="1"/>
        <date day="17" month="11" year="2014"/>
        <author login="theofanis"/>
        <compatibility addition="yes"/>
        <description>
            Introduced various constants useful during test creation.
        </description>
        <class package="org.netbeans.modules.gsf.testrunner.api" name="TestCreatorProvider"/>
    </change>
    <change id="UnitTestsUsage">
        <api name="CommonTestrunnerAPI"/>
        <summary>API to log unit test's library usage.</summary>
        <version major="1" minor="37"/>
        <date day="30" month="8" year="2013"/>
        <author login="theofanis"/>
        <compatibility addition="yes"/>
        <description>
            Added API to log unit test's library usage so that it can be used in
            statistics visualization.
        </description>
        <class package="org.netbeans.modules.gsf.testrunner.api" name="UnitTestsUsage"/>
        <issue number="235112"/>
    </change>
    <change id="TestMethodProviders.isTestClass">
        <api name="CommonTestrunnerAPI"/>
        <summary>Method to determine if a node is a test class.</summary>
        <version major="1" minor="36"/>
        <date day="21" month="6" year="2013"/>
        <author login="theofanis"/>
        <compatibility addition="yes"/>
        <description>
            Added new method in order to determine if a selected node is a test class.
            Clients can conditionally enable the "Run/Debug Focused Test Method"
            popup menu item in a file in editor.
        </description>
        <class package="org.netbeans.modules.gsf.testrunner.api" name="TestMethodDebuggerProvider"/>
        <class package="org.netbeans.modules.gsf.testrunner.api" name="TestMethodRunnerProvider"/>
        <issue number="227358"/>
    </change>
    <change id="TestCreatorPanelDisplayer">
        <api name="CommonTestrunnerAPI"/>
        <summary>API to open the configuration dialog when creating tests</summary>
        <version major="1" minor="33"/>
        <date day="13" month="2" year="2013"/>
        <author login="theofanis"/>
        <compatibility addition="yes"/>
        <description>
            Added API to open the configuration dialog when creating tests, so that it
	    can be used for example by java.testrunner hints.
        </description>
        <class package="org.netbeans.modules.gsf.testrunner.api" name="TestCreatorPanelDisplayer"/>
        <issue number="162593"/>
    </change>
</changes>

  <!-- Now the surrounding HTML text and document structure: -->

  <htmlcontents>
<!--

                            NO NO NO NO NO!

         ==============>    DO NOT EDIT ME!  <======================

          AUTOMATICALLY GENERATED FROM APICHANGES.XML, DO NOT EDIT

                SEE xml/api/doc/changes/apichanges.xml

	-->
	<head>
	    <title>Options Dialog API changes by date</title>
	    <link rel="stylesheet" href="prose.css" type="text/css"/>
	</head>
	<body>

	    <p class="overviewlink">
		<a href="overview-summary.html">Overview</a>
	    </p>

	    <h1>Introduction</h1>

	    <p>This document lists changes made to the Common Test Runner APIs. Please ask on the
		<code>nbdev@netbeans.org</code>
		mailing list if you have any questions about the details of a
		change, or are wondering how to convert existing code to be compatible.
	    </p>

	    <hr/>
	    <standard-changelists module-code-name="org.netbeans.modules.gsf.testrunner.api/1"/>

	    <hr/>
	    <p>@FOOTER@</p>

	</body>
    </htmlcontents>
</apichanges>
