| <html> |
| |
| <head> |
| <META http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
| |
| <title>Change History for the File Systems API</title> |
| |
| <link rel="stylesheet" href="prose.css" type="text/css"> |
| |
| </head> |
| |
| <body> |
| |
| <p class="overviewlink"> |
| |
| <a href="overview-summary.html" shape="rect">Overview</a> |
| |
| </p> |
| |
| <h1>Introduction</h1> |
| |
| <h2>What do the Dates Mean?</h2> |
| |
| <p> |
| The supplied dates indicate when the API change was made, on the CVS |
| trunk. From this you can generally tell whether the change should be |
| present in a given build or not; for trunk builds, simply whether it |
| was made before or after the change; for builds on a stabilization |
| branch, whether the branch was made before or after the given date. In |
| some cases corresponding API changes have been made both in the trunk |
| and in an in-progress stabilization branch, if they were needed for a |
| bug fix; this ought to be marked in this list. |
| </p> |
| |
| <ul> |
| |
| <li>The <code>release41</code> branch was made on Apr 03 '05 for use in the NetBeans 4.1 release. |
| Specification versions: 6.0 begins after this point.</li> |
| |
| <li>The <code>release40</code> branch was made on Nov 01 '04 for use in the NetBeans 4.0 release. |
| Specification versions: 5.0 begins after this point.</li> |
| |
| </ul> |
| |
| <hr> |
| |
| <h1> |
| <a name="list-all-apis">Index of APIs</a> |
| </h1> |
| <ul> |
| <li> |
| <a href="#filesystems">Filesystems API</a> |
| </li> |
| <li> |
| <a href="#uncategorized-api">Uncategorized changes</a> |
| </li> |
| </ul> |
| <h1> |
| <a name="incompat-by-date">Incompatible changes by date</a> |
| </h1> |
| <p>Fuller descriptions of all changes can be found below (follow links).</p> |
| <p>Not all deprecations are listed here, assuming that the deprecated |
| APIs continue to essentially work. For a full deprecation list, please |
| consult the |
| <a href="deprecated-list.html">Javadoc</a>.</p> |
| <ul> |
| <li>(Oct 3 '14) <a href="#FileSystemStatus.icons2">FileSystem.Status API removed</a> |
| </li> |
| <li>(Apr 11 '14) <a href="#FileSystemStatus.icons">FileSystem.Status icon annotation moved</a> |
| </li> |
| <li>(Jul 10 '08) <a href="#testable-declarative-resolvers">Declarative MIME resolvers now available in standalone mode</a> |
| </li> |
| <li>(Oct 25 '05) <a href="#semantic-change-in-FileUtil.toFileObject"> |
| The way how <code>IllegalArgumentException</code> is thrown from |
| <code>FileUtil.toFileObject</code> was changed |
| </a> |
| </li> |
| <li>(Jul 21 '05) <a href="#no-static-file-ext-mappings">Removed most static MIME type mappings</a> |
| </li> |
| <li>(Jun 1 '04) <a href="#Repository-deprecations">Almost all methods of Repository were deprecated.</a> |
| </li> |
| <li>(May 7 '04) <a href="#FileObject.setImportant"> |
| <code>FileObject.setImportant</code> deprecated</a> |
| </li> |
| <li>(May 7 '04) <a href="#filesystems-deprecations">Deprecation of various Filesystems API methods and classes</a> |
| </li> |
| <li>(May 7 '04) <a href="#FileObject.getPath-III"> |
| <code>FileObject.toString()</code> not to be used for specific purposes</a> |
| </li> |
| <li>(Nov 1 '02) <a href="#issue-19443-2">API separation, phase II</a> |
| </li> |
| <li>(Oct 15 '02) <a href="#issue-19443-1">API separation, phase I</a> |
| </li> |
| <li>(Aug 30 '02) <a href="#getPath"> |
| <code>FileObject.getPath()</code> returns full resource path of file object</a> |
| </li> |
| <li>(Jun 6 '02) <a href="#version-2.22">URL -> FileObject mapping implementation</a> |
| </li> |
| <li>(Aug 24 '01) <a href="#version-1.33">FileAttributeEvent's methods getName (), getOldValue (), getNewValue () can return null</a> |
| </li> |
| <li>(Jul 24 '01) <a href="#3.803008330124762E30"> |
| Mounting new filesystem no longer works with filesystems providing |
| <code>WizardDescriptor</code> as bean customizers |
| </a> |
| </li> |
| <li>(Jan 8 '01) <a href="#not-a-cookie"> |
| <code>Repository</code> is not a cookie</a> |
| </li> |
| <li>(Mar 27 '00) <a href="#1.22460676003798656E17">Filesystem implementation methods protected not public</a> |
| </li> |
| </ul> |
| <h1> |
| <a name="all-by-date">All changes by date</a> |
| </h1> |
| <ul> |
| <li>(May 28 '15) <a href="#ArchiveRootProvider">Pluggable archive files support for FileUtil</a> |
| </li> |
| <li>(Feb 25 '15) <a href="#repository.multiuser">Support for multi-user environments</a> |
| </li> |
| <li>(Nov 27 '14) <a href="#FileObject.symbolicLinks">Support detection and reading of symbolic links.</a> |
| </li> |
| <li>(Nov 10 '14) <a href="#FileLock.closeable">FileLock implements AutoCloseable</a> |
| </li> |
| <li>(Oct 3 '14) <a href="#FileSystemStatus.icons2">FileSystem.Status API removed</a> |
| </li> |
| <li>(May 14 '14) <a href="#getActionsDeprecated">Deprecating FileSystem.getActions</a> |
| </li> |
| <li>(Apr 11 '14) <a href="#FileSystemStatus.icons">FileSystem.Status icon annotation moved</a> |
| </li> |
| <li>(Nov 23 '12) <a href="#MultiFileObject.revealEntriesAttribute">Allowed to reveal deleted files, or original files overriden by writable layer</a> |
| </li> |
| <li>(Oct 30 '12) <a href="#FileChooserBuilder-setAcceptAllFileFilterUsed">New method FileChooserBuilder.setAcceptAllFileFilterUsed.</a> |
| </li> |
| <li>(Aug 29 '12) <a href="#FileChooserBuilder-addDefaultFileFilters">New method FileChooserBuilder.addDefaultFileFilters and accompanying annotations.</a> |
| </li> |
| <li>(Aug 22 '12) <a href="#fileobject-lookup">FileObject has getLookup()</a> |
| </li> |
| <li>(Apr 11 '12) <a href="#recursive-listener-with-filter">addRecursiveListener with a filter</a> |
| </li> |
| <li>(Feb 20 '12) <a href="#FileSystem.createTemporaryFO">File System can create temporary file</a> |
| </li> |
| <li>(Feb 3 '12) <a href="#LayersProvider">SPI for Additions to System File System</a> |
| </li> |
| <li>(Feb 2 '12) <a href="#MIMEResolver.Registrations">Annotations to declare MIME type</a> |
| </li> |
| <li>(Jan 20 '12) <a href="#FileObject.toURI">Introduced <code>FileObject.toURI</code></a> |
| </li> |
| <li>(Jan 13 '12) <a href="#default-line-separator">Provides default line separator</a> |
| </li> |
| <li>(Nov 29 '11) <a href="#FileObject.revert">Introduced <code>FileObject.revert</code></a> |
| </li> |
| <li>(Nov 22 '11) <a href="#FileEvent.4.constructor">Detailed FileEvent constructor</a> |
| </li> |
| <li>(Aug 5 '11) <a href="#FileObject.getMIMEType...">FileObject.getMIMEType(String... withinMIMETypes)</a> |
| </li> |
| <li>(Jul 25 '11) <a href="#validateResource_196452"><code>LayerBuilder</code> can validate resources</a> |
| </li> |
| <li>(Jul 25 '11) <a href="#LayerGenerationException_194545"><code>LayerGenerationException</code> has new constructors</a> |
| </li> |
| <li>(Jun 25 '11) <a href="#getConfigObject">FileUtil.getConfigObject</a> |
| </li> |
| <li>(Jan 27 '11) <a href="#to.parent">FileObject.getFileObject accepts ".."</a> |
| </li> |
| <li>(Nov 24 '10) <a href="#attribute.methodvalue">setAttribute("methodvalue:attrname", method) and "newvalue:"</a> |
| </li> |
| <li>(Oct 25 '10) <a href="#private-constructor">XMLFileSystem's newvalue can create private instances</a> |
| </li> |
| <li>(Sep 30 '10) <a href="#FileUtil.normalizePath"> |
| <code>FileUtil.normalizePath</code> added |
| </a> |
| </li> |
| <li>(Sep 10 '10) <a href="#createAndOpen">FileObject.createAndOpen</a> |
| </li> |
| <li>(Mar 1 '10) <a href="#MultiFileSystem.weight">Ability to specify "weight" for <code>MultiFileSystem</code> overrides</a> |
| </li> |
| <li>(Feb 17 '10) <a href="#addRecursiveListenerStop">Interruptable addRecursiveListener</a> |
| </li> |
| <li>(Jan 26 '10) <a href="#JarFileSystem-constructor-file">Effective constructor for JarFileSystem</a> |
| </li> |
| <li>(Jan 8 '10) <a href="#MIMEResolverImpl">Access methods added to <code>MIMEResolver.UIHelpers</code></a> |
| </li> |
| <li>(Sep 18 '09) <a href="#recursive-listener">Support for recursive listeners</a> |
| </li> |
| <li>(Sep 14 '09) <a href="#LayerBuilder.instanceFile">Non-initializing <code>LayerBuilder.instanceFile</code> added</a> |
| </li> |
| <li>(Sep 10 '09) <a href="#LayerBuilder.folder"><code>LayerBuilder.folder</code> added</a> |
| </li> |
| <li>(Aug 31 '09) <a href="#Repository.defaultFileSystem.status">System filesystem label/icon annotations work without full module system</a> |
| </li> |
| <li>(Aug 25 '09) <a href="#runWhenDeliveryOver">Support for processing batch events</a> |
| </li> |
| <li>(Aug 12 '09) <a href="#add-fallback-content-to-sfs">Allow modules to provide fallback layer content</a> |
| </li> |
| <li>(Feb 3 '09) <a href="#FileObject.asText">Read files with asText(), asBytes() and asLines()</a> |
| </li> |
| <li>(Jan 14 '09) <a href="#FileUtil.addFileChangeListener2">Possibility to add FileChangeListeners on File (even not existing)</a> |
| </li> |
| <li>(Jan 12 '09) <a href="#FileUtil.getConfigFile">Added FileUtil.getConfigFile and getConfigRoot for simpler access to default filesystem</a> |
| </li> |
| <li>(Dec 19 '08) <a href="#FileUtil.setMIMEType">Persisted registration of file extension to MIME type</a> |
| </li> |
| <li>(Dec 1 '08) <a href="#FileChooserBuilder">FileChooserBuilder added</a> |
| </li> |
| <li>(Nov 18 '08) <a href="#DeclarativeMIMEResolvers">Added new elements to MIME resolver DTD</a> |
| </li> |
| <li>(Nov 1 '08) <a href="#LayerGeneratingProcessor">Support for annotation processors generating XML layer fragments</a> |
| </li> |
| <li>(Sep 3 '08) <a href="#FileUtil.getMIMEType.withinMIMETypes">FileUtil.getMIMEType() can be restricted by listed MIME types</a> |
| </li> |
| <li>(Aug 25 '08) <a href="#getAttribute.class">XMLFileSystem attributes can be queried for instance class</a> |
| </li> |
| <li>(Jul 10 '08) <a href="#testable-declarative-resolvers">Declarative MIME resolvers now available in standalone mode</a> |
| </li> |
| <li>(Jul 8 '08) <a href="#layer.bundlevalue">XMLFileSystem supports 'bundlevalue' attribute</a> |
| </li> |
| <li>(Mar 17 '08) <a href="#FileUtil.urlForArchiveOrDir.archiveOrDirForURL">Added methods to interconvert URLs and traditional path entries</a> |
| </li> |
| <li>(Feb 26 '08) <a href="#FileUtil.addFileChangeListener">Add methods: addFileChangeListener, removeFileChangeListener, refreshAll</a> |
| </li> |
| <li>(Jan 16 '08) <a href="#FileUtil.refreshFor">Add method FileUtil.refreshFor(File... files)</a> |
| </li> |
| <li>(Jan 8 '08) <a href="#FileUtil.runAtomicAction">Simple way to run atomic action without having a fileobject</a> |
| </li> |
| <li>(Jul 26 '07) <a href="#FileObject.isLocked">Added method to test if file is locked</a> |
| </li> |
| <li>(Jun 16 '07) <a href="#FileUtil.order">Added methods to order files in a folder</a> |
| </li> |
| <li>(Mar 12 '07) <a href="#add-content-to-sfs">Allow modules to dynamically add/remove layer content</a> |
| </li> |
| <li>(Sep 7 '06) <a href="#createData-and-createFolder-take-File-as-parameter">Added additional methods <code>FileUtil.createData</code> |
| and <code>FileUtil.createFolder</code> that take <code>java.io.File</code> as a parameter. |
| </a> |
| </li> |
| <li>(May 29 '06) <a href="#method-value-with-map">Semantics of XMLFileSystem's methodvalue extended to |
| also support methods that do not depend on FileSystems API |
| at all |
| </a> |
| </li> |
| <li>(May 3 '06) <a href="#added-FileObject-getOutputStream-without-FileLock-parameter">Added additional method <code>FileObject.getOutputStream</code> |
| that doesn't take <code>FileLock</code> as a parameter. |
| </a> |
| </li> |
| <li>(Oct 25 '05) <a href="#semantic-change-in-FileUtil.toFileObject"> |
| The way how <code>IllegalArgumentException</code> is thrown from |
| <code>FileUtil.toFileObject</code> was changed |
| </a> |
| </li> |
| <li>(Jul 21 '05) <a href="#no-static-file-ext-mappings">Removed most static MIME type mappings</a> |
| </li> |
| <li>(Jan 7 '05) <a href="#not-final-method-getFileObject"> |
| <code>FileObject.getFileObject </code> made not final.</a> |
| </li> |
| <li>(Aug 4 '04) <a href="#FileUtil.createMemoryFileSystem">Added new method <code>FileUtil.createMemoryFileSystem ()</code> |
| </a> |
| </li> |
| <li>(Jul 30 '04) <a href="#FileUtil.preventFileChooserSymlinkTraversal">Added <code>FileUtil.preventFileChooserSymlinkTraversal(...)</code> |
| </a> |
| </li> |
| <li>(Jun 9 '04) <a href="#issue-37549">Added FileUtil.getFileDisplayName</a> |
| </li> |
| <li>(Jun 1 '04) <a href="#Repository-deprecations">Almost all methods of Repository were deprecated.</a> |
| </li> |
| <li>(May 28 '04) <a href="#issue-43180">Reused DefaultAttributes can use different name than .nbattrs </a> |
| </li> |
| <li>(May 7 '04) <a href="#FileUtil-archive-handling">Easier to work with ZIP/JAR archives</a> |
| </li> |
| <li>(May 7 '04) <a href="#FileUtil.normalizeFile"> |
| <code>FileUtil.normalizeFile</code> added</a> |
| </li> |
| <li>(May 7 '04) <a href="#FileObject.setImportant"> |
| <code>FileObject.setImportant</code> deprecated</a> |
| </li> |
| <li>(May 7 '04) <a href="#filesystems-deprecations">Deprecation of various Filesystems API methods and classes</a> |
| </li> |
| <li>(May 7 '04) <a href="#FileObject.getPath-III"> |
| <code>FileObject.toString()</code> not to be used for specific purposes</a> |
| </li> |
| <li>(Apr 13 '04) <a href="#issue-41506">There should exist just one FileObject for one resource (java.io.File or URL). </a> |
| </li> |
| <li>(Dec 9 '03) <a href="#issue-37445">Added API for finding file relatively to another file</a> |
| </li> |
| <li>(Jan 10 '03) <a href="#version-3.31"> Method FileObject.isReadOnly was deprecated and replaced with methods canRead, canWrite</a> |
| </li> |
| <li>(Jan 8 '03) <a href="#issue-28312">URLMapper.findFileObjects returns empty array if not successful.</a> |
| </li> |
| <li>(Nov 1 '02) <a href="#issue-19443-2">API separation, phase II</a> |
| </li> |
| <li>(Oct 22 '02) <a href="#version-3.16">Added FileUtil.isParentOf</a> |
| </li> |
| <li>(Oct 15 '02) <a href="#issue-19443-1">API separation, phase I</a> |
| </li> |
| <li>(Oct 1 '02) <a href="#FileObject.getPath-II">Changed javadoc to warn about improper use of methods</a> |
| </li> |
| <li>(Aug 30 '02) <a href="#getPath"> |
| <code>FileObject.getPath()</code> returns full resource path of file object</a> |
| </li> |
| <li>(Jul 22 '02) <a href="#repository-not-final">Repository is not final</a> |
| </li> |
| <li>(Jun 6 '02) <a href="#version-2.22">URL -> FileObject mapping implementation</a> |
| </li> |
| <li>(Apr 25 '02) <a href="#URLMapper">Added support for better FileObject-URL mapping</a> |
| </li> |
| <li>(Apr 24 '02) <a href="#FileSystem.refresh">There exists possibility to refresh whole filesystem in one </a> |
| </li> |
| <li>(Mar 11 '02) <a href="#FileSystem.FileChangeListener">FileSystem provides FileChangeListener functionality </a> |
| </li> |
| <li>(Mar 11 '02) <a href="#Repository.FileChangeListener">Repository provides FileChangeListener functionality </a> |
| </li> |
| <li>(Jan 17 '02) <a href="#FileSystem.PROP_DISPLAY_NAME">New property FileSystem.PROP_DISPLAY_NAME was added </a> |
| </li> |
| <li>(Sep 21 '01) <a href="#FileEvent.firedFrom"> |
| <code>FileEvent</code>s fired inside atomic actions can report from which atomic actions they were fired</a> |
| </li> |
| <li>(Aug 30 '01) <a href="#MultiFileSystem.createWritableOnForRename">Method createWritableOnForRename in MultiFileSystem was added</a> |
| </li> |
| <li>(Aug 24 '01) <a href="#version-1.33">FileAttributeEvent's methods getName (), getOldValue (), getNewValue () can return null</a> |
| </li> |
| <li>(Aug 17 '01) <a href="#version-1.30">Discover which filesystem a FileStateInvalidException is associated with</a> |
| </li> |
| <li>(Jul 31 '01) <a href="#FileUtil.toFile-fromFile">Find a disk file from a file object or vice-versa</a> |
| </li> |
| <li>(Jul 24 '01) <a href="#3.803008330124762E30"> |
| Mounting new filesystem no longer works with filesystems providing |
| <code>WizardDescriptor</code> as bean customizers |
| </a> |
| </li> |
| <li>(Jun 27 '01) <a href="#FileObject.createData-without-ext">Create file object without extension</a> |
| </li> |
| <li>(Jun 25 '01) <a href="#FileObject.delete-without-lock">Simplified file object deletion</a> |
| </li> |
| <li>(Jun 1 '01) <a href="#1.4714074904E10">Can mark files as being virtual</a> |
| </li> |
| <li>(Jun 1 '01) <a href="#5.8856299599E10">Can mark files as being important</a> |
| </li> |
| <li>(Jun 1 '01) <a href="#4.4502327064E10">Test if a file object is virtual</a> |
| </li> |
| <li>(Feb 7 '01) <a href="#34382">Get default <code>Repository</code> from within Filesystems API</a> |
| </li> |
| <li>(Feb 5 '01) <a href="#8.140445082558805E15">Find a MIME type for a file object using resolvers</a> |
| </li> |
| <li>(Feb 5 '01) <a href="#MIMEResolver">Added <code>MIMEResolver</code> |
| </a> |
| </li> |
| <li>(Jan 29 '01) <a href="#1.211769431E9">Create expected file events</a> |
| </li> |
| <li>(Jan 8 '01) <a href="#not-a-cookie"> |
| <code>Repository</code> is not a cookie</a> |
| </li> |
| <li>(Dec 6 '00) <a href="#mfs-find-action"> |
| <code>MultiFileSystem</code> finds actions on a set of files specially</a> |
| </li> |
| <li>(Nov 23 '00) <a href="#2.4475904905823E13">Propagate masks flag for multi-filesystems</a> |
| </li> |
| <li>(Nov 1 '00) <a href="#370">Added <code>XMLFileSystem</code> |
| </a> |
| </li> |
| <li>(Sep 11 '00) <a href="#9.329227231022436E15">MIME lookup by extension made friendlier for C/C++</a> |
| </li> |
| <li>(Aug 22 '00) <a href="#2.92751569363687E14">Customizable references to known file objects</a> |
| </li> |
| <li>(Aug 22 '00) <a href="#4.080841976251E12">Find references to file objects by name</a> |
| </li> |
| <li>(Aug 10 '00) <a href="#8.4004415344141967E18">Find known file objects starting from some point in the tree</a> |
| </li> |
| <li>(Jun 25 '00) <a href="#repository-adapter-added"> |
| <code>RepositoryAdapter</code> added</a> |
| </li> |
| <li>(Mar 27 '00) <a href="#1.22460676003798656E17">Filesystem implementation methods protected not public</a> |
| </li> |
| <li>(Feb 24 '00) <a href="#393216"> |
| <code>AbstractFileSystem.refreshRoot</code> was of the wrong type</a> |
| </li> |
| </ul> |
| <h1> |
| <a name="all-by-version">Changes by version</a> |
| </h1> |
| <p> |
| These API specification versions may be used to indicate that a module |
| requires a certain API feature in order to function. For example, if you |
| see here a feature you need which is labelled <samp>1.20</samp>, your |
| manifest should contain in its main attributes the line: |
| </p> |
| <pre>OpenIDE-Module-Module-Dependencies: $codebase > 1.20</pre> |
| <ul> |
| <li> |
| (9.10) <a href="#ArchiveRootProvider">Pluggable archive files support for FileUtil</a> |
| </li> |
| <li> |
| (9.5) <a href="#repository.multiuser">Support for multi-user environments</a> |
| </li> |
| <li> |
| (9.4) <a href="#FileObject.symbolicLinks">Support detection and reading of symbolic links.</a> |
| </li> |
| <li> |
| (9.3) <a href="#FileLock.closeable">FileLock implements AutoCloseable</a> |
| </li> |
| <li> |
| (9.1) <a href="#FileSystemStatus.icons2">FileSystem.Status API removed</a> |
| </li> |
| <li> |
| (9.0) <a href="#FileSystemStatus.icons">FileSystem.Status icon annotation moved</a> |
| </li> |
| <li> |
| (8.12) <a href="#getActionsDeprecated">Deprecating FileSystem.getActions</a> |
| </li> |
| <li> |
| (8.5) <a href="#MultiFileObject.revealEntriesAttribute">Allowed to reveal deleted files, or original files overriden by writable layer</a> |
| </li> |
| <li> |
| (8.3) <a href="#FileChooserBuilder-setAcceptAllFileFilterUsed">New method FileChooserBuilder.setAcceptAllFileFilterUsed.</a> |
| </li> |
| <li> |
| (8.1) <a href="#FileChooserBuilder-addDefaultFileFilters">New method FileChooserBuilder.addDefaultFileFilters and accompanying annotations.</a> |
| </li> |
| <li> |
| (8.0) <a href="#fileobject-lookup">FileObject has getLookup()</a> |
| </li> |
| <li> |
| (7.61) <a href="#recursive-listener-with-filter">addRecursiveListener with a filter</a> |
| </li> |
| <li> |
| (7.60) <a href="#FileSystem.createTemporaryFO">File System can create temporary file</a> |
| </li> |
| <li> |
| (7.59) <a href="#LayersProvider">SPI for Additions to System File System</a> |
| </li> |
| <li> |
| (7.58) <a href="#MIMEResolver.Registrations">Annotations to declare MIME type</a> |
| </li> |
| <li> |
| (7.57) <a href="#FileObject.toURI">Introduced <code>FileObject.toURI</code></a> |
| </li> |
| <li> |
| (7.56) <a href="#default-line-separator">Provides default line separator</a> |
| </li> |
| <li> |
| (7.55) <a href="#FileObject.revert">Introduced <code>FileObject.revert</code></a> |
| </li> |
| <li> |
| (7.54) <a href="#FileEvent.4.constructor">Detailed FileEvent constructor</a> |
| </li> |
| <li> |
| (7.52) <a href="#FileObject.getMIMEType...">FileObject.getMIMEType(String... withinMIMETypes)</a> |
| </li> |
| <li> |
| (7.51) <a href="#validateResource_196452"><code>LayerBuilder</code> can validate resources</a> |
| </li> |
| <li> |
| (7.50) <a href="#LayerGenerationException_194545"><code>LayerGenerationException</code> has new constructors</a> |
| </li> |
| <li> |
| (7.49) <a href="#getConfigObject">FileUtil.getConfigObject</a> |
| </li> |
| <li> |
| (7.45) <a href="#to.parent">FileObject.getFileObject accepts ".."</a> |
| </li> |
| <li> |
| (7.43) <a href="#attribute.methodvalue">setAttribute("methodvalue:attrname", method) and "newvalue:"</a> |
| </li> |
| <li> |
| (7.43) <a href="#private-constructor">XMLFileSystem's newvalue can create private instances</a> |
| </li> |
| <li> |
| (7.42) <a href="#FileUtil.normalizePath"> |
| <code>FileUtil.normalizePath</code> added |
| </a> |
| </li> |
| <li> |
| (7.41) <a href="#createAndOpen">FileObject.createAndOpen</a> |
| </li> |
| <li> |
| (7.37) <a href="#addRecursiveListenerStop">Interruptable addRecursiveListener</a> |
| </li> |
| <li> |
| (7.36) <a href="#MultiFileSystem.weight">Ability to specify "weight" for <code>MultiFileSystem</code> overrides</a> |
| </li> |
| <li> |
| (7.35) <a href="#JarFileSystem-constructor-file">Effective constructor for JarFileSystem</a> |
| </li> |
| <li> |
| (7.34) <a href="#MIMEResolverImpl">Access methods added to <code>MIMEResolver.UIHelpers</code></a> |
| </li> |
| <li> |
| (7.28) <a href="#recursive-listener">Support for recursive listeners</a> |
| </li> |
| <li> |
| (7.27) <a href="#LayerBuilder.instanceFile">Non-initializing <code>LayerBuilder.instanceFile</code> added</a> |
| </li> |
| <li> |
| (7.26) <a href="#LayerBuilder.folder"><code>LayerBuilder.folder</code> added</a> |
| </li> |
| <li> |
| (7.25) <a href="#Repository.defaultFileSystem.status">System filesystem label/icon annotations work without full module system</a> |
| </li> |
| <li> |
| (7.24) <a href="#runWhenDeliveryOver">Support for processing batch events</a> |
| </li> |
| <li> |
| (7.23) <a href="#add-fallback-content-to-sfs">Allow modules to provide fallback layer content</a> |
| </li> |
| <li> |
| (7.21) <a href="#FileObject.asText">Read files with asText(), asBytes() and asLines()</a> |
| </li> |
| <li> |
| (7.20) <a href="#FileUtil.addFileChangeListener2">Possibility to add FileChangeListeners on File (even not existing)</a> |
| </li> |
| <li> |
| (7.19) <a href="#FileUtil.getConfigFile">Added FileUtil.getConfigFile and getConfigRoot for simpler access to default filesystem</a> |
| </li> |
| <li> |
| (7.18) <a href="#FileUtil.setMIMEType">Persisted registration of file extension to MIME type</a> |
| </li> |
| <li> |
| (7.17) <a href="#FileChooserBuilder">FileChooserBuilder added</a> |
| </li> |
| <li> |
| (7.16) <a href="#DeclarativeMIMEResolvers">Added new elements to MIME resolver DTD</a> |
| </li> |
| <li> |
| (7.15) <a href="#LayerGeneratingProcessor">Support for annotation processors generating XML layer fragments</a> |
| </li> |
| <li> |
| (7.13) <a href="#FileUtil.getMIMEType.withinMIMETypes">FileUtil.getMIMEType() can be restricted by listed MIME types</a> |
| </li> |
| <li> |
| (7.12) <a href="#getAttribute.class">XMLFileSystem attributes can be queried for instance class</a> |
| </li> |
| <li> |
| (7.11) <a href="#testable-declarative-resolvers">Declarative MIME resolvers now available in standalone mode</a> |
| </li> |
| <li> |
| (7.10) <a href="#layer.bundlevalue">XMLFileSystem supports 'bundlevalue' attribute</a> |
| </li> |
| <li> |
| (7.8) <a href="#FileUtil.urlForArchiveOrDir.archiveOrDirForURL">Added methods to interconvert URLs and traditional path entries</a> |
| </li> |
| <li> |
| (7.7) <a href="#FileUtil.addFileChangeListener">Add methods: addFileChangeListener, removeFileChangeListener, refreshAll</a> |
| </li> |
| <li> |
| (7.6) <a href="#FileUtil.refreshFor">Add method FileUtil.refreshFor(File... files)</a> |
| </li> |
| <li> |
| (7.5) <a href="#FileUtil.runAtomicAction">Simple way to run atomic action without having a fileobject</a> |
| </li> |
| <li> |
| (7.3) <a href="#FileObject.isLocked">Added method to test if file is locked</a> |
| </li> |
| <li> |
| (7.2) <a href="#FileUtil.order">Added methods to order files in a folder</a> |
| </li> |
| <li> |
| (7.1) <a href="#add-content-to-sfs">Allow modules to dynamically add/remove layer content</a> |
| </li> |
| <li> |
| (7.0) <a href="#createData-and-createFolder-take-File-as-parameter">Added additional methods <code>FileUtil.createData</code> |
| and <code>FileUtil.createFolder</code> that take <code>java.io.File</code> as a parameter. |
| </a> |
| </li> |
| <li> |
| (7.0) <a href="#method-value-with-map">Semantics of XMLFileSystem's methodvalue extended to |
| also support methods that do not depend on FileSystems API |
| at all |
| </a> |
| </li> |
| <li> |
| (6.6) <a href="#added-FileObject-getOutputStream-without-FileLock-parameter">Added additional method <code>FileObject.getOutputStream</code> |
| that doesn't take <code>FileLock</code> as a parameter. |
| </a> |
| </li> |
| <li> |
| (6.3) <a href="#semantic-change-in-FileUtil.toFileObject"> |
| The way how <code>IllegalArgumentException</code> is thrown from |
| <code>FileUtil.toFileObject</code> was changed |
| </a> |
| </li> |
| <li> |
| (6.2) <a href="#no-static-file-ext-mappings">Removed most static MIME type mappings</a> |
| </li> |
| <li> |
| (5.3) <a href="#not-final-method-getFileObject"> |
| <code>FileObject.getFileObject </code> made not final.</a> |
| </li> |
| <li> |
| (4.48) <a href="#FileUtil-archive-handling">Easier to work with ZIP/JAR archives</a> |
| </li> |
| <li> |
| (4.48) <a href="#FileUtil.normalizeFile"> |
| <code>FileUtil.normalizeFile</code> added</a> |
| </li> |
| <li> |
| (4.48) <a href="#FileObject.setImportant"> |
| <code>FileObject.setImportant</code> deprecated</a> |
| </li> |
| <li> |
| (4.48) <a href="#filesystems-deprecations">Deprecation of various Filesystems API methods and classes</a> |
| </li> |
| <li> |
| (4.48) <a href="#FileObject.getPath-III"> |
| <code>FileObject.toString()</code> not to be used for specific purposes</a> |
| </li> |
| <li> |
| (4.43) <a href="#FileUtil.createMemoryFileSystem">Added new method <code>FileUtil.createMemoryFileSystem ()</code> |
| </a> |
| </li> |
| <li> |
| (4.42) <a href="#FileUtil.preventFileChooserSymlinkTraversal">Added <code>FileUtil.preventFileChooserSymlinkTraversal(...)</code> |
| </a> |
| </li> |
| <li> |
| (4.39) <a href="#issue-37549">Added FileUtil.getFileDisplayName</a> |
| </li> |
| <li> |
| (4.36) <a href="#Repository-deprecations">Almost all methods of Repository were deprecated.</a> |
| </li> |
| <li> |
| (4.35) <a href="#issue-43180">Reused DefaultAttributes can use different name than .nbattrs </a> |
| </li> |
| <li> |
| (4.29) <a href="#issue-41506">There should exist just one FileObject for one resource (java.io.File or URL). </a> |
| </li> |
| <li> |
| (4.16) <a href="#issue-37445">Added API for finding file relatively to another file</a> |
| </li> |
| <li> |
| (3.31) <a href="#version-3.31"> Method FileObject.isReadOnly was deprecated and replaced with methods canRead, canWrite</a> |
| </li> |
| <li> |
| (3.28) <a href="#issue-28312">URLMapper.findFileObjects returns empty array if not successful.</a> |
| </li> |
| <li> |
| (3.17) <a href="#issue-19443-2">API separation, phase II</a> |
| </li> |
| <li> |
| (3.16) <a href="#version-3.16">Added FileUtil.isParentOf</a> |
| </li> |
| <li> |
| (3.14) <a href="#issue-19443-1">API separation, phase I</a> |
| </li> |
| <li> |
| (3.7) <a href="#getPath"> |
| <code>FileObject.getPath()</code> returns full resource path of file object</a> |
| </li> |
| <li> |
| (3.3) <a href="#repository-not-final">Repository is not final</a> |
| </li> |
| <li> |
| (2.22) <a href="#version-2.22">URL -> FileObject mapping implementation</a> |
| </li> |
| <li> |
| (2.16) <a href="#URLMapper">Added support for better FileObject-URL mapping</a> |
| </li> |
| <li> |
| (2.16) <a href="#FileSystem.refresh">There exists possibility to refresh whole filesystem in one </a> |
| </li> |
| <li> |
| (2.8) <a href="#FileSystem.FileChangeListener">FileSystem provides FileChangeListener functionality </a> |
| </li> |
| <li> |
| (2.8) <a href="#Repository.FileChangeListener">Repository provides FileChangeListener functionality </a> |
| </li> |
| <li> |
| (2.1) <a href="#FileSystem.PROP_DISPLAY_NAME">New property FileSystem.PROP_DISPLAY_NAME was added </a> |
| </li> |
| <li> |
| (1.35) <a href="#FileEvent.firedFrom"> |
| <code>FileEvent</code>s fired inside atomic actions can report from which atomic actions they were fired</a> |
| </li> |
| <li> |
| (1.34) <a href="#MultiFileSystem.createWritableOnForRename">Method createWritableOnForRename in MultiFileSystem was added</a> |
| </li> |
| <li> |
| (1.33) <a href="#version-1.33">FileAttributeEvent's methods getName (), getOldValue (), getNewValue () can return null</a> |
| </li> |
| <li> |
| (1.30) <a href="#version-1.30">Discover which filesystem a FileStateInvalidException is associated with</a> |
| </li> |
| <li> |
| (1.29) <a href="#FileUtil.toFile-fromFile">Find a disk file from a file object or vice-versa</a> |
| </li> |
| <li> |
| (1.17) <a href="#FileObject.createData-without-ext">Create file object without extension</a> |
| </li> |
| <li> |
| (1.15) <a href="#FileObject.delete-without-lock">Simplified file object deletion</a> |
| </li> |
| </ul> |
| <h1> |
| <a name="all-by-class">Changes by affected class</a> |
| </h1> |
| <h2> |
| <a name="org.openide.actions.AbstractCompileAction"><code><span style="color:gray">org.openide.actions.</span>AbstractCompileAction</code></a> |
| </h2><ul><li>(Nov 1 '02) <a href="#issue-19443-2">API separation, phase II</a> |
| </li></ul><h2> |
| <a name="org.openide.filesystems.AbstractFileSystem"><code><span style="color:gray">org.openide.filesystems.</span>AbstractFileSystem</code></a> |
| </h2><ul><li>(Nov 27 '14) <a href="#FileObject.symbolicLinks">Support detection and reading of symbolic links.</a> |
| </li> |
| <li>(May 14 '14) <a href="#getActionsDeprecated">Deprecating FileSystem.getActions</a> |
| </li> |
| <li>(Jan 10 '03) <a href="#version-3.31"> Method FileObject.isReadOnly was deprecated and replaced with methods canRead, canWrite</a> |
| </li> |
| <li>(Jun 1 '01) <a href="#1.4714074904E10">Can mark files as being virtual</a> |
| </li> |
| <li>(Jun 1 '01) <a href="#5.8856299599E10">Can mark files as being important</a> |
| </li> |
| <li>(Aug 22 '00) <a href="#2.92751569363687E14">Customizable references to known file objects</a> |
| </li> |
| <li>(Aug 22 '00) <a href="#4.080841976251E12">Find references to file objects by name</a> |
| </li> |
| <li>(Aug 10 '00) <a href="#8.4004415344141967E18">Find known file objects starting from some point in the tree</a> |
| </li> |
| <li>(Feb 24 '00) <a href="#393216"> |
| <code>AbstractFileSystem.refreshRoot</code> was of the wrong type</a> |
| </li></ul><h2> |
| <a name="org.openide.actions.AddWatchAction"><code><span style="color:gray">org.openide.actions.</span>AddWatchAction</code></a> |
| </h2><ul><li>(Oct 15 '02) <a href="#issue-19443-1">API separation, phase I</a> |
| </li></ul><h2> |
| <a name="org.openide.filesystems.spi.ArchiveRootProvider"><code><span style="color:gray">org.openide.filesystems.spi.</span>ArchiveRootProvider</code></a> |
| </h2><ul><li>(May 28 '15) <a href="#ArchiveRootProvider">Pluggable archive files support for FileUtil</a> |
| </li></ul><h2> |
| <a name="org.openide.cookies.ArgumentsCookie"><code><span style="color:gray">org.openide.cookies.</span>ArgumentsCookie</code></a> |
| </h2><ul><li>(Nov 1 '02) <a href="#issue-19443-2">API separation, phase II</a> |
| </li></ul><h2> |
| <a name="org.openide.actions.BuildAction"><code><span style="color:gray">org.openide.actions.</span>BuildAction</code></a> |
| </h2><ul><li>(Nov 1 '02) <a href="#issue-19443-2">API separation, phase II</a> |
| </li></ul><h2> |
| <a name="org.openide.actions.BuildAllAction"><code><span style="color:gray">org.openide.actions.</span>BuildAllAction</code></a> |
| </h2><ul><li>(Nov 1 '02) <a href="#issue-19443-2">API separation, phase II</a> |
| </li></ul><h2> |
| <a name="org.openide.actions.BuildProjectAction"><code><span style="color:gray">org.openide.actions.</span>BuildProjectAction</code></a> |
| </h2><ul><li>(Oct 15 '02) <a href="#issue-19443-1">API separation, phase I</a> |
| </li></ul><h2> |
| <a name="org.openide.explorer.propertysheet.editors.ChoicePropertyEditor"><code><span style="color:gray">org.openide.explorer.propertysheet.editors.</span>ChoicePropertyEditor</code></a> |
| </h2><ul><li>(Oct 15 '02) <a href="#issue-19443-1">API separation, phase I</a> |
| </li></ul><h2> |
| <a name="org.openide.actions.CleanAction"><code><span style="color:gray">org.openide.actions.</span>CleanAction</code></a> |
| </h2><ul><li>(Nov 1 '02) <a href="#issue-19443-2">API separation, phase II</a> |
| </li></ul><h2> |
| <a name="org.openide.actions.CleanAllAction"><code><span style="color:gray">org.openide.actions.</span>CleanAllAction</code></a> |
| </h2><ul><li>(Nov 1 '02) <a href="#issue-19443-2">API separation, phase II</a> |
| </li></ul><h2> |
| <a name="org.openide.actions.CompileAction"><code><span style="color:gray">org.openide.actions.</span>CompileAction</code></a> |
| </h2><ul><li>(Nov 1 '02) <a href="#issue-19443-2">API separation, phase II</a> |
| </li></ul><h2> |
| <a name="org.openide.actions.CompileAllAction"><code><span style="color:gray">org.openide.actions.</span>CompileAllAction</code></a> |
| </h2><ul><li>(Nov 1 '02) <a href="#issue-19443-2">API separation, phase II</a> |
| </li></ul><h2> |
| <a name="org.openide.actions.CompileProjectAction"><code><span style="color:gray">org.openide.actions.</span>CompileProjectAction</code></a> |
| </h2><ul><li>(Oct 15 '02) <a href="#issue-19443-1">API separation, phase I</a> |
| </li></ul><h2> |
| <a name="org.openide.cookies.CompilerCookie"><code><span style="color:gray">org.openide.cookies.</span>CompilerCookie</code></a> |
| </h2><ul><li>(Nov 1 '02) <a href="#issue-19443-2">API separation, phase II</a> |
| </li></ul><h2> |
| <a name="org.openide.loaders.CompilerSupport"><code><span style="color:gray">org.openide.loaders.</span>CompilerSupport</code></a> |
| </h2><ul><li>(Nov 1 '02) <a href="#issue-19443-2">API separation, phase II</a> |
| </li></ul><h2> |
| <a name="org.openide.options.ControlPanel"><code><span style="color:gray">org.openide.options.</span>ControlPanel</code></a> |
| </h2><ul><li>(Oct 15 '02) <a href="#issue-19443-1">API separation, phase I</a> |
| </li></ul><h2> |
| <a name="org.openide.loaders.DataObjectFilter"><code><span style="color:gray">org.openide.loaders.</span>DataObjectFilter</code></a> |
| </h2><ul><li>(Oct 15 '02) <a href="#issue-19443-1">API separation, phase I</a> |
| </li></ul><h2> |
| <a name="org.openide.cookies.DebuggerCookie"><code><span style="color:gray">org.openide.cookies.</span>DebuggerCookie</code></a> |
| </h2><ul><li>(Oct 15 '02) <a href="#issue-19443-1">API separation, phase I</a> |
| </li></ul><h2> |
| <a name="org.openide.actions.DebugProjectAction"><code><span style="color:gray">org.openide.actions.</span>DebugProjectAction</code></a> |
| </h2><ul><li>(Oct 15 '02) <a href="#issue-19443-1">API separation, phase I</a> |
| </li></ul><h2> |
| <a name="org.openide.filesystems.DefaultAttributes"><code><span style="color:gray">org.openide.filesystems.</span>DefaultAttributes</code></a> |
| </h2><ul><li>(May 28 '04) <a href="#issue-43180">Reused DefaultAttributes can use different name than .nbattrs </a> |
| </li></ul><h2> |
| <a name="org.openide.DialogDisplayer"><code><span style="color:gray">org.openide.</span>DialogDisplayer</code></a> |
| </h2><ul><li>(Oct 15 '02) <a href="#issue-19443-1">API separation, phase I</a> |
| </li></ul><h2> |
| <a name="org.openide.explorer.propertysheet.editors.DirectoryOnlyEditor"><code><span style="color:gray">org.openide.explorer.propertysheet.editors.</span>DirectoryOnlyEditor</code></a> |
| </h2><ul><li>(Oct 15 '02) <a href="#issue-19443-1">API separation, phase I</a> |
| </li></ul><h2> |
| <a name="org.openide.cookies.ElementCookie"><code><span style="color:gray">org.openide.cookies.</span>ElementCookie</code></a> |
| </h2><ul><li>(Oct 15 '02) <a href="#issue-19443-1">API separation, phase I</a> |
| </li></ul><h2> |
| <a name="org.openide.explorer.propertysheet.editors.ElementFormatEditor"><code><span style="color:gray">org.openide.explorer.propertysheet.editors.</span>ElementFormatEditor</code></a> |
| </h2><ul><li>(Oct 15 '02) <a href="#issue-19443-1">API separation, phase I</a> |
| </li></ul><h2> |
| <a name="org.openide.cookies.ExecCookie"><code><span style="color:gray">org.openide.cookies.</span>ExecCookie</code></a> |
| </h2><ul><li>(Nov 1 '02) <a href="#issue-19443-2">API separation, phase II</a> |
| </li></ul><h2> |
| <a name="org.openide.loaders.ExecSupport"><code><span style="color:gray">org.openide.loaders.</span>ExecSupport</code></a> |
| </h2><ul><li>(Oct 15 '02) <a href="#issue-19443-1">API separation, phase I</a> |
| </li></ul><h2> |
| <a name="org.openide.actions.ExecuteAction"><code><span style="color:gray">org.openide.actions.</span>ExecuteAction</code></a> |
| </h2><ul><li>(Nov 1 '02) <a href="#issue-19443-2">API separation, phase II</a> |
| </li></ul><h2> |
| <a name="org.openide.actions.ExecuteProjectAction"><code><span style="color:gray">org.openide.actions.</span>ExecuteProjectAction</code></a> |
| </h2><ul><li>(Oct 15 '02) <a href="#issue-19443-1">API separation, phase I</a> |
| </li></ul><h2> |
| <a name="org.openide.loaders.ExecutionSupport"><code><span style="color:gray">org.openide.loaders.</span>ExecutionSupport</code></a> |
| </h2><ul><li>(Nov 1 '02) <a href="#issue-19443-2">API separation, phase II</a> |
| </li> |
| <li>(Oct 15 '02) <a href="#issue-19443-1">API separation, phase I</a> |
| </li></ul><h2> |
| <a name="org.openide.loaders.ExtensionListEditor"><code><span style="color:gray">org.openide.loaders.</span>ExtensionListEditor</code></a> |
| </h2><ul><li>(Oct 15 '02) <a href="#issue-19443-1">API separation, phase I</a> |
| </li></ul><h2> |
| <a name="org.openide.explorer.propertysheet.editors.ExternalCompiler"><code><span style="color:gray">org.openide.explorer.propertysheet.editors.</span>ExternalCompiler</code></a> |
| </h2><ul><li>(Oct 15 '02) <a href="#issue-19443-1">API separation, phase I</a> |
| </li></ul><h2> |
| <a name="org.openide.filesystems.FileAttributeEvent"><code><span style="color:gray">org.openide.filesystems.</span>FileAttributeEvent</code></a> |
| </h2><ul><li>(Aug 24 '01) <a href="#version-1.33">FileAttributeEvent's methods getName (), getOldValue (), getNewValue () can return null</a> |
| </li> |
| <li>(Jan 29 '01) <a href="#1.211769431E9">Create expected file events</a> |
| </li></ul><h2> |
| <a name="org.openide.filesystems.FileChooserBuilder"><code><span style="color:gray">org.openide.filesystems.</span>FileChooserBuilder</code></a> |
| </h2><ul><li>(Oct 30 '12) <a href="#FileChooserBuilder-setAcceptAllFileFilterUsed">New method FileChooserBuilder.setAcceptAllFileFilterUsed.</a> |
| </li> |
| <li>(Aug 29 '12) <a href="#FileChooserBuilder-addDefaultFileFilters">New method FileChooserBuilder.addDefaultFileFilters and accompanying annotations.</a> |
| </li> |
| <li>(Dec 1 '08) <a href="#FileChooserBuilder">FileChooserBuilder added</a> |
| </li></ul><h2> |
| <a name="org.openide.explorer.propertysheet.editors.FileEditor"><code><span style="color:gray">org.openide.explorer.propertysheet.editors.</span>FileEditor</code></a> |
| </h2><ul><li>(Oct 15 '02) <a href="#issue-19443-1">API separation, phase I</a> |
| </li></ul><h2> |
| <a name="org.openide.filesystems.FileEvent"><code><span style="color:gray">org.openide.filesystems.</span>FileEvent</code></a> |
| </h2><ul><li>(Nov 22 '11) <a href="#FileEvent.4.constructor">Detailed FileEvent constructor</a> |
| </li> |
| <li>(Aug 25 '09) <a href="#runWhenDeliveryOver">Support for processing batch events</a> |
| </li> |
| <li>(Sep 21 '01) <a href="#FileEvent.firedFrom"> |
| <code>FileEvent</code>s fired inside atomic actions can report from which atomic actions they were fired</a> |
| </li> |
| <li>(Jan 29 '01) <a href="#1.211769431E9">Create expected file events</a> |
| </li></ul><h2> |
| <a name="org.openide.filesystems.FileLock"><code><span style="color:gray">org.openide.filesystems.</span>FileLock</code></a> |
| </h2><ul><li>(Nov 10 '14) <a href="#FileLock.closeable">FileLock implements AutoCloseable</a> |
| </li></ul><h2> |
| <a name="org.openide.filesystems.FileObject"><code><span style="color:gray">org.openide.filesystems.</span>FileObject</code></a> |
| </h2><ul><li>(Nov 27 '14) <a href="#FileObject.symbolicLinks">Support detection and reading of symbolic links.</a> |
| </li> |
| <li>(Aug 22 '12) <a href="#fileobject-lookup">FileObject has getLookup()</a> |
| </li> |
| <li>(Jan 20 '12) <a href="#FileObject.toURI">Introduced <code>FileObject.toURI</code></a> |
| </li> |
| <li>(Jan 13 '12) <a href="#default-line-separator">Provides default line separator</a> |
| </li> |
| <li>(Nov 29 '11) <a href="#FileObject.revert">Introduced <code>FileObject.revert</code></a> |
| </li> |
| <li>(Aug 5 '11) <a href="#FileObject.getMIMEType...">FileObject.getMIMEType(String... withinMIMETypes)</a> |
| </li> |
| <li>(Jan 27 '11) <a href="#to.parent">FileObject.getFileObject accepts ".."</a> |
| </li> |
| <li>(Nov 24 '10) <a href="#attribute.methodvalue">setAttribute("methodvalue:attrname", method) and "newvalue:"</a> |
| </li> |
| <li>(Sep 10 '10) <a href="#createAndOpen">FileObject.createAndOpen</a> |
| </li> |
| <li>(Sep 18 '09) <a href="#recursive-listener">Support for recursive listeners</a> |
| </li> |
| <li>(Feb 3 '09) <a href="#FileObject.asText">Read files with asText(), asBytes() and asLines()</a> |
| </li> |
| <li>(Jul 26 '07) <a href="#FileObject.isLocked">Added method to test if file is locked</a> |
| </li> |
| <li>(May 3 '06) <a href="#added-FileObject-getOutputStream-without-FileLock-parameter">Added additional method <code>FileObject.getOutputStream</code> |
| that doesn't take <code>FileLock</code> as a parameter. |
| </a> |
| </li> |
| <li>(Jan 7 '05) <a href="#not-final-method-getFileObject"> |
| <code>FileObject.getFileObject </code> made not final.</a> |
| </li> |
| <li>(May 7 '04) <a href="#FileObject.setImportant"> |
| <code>FileObject.setImportant</code> deprecated</a> |
| </li> |
| <li>(May 7 '04) <a href="#filesystems-deprecations">Deprecation of various Filesystems API methods and classes</a> |
| </li> |
| <li>(May 7 '04) <a href="#FileObject.getPath-III"> |
| <code>FileObject.toString()</code> not to be used for specific purposes</a> |
| </li> |
| <li>(Dec 9 '03) <a href="#issue-37445">Added API for finding file relatively to another file</a> |
| </li> |
| <li>(Jan 10 '03) <a href="#version-3.31"> Method FileObject.isReadOnly was deprecated and replaced with methods canRead, canWrite</a> |
| </li> |
| <li>(Oct 1 '02) <a href="#FileObject.getPath-II">Changed javadoc to warn about improper use of methods</a> |
| </li> |
| <li>(Aug 30 '02) <a href="#getPath"> |
| <code>FileObject.getPath()</code> returns full resource path of file object</a> |
| </li> |
| <li>(Jun 27 '01) <a href="#FileObject.createData-without-ext">Create file object without extension</a> |
| </li> |
| <li>(Jun 25 '01) <a href="#FileObject.delete-without-lock">Simplified file object deletion</a> |
| </li> |
| <li>(Jun 1 '01) <a href="#4.4502327064E10">Test if a file object is virtual</a> |
| </li></ul><h2> |
| <a name="org.openide.explorer.propertysheet.editors.FileOnlyEditor"><code><span style="color:gray">org.openide.explorer.propertysheet.editors.</span>FileOnlyEditor</code></a> |
| </h2><ul><li>(Oct 15 '02) <a href="#issue-19443-1">API separation, phase I</a> |
| </li></ul><h2> |
| <a name="org.openide.filesystems.FileRenameEvent"><code><span style="color:gray">org.openide.filesystems.</span>FileRenameEvent</code></a> |
| </h2><ul><li>(Jan 29 '01) <a href="#1.211769431E9">Create expected file events</a> |
| </li></ul><h2> |
| <a name="org.openide.filesystems.FileStateInvalidException"><code><span style="color:gray">org.openide.filesystems.</span>FileStateInvalidException</code></a> |
| </h2><ul><li>(Aug 17 '01) <a href="#version-1.30">Discover which filesystem a FileStateInvalidException is associated with</a> |
| </li></ul><h2> |
| <a name="org.openide.filesystems.FileSystem"><code><span style="color:gray">org.openide.filesystems.</span>FileSystem</code></a> |
| </h2><ul><li>(May 14 '14) <a href="#getActionsDeprecated">Deprecating FileSystem.getActions</a> |
| </li> |
| <li>(Feb 20 '12) <a href="#FileSystem.createTemporaryFO">File System can create temporary file</a> |
| </li> |
| <li>(Aug 31 '09) <a href="#Repository.defaultFileSystem.status">System filesystem label/icon annotations work without full module system</a> |
| </li> |
| <li>(May 7 '04) <a href="#filesystems-deprecations">Deprecation of various Filesystems API methods and classes</a> |
| </li> |
| <li>(Apr 24 '02) <a href="#FileSystem.refresh">There exists possibility to refresh whole filesystem in one </a> |
| </li> |
| <li>(Mar 11 '02) <a href="#FileSystem.FileChangeListener">FileSystem provides FileChangeListener functionality </a> |
| </li> |
| <li>(Jan 17 '02) <a href="#FileSystem.PROP_DISPLAY_NAME">New property FileSystem.PROP_DISPLAY_NAME was added </a> |
| </li></ul><h2> |
| <a name="org.openide.filesystems.FileUtil"><code><span style="color:gray">org.openide.filesystems.</span>FileUtil</code></a> |
| </h2><ul><li>(May 28 '15) <a href="#ArchiveRootProvider">Pluggable archive files support for FileUtil</a> |
| </li> |
| <li>(Nov 27 '14) <a href="#FileObject.symbolicLinks">Support detection and reading of symbolic links.</a> |
| </li> |
| <li>(Apr 11 '12) <a href="#recursive-listener-with-filter">addRecursiveListener with a filter</a> |
| </li> |
| <li>(Jun 25 '11) <a href="#getConfigObject">FileUtil.getConfigObject</a> |
| </li> |
| <li>(Nov 24 '10) <a href="#attribute.methodvalue">setAttribute("methodvalue:attrname", method) and "newvalue:"</a> |
| </li> |
| <li>(Sep 30 '10) <a href="#FileUtil.normalizePath"> |
| <code>FileUtil.normalizePath</code> added |
| </a> |
| </li> |
| <li>(Feb 17 '10) <a href="#addRecursiveListenerStop">Interruptable addRecursiveListener</a> |
| </li> |
| <li>(Sep 18 '09) <a href="#recursive-listener">Support for recursive listeners</a> |
| </li> |
| <li>(Jan 14 '09) <a href="#FileUtil.addFileChangeListener2">Possibility to add FileChangeListeners on File (even not existing)</a> |
| </li> |
| <li>(Jan 12 '09) <a href="#FileUtil.getConfigFile">Added FileUtil.getConfigFile and getConfigRoot for simpler access to default filesystem</a> |
| </li> |
| <li>(Dec 19 '08) <a href="#FileUtil.setMIMEType">Persisted registration of file extension to MIME type</a> |
| </li> |
| <li>(Sep 3 '08) <a href="#FileUtil.getMIMEType.withinMIMETypes">FileUtil.getMIMEType() can be restricted by listed MIME types</a> |
| </li> |
| <li>(Mar 17 '08) <a href="#FileUtil.urlForArchiveOrDir.archiveOrDirForURL">Added methods to interconvert URLs and traditional path entries</a> |
| </li> |
| <li>(Feb 26 '08) <a href="#FileUtil.addFileChangeListener">Add methods: addFileChangeListener, removeFileChangeListener, refreshAll</a> |
| </li> |
| <li>(Jan 16 '08) <a href="#FileUtil.refreshFor">Add method FileUtil.refreshFor(File... files)</a> |
| </li> |
| <li>(Jan 8 '08) <a href="#FileUtil.runAtomicAction">Simple way to run atomic action without having a fileobject</a> |
| </li> |
| <li>(Jun 16 '07) <a href="#FileUtil.order">Added methods to order files in a folder</a> |
| </li> |
| <li>(Sep 7 '06) <a href="#createData-and-createFolder-take-File-as-parameter">Added additional methods <code>FileUtil.createData</code> |
| and <code>FileUtil.createFolder</code> that take <code>java.io.File</code> as a parameter. |
| </a> |
| </li> |
| <li>(Oct 25 '05) <a href="#semantic-change-in-FileUtil.toFileObject"> |
| The way how <code>IllegalArgumentException</code> is thrown from |
| <code>FileUtil.toFileObject</code> was changed |
| </a> |
| </li> |
| <li>(Jul 21 '05) <a href="#no-static-file-ext-mappings">Removed most static MIME type mappings</a> |
| </li> |
| <li>(Aug 4 '04) <a href="#FileUtil.createMemoryFileSystem">Added new method <code>FileUtil.createMemoryFileSystem ()</code> |
| </a> |
| </li> |
| <li>(Jul 30 '04) <a href="#FileUtil.preventFileChooserSymlinkTraversal">Added <code>FileUtil.preventFileChooserSymlinkTraversal(...)</code> |
| </a> |
| </li> |
| <li>(Jun 9 '04) <a href="#issue-37549">Added FileUtil.getFileDisplayName</a> |
| </li> |
| <li>(May 7 '04) <a href="#FileUtil-archive-handling">Easier to work with ZIP/JAR archives</a> |
| </li> |
| <li>(May 7 '04) <a href="#FileUtil.normalizeFile"> |
| <code>FileUtil.normalizeFile</code> added</a> |
| </li> |
| <li>(Apr 13 '04) <a href="#issue-41506">There should exist just one FileObject for one resource (java.io.File or URL). </a> |
| </li> |
| <li>(Dec 9 '03) <a href="#issue-37445">Added API for finding file relatively to another file</a> |
| </li> |
| <li>(Nov 1 '02) <a href="#issue-19443-2">API separation, phase II</a> |
| </li> |
| <li>(Oct 22 '02) <a href="#version-3.16">Added FileUtil.isParentOf</a> |
| </li> |
| <li>(Jul 31 '01) <a href="#FileUtil.toFile-fromFile">Find a disk file from a file object or vice-versa</a> |
| </li> |
| <li>(Feb 5 '01) <a href="#8.140445082558805E15">Find a MIME type for a file object using resolvers</a> |
| </li> |
| <li>(Sep 11 '00) <a href="#9.329227231022436E15">MIME lookup by extension made friendlier for C/C++</a> |
| </li></ul><h2> |
| <a name="org.openide.actions.FinishDebuggerAction"><code><span style="color:gray">org.openide.actions.</span>FinishDebuggerAction</code></a> |
| </h2><ul><li>(Oct 15 '02) <a href="#issue-19443-1">API separation, phase I</a> |
| </li></ul><h2> |
| <a name="org.openide.actions.GoAction"><code><span style="color:gray">org.openide.actions.</span>GoAction</code></a> |
| </h2><ul><li>(Oct 15 '02) <a href="#issue-19443-1">API separation, phase I</a> |
| </li></ul><h2> |
| <a name="org.openide.actions.GoToCursorAction"><code><span style="color:gray">org.openide.actions.</span>GoToCursorAction</code></a> |
| </h2><ul><li>(Oct 15 '02) <a href="#issue-19443-1">API separation, phase I</a> |
| </li></ul><h2> |
| <a name="org.openide.actions.HelpAction"><code><span style="color:gray">org.openide.actions.</span>HelpAction</code></a> |
| </h2><ul><li>(Oct 15 '02) <a href="#issue-19443-1">API separation, phase I</a> |
| </li></ul><h2> |
| <a name="org.openide.awt.HtmlBrowser"><code><span style="color:gray">org.openide.awt.</span>HtmlBrowser</code></a> |
| </h2><ul><li>(Oct 15 '02) <a href="#issue-19443-1">API separation, phase I</a> |
| </li></ul><h2> |
| <a name="org.openide.explorer.propertysheet.editors.IconEditor"><code><span style="color:gray">org.openide.explorer.propertysheet.editors.</span>IconEditor</code></a> |
| </h2><ul><li>(Oct 15 '02) <a href="#issue-19443-1">API separation, phase I</a> |
| </li></ul><h2> |
| <a name="org.openide.explorer.propertysheet.editors.IdentifierArrayEditor"><code><span style="color:gray">org.openide.explorer.propertysheet.editors.</span>IdentifierArrayEditor</code></a> |
| </h2><ul><li>(Oct 15 '02) <a href="#issue-19443-1">API separation, phase I</a> |
| </li></ul><h2> |
| <a name="org.openide.modules.IllegalModuleException"><code><span style="color:gray">org.openide.modules.</span>IllegalModuleException</code></a> |
| </h2><ul><li>(Oct 15 '02) <a href="#issue-19443-1">API separation, phase I</a> |
| </li></ul><h2> |
| <a name="org.openide.windows.InputOutput"><code><span style="color:gray">org.openide.windows.</span>InputOutput</code></a> |
| </h2><ul><li>(Nov 1 '02) <a href="#issue-19443-2">API separation, phase II</a> |
| </li></ul><h2> |
| <a name="org.openide.windows.IOProvider"><code><span style="color:gray">org.openide.windows.</span>IOProvider</code></a> |
| </h2><ul><li>(Nov 1 '02) <a href="#issue-19443-2">API separation, phase II</a> |
| </li> |
| <li>(Oct 15 '02) <a href="#issue-19443-1">API separation, phase I</a> |
| </li></ul><h2> |
| <a name="org.openide.filesystems.JarFileSystem"><code><span style="color:gray">org.openide.filesystems.</span>JarFileSystem</code></a> |
| </h2><ul><li>(Jan 26 '10) <a href="#JarFileSystem-constructor-file">Effective constructor for JarFileSystem</a> |
| </li> |
| <li>(Mar 27 '00) <a href="#1.22460676003798656E17">Filesystem implementation methods protected not public</a> |
| </li></ul><h2> |
| <a name="org.openide.filesystems.annotations.LayerBuilder"><code><span style="color:gray">org.openide.filesystems.annotations.</span>LayerBuilder</code></a> |
| </h2><ul><li>(Jul 25 '11) <a href="#validateResource_196452"><code>LayerBuilder</code> can validate resources</a> |
| </li> |
| <li>(Jul 25 '11) <a href="#LayerGenerationException_194545"><code>LayerGenerationException</code> has new constructors</a> |
| </li> |
| <li>(Sep 14 '09) <a href="#LayerBuilder.instanceFile">Non-initializing <code>LayerBuilder.instanceFile</code> added</a> |
| </li> |
| <li>(Sep 10 '09) <a href="#LayerBuilder.folder"><code>LayerBuilder.folder</code> added</a> |
| </li> |
| <li>(Nov 1 '08) <a href="#LayerGeneratingProcessor">Support for annotation processors generating XML layer fragments</a> |
| </li></ul><h2> |
| <a name="org.openide.filesystems.annotations.LayerGeneratingProcessor"><code><span style="color:gray">org.openide.filesystems.annotations.</span>LayerGeneratingProcessor</code></a> |
| </h2><ul><li>(Nov 1 '08) <a href="#LayerGeneratingProcessor">Support for annotation processors generating XML layer fragments</a> |
| </li></ul><h2> |
| <a name="org.openide.filesystems.annotations.LayerGenerationException"><code><span style="color:gray">org.openide.filesystems.annotations.</span>LayerGenerationException</code></a> |
| </h2><ul><li>(Jul 25 '11) <a href="#LayerGenerationException_194545"><code>LayerGenerationException</code> has new constructors</a> |
| </li> |
| <li>(Nov 1 '08) <a href="#LayerGeneratingProcessor">Support for annotation processors generating XML layer fragments</a> |
| </li></ul><h2> |
| <a name="org.openide.LifecycleManager"><code><span style="color:gray">org.openide.</span>LifecycleManager</code></a> |
| </h2><ul><li>(Oct 15 '02) <a href="#issue-19443-1">API separation, phase I</a> |
| </li></ul><h2> |
| <a name="org.openide.filesystems.LocalFileSystem"><code><span style="color:gray">org.openide.filesystems.</span>LocalFileSystem</code></a> |
| </h2><ul><li>(Mar 27 '00) <a href="#1.22460676003798656E17">Filesystem implementation methods protected not public</a> |
| </li></ul><h2> |
| <a name="org.openide.modules.ManifestSection"><code><span style="color:gray">org.openide.modules.</span>ManifestSection</code></a> |
| </h2><ul><li>(Oct 15 '02) <a href="#issue-19443-1">API separation, phase I</a> |
| </li></ul><h2> |
| <a name="org.openide.explorer.propertysheet.editors.MethodParameterArrayEditor"><code><span style="color:gray">org.openide.explorer.propertysheet.editors.</span>MethodParameterArrayEditor</code></a> |
| </h2><ul><li>(Oct 15 '02) <a href="#issue-19443-1">API separation, phase I</a> |
| </li></ul><h2> |
| <a name="org.openide.filesystems.MIMEResolver"><code><span style="color:gray">org.openide.filesystems.</span>MIMEResolver</code></a> |
| </h2><ul><li>(Aug 29 '12) <a href="#FileChooserBuilder-addDefaultFileFilters">New method FileChooserBuilder.addDefaultFileFilters and accompanying annotations.</a> |
| </li> |
| <li>(Feb 2 '12) <a href="#MIMEResolver.Registrations">Annotations to declare MIME type</a> |
| </li> |
| <li>(Jan 8 '10) <a href="#MIMEResolverImpl">Access methods added to <code>MIMEResolver.UIHelpers</code></a> |
| </li> |
| <li>(Sep 3 '08) <a href="#FileUtil.getMIMEType.withinMIMETypes">FileUtil.getMIMEType() can be restricted by listed MIME types</a> |
| </li> |
| <li>(Jul 10 '08) <a href="#testable-declarative-resolvers">Declarative MIME resolvers now available in standalone mode</a> |
| </li> |
| <li>(Feb 5 '01) <a href="#MIMEResolver">Added <code>MIMEResolver</code> |
| </a> |
| </li></ul><h2> |
| <a name="org.openide.explorer.propertysheet.editors.ModifierEditor"><code><span style="color:gray">org.openide.explorer.propertysheet.editors.</span>ModifierEditor</code></a> |
| </h2><ul><li>(Oct 15 '02) <a href="#issue-19443-1">API separation, phase I</a> |
| </li></ul><h2> |
| <a name="org.openide.modules.ModuleDescription"><code><span style="color:gray">org.openide.modules.</span>ModuleDescription</code></a> |
| </h2><ul><li>(Oct 15 '02) <a href="#issue-19443-1">API separation, phase I</a> |
| </li></ul><h2> |
| <a name="org.openide.filesystems.MultiFileSystem"><code><span style="color:gray">org.openide.filesystems.</span>MultiFileSystem</code></a> |
| </h2><ul><li>(May 14 '14) <a href="#getActionsDeprecated">Deprecating FileSystem.getActions</a> |
| </li> |
| <li>(Mar 1 '10) <a href="#MultiFileSystem.weight">Ability to specify "weight" for <code>MultiFileSystem</code> overrides</a> |
| </li> |
| <li>(Aug 30 '01) <a href="#MultiFileSystem.createWritableOnForRename">Method createWritableOnForRename in MultiFileSystem was added</a> |
| </li> |
| <li>(Dec 6 '00) <a href="#mfs-find-action"> |
| <code>MultiFileSystem</code> finds actions on a set of files specially</a> |
| </li> |
| <li>(Nov 23 '00) <a href="#2.4475904905823E13">Propagate masks flag for multi-filesystems</a> |
| </li></ul><h2> |
| <a name="org.openide.nodes.NodeOperation"><code><span style="color:gray">org.openide.nodes.</span>NodeOperation</code></a> |
| </h2><ul><li>(Oct 15 '02) <a href="#issue-19443-1">API separation, phase I</a> |
| </li></ul><h2> |
| <a name="org.openide.actions.OpenProjectAction"><code><span style="color:gray">org.openide.actions.</span>OpenProjectAction</code></a> |
| </h2><ul><li>(Oct 15 '02) <a href="#issue-19443-1">API separation, phase I</a> |
| </li></ul><h2> |
| <a name="org.openide.windows.OutputEvent"><code><span style="color:gray">org.openide.windows.</span>OutputEvent</code></a> |
| </h2><ul><li>(Nov 1 '02) <a href="#issue-19443-2">API separation, phase II</a> |
| </li></ul><h2> |
| <a name="org.openide.windows.OutputListener"><code><span style="color:gray">org.openide.windows.</span>OutputListener</code></a> |
| </h2><ul><li>(Nov 1 '02) <a href="#issue-19443-2">API separation, phase II</a> |
| </li></ul><h2> |
| <a name="org.openide.windows.OutputWriter"><code><span style="color:gray">org.openide.windows.</span>OutputWriter</code></a> |
| </h2><ul><li>(Nov 1 '02) <a href="#issue-19443-2">API separation, phase II</a> |
| </li></ul><h2> |
| <a name="org.openide.Places"><code><span style="color:gray">org.openide.</span>Places</code></a> |
| </h2><ul><li>(Oct 15 '02) <a href="#issue-19443-1">API separation, phase I</a> |
| </li></ul><h2> |
| <a name="org.openide.cookies.ProjectCookie"><code><span style="color:gray">org.openide.cookies.</span>ProjectCookie</code></a> |
| </h2><ul><li>(Oct 15 '02) <a href="#issue-19443-1">API separation, phase I</a> |
| </li></ul><h2> |
| <a name="org.openide.util.actions.ProjectSensitiveAction"><code><span style="color:gray">org.openide.util.actions.</span>ProjectSensitiveAction</code></a> |
| </h2><ul><li>(Oct 15 '02) <a href="#issue-19443-1">API separation, phase I</a> |
| </li></ul><h2> |
| <a name="org.openide.filesystems.Repository"><code><span style="color:gray">org.openide.filesystems.</span>Repository</code></a> |
| </h2><ul><li>(Feb 25 '15) <a href="#repository.multiuser">Support for multi-user environments</a> |
| </li> |
| <li>(Feb 3 '12) <a href="#LayersProvider">SPI for Additions to System File System</a> |
| </li> |
| <li>(Aug 12 '09) <a href="#add-fallback-content-to-sfs">Allow modules to provide fallback layer content</a> |
| </li> |
| <li>(Mar 12 '07) <a href="#add-content-to-sfs">Allow modules to dynamically add/remove layer content</a> |
| </li> |
| <li>(Jun 1 '04) <a href="#Repository-deprecations">Almost all methods of Repository were deprecated.</a> |
| </li> |
| <li>(Jul 22 '02) <a href="#repository-not-final">Repository is not final</a> |
| </li> |
| <li>(Mar 11 '02) <a href="#Repository.FileChangeListener">Repository provides FileChangeListener functionality </a> |
| </li> |
| <li>(Feb 7 '01) <a href="#34382">Get default <code>Repository</code> from within Filesystems API</a> |
| </li> |
| <li>(Jan 8 '01) <a href="#not-a-cookie"> |
| <code>Repository</code> is not a cookie</a> |
| </li></ul><h2> |
| <a name="org.openide.filesystems.RepositoryAdapter"><code><span style="color:gray">org.openide.filesystems.</span>RepositoryAdapter</code></a> |
| </h2><ul><li>(Jun 25 '00) <a href="#repository-adapter-added"> |
| <code>RepositoryAdapter</code> added</a> |
| </li></ul><h2> |
| <a name="org.openide.loaders.RepositoryNodeFactory"><code><span style="color:gray">org.openide.loaders.</span>RepositoryNodeFactory</code></a> |
| </h2><ul><li>(Oct 15 '02) <a href="#issue-19443-1">API separation, phase I</a> |
| </li></ul><h2> |
| <a name="org.openide.actions.SaveProjectAction"><code><span style="color:gray">org.openide.actions.</span>SaveProjectAction</code></a> |
| </h2><ul><li>(Oct 15 '02) <a href="#issue-19443-1">API separation, phase I</a> |
| </li></ul><h2> |
| <a name="org.openide.cookies.SourceCookie"><code><span style="color:gray">org.openide.cookies.</span>SourceCookie</code></a> |
| </h2><ul><li>(Oct 15 '02) <a href="#issue-19443-1">API separation, phase I</a> |
| </li></ul><h2> |
| <a name="org.openide.actions.StartDebuggerAction"><code><span style="color:gray">org.openide.actions.</span>StartDebuggerAction</code></a> |
| </h2><ul><li>(Oct 15 '02) <a href="#issue-19443-1">API separation, phase I</a> |
| </li></ul><h2> |
| <a name="org.openide.filesystems.StatusDecorator"><code><span style="color:gray">org.openide.filesystems.</span>StatusDecorator</code></a> |
| </h2><ul><li>(Oct 3 '14) <a href="#FileSystemStatus.icons2">FileSystem.Status API removed</a> |
| </li></ul><h2> |
| <a name="org.openide.awt.StatusDisplayer"><code><span style="color:gray">org.openide.awt.</span>StatusDisplayer</code></a> |
| </h2><ul><li>(Oct 15 '02) <a href="#issue-19443-1">API separation, phase I</a> |
| </li></ul><h2> |
| <a name="org.openide.actions.StepOutAction"><code><span style="color:gray">org.openide.actions.</span>StepOutAction</code></a> |
| </h2><ul><li>(Oct 15 '02) <a href="#issue-19443-1">API separation, phase I</a> |
| </li></ul><h2> |
| <a name="org.openide.explorer.propertysheet.editors.StringArrayCustomEditor"><code><span style="color:gray">org.openide.explorer.propertysheet.editors.</span>StringArrayCustomEditor</code></a> |
| </h2><ul><li>(Oct 15 '02) <a href="#issue-19443-1">API separation, phase I</a> |
| </li></ul><h2> |
| <a name="org.openide.explorer.propertysheet.editors.StringArrayCustomizable"><code><span style="color:gray">org.openide.explorer.propertysheet.editors.</span>StringArrayCustomizable</code></a> |
| </h2><ul><li>(Oct 15 '02) <a href="#issue-19443-1">API separation, phase I</a> |
| </li></ul><h2> |
| <a name="org.openide.explorer.propertysheet.editors.StringArrayEditor"><code><span style="color:gray">org.openide.explorer.propertysheet.editors.</span>StringArrayEditor</code></a> |
| </h2><ul><li>(Oct 15 '02) <a href="#issue-19443-1">API separation, phase I</a> |
| </li></ul><h2> |
| <a name="org.openide.actions.ToggleBreakpointAction"><code><span style="color:gray">org.openide.actions.</span>ToggleBreakpointAction</code></a> |
| </h2><ul><li>(Oct 15 '02) <a href="#issue-19443-1">API separation, phase I</a> |
| </li></ul><h2> |
| <a name="org.openide.TopManager"><code><span style="color:gray">org.openide.</span>TopManager</code></a> |
| </h2><ul><li>(Oct 15 '02) <a href="#issue-19443-1">API separation, phase I</a> |
| </li></ul><h2> |
| <a name="org.openide.actions.TraceIntoAction"><code><span style="color:gray">org.openide.actions.</span>TraceIntoAction</code></a> |
| </h2><ul><li>(Oct 15 '02) <a href="#issue-19443-1">API separation, phase I</a> |
| </li></ul><h2> |
| <a name="org.openide.actions.TraceOverAction"><code><span style="color:gray">org.openide.actions.</span>TraceOverAction</code></a> |
| </h2><ul><li>(Oct 15 '02) <a href="#issue-19443-1">API separation, phase I</a> |
| </li></ul><h2> |
| <a name="org.openide.explorer.propertysheet.editors.TypeEditor"><code><span style="color:gray">org.openide.explorer.propertysheet.editors.</span>TypeEditor</code></a> |
| </h2><ul><li>(Oct 15 '02) <a href="#issue-19443-1">API separation, phase I</a> |
| </li></ul><h2> |
| <a name="org.openide.filesystems.URLMapper"><code><span style="color:gray">org.openide.filesystems.</span>URLMapper</code></a> |
| </h2><ul><li>(Apr 13 '04) <a href="#issue-41506">There should exist just one FileObject for one resource (java.io.File or URL). </a> |
| </li> |
| <li>(Jan 8 '03) <a href="#issue-28312">URLMapper.findFileObjects returns empty array if not successful.</a> |
| </li> |
| <li>(Jun 6 '02) <a href="#version-2.22">URL -> FileObject mapping implementation</a> |
| </li> |
| <li>(Apr 25 '02) <a href="#URLMapper">Added support for better FileObject-URL mapping</a> |
| </li></ul><h2> |
| <a name="org.openide.filesystems.XMLFileSystem"><code><span style="color:gray">org.openide.filesystems.</span>XMLFileSystem</code></a> |
| </h2><ul><li>(Oct 25 '10) <a href="#private-constructor">XMLFileSystem's newvalue can create private instances</a> |
| </li> |
| <li>(Aug 25 '08) <a href="#getAttribute.class">XMLFileSystem attributes can be queried for instance class</a> |
| </li> |
| <li>(Jul 8 '08) <a href="#layer.bundlevalue">XMLFileSystem supports 'bundlevalue' attribute</a> |
| </li> |
| <li>(May 29 '06) <a href="#method-value-with-map">Semantics of XMLFileSystem's methodvalue extended to |
| also support methods that do not depend on FileSystems API |
| at all |
| </a> |
| </li> |
| <li>(Nov 1 '00) <a href="#370">Added <code>XMLFileSystem</code> |
| </a> |
| </li></ul><hr> |
| <h1> |
| <a name="details-by-api">Details of all changes by API and date</a> |
| </h1> |
| <hr style="width:50%"> |
| <h2> |
| <a name="filesystems">Filesystems API</a> |
| </h2> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="ArchiveRootProvider">Pluggable archive files support for FileUtil</a> |
| </h3> |
| <em>May 28 '15; API spec. version: 9.10; affected top-level classes: <a href="./org/openide/filesystems/FileUtil.html"><code>FileUtil</code></a> <a href="./org/openide/filesystems/spi/ArchiveRootProvider.html"><code>ArchiveRootProvider</code></a>; made by: tzezula</em> |
| <br> |
| To support JDK 9 image file as an archive the FileUtil's method |
| <code>getArchiveFile</code>,<code>getArchiveRoot</code> and <code>isArchiveFile</code> |
| are pluggable using a new SPI <code>ArchiveFileProvider</code>. |
| In addition to these methods a new method <code>isArchiveArtifact</code> was added. |
| This method can be used if given <code>URL</code> points into an archive. |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3> |
| <a name="repository.multiuser">Support for multi-user environments</a> |
| </h3> |
| <em>Feb 25 '15; API spec. version: 9.5; affected top-level classes: <a href="./org/openide/filesystems/Repository.html"><code>Repository</code></a>; made by: sdedic</em> |
| <br> |
| To support multiple configurations (users, profiles, ...) executing in the same VM, multiple |
| Repositories can be created, one for each execution context. API has been added to acquire |
| and SPI to create a local Repository which holds config filesystem for the execution thraed. |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3> |
| <a name="FileObject.symbolicLinks">Support detection and reading of symbolic links.</a> |
| </h3> |
| <em>Nov 27 '14; API spec. version: 9.4; affected top-level classes: <a href="./org/openide/filesystems/FileObject.html"><code>FileObject</code></a> <a href="./org/openide/filesystems/FileUtil.html"><code>FileUtil</code></a> <a href="./org/openide/filesystems/AbstractFileSystem.html"><code>AbstractFileSystem</code></a>; made by: jhavlin; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=237882"> |
| #237882</a></em> |
| <br> |
| |
| <p> |
| Add methods to <code>FileObject</code> for handling of |
| symbolic links: |
| </p> |
| |
| <ul> |
| |
| <li> |
| <code>isSymbolicLink()</code> |
| </li> |
| |
| <li> |
| <code>readSymbolicLink()</code> |
| </li> |
| |
| <li> |
| <code>readSymbolicLinkPath()</code> |
| </li> |
| |
| <li> |
| <code>getCanonicalFileObject()</code> |
| </li> |
| |
| </ul> |
| |
| <p> |
| Add utility method to <code>FileUtil</code> for dealing with |
| recursive symbolic links. |
| </p> |
| |
| <ul> |
| |
| <li> |
| <code>isRecursiveSymbolicLink()</code> |
| </li> |
| |
| </ul> |
| |
| <p> |
| Introduce new interface <a href="org/openide/filesystems/AbstractFileSystem.SymlinkInfo.html" shape="rect">AbstractFileSystem.SymlinkInfo</a>. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="FileLock.closeable">FileLock implements AutoCloseable</a> |
| </h3> |
| <em>Nov 10 '14; API spec. version: 9.3; affected top-level classes: <a href="./org/openide/filesystems/FileLock.html"><code>FileLock</code></a>; made by: sdedic; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=247915"> |
| #247915</a></em> |
| <br> |
| |
| <p> |
| |
| <a href="org/openide/filesystems/FileLock.html" shape="rect">FileLock</a> |
| implements AutoCloseable to work well in try-with-resources constructs. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="FileSystemStatus.icons2">FileSystem.Status API removed</a> |
| </h3> |
| <em>Oct 3 '14; API spec. version: 9.1; affected top-level classes: <a href="./org/openide/filesystems/StatusDecorator.html"><code>StatusDecorator</code></a>; made by: sdedic; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=247200"> |
| #247200</a></em> |
| <br> |
| |
| <p> |
| The FileSystem.Status was entirely removed, as it references class java.awt.Image, which |
| is not available in compact jdk profiles and may trigger GUI system initialization. See |
| javadocs of <a href="org/openide/filesystems/StatusDecorator.html" shape="rect">StatusDecorator</a> |
| for details. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="getActionsDeprecated">Deprecating FileSystem.getActions</a> |
| </h3> |
| <em>May 14 '14; API spec. version: 8.12; affected top-level classes: <a href="./org/openide/filesystems/FileSystem.html"><code>FileSystem</code></a> <a href="./org/openide/filesystems/AbstractFileSystem.html"><code>AbstractFileSystem</code></a> <a href="./org/openide/filesystems/MultiFileSystem.html"><code>MultiFileSystem</code></a>; made by: jtulach; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=243265"> |
| #243265</a></em> |
| <br> |
| |
| <p> |
| Deprecating <code>getActions</code> method in preparation |
| of splitting filesystems API into UI (e.g. depending |
| on Swing) and non-UI part (that can run on JDK8 compact |
| profile). Introducing general replacement |
| <a href="org/openide/filesystems/FileSystem.html#findExtrasFor-java.util.Set-" shape="rect">findExtrasFor</a> |
| instead... |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="FileSystemStatus.icons">FileSystem.Status icon annotation moved</a> |
| </h3> |
| <em>Apr 11 '14; API spec. version: 9.0; made by: sdedic; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=243561"> |
| #243561</a></em> |
| <br> |
| |
| <p> |
| The default implementation of FileSystem.Status annotated file's icon using ImageUtilities |
| which uses AWT graphics etc. Such dependency is not desirable in a standalone FileSystem API |
| library. |
| </p> |
| |
| <p> |
| The builtin implementation now does not work with the icon at all and returns null. A proper |
| implementation for FileSystem.Status is looked up in default Lookup and is implemented |
| properly (with Icon annotations) in <code>openide.filesystems.nb</code> module. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="MultiFileObject.revealEntriesAttribute">Allowed to reveal deleted files, or original files overriden by writable layer</a> |
| </h3> |
| <em>Nov 23 '12; API spec. version: 8.5; made by: sdedic</em> |
| <br> |
| |
| <p> |
| Files which have been deleted can be obtained by <code>folder.getAttribute("revealEntries")</code>. |
| See <a href="org/openide/filesystems/MultiFileSystem.html" shape="rect">MultiFileSystem |
| </a> javadoc for details |
| </p> |
| |
| <p> |
| |
| <b>Warning:</b> stability of this feature is <b>development</b> |
| |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="FileChooserBuilder-setAcceptAllFileFilterUsed">New method FileChooserBuilder.setAcceptAllFileFilterUsed.</a> |
| </h3> |
| <em>Oct 30 '12; API spec. version: 8.3; affected top-level classes: <code>org.openide.filesystems.FileChooserBuilder</code>; made by: tmysik; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=220401"> |
| #220401</a></em> |
| <br> |
| |
| <p> |
| Added <a href="../org-openide-filesystems-nb/org/openide/filesystems/FileChooserBuilder.html#setAcceptAllFileFilterUsed-boolean-" shape="rect"> |
| new method</a> to <code>FileChooserBuilder</code> that determines whether the <code>AcceptAll FileFilter</code> |
| should be used in the created file chooser. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="FileChooserBuilder-addDefaultFileFilters">New method FileChooserBuilder.addDefaultFileFilters and accompanying annotations.</a> |
| </h3> |
| <em>Aug 29 '12; API spec. version: 8.1; affected top-level classes: <code>org.openide.filesystems.FileChooserBuilder</code> <a href="./org/openide/filesystems/MIMEResolver.html"><code>MIMEResolver</code></a>; made by: jhavlin; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=209998"> |
| #209998</a></em> |
| <br> |
| |
| <p> |
| Added <a href="../org-openide-filesystems-nb/org/openide/filesystems/FileChooserBuilder.html#addDefaultFileFilters--" shape="rect"> |
| new method</a> to <code>FileChooserBuilder</code> that adds all default |
| <code>FileFilter</code>s to created file chooser. |
| </p> |
| |
| <p> |
| Default filters are registered using new parameters in annotations |
| <a href="org/openide/filesystems/MIMEResolver.Registration.html#showInFileChooser--" shape="rect">MimeResolver.Registration</a> |
| and <a href="org/openide/filesystems/MIMEResolver.ExtensionRegistration.html#showInFileChooser--" shape="rect">MimeResolver.ExtensionRegistration</a>. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="fileobject-lookup">FileObject has getLookup()</a> |
| </h3> |
| <em>Aug 22 '12; API spec. version: 8.0; affected top-level classes: <a href="./org/openide/filesystems/FileObject.html"><code>FileObject</code></a>; made by: jtulach; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=209231"> |
| #209231</a></em> |
| <br> |
| |
| <p> |
| |
| <code>FileObject</code> now implements <code>Lookup.Provider</code> |
| and thus has new |
| <a href="org/openide/filesystems/FileObject.html#getLookup--" shape="rect"> |
| getLookup</a>() method. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="recursive-listener-with-filter">addRecursiveListener with a filter</a> |
| </h3> |
| <em>Apr 11 '12; API spec. version: 7.61; affected top-level classes: <a href="./org/openide/filesystems/FileUtil.html"><code>FileUtil</code></a>; made by: jtulach; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=207189"> |
| #207189</a></em> |
| <br> |
| |
| <p> |
| Added <a href="org/openide/filesystems/FileUtil.html#addRecursiveListener-org.openide.filesystems.FileChangeListener-java.io.File-java.io.FileFilter-java.util.concurrent.Callable-" shape="rect"> |
| new method</a> variant to register recursive listener |
| and control whether to recurse into a subtree or not via |
| <code>FileFilter</code>. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="FileSystem.createTemporaryFO">File System can create temporary file</a> |
| </h3> |
| <em>Feb 20 '12; API spec. version: 7.60; affected top-level classes: <a href="./org/openide/filesystems/FileSystem.html"><code>FileSystem</code></a>; made by: alexvsimon; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=207659"> |
| #207659</a></em> |
| <br> |
| |
| <p> |
| Added methods to create temporary file objects: |
| <code>FileSystem.getTempFolder</code>, <code>FileSystem.createTempFile</code>. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="LayersProvider">SPI for Additions to System File System</a> |
| </h3> |
| <em>Feb 3 '12; API spec. version: 7.59; affected top-level classes: <a href="./org/openide/filesystems/Repository.html"><code>Repository</code></a>; made by: jtulach; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=198508"> |
| #198508</a></em> |
| <br> |
| |
| <p> |
| Those who wish to influence content of |
| <a href="org/openide/filesystems/FileUtil.html#getConfigRoot--" shape="rect"> |
| configuration file system</a> have an easier |
| <a href="org/openide/filesystems/Repository.LayerProvider.html" shape="rect"> |
| way</a> now. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="MIMEResolver.Registrations">Annotations to declare MIME type</a> |
| </h3> |
| <em>Feb 2 '12; API spec. version: 7.58; affected top-level classes: <a href="./org/openide/filesystems/MIMEResolver.html"><code>MIMEResolver</code></a>; made by: jtulach; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=191777"> |
| #191777</a></em> |
| <br> |
| |
| <p> |
| There are new annotations to register mime type. One |
| can either use simpler ones based on |
| <a href="org/openide/filesystems/MIMEResolver.ExtensionRegistration.html" shape="rect"> |
| extension</a> or |
| <a href="org/openide/filesystems/MIMEResolver.NamespaceRegistration.html" shape="rect"> |
| XML namespace</a>. In case these registration are not |
| powerful enough one can use the original and flexible |
| <a href="org/openide/filesystems/MIMEResolver.Registration.html" shape="rect"> |
| XML file based registration</a> which is however processed |
| during compile time to avoid needless XML parsing on each |
| start. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="FileObject.toURI">Introduced <code>FileObject.toURI</code></a> |
| </h3> |
| <em>Jan 20 '12; API spec. version: 7.57; affected top-level classes: <a href="./org/openide/filesystems/FileObject.html"><code>FileObject</code></a>; made by: jglick; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=207294"> |
| #207294</a></em> |
| <br> |
| |
| <p> |
| Added <code>FileObject.toURI</code> for convenience. |
| </p> |
| |
| <p> |
| Also deprecated <code>FileObject.getURL</code> in favor of <code>toURL</code> |
| which is the same but does not throw <code>FileStateInvalidException</code>, |
| and clarified that <code>URLMapper.findURL(fo, INTERNAL)</code> |
| will never return null. |
| </p> |
| |
| <br> |
| <strong>Compatibility: </strong> |
| |
| <p> |
| |
| <code>FileObject.getURL</code> should be replaced with <code>toURL</code> (or <code>toURI</code>), |
| which also throw no checked exceptions. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="default-line-separator">Provides default line separator</a> |
| </h3> |
| <em>Jan 13 '12; API spec. version: 7.56; affected top-level classes: <a href="./org/openide/filesystems/FileObject.html"><code>FileObject</code></a>; made by: alexvsimon; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=199534"> |
| #199534</a></em> |
| <br> |
| |
| <p> |
| FileObject.DEFAULT_LINE_SEPARATOR_ATTR defines file object attribute name to get default line separator. |
| File object can provide default line separator if it differs from |
| <code>System.getProperty("line.separator")</code>. Call |
| <code>fo.getAttribute(FileObject.DEFAULT_LINE_SEPARATOR_ATTR)</code> returns string with |
| default line separator. Default line separator will be used by the text |
| editor if saving new content to an initially empty file. Any other code |
| which creates file content programmatically must manually read this |
| property if it cares. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="FileObject.revert">Introduced <code>FileObject.revert</code></a> |
| </h3> |
| <em>Nov 29 '11; API spec. version: 7.55; affected top-level classes: <a href="./org/openide/filesystems/FileObject.html"><code>FileObject</code></a>; made by: jglick; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=162526"> |
| #162526</a></em> |
| <br> |
| |
| <p> |
| Added <code>revert</code> and <code>canRevert</code> to <code>FileObject</code>. |
| </p> |
| |
| <br> |
| <strong>Compatibility: </strong> |
| |
| <p> |
| The previous SPI has been kept. Only a more convenient API has been introduced, |
| so it is no longer necessary for callers to look for a <code>removeWritables</code> attribute. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="FileEvent.4.constructor">Detailed FileEvent constructor</a> |
| </h3> |
| <em>Nov 22 '11; API spec. version: 7.54; affected top-level classes: <a href="./org/openide/filesystems/FileEvent.html"><code>FileEvent</code></a>; made by: jtulach; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=203477"> |
| #203477</a></em> |
| <br> |
| |
| <p>New <code>FileEvent</code> constructor allowing specification |
| of expected state as well as time. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="FileObject.getMIMEType...">FileObject.getMIMEType(String... withinMIMETypes)</a> |
| </h3> |
| <em>Aug 5 '11; API spec. version: 7.52; affected top-level classes: <a href="./org/openide/filesystems/FileObject.html"><code>FileObject</code></a>; made by: jtulach; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=199642"> |
| #199642</a></em> |
| <br> |
| |
| <p> |
| Introducing <a href="org/openide/filesystems/FileObject.html#getMIMEType-java.lang.String...-" shape="rect"> |
| FileObject.getMIMEType(String...) |
| </a> that can be overriden by different implementations |
| of file system API. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="validateResource_196452"><code>LayerBuilder</code> can validate resources</a> |
| </h3> |
| <em>Jul 25 '11; API spec. version: 7.51; affected top-level classes: <a href="./org/openide/filesystems/annotations/LayerBuilder.html"><code>LayerBuilder</code></a>; made by: jglick; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=196452"> |
| #196452</a></em> |
| <br> |
| |
| <p> |
| |
| <code>LayerBuilder</code> has a new <code>validateResource</code> method. |
| <code>absolutizeResource</code> was also added. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="LayerGenerationException_194545"><code>LayerGenerationException</code> has new constructors</a> |
| </h3> |
| <em>Jul 25 '11; API spec. version: 7.50; affected top-level classes: <a href="./org/openide/filesystems/annotations/LayerGenerationException.html"><code>LayerGenerationException</code></a> <a href="./org/openide/filesystems/annotations/LayerBuilder.html"><code>LayerBuilder</code></a>; made by: jglick; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=194545"> |
| #194545</a></em> |
| <br> |
| |
| <p> |
| |
| <code>LayerGenerationException</code> has new constructors making it easier to specify |
| the particular annotation responsible for a problem. |
| Some methods in <code>LayerBuilder</code> have new overloads to take advantage of it. |
| </p> |
| |
| <br> |
| <strong>Compatibility: </strong> |
| |
| <p> |
| Code using the constructors not specifying an annotation should now do so. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="getConfigObject">FileUtil.getConfigObject</a> |
| </h3> |
| <em>Jun 25 '11; API spec. version: 7.49; affected top-level classes: <a href="./org/openide/filesystems/FileUtil.html"><code>FileUtil</code></a>; made by: jtulach; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=169338"> |
| #169338</a></em> |
| <br> |
| |
| <p> |
| One can convert files in SystemFileSystem to Object with |
| a |
| <a href="org/openide/filesystems/FileUtil.html#getConfigObject-java.lang.String-java.lang.Class-" shape="rect"> |
| single utility method</a>. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="to.parent">FileObject.getFileObject accepts ".."</a> |
| </h3> |
| <em>Jan 27 '11; API spec. version: 7.45; affected top-level classes: <a href="./org/openide/filesystems/FileObject.html"><code>FileObject</code></a>; made by: jtulach; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=194418"> |
| #194418</a></em> |
| <br> |
| |
| <p> |
| Semantic of |
| <a href="org/openide/filesystems/FileObject.html#getFileObject-java.lang.String-" shape="rect"> |
| getFileObject |
| </a> method has been clarified to accept "..". |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="attribute.methodvalue">setAttribute("methodvalue:attrname", method) and "newvalue:"</a> |
| </h3> |
| <em>Nov 24 '10; API spec. version: 7.43; affected top-level classes: <a href="./org/openide/filesystems/FileUtil.html"><code>FileUtil</code></a> <a href="./org/openide/filesystems/FileObject.html"><code>FileObject</code></a>; made by: jtulach; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=120724"> |
| #120724</a></em> |
| <br> |
| |
| <p> |
| You can use prefix <code>"methodvalue:"</code> to |
| <a href="org/openide/filesystems/FileObject.html#setAttribute-java.lang.String-java.lang.Object-" shape="rect"> |
| setAttribute |
| </a> |
| with type of <a href="http://download.oracle.com/javase/8/docs/api/java/lang/reflect/Method.html" shape="rect">Method</a>. |
| When the attribute is queried (without the prefix), the |
| method is called as is common in |
| <a href="org/openide/filesystems/XMLFileSystem.html" shape="rect">XMLFileSystem</a> |
| attributes. You can also use <code>newvalue:</code> prefix |
| for attribute of type |
| <a href="http://download.oracle.com/javase/8/docs/api/java/lang/Class.html" shape="rect">Class</a>. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="private-constructor">XMLFileSystem's newvalue can create private instances</a> |
| </h3> |
| <em>Oct 25 '10; API spec. version: 7.43; affected top-level classes: <a href="./org/openide/filesystems/XMLFileSystem.html"><code>XMLFileSystem</code></a>; made by: jtulach; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=141698"> |
| #141698</a></em> |
| <br> |
| |
| <p> |
| If the class referenced from <code>newvalue</code> |
| <a href="org/openide/filesystems/XMLFileSystem.html" shape="rect">XMLFileSystem</a> |
| attribute is not public, it is made accessible for reflection. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="FileUtil.normalizePath"> |
| <code>FileUtil.normalizePath</code> added |
| </a> |
| </h3> |
| <em>Sep 30 '10; API spec. version: 7.42; affected top-level classes: <a href="./org/openide/filesystems/FileUtil.html"><code>FileUtil</code></a>; made by: vv159170; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=190480"> |
| #190480</a></em> |
| <br> |
| |
| <p> |
| The method |
| <code>FileUtil.normalizePath(String)</code> was added as a refinement of |
| <code>FileUtil.normalizeFile</code> that does not require String to File to String conversion |
| on client side when intention is to convert unnormalized path to normalized path presentation. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="createAndOpen">FileObject.createAndOpen</a> |
| </h3> |
| <em>Sep 10 '10; API spec. version: 7.41; affected top-level classes: <a href="./org/openide/filesystems/FileObject.html"><code>FileObject</code></a>; made by: jtulach; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=40739"> |
| #40739</a></em> |
| <br> |
| |
| <p> |
| Create a file and write its content (almost) atomically using the new |
| <a href="org/openide/filesystems/FileObject.html#createAndOpen-java.lang.String-" shape="rect">FileObject.createAndOpen</a> |
| method. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="MultiFileSystem.weight">Ability to specify "weight" for <code>MultiFileSystem</code> overrides</a> |
| </h3> |
| <em>Mar 1 '10; API spec. version: 7.36; affected top-level classes: <a href="./org/openide/filesystems/MultiFileSystem.html"><code>MultiFileSystem</code></a>; made by: jglick; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=141925"> |
| #141925</a></em> |
| <br> |
| |
| <p> |
| |
| <code>MultiFileSystem</code>s will now interpret a special |
| file attribute <code>weight</code> to determine how to |
| resolve otherwise ambiguous overrides. For example, in the |
| system filesystem, module XML layers can use this attribute. |
| Suppose a generic infrastructure module declares: |
| </p> |
| |
| <pre xml:space="preserve"> |
| <filesystem> |
| <folder name="my-snippets"> |
| <file name="common.xml" url="generic-snippet.xml"/> |
| </folder> |
| </filesystem> |
| </pre> |
| |
| <p> |
| If another module wishes to override this declaration, it |
| can do so by specifying: |
| </p> |
| |
| <pre xml:space="preserve"> |
| <filesystem> |
| <folder name="my-snippets"> |
| <file name="common.xml" url="special-snippet.xml"> |
| <attr name="weight" intvalue="100"/> |
| </file> |
| </folder> |
| </filesystem> |
| </pre> |
| |
| <p> |
| This override will work even if the module system happens |
| to load the specializing module <em>before</em> the infrastructure |
| module (as could happen if there is no module dependency |
| between them). The weight attribute also makes it clear that |
| something is being overridden. |
| </p> |
| |
| <br> |
| <strong>Compatibility: </strong> |
| |
| <p> |
| Modules need no longer declare runtime-only dependencies |
| on other modules merely to override their layer entries. |
| Instead, they should specify a higher weight. |
| (Normally the base module will declare no weight, so any |
| positive number will do.) |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="addRecursiveListenerStop">Interruptable addRecursiveListener</a> |
| </h3> |
| <em>Feb 17 '10; API spec. version: 7.37; affected top-level classes: <a href="./org/openide/filesystems/FileUtil.html"><code>FileUtil</code></a>; made by: jtulach; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=180523"> |
| #180523</a></em> |
| <br> |
| |
| <p> |
| New variant of <code>addRecursiveListener</code> method |
| that allows the caller to control the process enumerating |
| files in subtree and stop it. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="JarFileSystem-constructor-file">Effective constructor for JarFileSystem</a> |
| </h3> |
| <em>Jan 26 '10; API spec. version: 7.35; affected top-level classes: <a href="./org/openide/filesystems/JarFileSystem.html"><code>JarFileSystem</code></a>; made by: jtulach; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=177461"> |
| #177461</a></em> |
| <br> |
| |
| <p> |
| New constructor for <code>JarFileSystem</code> |
| that initializes everything without opening the underlaying |
| JAR file. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="MIMEResolverImpl">Access methods added to <code>MIMEResolver.UIHelpers</code></a> |
| </h3> |
| <em>Jan 8 '10; API spec. version: 7.34; affected top-level classes: <a href="./org/openide/filesystems/MIMEResolver.html"><code>MIMEResolver</code></a>; made by: jglick; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=179289"> |
| #179289</a></em> |
| <br> |
| |
| <p> |
| Several internal methods were added to nested class |
| of <code>MIMEResolver</code> - <code>UIHelpers</code> |
| for use from other parts of the NetBeans Platform. Use from |
| other modules is not supported. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="recursive-listener">Support for recursive listeners</a> |
| </h3> |
| <em>Sep 18 '09; API spec. version: 7.28; affected top-level classes: <a href="./org/openide/filesystems/FileObject.html"><code>FileObject</code></a> <a href="./org/openide/filesystems/FileUtil.html"><code>FileUtil</code></a>; made by: jtulach; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=170862"> |
| #170862</a></em> |
| <br> |
| |
| <p> |
| One can register a recursive listener on a file object by |
| calling |
| <a href="org/openide/filesystems/FileObject.html#addRecursiveListener-org.openide.filesystems.FileChangeListener-" shape="rect">FileObject.addRecursiveListener(FileChangeListener)</a>. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="LayerBuilder.instanceFile">Non-initializing <code>LayerBuilder.instanceFile</code> added</a> |
| </h3> |
| <em>Sep 14 '09; API spec. version: 7.27; affected top-level classes: <a href="./org/openide/filesystems/annotations/LayerBuilder.html"><code>LayerBuilder</code></a>; made by: jglick; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=171284"> |
| #171284</a></em> |
| <br> |
| |
| <p> |
| New overload of <code>instanceFile</code> makes it easier to create |
| instances for use with lazy factories. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="LayerBuilder.folder"><code>LayerBuilder.folder</code> added</a> |
| </h3> |
| <em>Sep 10 '09; API spec. version: 7.26; affected top-level classes: <a href="./org/openide/filesystems/annotations/LayerBuilder.html"><code>LayerBuilder</code></a>; made by: jglick; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=171029"> |
| #171029</a></em> |
| <br> |
| |
| <p> |
| Now possible to create empty folders from layer-generating processors. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="Repository.defaultFileSystem.status">System filesystem label/icon annotations work without full module system</a> |
| </h3> |
| <em>Aug 31 '09; API spec. version: 7.25; affected top-level classes: <a href="./org/openide/filesystems/FileSystem.html"><code>FileSystem</code></a>; made by: jglick; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=171092"> |
| #171092</a></em> |
| <br> |
| |
| <p> |
| For convenience from unit tests, the system filesystem will now always |
| process annotations such as <code>displayName</code> in its <code>FileSystem.Status</code>. |
| </p> |
| |
| <br> |
| <strong>Compatibility: </strong> |
| |
| <p> |
| An application or unit test installing a custom system filesystem |
| and <em>not</em> overriding <code>getStatus</code> but <em>expecting</em> |
| the default implementation to do nothing could be broken. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="runWhenDeliveryOver">Support for processing batch events</a> |
| </h3> |
| <em>Aug 25 '09; API spec. version: 7.24; affected top-level classes: <a href="./org/openide/filesystems/FileEvent.html"><code>FileEvent</code></a>; made by: jtulach; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=170544"> |
| #170544</a></em> |
| <br> |
| |
| <p> |
| |
| <a href="org/openide/filesystems/FileEvent.html#runWhenDeliveryOver-java.lang.Runnable-" shape="rect"> |
| FileEvent.runWhenDeliveryOver(Runnable)</a> method added to support |
| easier processing of <em>batch</em> sets of events. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="add-fallback-content-to-sfs">Allow modules to provide fallback layer content</a> |
| </h3> |
| <em>Aug 12 '09; API spec. version: 7.23; affected top-level classes: <a href="./org/openide/filesystems/Repository.html"><code>Repository</code></a>; made by: jtulach; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=169892"> |
| #169892</a></em> |
| <br> |
| |
| <p> |
| One can provide <q>fallback</q> |
| <a href="architecture-summary.html#answer-arch-usecases" shape="rect">content of system filesystem</a> by |
| returning <code>Boolean.TRUE</code> from call |
| to <code>fs.getRoot().getAttribute("fallback")</code>. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="FileObject.asText">Read files with asText(), asBytes() and asLines()</a> |
| </h3> |
| <em>Feb 3 '09; API spec. version: 7.21; affected top-level classes: <a href="./org/openide/filesystems/FileObject.html"><code>FileObject</code></a>; made by: jtulach</em> |
| <br> |
| |
| <p> |
| Added <a href="org/openide/filesystems/FileObject.html#asBytes--" shape="rect"> |
| asBytes()</a>, |
| <a href="org/openide/filesystems/FileObject.html#asText-java.lang.String-" shape="rect"> |
| asText(encoding)</a>, |
| and <a href="org/openide/filesystems/FileObject.html#asLines-java.lang.String-" shape="rect"> |
| asLines(encoding)</a> methods into |
| <a href="org/openide/filesystems/FileObject.html" shape="rect">FileObject</a> |
| to simplify reading of its content. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="FileUtil.addFileChangeListener2">Possibility to add FileChangeListeners on File (even not existing)</a> |
| </h3> |
| <em>Jan 14 '09; API spec. version: 7.20; affected top-level classes: <a href="./org/openide/filesystems/FileUtil.html"><code>FileUtil</code></a>; made by: jskrivanek; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=33162"> |
| #33162</a></em> |
| <br> |
| |
| <p> |
| Added <a href="org/openide/filesystems/FileUtil.html#addFileChangeListener-org.openide.filesystems.FileChangeListener-java.io.File-" shape="rect"> |
| FileUtil.addFileChangeListener(FileChangeListener listener, File path)</a> |
| and <a href="org/openide/filesystems/FileUtil.html#removeFileChangeListener-org.openide.filesystems.FileChangeListener-java.io.File-" shape="rect"> |
| FileUtil.addFileChangeListener(FileChangeListener listener, File path)</a>. |
| It permits you to listen to a file which does not yet exist, |
| or continue listening to it after it is deleted and recreated, etc. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="FileUtil.getConfigFile">Added FileUtil.getConfigFile and getConfigRoot for simpler access to default filesystem</a> |
| </h3> |
| <em>Jan 12 '09; API spec. version: 7.19; affected top-level classes: <a href="./org/openide/filesystems/FileUtil.html"><code>FileUtil</code></a>; made by: jskrivanek; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=91534"> |
| #91534</a></em> |
| <br> |
| |
| <p> |
| Rather than having to call |
| <code>Repository.getDefault().getDefaultFileSystem().getRoot().getFileObject("foo/bar")</code>, |
| you can simply call |
| <a href="org/openide/filesystems/FileUtil.html#getConfigFile-java.lang.String-" shape="rect">FileUtil.getConfigFile("foo/bar")</a>. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="FileUtil.setMIMEType">Persisted registration of file extension to MIME type</a> |
| </h3> |
| <em>Dec 19 '08; API spec. version: 7.18; affected top-level classes: <a href="./org/openide/filesystems/FileUtil.html"><code>FileUtil</code></a>; made by: jskrivanek; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=153202"> |
| #153202</a></em> |
| <br> |
| |
| <p> |
| Method <a href="org/openide/filesystems/FileUtil.html#setMIMEType-java.lang.String-java.lang.String-" shape="rect"> |
| FileUtil.setMIMEType(String extension, String mimeType)</a> |
| resurrected to register file extension for specified MIME type. |
| It is persisted in userdir contrary to previous implementation. |
| Added method <a href="org/openide/filesystems/FileUtil.html#getMIMETypeExtensions-java.lang.String-" shape="rect"> |
| FileUtil.getMIMETypeExtensions(String mimeType)</a> |
| to get list of file extensions associated with specified MIME type. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="FileChooserBuilder">FileChooserBuilder added</a> |
| </h3> |
| <em>Dec 1 '08; API spec. version: 7.17; affected top-level classes: <code>org.openide.filesystems.FileChooserBuilder</code>; made by: tboudreau; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=47737"> |
| #47737</a></em> |
| <br> |
| |
| <p> |
| Added FileChooserBuilder, a utility class for working with |
| JFileChoosers. In particular, FileChooserBuilder makes it |
| easy to create file chooser dialogs which remember what |
| directory the user last invoked them on, across sessions. |
| </p> |
| |
| <br> |
| <strong>Compatibility: </strong> |
| |
| <p> |
| Added org.openide.filesystems.FileChooserBuilder to API. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="DeclarativeMIMEResolvers">Added new elements to MIME resolver DTD</a> |
| </h3> |
| <em>Nov 18 '08; API spec. version: 7.16; made by: jskrivanek; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=142760"> |
| #142760</a></em> |
| <br> |
| |
| <p> |
| It is now possible to write declarive MIME resolvers checking |
| file names (element name) and file content (element pattern). |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="LayerGeneratingProcessor">Support for annotation processors generating XML layer fragments</a> |
| </h3> |
| <em>Nov 1 '08; API spec. version: 7.15; affected top-level classes: <a href="./org/openide/filesystems/annotations/LayerGeneratingProcessor.html"><code>LayerGeneratingProcessor</code></a> <a href="./org/openide/filesystems/annotations/LayerBuilder.html"><code>LayerBuilder</code></a> <a href="./org/openide/filesystems/annotations/LayerGenerationException.html"><code>LayerGenerationException</code></a>; made by: jglick; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=149136"> |
| #149136</a></em> |
| <br> |
| |
| <p> |
| It is now possible to write JSR 269-compliant annotation processors |
| which create XML layer (i.e. system filesystem) entries. |
| </p> |
| |
| <br> |
| <strong>Compatibility: </strong> |
| |
| <p> |
| Any code which scans modules for XML layers should now interpret not only |
| the <code>OpenIDE-Module-Layer</code> manifest attribute (if present), |
| but also use the resource <code>META-INF/generated-layer.xml</code> if present. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="FileUtil.getMIMEType.withinMIMETypes">FileUtil.getMIMEType() can be restricted by listed MIME types</a> |
| </h3> |
| <em>Sep 3 '08; API spec. version: 7.13; affected top-level classes: <a href="./org/openide/filesystems/FileUtil.html"><code>FileUtil</code></a> <a href="./org/openide/filesystems/MIMEResolver.html"><code>MIMEResolver</code></a>; made by: jskrivanek; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=137734"> |
| #137734</a></em> |
| <br> |
| |
| <p> |
| To speed up MIME type recognition it is added an extra parameter |
| to method <a href="org/openide/filesystems/FileUtil.html#getMIMEType-org.openide.filesystems.FileObject-java.lang.String...-" shape="rect">FileUtil.getMIMEType(FileObject, String...)</a>. |
| We can supply one or more MIME types which we are only interested in. |
| Module writers have to override |
| <a href="org/openide/filesystems/MIMEResolver.html" shape="rect">MIMEResolver</a> |
| default constructor and call <code>super(String...)</code>, e.g.: |
| </p> |
| |
| <pre xml:space="preserve"> |
| public MyResolver() { |
| super("text/plain", "text/sh"); |
| } |
| </pre> |
| |
| <br> |
| <strong>Compatibility: </strong> |
| |
| <p> |
| If you have a <code>MIMEResolver</code> subclass, be sure to use the new super constructor. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="getAttribute.class">XMLFileSystem attributes can be queried for instance class</a> |
| </h3> |
| <em>Aug 25 '08; API spec. version: 7.12; affected top-level classes: <a href="./org/openide/filesystems/XMLFileSystem.html"><code>XMLFileSystem</code></a>; made by: jskrivanek; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=131951"> |
| #131951</a></em> |
| <br> |
| |
| <p> |
| If you are interested just in the Class of an attribute, but |
| without creating its instance, use <code>fileObject.getAttribute("class:attrName")</code>. |
| This instructs the <a href="org/openide/filesystems/XMLFileSystem.html" shape="rect">XMLFileSystem</a> |
| to scan its XML files for definition of <code>attrName</code> |
| attribute and <i>guess</i> its class. The <i>guessing</i> is |
| usually easy, just for <code>methodvalue</code> types, the system |
| needs to use some kind of heuristic: it locates the |
| appropriate factory method and returns its return type. This may |
| not be the actual type of the returned object at the end, but |
| it seems as the best guess without instantiating it. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="testable-declarative-resolvers">Declarative MIME resolvers now available in standalone mode</a> |
| </h3> |
| <em>Jul 10 '08; API spec. version: 7.11; affected top-level classes: <a href="./org/openide/filesystems/MIMEResolver.html"><code>MIMEResolver</code></a>; made by: jglick; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=138846"> |
| #138846</a></em> |
| <br> |
| |
| <p> |
| Declaratively registered MIME resolvers using the XML file syntax |
| (rather than Java classes implementing <code>MIMEResolver</code>) |
| are now used even when you run an application with just the Filesystems API in the classpath. |
| In particular, this makes declarative resolvers be honored in unit tests. |
| Formerly, declarative resolvers were only loaded when you used <code>org-netbeans-core.jar</code> |
| and started the full module system. |
| </p> |
| |
| <br> |
| <strong>Compatibility: </strong> |
| |
| <ul> |
| |
| <li> |
| |
| <p> |
| The old impl would have interpreted a resolver (with the correct doctype) in any location beneath <code>Services</code>. (Actually |
| a resolver would offer an <code>InstanceCookie<MIMEResolver></code> in any location, but outside <code>Services</code> they would not have been |
| used in MIME resolution.) The new impl expects resolvers to be <code>Services/MIMEResolver/*.xml</code>, as in practice they always |
| are, and does not bother to verify that the public ID is set to the expected value in the doctype. |
| </p> |
| |
| </li> |
| |
| <li> |
| |
| <p> |
| The old impl would have inserted the declarative resolvers in default lookup (assuming you were running with the |
| module system started and thus <code>FolderLookup[Services</code> included). The new impl does not. |
| </p> |
| |
| </li> |
| |
| </ul> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="layer.bundlevalue">XMLFileSystem supports 'bundlevalue' attribute</a> |
| </h3> |
| <em>Jul 8 '08; API spec. version: 7.10; affected top-level classes: <a href="./org/openide/filesystems/XMLFileSystem.html"><code>XMLFileSystem</code></a>; made by: jtulach; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=138076"> |
| #138076</a></em> |
| <br> |
| |
| <p> |
| It is possible to declare a value in <code>layer.xml</code> |
| files with <attr name="..." bundlevalue="org.yourpkg.Bundle#key"/>. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="FileUtil.urlForArchiveOrDir.archiveOrDirForURL">Added methods to interconvert URLs and traditional path entries</a> |
| </h3> |
| <em>Mar 17 '08; API spec. version: 7.8; affected top-level classes: <a href="./org/openide/filesystems/FileUtil.html"><code>FileUtil</code></a>; made by: jglick; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=59311"> |
| #59311</a></em> |
| <br> |
| |
| <p> |
| Added methods <code>urlForArchiveOrDir</code> and <code>archiveOrDirForURL</code> |
| to <code>FileUtil</code> to make it easier to work with classpaths. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="FileUtil.addFileChangeListener">Add methods: addFileChangeListener, removeFileChangeListener, refreshAll</a> |
| </h3> |
| <em>Feb 26 '08; API spec. version: 7.7; affected top-level classes: <a href="./org/openide/filesystems/FileUtil.html"><code>FileUtil</code></a>; made by: rmatous; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=127121"> |
| #127121</a></em> |
| <br> |
| Added utility methods: |
| <ul> |
| |
| <li> |
| <code>public static FileObject addFileChangeListener (final FileChangeListener fcl)</code> to receive |
| <code>FileEvents</code> from <code>FileSystems</code> providing instances |
| of <code>FileObject</code> convertible to <code>java.io.File</code> |
| </li> |
| |
| <li> |
| <code>public static FileObject removeFileChangeListener (final FileChangeListener fcl)</code> to no longer receive |
| <code>FileEvents</code> from <code>FileSystems</code> providing instances |
| of <code>FileObject</code> convertible to <code>java.io.File</code> |
| </li> |
| |
| <li> |
| <code>public static FileObject refreshAll ()</code> to refreshes all <code>FileObject</code> that represent files <code>File.listRoots()</code> |
| and their children recursively.</li> |
| |
| </ul> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="FileUtil.refreshFor">Add method FileUtil.refreshFor(File... files)</a> |
| </h3> |
| <em>Jan 16 '08; API spec. version: 7.6; affected top-level classes: <a href="./org/openide/filesystems/FileUtil.html"><code>FileUtil</code></a>; made by: rmatous; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=125308"> |
| #125308</a></em> |
| <br> |
| |
| <p> |
| Added helper method for refreshing all necessary filesystems, to get |
| refreshed all instances of <code>FileObject</code> representing |
| passed <code>files</code> and their children recursively. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="FileUtil.runAtomicAction">Simple way to run atomic action without having a fileobject</a> |
| </h3> |
| <em>Jan 8 '08; API spec. version: 7.5; affected top-level classes: <a href="./org/openide/filesystems/FileUtil.html"><code>FileUtil</code></a>; made by: rmatous; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=123899"> |
| #123899</a></em> |
| <br> |
| |
| <p> |
| Simple way to run atomic action without having a fileobject is ensured by |
| adding two methods: <code>FileUtil.runAtomicAction</code>. |
| All events about filesystem changes (related to events on all affected instances of <code>FileSystem</code>) |
| are postponed after the whole code runned in atomic block is executed. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="FileObject.isLocked">Added method to test if file is locked</a> |
| </h3> |
| <em>Jul 26 '07; API spec. version: 7.3; affected top-level classes: <a href="./org/openide/filesystems/FileObject.html"><code>FileObject</code></a>; made by: rmatous; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=110549"> |
| #110549</a></em> |
| <br> |
| |
| <p> |
| Added method <code>isLocked</code> to <code>FileObject</code>. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="FileUtil.order">Added methods to order files in a folder</a> |
| </h3> |
| <em>Jun 16 '07; API spec. version: 7.2; affected top-level classes: <a href="./org/openide/filesystems/FileUtil.html"><code>FileUtil</code></a>; made by: jglick; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=103187"> |
| #103187</a></em> |
| <br> |
| |
| <p> |
| Added methods <code>getOrder</code>, <code>setOrder</code>, |
| and <code>affectsOrder</code> to <code>FileUtil</code>. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="add-content-to-sfs">Allow modules to dynamically add/remove layer content</a> |
| </h3> |
| <em>Mar 12 '07; API spec. version: 7.1; affected top-level classes: <a href="./org/openide/filesystems/Repository.html"><code>Repository</code></a>; made by: jtulach; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=26338"> |
| #26338</a></em> |
| <br> |
| |
| <p> |
| Repository.getDefaultFileSystem's content can now be |
| influenced by adding own |
| <a href="org/openide/filesystems/FileSystem.html" shape="rect">FileSystem</a>s |
| into global |
| <a href="../org-openide-util-lookup/org/openide/util/Lookup.html" shape="rect">Lookup.getDefault()</a>. |
| This is supposed to work in a standalone mode as well |
| as inside NetBeans Platform. The tutorial is available |
| in the <a href="architecture-summary.html#answer-arch-usecases" shape="rect">usecases section</a> of achitecture description. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="createData-and-createFolder-take-File-as-parameter">Added additional methods <code>FileUtil.createData</code> |
| and <code>FileUtil.createFolder</code> that take <code>java.io.File</code> as a parameter. |
| </a> |
| </h3> |
| <em>Sep 7 '06; API spec. version: 7.0; affected top-level classes: <a href="./org/openide/filesystems/FileUtil.html"><code>FileUtil</code></a>; made by: rmatous; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=81527"> |
| #81527</a></em> |
| <br> |
| |
| <p> |
| Added two utility methods for creation of folders and data files |
| that take <code>java.io.File</code> as a parameter: |
| <code>public static FileObject createFolder (final File folder) throws IOException</code> and |
| <code>public static FileObject createData (final File folder) throws IOException</code> |
| |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="method-value-with-map">Semantics of XMLFileSystem's methodvalue extended to |
| also support methods that do not depend on FileSystems API |
| at all |
| </a> |
| </h3> |
| <em>May 29 '06; API spec. version: 7.0; affected top-level classes: <a href="./org/openide/filesystems/XMLFileSystem.html"><code>XMLFileSystem</code></a>; made by: jtulach; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=76692"> |
| #76692</a></em> |
| <br> |
| |
| <p> |
| |
| <a href="org/openide/filesystems/XMLFileSystem.html" shape="rect">XMLFileSystem</a>'s |
| methodvalue now supports also <a href="http://download.oracle.com/javase/8/docs/api/java/util/Map.html" shape="rect">Map</a> |
| attribute, so one can write factory methods that are completely |
| independent on filesystems by creating methods like |
| <code>static Object methodName(Map attrs)</code> or |
| <code>static Object methodName(Map attrs, String s)</code>. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="added-FileObject-getOutputStream-without-FileLock-parameter">Added additional method <code>FileObject.getOutputStream</code> |
| that doesn't take <code>FileLock</code> as a parameter. |
| </a> |
| </h3> |
| <em>May 3 '06; API spec. version: 6.6; affected top-level classes: <a href="./org/openide/filesystems/FileObject.html"><code>FileObject</code></a>; made by: rmatous</em> |
| <br> |
| |
| <p> |
| Although newly added method <code>FileObject.getOutputStream</code> |
| doesn't take <code>FileLock</code> as a parameter, the implementation |
| is responsible for taking a lock before <code>OutputStream</code> is |
| returned and thus <code>FileAlreadyLockedException</code> exception is thrown |
| when <code>FileObject</code> is already locked. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="semantic-change-in-FileUtil.toFileObject"> |
| The way how <code>IllegalArgumentException</code> is thrown from |
| <code>FileUtil.toFileObject</code> was changed |
| </a> |
| </h3> |
| <em>Oct 25 '05; API spec. version: 6.3; affected top-level classes: <a href="./org/openide/filesystems/FileUtil.html"><code>FileUtil</code></a>; made by: rmatous</em> |
| <br> |
| |
| <p>Because of performance reason piece of code |
| checking whether file was properly normalized is called conditionally just |
| in case that assertions are enabled. Then |
| <code>IllegalArgumentException</code> can't be thrown if |
| assertions are disabled. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="no-static-file-ext-mappings">Removed most static MIME type mappings</a> |
| </h3> |
| <em>Jul 21 '05; API spec. version: 6.2; affected top-level classes: <a href="./org/openide/filesystems/FileUtil.html"><code>FileUtil</code></a>; made by: jglick</em> |
| <br> |
| |
| <p> |
| Previously, a number of file extensions were given hardcoded MIME types in the Filesystems |
| API library (unless overridden by <code>MIMEResolver</code>s or <code>FileSystem</code> |
| implementations). Most of these static mappings have been removed. The affected mappings |
| were: |
| </p> |
| |
| <table border="1"> |
| |
| <thead> |
| |
| <tr> |
| |
| <td rowspan="1" colspan="1">Extension</td> |
| <td rowspan="1" colspan="1">MIME type</td> |
| |
| </tr> |
| |
| </thead> |
| |
| <tr> |
| |
| <td rowspan="1" colspan="1"><code>au</code></td> |
| <td rowspan="1" colspan="1"><code>audio/basic</code></td> |
| |
| </tr> |
| |
| <tr> |
| |
| <td rowspan="1" colspan="1"><code>class</code></td> |
| <td rowspan="1" colspan="1"><code>application/octet-stream</code></td> |
| |
| </tr> |
| |
| <tr> |
| |
| <td rowspan="1" colspan="1"><code>css</code></td> |
| <td rowspan="1" colspan="1"><code>text/css</code></td> |
| |
| </tr> |
| |
| <tr> |
| |
| <td rowspan="1" colspan="1"><code>dtd</code></td> |
| <td rowspan="1" colspan="1"><code>text/x-dtd</code></td> |
| |
| </tr> |
| |
| <tr> |
| |
| <td rowspan="1" colspan="1"><code>exe</code></td> |
| <td rowspan="1" colspan="1"><code>application/octet-stream</code></td> |
| |
| </tr> |
| |
| <tr> |
| |
| <td rowspan="1" colspan="1"><code>htm</code></td> |
| <td rowspan="1" colspan="1"><code>text/html</code></td> |
| |
| </tr> |
| |
| <tr> |
| |
| <td rowspan="1" colspan="1"><code>html</code></td> |
| <td rowspan="1" colspan="1"><code>text/html</code></td> |
| |
| </tr> |
| |
| <tr> |
| |
| <td rowspan="1" colspan="1"><code>jar</code></td> |
| <td rowspan="1" colspan="1"><code>application/x-jar</code></td> |
| |
| </tr> |
| |
| <tr> |
| |
| <td rowspan="1" colspan="1"><code>java</code></td> |
| <td rowspan="1" colspan="1"><code>text/x-java</code></td> |
| |
| </tr> |
| |
| <tr> |
| |
| <td rowspan="1" colspan="1"><code>jsp</code></td> |
| <td rowspan="1" colspan="1"><code>text/plain</code></td> |
| |
| </tr> |
| |
| <tr> |
| |
| <td rowspan="1" colspan="1"><code>mov</code></td> |
| <td rowspan="1" colspan="1"><code>video/quicktime</code></td> |
| |
| </tr> |
| |
| <tr> |
| |
| <td rowspan="1" colspan="1"><code>pl</code></td> |
| <td rowspan="1" colspan="1"><code>text/plain</code></td> |
| |
| </tr> |
| |
| <tr> |
| |
| <td rowspan="1" colspan="1"><code>properties</code></td> |
| <td rowspan="1" colspan="1"><code>text/plain</code></td> |
| |
| </tr> |
| |
| <tr> |
| |
| <td rowspan="1" colspan="1"><code>ps</code></td> |
| <td rowspan="1" colspan="1"><code>application/postscript</code></td> |
| |
| </tr> |
| |
| <tr> |
| |
| <td rowspan="1" colspan="1"><code>ra</code></td> |
| <td rowspan="1" colspan="1"><code>audio/x-pn-realaudio</code></td> |
| |
| </tr> |
| |
| <tr> |
| |
| <td rowspan="1" colspan="1"><code>ram</code></td> |
| <td rowspan="1" colspan="1"><code>audio/x-pn-realaudio</code></td> |
| |
| </tr> |
| |
| <tr> |
| |
| <td rowspan="1" colspan="1"><code>rm</code></td> |
| <td rowspan="1" colspan="1"><code>audio/x-pn-realaudio</code></td> |
| |
| </tr> |
| |
| <tr> |
| |
| <td rowspan="1" colspan="1"><code>rpm</code></td> |
| <td rowspan="1" colspan="1"><code>audio/x-pn-realaudio</code></td> |
| |
| </tr> |
| |
| <tr> |
| |
| <td rowspan="1" colspan="1"><code>sh</code></td> |
| <td rowspan="1" colspan="1"><code>application/x-shar</code></td> |
| |
| </tr> |
| |
| <tr> |
| |
| <td rowspan="1" colspan="1"><code>snd</code></td> |
| <td rowspan="1" colspan="1"><code>audio/basic</code></td> |
| |
| </tr> |
| |
| <tr> |
| |
| <td rowspan="1" colspan="1"><code>tar</code></td> |
| <td rowspan="1" colspan="1"><code>application/x-tar</code></td> |
| |
| </tr> |
| |
| <tr> |
| |
| <td rowspan="1" colspan="1"><code>text</code></td> |
| <td rowspan="1" colspan="1"><code>text/plain</code></td> |
| |
| </tr> |
| |
| <tr> |
| |
| <td rowspan="1" colspan="1"><code>txt</code></td> |
| <td rowspan="1" colspan="1"><code>text/plain</code></td> |
| |
| </tr> |
| |
| <tr> |
| |
| <td rowspan="1" colspan="1"><code>uu</code></td> |
| <td rowspan="1" colspan="1"><code>application/octet-stream</code></td> |
| |
| </tr> |
| |
| <tr> |
| |
| <td rowspan="1" colspan="1"><code>wav</code></td> |
| <td rowspan="1" colspan="1"><code>audio/x-wav</code></td> |
| |
| </tr> |
| |
| <tr> |
| |
| <td rowspan="1" colspan="1"><code>xsd</code></td> |
| <td rowspan="1" colspan="1"><code>text/xml</code></td> |
| |
| </tr> |
| |
| <tr> |
| |
| <td rowspan="1" colspan="1"><code>xsl</code></td> |
| <td rowspan="1" colspan="1"><code>text/xml</code></td> |
| |
| </tr> |
| |
| <tr> |
| |
| <td rowspan="1" colspan="1"><code>zip</code></td> |
| <td rowspan="1" colspan="1"><code>application/zip</code></td> |
| |
| </tr> |
| |
| </table> |
| |
| <p> |
| The mapping from <samp>*.xml</samp> to <code>text/xml</code> is retained as this may be |
| central to processing of XML configuration files on the system file system. |
| </p> |
| |
| <br> |
| <strong>Compatibility: </strong> |
| |
| <p> |
| Clients which were relying on the existence of some of the former mappings may be broken. |
| (Of course such clients were in violation of the API anyway, since these mappings were never |
| documented or guaranteed.) For such cases, either avoid relying on MIME type, or add your |
| own <code>MIMEResolver</code> giving the mapping you want. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="not-final-method-getFileObject"> |
| <code>FileObject.getFileObject </code> made not final.</a> |
| </h3> |
| <em>Jan 7 '05; API spec. version: 5.3; affected top-level classes: <a href="./org/openide/filesystems/FileObject.html"><code>FileObject</code></a>; made by: rmatous; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=51551"> |
| #51551</a></em> |
| <br> |
| |
| <p> |
| Method <code>public final FileObject getFileObject (String relativePath)</code> |
| in class <code>FileObject</code> isn't final anymore to let more freedom for implemetations. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="FileUtil.createMemoryFileSystem">Added new method <code>FileUtil.createMemoryFileSystem ()</code> |
| </a> |
| </h3> |
| <em>Aug 4 '04; API spec. version: 4.43; affected top-level classes: <a href="./org/openide/filesystems/FileUtil.html"><code>FileUtil</code></a>; made by: jtulach; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=46701"> |
| #46701</a></em> |
| <br> |
| |
| <p> |
| There is a new factory method <code>FileUtil.createMemoryFileSystem ()</code> |
| to create an empty, writeable instance of a <code>FileSystem</code> |
| with content completely stored in memory. This filesystem is the |
| one that is by default returned from <code>Repository.getDefaultFileSystem()</code> |
| so since now the standalone applications may expect the default file system |
| to be writable. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="FileUtil.preventFileChooserSymlinkTraversal">Added <code>FileUtil.preventFileChooserSymlinkTraversal(...)</code> |
| </a> |
| </h3> |
| <em>Jul 30 '04; API spec. version: 4.42; affected top-level classes: <a href="./org/openide/filesystems/FileUtil.html"><code>FileUtil</code></a>; made by: jglick; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=46459"> |
| #46459</a></em> |
| <br> |
| Added a new method <code>FileUtil.preventFileChooserSymlinkTraversal(...)</code> |
| to help work around problems with symbolic links and <code>JFileChooser</code>. |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3> |
| <a name="issue-37549">Added FileUtil.getFileDisplayName</a> |
| </h3> |
| <em>Jun 9 '04; API spec. version: 4.39; affected top-level classes: <a href="./org/openide/filesystems/FileUtil.html"><code>FileUtil</code></a>; made by: rmatous; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=37549"> |
| #37549</a></em> |
| <br> |
| Get an appropriate display name for a file object. |
| If the file corresponds to a path on disk, this will be the disk path. |
| Otherwise the name will mention the filesystem name or archiv name in case |
| the file comes from archiv and relative path. Relative path will be mentioned |
| just in case that passed |
| <code>FileObject</code> isn't root. |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3> |
| <a name="Repository-deprecations">Almost all methods of Repository were deprecated.</a> |
| </h3> |
| <em>Jun 1 '04; API spec. version: 4.36; affected top-level classes: <a href="./org/openide/filesystems/Repository.html"><code>Repository</code></a>; made by: rmatous; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=42273"> |
| #42273</a></em> |
| <br> |
| All methods were deprecated except: |
| <ul> |
| |
| <li> |
| |
| <code>getDefault ()</code> |
| |
| </li> |
| |
| <li> |
| |
| <code>getDefaultFileSystem ()</code> |
| |
| </li> |
| |
| </ul> |
| |
| The previous semantics of Repository is broken. Replacement: |
| <ul> |
| |
| <li>ClassPath API</li> |
| |
| <li> |
| |
| <code>URLMapper</code> for providing <code>FileObjects</code> |
| |
| </li> |
| |
| </ul> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="issue-43180">Reused DefaultAttributes can use different name than .nbattrs </a> |
| </h3> |
| <em>May 28 '04; API spec. version: 4.35; affected top-level classes: <a href="./org/openide/filesystems/DefaultAttributes.html"><code>DefaultAttributes</code></a>; made by: rmatous; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=43180"> |
| #43180</a></em> |
| <br> |
| Added new constructor to DefaultAttributes that takes file name as next additional parameter. |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3> |
| <a name="FileUtil-archive-handling">Easier to work with ZIP/JAR archives</a> |
| </h3> |
| <em>May 7 '04; API spec. version: 4.48; affected top-level classes: <a href="./org/openide/filesystems/FileUtil.html"><code>FileUtil</code></a>; made by: jglick</em> |
| <br> |
| |
| <p> |
| There are now various methods in <code>FileUtil</code> that let you |
| easily convert between archive files themselves and their entries. It |
| is no longer necessary (or advisable) to explicitly construct |
| <code>JarFileSystem</code>s to work with archives. A standard |
| <code>URLMapper</code> implementation is present which handles |
| <code>jar</code>-protocol URLs correctly. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="FileUtil.normalizeFile"> |
| <code>FileUtil.normalizeFile</code> added</a> |
| </h3> |
| <em>May 7 '04; API spec. version: 4.48; affected top-level classes: <a href="./org/openide/filesystems/FileUtil.html"><code>FileUtil</code></a>; made by: jglick; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=40410"> |
| #40410</a></em> |
| <br> |
| |
| <p> |
| The method <code>FileUtil.normalizeFile(File)</code> was added as a |
| refinement of <code>File.getCanonicalFile</code> that does not traverse |
| symlinks on Unix. Used throughout the NetBeans 4.0 project system. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="FileObject.setImportant"> |
| <code>FileObject.setImportant</code> deprecated</a> |
| </h3> |
| <em>May 7 '04; API spec. version: 4.48; affected top-level classes: <a href="./org/openide/filesystems/FileObject.html"><code>FileObject</code></a>; made by: jglick</em> |
| <br> |
| |
| <p> |
| In NetBeans 3.x, normally “compilation” or similar build |
| steps would produce generated files kept in the user’s |
| development folder alongside source files, and picked up as secondary |
| files by a <code>MultiFileLoader</code>. To ensure that the VCS |
| integration did not offer to version such files, |
| <code>FileObject.setImportant</code> could be used to mark them as |
| disposable. |
| </p> |
| |
| <p> |
| In NetBeans 4.0, such disposable files should not be placed in a source |
| folder. They should always be built to a separate build directory, |
| typically defined by the containing project. In this case marking an |
| individual file as unimportant is unnecessary, since the entire build |
| tree is known to be disposable. Instead, the project (not data loaders) |
| can use <code>SharabilityQueryImplementation</code> to indicate which |
| subtrees contain build products. |
| </p> |
| |
| <br> |
| <strong>Compatibility: </strong> |
| |
| <p> |
| There is no direct replacement. Code using this method should be |
| reëvaluated in the light of other changes in NetBeans 4.0. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="filesystems-deprecations">Deprecation of various Filesystems API methods and classes</a> |
| </h3> |
| <em>May 7 '04; API spec. version: 4.48; affected top-level classes: <a href="./org/openide/filesystems/FileObject.html"><code>FileObject</code></a> <a href="./org/openide/filesystems/FileSystem.html"><code>FileSystem</code></a>; made by: jglick</em> |
| <br> |
| |
| <p> |
| Various parts of the Filesystems API which are no longer useful in |
| NetBeans 4.0 were deprecated. The assumptions which are now invalid |
| were: |
| </p> |
| |
| <ul> |
| |
| <li> |
| |
| <p> |
| The root of a filesystem corresponds to a Java classpath root (if |
| the appropriate capabilities were set). Now handled by the |
| Classpath API. |
| </p> |
| |
| </li> |
| |
| <li> |
| |
| <p> |
| The user explicitly mounts and unmounts filesystems, either to |
| control the classpath, for version control purposes, or simply to |
| access some area of the disk; and so filesystem metadata is |
| relevant to the GUI. Now obsoleted by the Classpath API and |
| MasterFS. |
| </p> |
| |
| </li> |
| |
| <li> |
| |
| <p> |
| The IDE internally managed a list of mounted filesystems. Now only |
| the default system filesystem is “mounted”; MasterFS |
| transparently manages all “user-space” files. |
| </p> |
| |
| </li> |
| |
| <li> |
| |
| <p> |
| File objects are persisted by saving a reference to the containing |
| filesystem, plus the relative path within the filesystem. Now done |
| using URLs. |
| </p> |
| |
| </li> |
| |
| </ul> |
| |
| <p> |
| Specific deprecations: |
| </p> |
| |
| <ol> |
| |
| <li> |
| |
| <code>FileSystem.Environment</code> and |
| <code>EnvironmentNotSupportedException</code> |
| |
| </li> |
| |
| <li> |
| |
| <code>FileSystemCapability</code> (and its constants and subclasses), |
| <code>FileSystem.getCapability</code> and <code>setCapability</code>, |
| constructors taking <code>FileSystemCapability</code> |
| |
| </li> |
| |
| <li> |
| |
| <code>FileSystem.PROP_HIDDEN</code>, <code>isHidden</code>, and |
| <code>setHidden</code> |
| |
| </li> |
| |
| <li> |
| |
| <code>FileSystem.PROP_SYSTEM_NAME</code>, <code>getSystemName</code>, |
| and <code>setSystemName</code> |
| |
| </li> |
| |
| <li> |
| |
| <code>FileSystem.find</code> |
| |
| </li> |
| |
| <li> |
| |
| <code>FileObject</code> methods such as <code>getPackageName</code> |
| |
| </li> |
| |
| <li> |
| |
| <code>FileSystem.isPersistent</code> |
| |
| </li> |
| |
| </ol> |
| |
| <p> |
| See also <a href="#Repository-deprecations" shape="rect">deprecations in |
| <code>Repository</code> |
| </a>. |
| </p> |
| |
| <br> |
| <strong>Compatibility: </strong> |
| |
| <p> |
| In general, attempts to call the old methods will yield well-defined |
| but useless results in NetBeans 4.0. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="FileObject.getPath-III"> |
| <code>FileObject.toString()</code> not to be used for specific purposes</a> |
| </h3> |
| <em>May 7 '04; API spec. version: 4.48; affected top-level classes: <a href="./org/openide/filesystems/FileObject.html"><code>FileObject</code></a>; made by: jglick; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=27640"> |
| #27640</a></em> |
| <br> |
| |
| <p> |
| |
| <code>FileObject.toString()</code> no longer returns a predictable |
| value; in particular, it will not be the same as |
| <code>getPath()</code>. The new value is suitable for logging and |
| debugging but otherwise cannot be relied upon. |
| </p> |
| |
| <p> |
| There are two benefits to this change: |
| </p> |
| |
| <ol> |
| |
| <li> |
| |
| <p> |
| The new <code>toString()</code> is more useful for logging than the |
| previous value. It is no longer necessary to separately include |
| <code>fileObject.getFileSystem().toString()</code>, which was |
| cumbersome (and required an extra catch clause). |
| </p> |
| |
| </li> |
| |
| <li> |
| |
| <p> |
| Clients which were incorrectly using <code>toString()</code> to get |
| a Java resource path will now be predictably broken, so they can be |
| fixed to use <code>ClassPath</code>. (The paths would not have been |
| usable in NetBeans 4.0 anyway.) Just deprecating |
| <code>toString()</code> was not possible because it overrides a |
| nondeprecated <code>Object</code> method, and is also inserted into |
| code by the compiler without emitting any deprecation warning. |
| </p> |
| |
| </li> |
| |
| </ol> |
| |
| <br> |
| <strong>Compatibility: </strong> |
| |
| <p> |
| Older Filesystems API clients which assumed that |
| <code>FileObject.toString()</code> and |
| <code>FileObject.getPath()</code> do the same thing will be broken. |
| </p> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="issue-41506">There should exist just one FileObject for one resource (java.io.File or URL). </a> |
| </h3> |
| <em>Apr 13 '04; API spec. version: 4.29; affected top-level classes: <a href="./org/openide/filesystems/FileUtil.html"><code>FileUtil</code></a> <a href="./org/openide/filesystems/URLMapper.html"><code>URLMapper</code></a>; made by: rmatous; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=41506"> |
| #41506</a></em> |
| <br> |
| |
| <ul> |
| |
| <li>Added method FileUtil.toFileObject as replacement for current method FileUtil.fromFile which was deprecated.</li> |
| |
| <li>Added method URLMapper.findFileObject as replacement for current method URLMapper.findFileObjects which was deprecated .</li> |
| |
| </ul> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="issue-37445">Added API for finding file relatively to another file</a> |
| </h3> |
| <em>Dec 9 '03; API spec. version: 4.16; affected top-level classes: <a href="./org/openide/filesystems/FileUtil.html"><code>FileUtil</code></a> <a href="./org/openide/filesystems/FileObject.html"><code>FileObject</code></a>; made by: rmatous; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=37445"> |
| #37445</a></em> |
| <br> |
| |
| <ul> |
| |
| <li>Added method FileUtil.getRelativePath which gets a relative resource path between folder and fo in folder's tree.</li> |
| |
| <li>Slightly modified semantic of FileObject.getFileObject in compatible way. This method retrieves file |
| or folder relative to a current folder, with a given relative path. |
| </li> |
| |
| </ul> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="version-3.31"> Method FileObject.isReadOnly was deprecated and replaced with methods canRead, canWrite</a> |
| </h3> |
| <em>Jan 10 '03; API spec. version: 3.31; affected top-level classes: <a href="./org/openide/filesystems/FileObject.html"><code>FileObject</code></a> <a href="./org/openide/filesystems/AbstractFileSystem.html"><code>AbstractFileSystem</code></a>; made by: rmatous</em> |
| <br> |
| There was made changes in FileObject class. |
| Added method: <code>public boolean canRead ()</code>. |
| Method <code>public boolean isReadOnly ()</code> was deprecated and replaced with |
| method: <code>public boolean canWrite ()</code>. This change can be considered as compatible. |
| Newly added methods have default implementation. Also AbstractFileSystem was modified and two |
| necessary method were added: method: <code>public boolean canRead ()</code> and |
| method: <code>public boolean canWrite ()</code>. |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3> |
| <a name="issue-28312">URLMapper.findFileObjects returns empty array if not successful.</a> |
| </h3> |
| <em>Jan 8 '03; API spec. version: 3.28; affected top-level classes: <a href="./org/openide/filesystems/URLMapper.html"><code>URLMapper</code></a>; made by: rmatous; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=28312"> |
| #28312</a></em> |
| <br> |
| |
| <code>URLMapper.findFileObjects </code> returns empty array if not successful. |
| As far there was in documentation written, that null is returned. |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3> |
| <a name="version-3.16">Added FileUtil.isParentOf</a> |
| </h3> |
| <em>Oct 22 '02; API spec. version: 3.16; affected top-level classes: <a href="./org/openide/filesystems/FileUtil.html"><code>FileUtil</code></a>; made by: vstejskal</em> |
| <br> |
| FileUtil.isParentOf provides simple recursive check whether the FileObject is |
| underneath some folder. |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3> |
| <a name="FileObject.getPath-II">Changed javadoc to warn about improper use of methods</a> |
| </h3> |
| <em>Oct 1 '02; affected top-level classes: <a href="./org/openide/filesystems/FileObject.html"><code>FileObject</code></a>; made by: pzavadsky; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=27640"> |
| #27640</a> <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=27687"> |
| #27687</a></em> |
| <br> |
| Changed Javadoc to warn about improper usage |
| of the <code>FileObject.toString</code> (it was used |
| as full path format), which is replaced by |
| <code>FileObject.getPath</code> now. Explained correct purpose |
| of that method. Also added those warnings to |
| <code>findResource</code> and <code>findAllResource</code> |
| of <code>Repository</code> class. |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3> |
| <a name="getPath"> |
| <code>FileObject.getPath()</code> returns full resource path of file object</a> |
| </h3> |
| <em>Aug 30 '02; API spec. version: 3.7; affected top-level classes: <a href="./org/openide/filesystems/FileObject.html"><code>FileObject</code></a>; made by: jglick; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=26904"> |
| #26904</a></em> |
| <br> |
| It is commonly necessary to find the full resource path of a file object |
| within its filesystem. Formerly you could do this the safe way by calling |
| <code>getPackageNameExt('/', '.')</code>, but this is clumsy to |
| write, potentially inefficient, and is prone to misinterpretation in the |
| case of files without any extension (or files ending in a period, or |
| folders with extensions). Calling <code>toString()</code> was more |
| effective, but this suffered from the problem that for compatibility |
| reasons, no assurance could be made that it would actually give a |
| resource path - an old <code>FileObject</code> implementation could |
| implement it in any way, since it was not originally documented what it |
| should return. Therefore, the new method <code>getPath()</code> has been |
| introduced. |
| <br> |
| <strong>Compatibility: </strong> |
| Existing <code>FileObject</code> implementations ought to override the |
| new method for efficiency. They should also cease to override |
| <code>toString</code>. Subclasses of <code>AbstractFileSystem</code> (the |
| normal case) need not be concerned, since the corresponding |
| <code>FileObject</code> already implements this method correctly. Code |
| assuming <code>toString</code> returns a resource path should be changed |
| to use <code>getPath</code> instead. |
| <br> |
| <em><a href="http://wiki.netbeans.org/VersioningPolicy#Compatible_change_on_the_trunk">Binary-compatible</a></em> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="repository-not-final">Repository is not final</a> |
| </h3> |
| <em>Jul 22 '02; API spec. version: 3.3; affected top-level classes: <a href="./org/openide/filesystems/Repository.html"><code>Repository</code></a>; made by: jtulach</em> |
| <br> |
| Repository is not final anymore, so there can be subclasses of it. But all its methods |
| has been made final. This was done in order to create Repositories that will follow the |
| javabeans pattern (have public default constructor). |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3> |
| <a name="version-2.22">URL -> FileObject mapping implementation</a> |
| </h3> |
| <em>Jun 6 '02; API spec. version: 2.22; affected top-level classes: <a href="./org/openide/filesystems/URLMapper.html"><code>URLMapper</code></a>; made by: rmatous</em> |
| <br> |
| Two methods were added <code>public static FileObject[] findFileObjects (URL url)</code> and |
| <code>public abstract FileObject[] getFileObjects (URL url)</code>. |
| <br> |
| <strong>Compatibility: </strong> |
| Added abstract method <code>public abstract FileObject[] getFileObjects (URL url)</code> |
| But there doesn`t exists any known subclass of URLMapper yet. And URLMapper was introduced |
| recently 2.16 in 3.4 release. |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3> |
| <a name="URLMapper">Added support for better FileObject-URL mapping</a> |
| </h3> |
| <em>Apr 25 '02; API spec. version: 2.16; affected top-level classes: <a href="./org/openide/filesystems/URLMapper.html"><code>URLMapper</code></a>; made by: rmatous</em> |
| <br> |
| Added new class <code>URLMapper</code>. This class provides basic mapping |
| for FileObjects from LocalFileSystem, JarFileSystem and MultiFileSystem and is intended |
| as superclass for individual mappers. |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3> |
| <a name="FileSystem.refresh">There exists possibility to refresh whole filesystem in one </a> |
| </h3> |
| <em>Apr 24 '02; API spec. version: 2.16; affected top-level classes: <a href="./org/openide/filesystems/FileSystem.html"><code>FileSystem</code></a>; made by: rmatous</em> |
| <br> |
| Method: <code>public void FileSystem.refresh (boolean expected))</code> was added. |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3> |
| <a name="FileSystem.FileChangeListener">FileSystem provides FileChangeListener functionality </a> |
| </h3> |
| <em>Mar 11 '02; API spec. version: 2.8; affected top-level classes: <a href="./org/openide/filesystems/FileSystem.html"><code>FileSystem</code></a>; made by: rmatous</em> |
| <br> |
| Method: <code>public final void addFileChangeListener(FileChangeListener fcl)</code> and |
| <code>public final void removeFileChangeListener(FileChangeListener fcl)</code> was added |
| to maintain FileChangeListeners that should be notified if some change in FileSystem occures. |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3> |
| <a name="Repository.FileChangeListener">Repository provides FileChangeListener functionality </a> |
| </h3> |
| <em>Mar 11 '02; API spec. version: 2.8; affected top-level classes: <a href="./org/openide/filesystems/Repository.html"><code>Repository</code></a>; made by: rmatous</em> |
| <br> |
| Method: <code>public final void addFileChangeListener(FileChangeListener fcl)</code> and |
| <code>public final void removeFileChangeListener(FileChangeListener fcl)</code> was added |
| to maintain FileChangeListeners that should be notified if some change in Repository occures. |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3> |
| <a name="FileSystem.PROP_DISPLAY_NAME">New property FileSystem.PROP_DISPLAY_NAME was added </a> |
| </h3> |
| <em>Jan 17 '02; API spec. version: 2.1; affected top-level classes: <a href="./org/openide/filesystems/FileSystem.html"><code>FileSystem</code></a>; made by: rmatous</em> |
| <br> |
| |
| <code>FileSystem.PROP_DISPLAY_NAME</code> added to |
| notify a change in the display name. |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3> |
| <a name="FileEvent.firedFrom"> |
| <code>FileEvent</code>s fired inside atomic actions can report from which atomic actions they were fired</a> |
| </h3> |
| <em>Sep 21 '01; API spec. version: 1.35; affected top-level classes: <a href="./org/openide/filesystems/FileEvent.html"><code>FileEvent</code></a>; made by: rmatous</em> |
| <br> |
| Method <code>boolean FileEvent.firedFrom(FileSystem.AtomicAction run)</code> returns true if this |
| <code>FileEvent</code> was fired from <code>run</code>. |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3> |
| <a name="MultiFileSystem.createWritableOnForRename">Method createWritableOnForRename in MultiFileSystem was added</a> |
| </h3> |
| <em>Aug 30 '01; API spec. version: 1.34; affected top-level classes: <a href="./org/openide/filesystems/MultiFileSystem.html"><code>MultiFileSystem</code></a>; made by: rmatous</em> |
| <br> |
| Protected method <code>createWritableOnForRename</code> in <code>MultiFileSystem</code> |
| was added. This method has the same meaning as <code>createWritableOn</code> but have two parameters: |
| oldName, newName. This method is called from <code>MultiFileObject.rename</code>. |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3> |
| <a name="version-1.33">FileAttributeEvent's methods getName (), getOldValue (), getNewValue () can return null</a> |
| </h3> |
| <em>Aug 24 '01; API spec. version: 1.33; affected top-level classes: <a href="./org/openide/filesystems/FileAttributeEvent.html"><code>FileAttributeEvent</code></a>; made by: rmatous</em> |
| <br> |
| |
| <code>FileAttributeEvent</code>'s methods <code>getName ()</code>, |
| <code>getOldValue ()</code>, <code>getNewValue ()</code> can return <code>null</code>. |
| If <code>getName ()</code> returns null then this means that one of attributes were changed. If |
| <code>getName ()</code> returns <code>null</code> then there is supposed that all <code>FileAttributeEvent</code> |
| fields will return <code>null</code> also. |
| <br> |
| <strong>Compatibility: </strong> |
| Code previously assuming that all <code>FileAttributeEvent</code> |
| fields were non-null may now be broken, and should check for |
| <code>null</code>s. |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3> |
| <a name="version-1.30">Discover which filesystem a FileStateInvalidException is associated with</a> |
| </h3> |
| <em>Aug 17 '01; API spec. version: 1.30; affected top-level classes: <a href="./org/openide/filesystems/FileStateInvalidException.html"><code>FileStateInvalidException</code></a>; made by: mschilling</em> |
| <br> |
| Added method <code>public String getFileSystemName()</code>. This will |
| return the name of the filesystem containing the file with invalid |
| state if such information is available. |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3> |
| <a name="FileUtil.toFile-fromFile">Find a disk file from a file object or vice-versa</a> |
| </h3> |
| <em>Jul 31 '01; API spec. version: 1.29; affected top-level classes: <a href="./org/openide/filesystems/FileUtil.html"><code>FileUtil</code></a>; made by: rmatous</em> |
| <br> |
| Added method <code>public File toFile(FileObject)</code>. Finds |
| appropriate <code>java.io.File</code> to <code>FileObject</code> if |
| possible. If not possible then <code>null</code> is returned. |
| Also added method <code>public FileObject[] fromFile(File)</code>. Finds |
| appropriate <code>FileObject</code>s to <code>java.io.File</code> if |
| possible. If not possible then empty array is returned. More than one |
| <code>FileObject</code> may correspond to one <code>java.io.File</code> so |
| an array is returned. |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3> |
| <a name="3.803008330124762E30"> |
| Mounting new filesystem no longer works with filesystems providing |
| <code>WizardDescriptor</code> as bean customizers |
| </a> |
| </h3> |
| <em>Jul 24 '01; made by: jtulach</em> |
| <br> |
| |
| <p> |
| It used to be the case (NB 3.2) that a FileSystem |
| implementation could in its BeanInfo specify a BeanDescriptor whose |
| Customizer class extended WizardDescriptor. This would cause the |
| wizard to be opened when the user tried to mount that filesystem type. |
| </p> |
| |
| <p> |
| The situation now (from 3.3) is that this no longer opens |
| the customizer and property sheet is presented in the second |
| step of the mount wizard. |
| </p> |
| |
| <br> |
| <strong>Compatibility: </strong> |
| WizardDescriptor as bean customizer no longer opens the wizard |
| while mounting. To achieve this use of a special iterator |
| in Templates/Mount/ is now used (for modules 3.3+). |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3> |
| <a name="FileObject.createData-without-ext">Create file object without extension</a> |
| </h3> |
| <em>Jun 27 '01; API spec. version: 1.17; affected top-level classes: <a href="./org/openide/filesystems/FileObject.html"><code>FileObject</code></a>; made by: rmatous</em> |
| <br> |
| Added convenience method <code>public FileObject createData(String name) |
| throws IOException</code>. Creates new data file in this folder with the |
| specified name. Plainly calls <code>createData(name,"")</code>. |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3> |
| <a name="FileObject.delete-without-lock">Simplified file object deletion</a> |
| </h3> |
| <em>Jun 25 '01; API spec. version: 1.15; affected top-level classes: <a href="./org/openide/filesystems/FileObject.html"><code>FileObject</code></a></em> |
| <br> |
| Added method <code>public final void delete()</code>. |
| <code>FileObject</code> is locked before delete and finally this lock is |
| released. |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3> |
| <a name="1.4714074904E10">Can mark files as being virtual</a> |
| </h3> |
| <em>Jun 1 '01; affected top-level classes: <a href="./org/openide/filesystems/AbstractFileSystem.html"><code>AbstractFileSystem</code></a></em> |
| <br> |
| Added new protected method <code>protected boolean checkVirtual(String |
| name)</code>.Tests if file really exists or is missing. Some operation on |
| it may be restricted if returns true. |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3> |
| <a name="5.8856299599E10">Can mark files as being important</a> |
| </h3> |
| <em>Jun 1 '01; affected top-level classes: <a href="./org/openide/filesystems/AbstractFileSystem.html"><code>AbstractFileSystem</code></a></em> |
| <br> |
| Added new protected method <code>protected void markImportant(String name, |
| boolean important)</code>. Mark the file as being important or |
| unimportant. |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3> |
| <a name="4.4502327064E10">Test if a file object is virtual</a> |
| </h3> |
| <em>Jun 1 '01; affected top-level classes: <a href="./org/openide/filesystems/FileObject.html"><code>FileObject</code></a></em> |
| <br> |
| Added new method <code>public isVirtual</code>. Tests if file really |
| exists or is missing. Some operation on it may be restricted. Return value |
| true indicates that the file is missing. |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3> |
| <a name="34382">Get default <code>Repository</code> from within Filesystems API</a> |
| </h3> |
| <em>Feb 7 '01; affected top-level classes: <a href="./org/openide/filesystems/Repository.html"><code>Repository</code></a></em> |
| <br> |
| Added method <code>Repository.getDefault()</code> that allows standalone |
| tools (using just filesystems library) without access to |
| <code>TopManager</code> to get the default repository of the system. |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3> |
| <a name="8.140445082558805E15">Find a MIME type for a file object using resolvers</a> |
| </h3> |
| <em>Feb 5 '01; affected top-level classes: <a href="./org/openide/filesystems/FileUtil.html"><code>FileUtil</code></a></em> |
| <br> |
| Added new public method <code>getMIMEType(FileObject)</code>. Resolves |
| MIME type. Registered resolvers are invoked and used to achieve this goal. |
| Resolvers must subclass <a href="#MIMEResolver" shape="rect"> |
| <code>MIMEResolver</code> |
| </a>. If |
| resolvers do not recognize MIME type then MIME type is obtained for a |
| well-known extension. |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3> |
| <a name="MIMEResolver">Added <code>MIMEResolver</code> |
| </a> |
| </h3> |
| <em>Feb 5 '01; affected top-level classes: <a href="./org/openide/filesystems/MIMEResolver.html"><code>MIMEResolver</code></a>; made by: rmatous</em> |
| <br> |
| Added new <code>MIMEResolver</code>. This class is intended as superclass |
| for individual resolvers. |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3> |
| <a name="1.211769431E9">Create expected file events</a> |
| </h3> |
| <em>Jan 29 '01; affected top-level classes: <a href="./org/openide/filesystems/FileEvent.html"><code>FileEvent</code></a> <a href="./org/openide/filesystems/FileAttributeEvent.html"><code>FileAttributeEvent</code></a> <a href="./org/openide/filesystems/FileRenameEvent.html"><code>FileRenameEvent</code></a></em> |
| <br> |
| |
| <code>FileEvent</code> and subclass constructors may take a parameter |
| <code>boolean expected</code>. |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3> |
| <a name="not-a-cookie"> |
| <code>Repository</code> is not a cookie</a> |
| </h3> |
| <em>Jan 8 '01; affected top-level classes: <a href="./org/openide/filesystems/Repository.html"><code>Repository</code></a>; made by: jtulach</em> |
| <br> |
| |
| <code>Repository</code> has been changed not to implement the |
| <code>Node.Cookie</code> interface. The reason for such change is that |
| this was the only place where filesystems package depended on another part |
| in the IDE. |
| <br> |
| <strong>Compatibility: </strong> |
| Code that used <code>Repository</code> as cookie should be changed to: |
| <pre xml:space="preserve"> |
| ic = (<span class="type">InstanceCookie</span>)node.getCookie(InstanceCookie.<span class="keyword">class</span>); |
| <span class="keyword">if</span> (ic != <span class="constant">null</span> && Repository.<span class="keyword">class</span>.isAssignableFrom(ic.instanceCookie())) { |
| <span class="comment">// do stuff |
| </span>} |
| </pre> |
| |
| <br> |
| <em><a href="http://wiki.netbeans.org/VersioningPolicy#Compatible_change_on_the_trunk">Binary-compatible</a></em> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="mfs-find-action"> |
| <code>MultiFileSystem</code> finds actions on a set of files specially</a> |
| </h3> |
| <em>Dec 6 '00; affected top-level classes: <a href="./org/openide/filesystems/MultiFileSystem.html"><code>MultiFileSystem</code></a></em> |
| <br> |
| Method: <code>getActions(final Set foSet)</code> was added, which should |
| provide a Set of <code>FileObject</code>s to run the actions on. This method overloads |
| default behavior of <code>FileSystem.getActions(final Set foSet)</code>. |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3> |
| <a name="2.4475904905823E13">Propagate masks flag for multi-filesystems</a> |
| </h3> |
| <em>Nov 23 '00; affected top-level classes: <a href="./org/openide/filesystems/MultiFileSystem.html"><code>MultiFileSystem</code></a>; made by: jglick</em> |
| <br> |
| |
| <code>setPropagateMasks</code> and <code>getPropagateMasks</code> added to |
| make it easier to compose multi filesystems inside other multi filesystems. |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3> |
| <a name="370">Added <code>XMLFileSystem</code> |
| </a> |
| </h3> |
| <em>Nov 1 '00; affected top-level classes: <a href="./org/openide/filesystems/XMLFileSystem.html"><code>XMLFileSystem</code></a></em> |
| <br> |
| Added new <code>XMLFileSystem</code> that reads content of special XML |
| file and represents it as filesystem. This filesystem is used by modules |
| to provide their own content of menus, toolbars, templates, component |
| palette, etc. |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3> |
| <a name="9.329227231022436E15">MIME lookup by extension made friendlier for C/C++</a> |
| </h3> |
| <em>Sep 11 '00; affected top-level classes: <a href="./org/openide/filesystems/FileUtil.html"><code>FileUtil</code></a>; made by: jglick</em> |
| <br> |
| MIME types no longer include C/C++ extensions by default; and file |
| extension lookups give preference to case-sensitive matches but also work |
| with case-insensitive matches by default. |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3> |
| <a name="2.92751569363687E14">Customizable references to known file objects</a> |
| </h3> |
| <em>Aug 22 '00; affected top-level classes: <a href="./org/openide/filesystems/AbstractFileSystem.html"><code>AbstractFileSystem</code></a></em> |
| <br> |
| Added new protected method |
| <code>Reference createReference(FileObject fo)</code>. This |
| method returns <code>WeakReference</code> of <code>obj</code> |
| (<code>new WeakReference (fo)</code>). If you subclass from |
| <code>AbstractFileSystem</code>, you can overload this method to return |
| another type of <code>Reference</code>. |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3> |
| <a name="4.080841976251E12">Find references to file objects by name</a> |
| </h3> |
| <em>Aug 22 '00; affected top-level classes: <a href="./org/openide/filesystems/AbstractFileSystem.html"><code>AbstractFileSystem</code></a></em> |
| <br> |
| Added new final protected method |
| <code>Reference findReference(String resourceName)</code>. This |
| method finds the reference associated with <code>resourceName</code>. |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3> |
| <a name="8.4004415344141967E18">Find known file objects starting from some point in the tree</a> |
| </h3> |
| <em>Aug 10 '00; affected top-level classes: <a href="./org/openide/filesystems/AbstractFileSystem.html"><code>AbstractFileSystem</code></a></em> |
| <br> |
| Added new protected method <code>existingFileObjects(FileObject)</code>. |
| Can be used to find all <code>FileObject</code>s in this filesystem with |
| the given predecessor. |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3> |
| <a name="repository-adapter-added"> |
| <code>RepositoryAdapter</code> added</a> |
| </h3> |
| <em>Jun 25 '00; affected top-level classes: <a href="./org/openide/filesystems/RepositoryAdapter.html"><code>RepositoryAdapter</code></a>; made by: jglick</em> |
| <br> |
| Added to make it easier to use <code>RepositoryListener</code>. |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3> |
| <a name="1.22460676003798656E17">Filesystem implementation methods protected not public</a> |
| </h3> |
| <em>Mar 27 '00; affected top-level classes: <a href="./org/openide/filesystems/LocalFileSystem.html"><code>LocalFileSystem</code></a> <a href="./org/openide/filesystems/JarFileSystem.html"><code>JarFileSystem</code></a>; made by: jtulach</em> |
| <br> |
| |
| <p> |
| Many methods in <code>LocalFileSystem</code> and |
| <code>JarFileSystem</code> were declared public though they should never |
| have been called directly. (They were implementing interface methods |
| that would only be called from within the class itself.) These methods |
| are: |
| </p> |
| |
| <ul> |
| |
| <li> |
| |
| <code>children(String)</code> |
| |
| </li> |
| |
| <li> |
| |
| <code>createData(String)</code> |
| |
| </li> |
| |
| <li> |
| |
| <code>createFolder(String)</code> |
| |
| </li> |
| |
| <li> |
| |
| <code>delete(String)</code> |
| |
| </li> |
| |
| <li> |
| |
| <code>folder(String)</code> |
| |
| </li> |
| |
| <li> |
| |
| <code>inputStream(String)</code> |
| |
| </li> |
| |
| <li> |
| |
| <code>lastModified(String)</code> |
| |
| </li> |
| |
| <li> |
| |
| <code>lock(String)</code> |
| |
| </li> |
| |
| <li> |
| |
| <code>markUnimportant(String)</code> |
| |
| </li> |
| |
| <li> |
| |
| <code>mimeType(String)</code> |
| |
| </li> |
| |
| <li> |
| |
| <code>outputStream(String)</code> |
| |
| </li> |
| |
| <li> |
| |
| <code>readOnly(String)</code> |
| |
| </li> |
| |
| <li> |
| |
| <code>rename(String,String)</code> |
| |
| </li> |
| |
| <li> |
| |
| <code>size(String)</code> |
| |
| </li> |
| |
| <li> |
| |
| <code>unlock(String)</code> |
| |
| </li> |
| |
| </ul> |
| |
| <p> |
| Also in <code>JarFileSystem</code> only: |
| </p> |
| |
| <ul> |
| |
| <li> |
| |
| <code>readAttribute(String,String)</code> |
| |
| </li> |
| |
| <li> |
| |
| <code>writeAttribute(String,String,Object)</code> |
| |
| </li> |
| |
| <li> |
| |
| <code>attributes(String)</code> |
| |
| </li> |
| |
| <li> |
| |
| <code>renameAttributes(String,String)</code> |
| |
| </li> |
| |
| <li> |
| |
| <code>deleteAttributes(String)</code> |
| |
| </li> |
| |
| </ul> |
| |
| <p> |
| All these methods are now protected. |
| </p> |
| |
| <p> |
| In general, outside code should use the proper outer API to access |
| filesystems (<code>FileSystem</code> and <code>FileObject</code> and |
| some helper classes), only directly calling methods of implementation |
| classes where this is required (constructors or |
| <code>setRootDirectory</code>). As a matter of style, it is recommended |
| that calling code declare variables to be of the abstract type (e.g. |
| <code>FileSystem</code>) to clarify that only generally available |
| methods will be called. |
| </p> |
| |
| <br> |
| <strong>Compatibility: </strong> |
| First broken, later restored binary compatibility in trunk and |
| <code>boston</code>. Any outside code calling them as public will break; |
| however such code is definitely erroneous and should be rewritten. |
| <br> |
| <em><a href="http://wiki.netbeans.org/VersioningPolicy#Compatible_change_on_the_trunk">Binary-compatible</a></em> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="393216"> |
| <code>AbstractFileSystem.refreshRoot</code> was of the wrong type</a> |
| </h3> |
| <em>Feb 24 '00; affected top-level classes: <a href="./org/openide/filesystems/AbstractFileSystem.html"><code>AbstractFileSystem</code></a></em> |
| <br> |
| |
| <code>refreshRoot</code> now returns <code>FileObject</code> rather than |
| the subclass <code>AbstractFileObject</code>. In fact the returned object |
| currently is always an <code>AbstractFileObject</code> but this subclass |
| is package-private so it was an API bug to mention it from an accessible |
| method. |
| <br> |
| <strong>Compatibility: </strong> |
| First broken, later restored binary compatibility in trunk and |
| <code>boston</code>. The change should be source-code compatible, and is |
| made to be binary compatible as well. |
| <hr style="width:50%"> |
| <h2> |
| <a name="uncategorized-api">Uncategorized changes</a> |
| </h2> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="issue-19443-2">API separation, phase II</a> |
| </h3> |
| <em>Nov 1 '02; API spec. version: 3.17; affected top-level classes: <code>org.openide.actions.AbstractCompileAction</code> <code>org.openide.actions.BuildAction</code> <code>org.openide.actions.BuildAllAction</code> <code>org.openide.actions.CleanAction</code> <code>org.openide.actions.CleanAllAction</code> <code>org.openide.actions.CompileAction</code> <code>org.openide.actions.CompileAllAction</code> <code>org.openide.actions.ExecuteAction</code> <code>org.openide.cookies.ArgumentsCookie</code> <code>org.openide.cookies.CompilerCookie</code> <code>org.openide.cookies.ExecCookie</code> <a href="./org/openide/filesystems/FileUtil.html"><code>FileUtil</code></a> <code>org.openide.loaders.CompilerSupport</code> <code>org.openide.loaders.ExecutionSupport</code> <code>org.openide.windows.IOProvider</code> <code>org.openide.windows.InputOutput</code> <code>org.openide.windows.OutputEvent</code> <code>org.openide.windows.OutputListener</code> <code>org.openide.windows.OutputWriter</code>; affected packages: <code>org.openide.compiler</code> <code>org.openide.execution</code>; made by: jglick; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=19443"> |
| #19443</a></em> |
| <br> |
| |
| <p> |
| Three sections of the Open APIs were split into new autoload modules. |
| </p> |
| |
| <ul> |
| |
| <li> |
| |
| <p> |
| The module <code>org.openide.compiler</code> (version 1.0) contains |
| the Compiler API and some other classes directly related to it. |
| </p> |
| |
| </li> |
| |
| <li> |
| |
| <p> |
| The module <code>org.openide.execution</code> (version 1.0) contains |
| the Execution API and some other classes directly related to it. |
| </p> |
| |
| </li> |
| |
| <li> |
| |
| <p> |
| The module <code>org.openide.io</code> (version 1.0) contains |
| <code>InputOutput</code> and related classes (formerly part of the |
| Window System API, and still physically in the |
| <code>org.openide.windows</code> package). |
| </p> |
| |
| </li> |
| |
| </ul> |
| |
| <p> |
| New modules wishing to use these APIs must declare regular module |
| dependencies on them. Future changes in these APIs will be documented |
| separately. |
| </p> |
| |
| <p> |
| Furthermore, modules wishing to use certain services must |
| <code>OpenIDE-Module-Require</code> them if appropriate: |
| </p> |
| |
| <ul> |
| |
| <li> |
| |
| <p> |
| |
| <code>org.openide.compiler.CompilationEngine</code>, in order to |
| call <code>CompilationEngine.getDefault()</code>, or safely use |
| <code>AbstractCompileAction</code> or one of its subclasses, or |
| call <code>CompilerJob.start()</code>, or use |
| <code>BeanInfo</code>s for Compiler API classes, etc. |
| </p> |
| |
| </li> |
| |
| <li> |
| |
| <p> |
| |
| <code>org.openide.execution.ExecutionEngine</code>, in order to |
| call <code>ExecutionEngine.getDefault()</code>, or safely use |
| <code>ExecuteAction</code>, or call |
| <code>Executor.execute(...)</code>, or use <code>BeanInfo</code>s |
| for Execution API classes, etc. |
| </p> |
| |
| </li> |
| |
| <li> |
| |
| <p> |
| |
| <code>org.openide.windows.IOProvider</code>, in order to call |
| <code>IOProvider.getDefault()</code>. |
| </p> |
| |
| </li> |
| |
| </ul> |
| |
| <p> |
| Other minor changes: |
| </p> |
| |
| <ul> |
| |
| <li> |
| |
| <p> |
| Registration of URL stream handler factories using |
| <code>NbfsStreamHandlerFactory.register(...)</code> is deprecated. |
| Simply create an instance of <code>URLStreamHandlerFactory</code> |
| and add it to Lookup instead. |
| </p> |
| |
| </li> |
| |
| <li> |
| |
| <p> |
| The method <code>FileUtil.nbfsURLStreamHandler</code> was added, |
| but is not intended for use by modules. |
| </p> |
| |
| </li> |
| |
| <li> |
| |
| <p> |
| All uses of <code>ExecInfo</code> are deprecated as they abuse the |
| distinction between Filesystems and the user classpath. Use and |
| override only <code>Executor.execute(DataObject)</code>. Similarly, |
| <code>ThreadExecutor</code> is deprecated for the time being |
| because it suffers from similar problems. |
| </p> |
| |
| </li> |
| |
| <li> |
| |
| <p> |
| Direct use of <code>NbfsURLConnection</code> is deprecated in favor |
| of the more general <code>URLMapper</code> from the Filesystems |
| API. |
| </p> |
| |
| </li> |
| |
| <li> |
| |
| <p> |
| Package dependencies on |
| <code>org.netbeans.lib.terminalemulator</code> must be replaced |
| with module dependencies on a new autoload module |
| <code>org.netbeans.lib.terminalemulator</code> (version 1.0). |
| </p> |
| |
| </li> |
| |
| <li> |
| |
| <p> |
| Several static convenience methods have been added to |
| <code>AbstractCompileAction</code>. Of most interest is |
| <code>prepareJobFor</code>. Module code should no longer assume |
| that <code>DataFolder</code> has a <code>CompilerCookie</code> |
| which recursively compiles the folder and subfolders (according to |
| depth); while it is still true, for reasons of compatibility, new |
| code should use <code>prepareJobFor</code> to create a compiler job |
| from a folder. |
| </p> |
| |
| </li> |
| |
| </ul> |
| |
| <br> |
| <strong>Compatibility: </strong> |
| |
| <p> |
| Module authors using the now-separated APIs will need to adjust their |
| compilation classpaths to include the new JAR files. Modules wishing to |
| use recent APIs and declaring a current openide specification version |
| dependency will need to explicitly declare dependencies on these new |
| APIs if there are any. |
| </p> |
| |
| <p> |
| For compatibility, modules with no declared Open APIs dependency, or |
| declared on a version prior to 3.17, will have their dependencies |
| automatically refined as if to include the declarations: |
| </p> |
| |
| <pre xml:space="preserve"> |
| OpenIDE-Module-Module-Dependencies: org.openide.compiler > 1.0, |
| org.openide.execution > 1.0, org.openide.io > 1.0 |
| OpenIDE-Module-Requires: org.openide.compiler.CompilationEngine, |
| org.openide.execution.ExecutionEngine, org.openide.windows.IOProvider |
| </pre> |
| |
| <p> |
| And any package dependencies from old modules on |
| <code>org.netbeans.lib.terminalemulator</code> will be converted to |
| module dependencies. |
| </p> |
| |
| <br> |
| <em><a href="http://wiki.netbeans.org/VersioningPolicy#Compatible_change_on_the_trunk">Binary-compatible</a></em> |
| <!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --> |
| <h3> |
| <a name="issue-19443-1">API separation, phase I</a> |
| </h3> |
| <em>Oct 15 '02; API spec. version: 3.14; affected top-level classes: <code>org.openide.DialogDisplayer</code> <code>org.openide.LifecycleManager</code> <code>org.openide.Places</code> <code>org.openide.TopManager</code> <code>org.openide.actions.AddWatchAction</code> <code>org.openide.actions.BuildProjectAction</code> <code>org.openide.actions.CompileProjectAction</code> <code>org.openide.actions.DebugProjectAction</code> <code>org.openide.actions.ExecuteProjectAction</code> <code>org.openide.actions.FinishDebuggerAction</code> <code>org.openide.actions.GoAction</code> <code>org.openide.actions.GoToCursorAction</code> <code>org.openide.actions.HelpAction</code> <code>org.openide.actions.OpenProjectAction</code> <code>org.openide.actions.SaveProjectAction</code> <code>org.openide.actions.StartDebuggerAction</code> <code>org.openide.actions.StepOutAction</code> <code>org.openide.actions.ToggleBreakpointAction</code> <code>org.openide.actions.TraceIntoAction</code> <code>org.openide.actions.TraceOverAction</code> <code>org.openide.awt.HtmlBrowser</code> <code>org.openide.awt.StatusDisplayer</code> <code>org.openide.cookies.DebuggerCookie</code> <code>org.openide.cookies.ElementCookie</code> <code>org.openide.cookies.ProjectCookie</code> <code>org.openide.cookies.SourceCookie</code> <code>org.openide.explorer.propertysheet.editors.ChoicePropertyEditor</code> <code>org.openide.explorer.propertysheet.editors.DirectoryOnlyEditor</code> <code>org.openide.explorer.propertysheet.editors.ElementFormatEditor</code> <code>org.openide.explorer.propertysheet.editors.ExternalCompiler</code> <code>org.openide.explorer.propertysheet.editors.FileEditor</code> <code>org.openide.explorer.propertysheet.editors.FileOnlyEditor</code> <code>org.openide.explorer.propertysheet.editors.IconEditor</code> <code>org.openide.explorer.propertysheet.editors.IdentifierArrayEditor</code> <code>org.openide.explorer.propertysheet.editors.MethodParameterArrayEditor</code> <code>org.openide.explorer.propertysheet.editors.ModifierEditor</code> <code>org.openide.explorer.propertysheet.editors.StringArrayCustomEditor</code> <code>org.openide.explorer.propertysheet.editors.StringArrayCustomizable</code> <code>org.openide.explorer.propertysheet.editors.StringArrayEditor</code> <code>org.openide.explorer.propertysheet.editors.TypeEditor</code> <code>org.openide.loaders.DataObjectFilter</code> <code>org.openide.loaders.ExecSupport</code> <code>org.openide.loaders.ExecutionSupport</code> <code>org.openide.loaders.ExtensionListEditor</code> <code>org.openide.loaders.RepositoryNodeFactory</code> <code>org.openide.modules.IllegalModuleException</code> <code>org.openide.modules.ManifestSection</code> <code>org.openide.modules.ModuleDescription</code> <code>org.openide.nodes.NodeOperation</code> <code>org.openide.options.ControlPanel</code> <code>org.openide.util.actions.ProjectSensitiveAction</code> <code>org.openide.windows.IOProvider</code>; affected packages: <code>org.openide.debugger</code> <code>org.openide.src</code> <code>org.openide.src.nodes</code>; made by: jglick; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=19443"> |
| #19443</a> <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=20898"> |
| #20898</a></em> |
| <br> |
| |
| <p> |
| Many classes were moved to a separate module, |
| <samp>openide-deprecated.jar</samp>, not available to modules by |
| default. Uses of these classes in modules should be cleaned up whenever |
| possible. |
| </p> |
| |
| <p> |
| Additionally, the entire contents of <code>org.openide.src.*</code> and |
| <code>org.openide.src.nodes.*</code>, as well as |
| <code>org.openide.cookies.SourceCookie</code> and some associated |
| property editors, were moved to a separate module. |
| </p> |
| |
| <p> |
| The most common apparent symptom for module authors will be the absence |
| of <code>TopManager</code>. Most methods in this class have been |
| replaced by newer utility classes in a straightforward manner. See the |
| Upgrade Guide. |
| </p> |
| |
| <br> |
| <strong>Compatibility: </strong> |
| |
| <p> |
| The deprecated classes continue to be available in the module |
| <code>org.openide.deprecated</code> which you may depend on it you |
| cannot remove uses of the deprecated APIs. In order for |
| <code>TopManager.getDefault()</code> to work, you must also require the |
| token <code>org.openide.TopManager</code>, which is provided by an |
| unspecified module. The deprecated API module and its implementation |
| module are autoloads, meaning they will not be loaded unless some |
| module still requires them. |
| </p> |
| |
| <p> |
| Similarly, the Java Hierarchy API was moved to the module |
| <code>org.openide.src</code> which you should depend on in order to use |
| this API. |
| </p> |
| |
| <p> |
| For compatibility, the above three dependencies are added to your module |
| <em>automatically</em> in case it either requests no specific API |
| version at all, or requests an API version prior to 3.14. Modules |
| requesting APIs 3.14 or higher must declare these dependencies |
| explicitly if they in fact need them. |
| </p> |
| |
| <br> |
| <em><a href="http://wiki.netbeans.org/VersioningPolicy#Compatible_change_on_the_trunk">Binary-compatible</a></em> |
| |
| <hr> |
| |
| <p><span class="footnote">Built on September 14 2018. | Copyright © 2017-2018 Apache Software Foundation. All Rights Reserved.</span></p> |
| |
| </body> |
| |
| </html> |