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

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

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

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

-->
<!DOCTYPE api-answers PUBLIC "-//NetBeans//DTD Arch Answers//EN" "../../nbbuild/antsrc/org/netbeans/nbbuild/Arch.dtd" [
  <!ENTITY api-questions SYSTEM "../../nbbuild/antsrc/org/netbeans/nbbuild/Arch-api-questions.xml">
]>

<api-answers
  question-version="1.29"
  author="sdedic@netbeans.org"
>

  &api-questions;

 <answer id="arch-overall">
  <p>
   This module contains no public API. It only serves to provide binary backward compatibility
    for modules compiled against FileSystems API 8.x and earlier.
  </p>
 </answer>

 <answer id="arch-quality">
  <p>
    Tests to ensure FileSystems 8.x features should be provided.
  </p>
 </answer>

 <answer id="arch-time">
  <p>
   Already done.
  </p>
 </answer>

 <answer id="arch-usecases">
  <p>
   Allows to run modules compiled against FileSystems 8.0 APIs
  </p>
 </answer>

 <answer id="arch-what">
  <p>
   Preservation of compatibility
  </p>
 </answer>

 <answer id="arch-where">
  <defaultanswer generate='here' />
 </answer>

 <answer id="compat-deprecation">
  <p>
   APIs that relate to <a href="@TOP@/org/openide/filesystems/FileSystemCapability.html">FileSystemCapability</a> and 
   <a href="@TOP@/org/openide/filesystems/FileSystem$Environment.html">FileSystem.Environment</a> are removed from the main API
   and provided here only for binary compatibility.
  </p>
 </answer>

 <answer id="compat-i18n">
  <p>
   yes
  </p>
 </answer>

 <answer id="compat-standards">
  <p>
   no
  </p>
 </answer>



 <answer id="compat-version">
  <p>
   yes
  </p>
 </answer>

 <answer id="dep-jre">
  <p>
   no dependency
  </p>
 </answer>

 <answer id="dep-jrejdk">
  <p>
   JRE
  </p>
 </answer>

 <answer id="dep-nb">
  <defaultanswer generate='here' />
 </answer>

 <answer id="dep-non-nb">
  <p>
   None
  </p>
 </answer>

 <answer id="dep-platform">
  <p>
   All
  </p>
 </answer>

 <answer id="deploy-dependencies">
  <p>
   None
  </p>
 </answer>

 <answer id="deploy-jar">
  <p>
   No.
  </p>
 </answer>

<!--
        <question id="deploy-nbm" when="impl">
            Can you deploy an NBM via the Update Center?
            <hint>
            If not why?
            </hint>
        </question>
-->
 <answer id="deploy-nbm">
  <p>
   Yes
  </p>
 </answer>

 <answer id="deploy-packages">
  <p>
   Yes, packages are only available to strictly defined friends
  </p>
 </answer>

 <answer id="deploy-shared">
  <p>
   Shared location
  </p>
 </answer>

 <answer id="exec-ant-tasks">
  <p>
   No
  </p>
 </answer>

 <answer id="exec-classloader">
  <p>
   No.
  </p>
 </answer>

 <answer id="exec-component">
  <p>
   No.
  </p>
 </answer>

 <answer id="exec-introspection">
  <p>
   No.
  </p>
 </answer>

 <answer id="exec-privateaccess">
  <p>
   None.
  </p>
 </answer>

 <answer id="exec-process">
  <p>
   No.
  </p>
 </answer>

 <answer id="exec-property">
  <p>
   No.
  </p>
 </answer>

 <answer id="exec-reflection">
  <p>
   Not directly reflection. The code however relies on that it is deployed
   to the same runtime package as FileSystems API and accessess its package
   private parts.
  </p>
 </answer>

 <answer id="exec-threading">
  <p>
   See Filesystems API
  </p>
 </answer>

 <answer id="format-clipboard">
  <p>
   See Filesystems API
  </p>
 </answer>

 <answer id="format-dnd">
  <p>
   See Filesystems API
  </p>
 </answer>

 <answer id="format-types">
  <p>
   None.
  </p>
 </answer>

 <answer id="lookup-lookup">
  <p>
   No.
  </p>
 </answer>

 <answer id="lookup-register">
  <p>
   None.
  </p>
 </answer>

 <answer id="lookup-remove">
  <p>
   No.
  </p>
 </answer>

 <answer id="perf-exit">
  <p>
   No.
  </p>
 </answer>

 <answer id="perf-huge_dialogs">
  <p>
   None.
  </p>
 </answer>

 <answer id="perf-limit">
  <p>
   N/A
  </p>
 </answer>

 <answer id="perf-mem">
  <p>
   N/A
  </p>
 </answer>

 <answer id="perf-menus">
  <p>
   No menus
  </p>
 </answer>

 <answer id="perf-progress">
  <p>
   No.
  </p>
 </answer>

 <answer id="perf-scale">
  <p>
   See Filesystems API
  </p>
 </answer>

 <answer id="perf-spi">
  <p>
   N/A
  </p>
 </answer>

 <answer id="perf-startup">
  <p>
   No.
  </p>
 </answer>

 <answer id="perf-wakeup">
  <p>
   No.
  </p>
 </answer>

 <answer id="resources-file">
  <p>
      Yes, for initialization of <a href="@org-openide-filesystems@/org/openide/filesystems/LocalFileSystem.html">LocalFileSystem</a>
      and <a href="@org-openide-filesystems@/org/openide/filesystems/JarFileSystem.html">JarFileSystem</a>
  </p>
 </answer>

 <answer id="resources-layer">
  <p>
   No layer
  </p>
 </answer>

 <answer id="resources-mask">
  <p>
   No.
  </p>
 </answer>

 <answer id="resources-preferences">
  <p>
   No.
  </p>
 </answer>

 <answer id="resources-read">
  <p>
   No.
  </p>
 </answer>

 <answer id="security-grant">
  <p>
   No.
  </p>
 </answer>

 <answer id="security-policy">
  <p>
   No.
  </p>
 </answer>

</api-answers>
