<?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.

-->
<!DOCTYPE apichanges PUBLIC "-//NetBeans//DTD API changes list 1.0//EN" "../../nbbuild/javadoctools/apichanges.dtd">
<apichanges>
    <apidefs>
        <apidef name="masterfs">MasterFileSystem API</apidef>
    </apidefs>
    <changes>
        <change id="image.for.files">
            <api name="masterfs"/>
            <summary>Split image handling into UI module</summary>
            <version major="2" minor="50"/>
            <date day="3" month="10" year="2014"/>
            <author login="sdedic"/>
            <compatibility binary="compatible" source="incompatible" deletion="yes"/>
            <description>
                Image handling moved to <code>masterfs.ui</code> module, AnnotationProvider
                API changed.
            </description>
            <class package="org.netbeans.modules.masterfs.providers" name="BaseAnnotationProvider"/>
            <issue number="247200"/>
        </change>
        <change id="actions.for.files">
            <api name="masterfs"/>
            <summary>Deprecating actions(Set of FileObjects)</summary>
            <version major="2" minor="48"/>
            <date day="14" month="5" year="2014"/>
            <author login="jtulach"/>
            <compatibility addition="yes" binary="compatible" 
                source="compatible" semantic="compatible" 
                deprecation="no" deletion="no" modification="no"
            />
            <description>
                Adding <code>findExtrasFor</code> method to replace
                direct reference to <code>javax.swing.Actions</code>.
                See <a href="@org-netbeans-modules-masterfs-ui@/org/netbeans/modules/masterfs/providers/AnnotationProvider.html">
                        AnnotationProvider
                </a> in <code>masterfs.ui</code> module.
            </description>
            <class package="org.netbeans.modules.masterfs.providers" name="AnnotationProvider" link="no"/>
            <issue number="243265"/>
        </change>
        <change id="org.netbeans.io.suspend">
            <api name="masterfs"/>
            <summary>A property to suspend native listeners</summary>
            <version major="2" minor="42"/>
            <date day="11" month="1" year="2013"/>
            <author login="jtulach"/>
            <compatibility addition="yes" binary="compatible" 
                source="compatible" semantic="compatible" 
                deprecation="no" deletion="no" modification="no"
            />
            <description>
                A <a href="architecture-summary.html#systemproperty-org.netbeans.io.suspend">
                way</a> to temporarily suspend native listeners.
            </description>
            <issue number="222193"/>
        </change>
        <change id="fileLocked.io.exception">
            <api name="masterfs"/>
            <summary>fileLocked method can throw <code>IOException</code></summary>
            <version major="2" minor="37"/>
            <date day="2" month="3" year="2012"/>
            <author login="jtulach"/>
            <compatibility addition="yes" binary="compatible" source="incompatible" semantic="compatible" deprecation="no" deletion="no" modification="no"/>
            <description>
               Changing the <code>fileLocked</code> method to 
                throw <a href="@JDK@/java/io/IOException.html">IOException</a> is 
                source incompatible, but
                binary compatible. As masterfs friends are always compiled at the same time as
                masterfs, and even if they will not, they will link (as the change is binary
                compatible), we modified the method signature to throw 
                <a href="@JDK@/java/io/IOException.html">IOException</a>
            </description>
            <class package="org.netbeans.modules.masterfs.providers" name="ProvidedExtensions"/>
            <issue number="208657"/>
        </change>
        <change id="notifier">
            <api name="masterfs"/>
            <summary>External change notifiers in separate modules</summary>
            <version major="2" minor="36"/>
            <date day="31" month="12" year="2011"/>
            <author login="jtulach"/>
            <compatibility addition="yes" binary="compatible" source="compatible" semantic="compatible" deprecation="no" deletion="no" modification="no"/>
            <description>
                Implementation of <em>native listeners</em> has been moved
                to separate modules, so the masterfs itself does not depend 
                on JNA library.
            </description>
            <class package="org.netbeans.modules.masterfs.providers" name="Notifier"/>
            <issue number="206434"/>
        </change>
        <change id="canWrite">
            <api name="masterfs"/>
            <summary>Determine if a ProvidedExtensions instance should be used to get a files canWrite() value</summary>
            <version major="2" minor="30"/>
            <date day="1" month="2" year="2011"/>
            <author login="tstupka"/>
            <compatibility addition="yes" binary="compatible" source="compatible" semantic="compatible" deprecation="no" deletion="no" modification="no"/>
            <description>
                Introduced a new constructor parameter <code>providesCanWrite</code> to specify if a 
                ProvidedExtensions instance is meant to provide the canWrite() value for a file.
            </description>
            <class package="org.netbeans.modules.masterfs.providers" name="ProvidedExtensions"/>
            <issue number="194683"/>
        </change>
        <change id="copy-handler">
            <api name="masterfs"/>
            <summary>Delegate FileObject.copy() to ProvidedExtensions</summary>
            <version major="2" minor="28"/>
            <date day="27" month="8" year="2010"/>
            <author login="tstupka"/>
            <compatibility addition="yes" binary="compatible" source="compatible" semantic="compatible" deprecation="no" deletion="no" modification="no"/>
            <description>
                ProvidedExtensions.getCopyHandler() allows to delegate a copy operation.
            </description>
            <class package="org.netbeans.modules.masterfs.providers" name="ProvidedExtensions"/>
            <issue number="189921"/>
        </change>
        <change id="event-order">
            <api name="masterfs"/>
            <summary>Guaranteed event order when deleting and creating files and new calls in ProvidedExtensions</summary>
            <version major="2" minor="27"/>
            <date day="22" month="6" year="2010"/>
            <author login="tstupka"/>
            <compatibility addition="yes" binary="compatible" source="compatible" semantic="compatible" deprecation="no" deletion="no" modification="no"/>
            <description>
                <ul>
                    <li>
                        Guaranteed event order when deleting and creating files in atomic action -
                        <code>createSuccess</code> and <code>deleteSuccess</code> are called imediatelly
                        after a file is created or deleted.
                    </li>
                    <li> new calls <code>createdExternally</code>, <code>deletedExternally</code>,
                        <code>fileChanged</code>, <code>beforeMove</code>,
                        <code>moveSuccess</code>, <code>moveFailure</code>
                    </li>
                </ul>
            </description>
            <class package="org.netbeans.modules.masterfs.providers" name="ProvidedExtensions"/>
            <issue number="133855"/>
        </change>
        <change id="priority-io">
            <api name="masterfs"/>
            <summary><code>ProvidedExtensions.priorityIO</code> to suspend background refresh</summary>
            <version major="2" minor="25"/>
            <date day="12" month="5" year="2010"/>
            <author login="jtulach"/>
            <compatibility addition="yes" binary="compatible" source="compatible" semantic="compatible" deprecation="no" deletion="no" modification="no"/>
            <description>
                <p>
                    <code>ProvidedExtensions.priorityIO</code> allows
                    parsing API to suspend background I/O activity after refresh
                    of main window.
                </p>
            </description>
            <class package="org.netbeans.modules.masterfs.providers" name="ProvidedExtensions"/>
            <issue number="181684"/>
        </change>
        <change id="recursive-control">
            <api name="masterfs"/>
            <summary><code>ProvidedExtensions.refreshRecursively</code> was added.</summary>
            <version major="2" minor="24"/>
            <date day="16" month="4" year="2010"/>
            <author login="jtulach"/>
            <compatibility addition="yes" binary="compatible" source="compatible" semantic="compatible" deprecation="no" deletion="no" modification="no"/>
            <description>
                <p>
                    <code>ProvidedExtensions.refreshRecursively</code> allows
                    various version control providers to get better control
                    on behavior of recursive listener.
                </p>
            </description>
            <class package="org.netbeans.modules.masterfs.providers" name="ProvidedExtensions"/>
            <issue number="181684"/>
        </change>
        <change id="added-canWrite-friend-contract-for-versioning-systems">
            <api name="masterfs"/>
            <summary><code>ProvidedExtensions.canWrite</code> was added.</summary>
            <version major="2" minor="14"/>
            <date day="20" month="3" year="2008"/>
            <author login="msandor"/>
            <compatibility addition="yes" binary="compatible" source="compatible" semantic="compatible" deprecation="no" deletion="no" modification="no"/>
            <description>
                <p>
                    <code>ProvidedExtensions.canWrite</code> which is called when
                    <code>MasterFileSystem</code> queries the <code>FileObject</code> for writability.
                </p>                
            </description>
            <issue number="130044"/>
        </change>                        
        
        <change id="fileobject-instances-are-not-issued-after-external-changes">
            <api name="masterfs"/>
            <summary>Fileobject instances are not issued after external changes</summary>
            <version major="2" minor="13"/>
            <date day="8" month="1" year="2008"/>
            <author login="rmatous"/>
            <compatibility binary="compatible" source="compatible" semantic="incompatible"/>
            <description>
                <code>FileObject</code> instances are not guaranteed to be issued if files, folders
                were not created, deleted, modified by FileSystem API and method <code>refresh</code> wasn't properly
                called. These methods were semantically changed:
                <ul>
                    <li><code>FileObject.getFileObject</code></li>
                    <li><code>FileSystem.findResource</code></li>                        
                    <li><code>FileObject.getChildren</code></li>
                </ul>    
                <p>Method <code>FileUtil.toFileObject</code> should still work as before.</p>
            </description>
            <issue number="123542"/>
        </change>                        
        
        <change id="dropped-friend-contract-for-org-netbeans-modules-vcscore">
            <api name="masterfs"/>
            <summary>Simplify MasterFS, do not delegate on other embedded FS</summary>
            <version major="2" minor="13"/>
            <date day="8" month="1" year="2008"/>
            <author login="rmatous"/>
            <compatibility binary="incompatible" source="incompatible"/>
            <description>
                Friend contract for <code>org.netbeans.modules.vcscore</code> broken. Following classes deleted:
                <code>MountSupport</code>, <code>FileSystemProvider</code>, <code>AutoMountProvider</code>
            </description>
            <class package="org.netbeans.modules.masterfs.providers" name="MountSupport"  link="no"/>
            <class package="org.netbeans.modules.masterfs.providers" name="FileSystemProvider"  link="no"/>
            <class package="org.netbeans.modules.masterfs.providers" name="AutoMountProvider"  link="no"/>            
            <issue number="123542"/>
        </change>                        
        
        <change id="added-filelock-notification-for-versioning-systems ">
            <api name="masterfs"/>
            <summary><code>ProvidedExtensions.fileLock</code> and <code>ProvidedExtensions.fileUnlock</code> was added.</summary>
            <version major="1" minor="11"/>
            <date day="15" month="6" year="2007"/>
            <author login="rmatous"/>
            <compatibility addition="yes" binary="compatible" source="compatible" semantic="compatible" deprecation="no" deletion="no" modification="no"/>
            <description>
                <p>
                    <code>ProvidedExtensions.fileLock</code> which is called after
                    <code>MasterFileSystem</code> locks <code>FileObject</code>
                </p>                
                <p>
                    <code>ProvidedExtensions.fileUnlock</code> which is called after
                    <code>FileObject</code> is unlocked.
                </p>                                
            </description>
            <class package="org.netbeans.modules.masterfs.providers" name="ProvidedExtensions"/>
            <issue number="106479"/>
        </change>                        
        
        <change id="added-support-for-local-history">
            <api name="masterfs"/>
            <summary><code>ProvidedExtensions.beforeChange</code> was added.</summary>
            <version major="1" minor="10"/>
            <date day="12" month="2" year="2007"/>
            <author login="rmatous"/>
            <compatibility addition="yes" binary="compatible" source="compatible" semantic="compatible" deprecation="no" deletion="no" modification="no"/>
            <description>
                <p>
                    <code>ProvidedExtensions.beforeChange</code>which is called by 
                    <code>MasterFileSystem</code> when <code>FileObject</code>
                    is going to be modified by asking for <code>OutputStream</code>.
                </p>                
            </description>
            <class package="org.netbeans.modules.masterfs.providers" name="ProvidedExtensions"/>
            <issue number="92676"/>
        </change>                        
        <change id="added-support-for-subversion-delete">
            <api name="masterfs"/>
            <summary><code>ProvidedExtensions.getDeleteHandler</code> was added.</summary>
            <version major="1" minor="9"/>
            <date day="8" month="8" year="2006"/>
            <author login="rmatous"/>
            <compatibility addition="yes" binary="compatible" source="compatible" semantic="compatible" deprecation="no" deletion="no" modification="no"/>
            <description>
                <p>
                    <code>ProvidedExtensions.getDeleteHandler</code> was added, which
                    is the way how to impose handlers for 
                    deleting into mastersfs implementation 
                    which was required by module org.netbeans.modules.subversion.
                </p>
            </description>
            <class package="org.netbeans.modules.masterfs.providers" name="ProvidedExtensions"/>
            <issue number="81510"/>
        </change>                
        <change id="added-support-for-subversion">
            <api name="masterfs"/>
            <summary><code>ProvidedExtensions</code> was added.</summary>
            <version major="1" minor="9"/>
            <date day="24" month="4" year="2006"/>
            <author login="rmatous"/>
            <compatibility addition="yes" binary="compatible" source="compatible" semantic="compatible" deprecation="no" deletion="no" modification="no"/>
            <description>
                <p>
                    <code>ProvidedExtensions</code> was added.
                    Registering subclass of <code>ProvidedExtensions</code> 
                    as a substitution of <code>InterceptionListener</code> is the way 
                    how to impose handlers for renaming and moving into mastersfs implementation 
                    which was required by module org.netbeans.modules.subversion.
                </p>
            </description>
            <class package="org.netbeans.modules.masterfs.providers" name="ProvidedExtensions"/>
            <issue number="73042"/>
        </change>
    </changes>
    <htmlcontents>
        <head>
        <title>Change History for the MasterFileSystem API</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 <a href="@TOP@">MasterFileSystem API</a>.</p>
            <!-- The actual lists of changes, as summaries and details: -->

            <hr/><standard-changelists module-code-name="org.netbeans.modules.masterfs"/>

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

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