Adding ARC information for taglib editor. BLD200302200100
authorsgleason@netbeans.org
Wed, 19 Feb 2003 01:42:45 +0000
changeset 1202873d5b9225cf
parent 1201 aaddd3b33900
child 1203 d3a1b0718cf9
Adding ARC information for taglib editor.
web/arch/arch-web-taglibed.xml
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/web/arch/arch-web-taglibed.xml	Wed Feb 19 01:42:45 2003 +0000
     1.3 @@ -0,0 +1,719 @@
     1.4 +<?xml version="1.0" encoding="UTF-8"?>
     1.5 +<!DOCTYPE api-answers PUBLIC "-//NetBeans//DTD Arch Answers//EN" "../../nbbuild/antsrc/org/netbeans/nbbuild/Arch.dtd" [
     1.6 +  <!ENTITY api-questions SYSTEM "../../nbbuild/antsrc/org/netbeans/nbbuild/Arch-api-questions.xml">
     1.7 +]>
     1.8 +
     1.9 +<api-answers
    1.10 +  version="" date=""
    1.11 +  question-version="1.9"
    1.12 +  module="WebApps Tag Libarary Editor"
    1.13 +  author="sgleason@netbeans.org"
    1.14 +>
    1.15 +
    1.16 +  &api-questions;
    1.17 +
    1.18 +
    1.19 +<!-- Question: arch-what
    1.20 +
    1.21 +     <question id="arch-what">
    1.22 +            What is this project good for?
    1.23 +            <hint>
    1.24 +            Please provide here few lines describing the the project, 
    1.25 +            what problem it should solve, provide links to documentation, 
    1.26 +            specifications, etc.
    1.27 +            </hint>
    1.28 +        </question>
    1.29 +-->
    1.30 +<answer id="arch-what">
    1.31 +This module implements a tag library editor for editing and maintaining
    1.32 +JSP tag libraries. tld (Tag Library Descriptor) files are recognized as 
    1.33 +data object, presented in the explorer as a tree view. Actions are provided to generate 
    1.34 +tag handlers and package tag libraries in jars. 
    1.35 +</answer>
    1.36 +
    1.37 +
    1.38 +<!-- Question: compat-i18n
    1.39 +
    1.40 +     <question id="compat-i18n">
    1.41 +            Is your module correctly internationalized?
    1.42 +            <hint>
    1.43 +            Correct internationalization means that it obeys instuctions 
    1.44 +            at <a href="http://www.netbeans.org/devhome/docs/i18n/index.html">
    1.45 +            NetBeans I18N pages</a>.
    1.46 +            </hint>
    1.47 +        </question>
    1.48 +-->
    1.49 +<answer id="compat-i18n">
    1.50 +Yes.
    1.51 +</answer>
    1.52 +
    1.53 +
    1.54 +
    1.55 +<!-- Question: compat-standards
    1.56 +
    1.57 +     <question id="compat-standards">
    1.58 +            Does the module implements or defines any standards? Is the 
    1.59 +            implementation exact or it deviates somehow?
    1.60 +        </question>
    1.61 +-->
    1.62 +<answer id="compat-standards">
    1.63 +It follows the spirit of the JSP 1.2 specification, but it does 
    1.64 +not directly implement or define any standard.
    1.65 +The implementation fully covers the tag library aspects of the JSP
    1.66 +1.2 specification. 
    1.67 +</answer>
    1.68 +
    1.69 +
    1.70 +
    1.71 +<!-- Question: compat-version
    1.72 +
    1.73 +     <question id="compat-version">
    1.74 +            Does your module properly coexists with earlier and future
    1.75 +            versions? Can you correctly read settings? Will future
    1.76 +            versions be able to read settings?
    1.77 +            
    1.78 +            <hint>
    1.79 +            Very helpful for reading settings is to store version number
    1.80 +            there, so future versions can decide whether how to read/convert
    1.81 +            the settings and older versions can ignore the new ones.
    1.82 +            </hint>
    1.83 +        </question>
    1.84 +-->
    1.85 +<answer id="compat-version">
    1.86 +The module can read settings of the previous versions of itself, and future
    1.87 +versions of the module are expected to be able to read settings of the current version.
    1.88 +
    1.89 +Tag libraries compliant with the JSP 1.1 spec can be read, but not written. If the 
    1.90 +user makes changes the tag libraries will be upgraded to the recent versions. 
    1.91 +
    1.92 +</answer>
    1.93 +
    1.94 +
    1.95 +
    1.96 +<!-- Question: dep-jre
    1.97 +
    1.98 +     <question id="dep-jre">
    1.99 +            Which version of JRE you need (1.2, 1.3, 1.4, etc.)?
   1.100 +            <hint>
   1.101 +            It is expected that if your module runs on 1.x that it will run 
   1.102 +            on 1.x+1 if no, state that please. Also describe here cases where
   1.103 +            you run different code on different versions of JRE and why.
   1.104 +            </hint>
   1.105 +        </question>
   1.106 +-->
   1.107 +<answer id="dep-jre">
   1.108 +It uses JRE 1.3 or higher.
   1.109 +</answer>
   1.110 +
   1.111 +
   1.112 +
   1.113 +<!-- Question: dep-jrejdk
   1.114 +
   1.115 +     <question id="dep-jrejdk">
   1.116 +            Do you require JDK or is JRE enough?
   1.117 +        </question>
   1.118 +-->
   1.119 +<answer id="dep-jrejdk">
   1.120 +In theory the JRE should be enough, although this was not tested.
   1.121 +</answer>
   1.122 +
   1.123 +
   1.124 +
   1.125 +<!-- Question: dep-nb
   1.126 +
   1.127 +     <question id="dep-nb">
   1.128 +            What other NetBeans projects this one depends on?
   1.129 +            <hint>
   1.130 +            If you want, describe such projects as imported API using
   1.131 +            the <code>&lt;api name="identification" type="import or export" category="stable" url="where is the description" /&gt;</code>
   1.132 +            </hint>
   1.133 +        </question>
   1.134 +-->
   1.135 +<answer id="dep-nb">
   1.136 +It uses various kinds of API's:
   1.137 +<ul>
   1.138 +<li>
   1.139 +    <api 
   1.140 +        name="OpenAPIs"
   1.141 +        type="import"
   1.142 +        category="stable"
   1.143 +        url="http://www.netbeans.org/download/dev/javadoc/OpenAPIs/"
   1.144 +    />
   1.145 +    NetBeans OpenAPIs
   1.146 +</li>
   1.147 +<li>
   1.148 +    <api 
   1.149 +        name="web-core"
   1.150 +        type="import"
   1.151 +        category="friend"
   1.152 +        url=""
   1.153 +    />
   1.154 +    The <code>web-core</code> module.
   1.155 +</li>
   1.156 +<li>
   1.157 +    <api 
   1.158 +        name="openide.src"
   1.159 +        type="import"
   1.160 +        category="stable"
   1.161 +        url="http://www.netbeans.org/download/dev/javadoc/JavaHierarchyAPI/index.html"
   1.162 +    />
   1.163 +    The Java Hierarchy API.
   1.164 +</li>
   1.165 +<li>
   1.166 +    <api 
   1.167 +        name="java"
   1.168 +        type="import"
   1.169 +        category="private"
   1.170 +        url="http://java.netbeans.org/"
   1.171 +    />
   1.172 +    The <code>java</code> module.
   1.173 +</li>
   1.174 +<li>
   1.175 +    <api 
   1.176 +        name="The NetBeans Core"
   1.177 +        type="import"
   1.178 +        category="private"
   1.179 +        url="http://core.netbeans.org/"
   1.180 +    />
   1.181 +    The NetBeans Core
   1.182 +</li>
   1.183 +<li>
   1.184 +    <api 
   1.185 +        name="xml-apis"
   1.186 +        type="import"
   1.187 +        category="friend"
   1.188 +        url="http://xml.netbeans.org/"
   1.189 +    />
   1.190 +    The NetBeans XML module and its APIs.
   1.191 +</li>
   1.192 +<li>
   1.193 +    <api 
   1.194 +        name="jarpackager"
   1.195 +        type="import"
   1.196 +        category="friend"
   1.197 +        url="http://jarpackager.netbeans.org/"
   1.198 +    />
   1.199 +    The jarpackager module
   1.200 +</li>
   1.201 +</ul>
   1.202 +</answer>
   1.203 +
   1.204 +  
   1.205 +<!-- Question: dep-non-nb
   1.206 +
   1.207 +     <question id="dep-non-nb">
   1.208 +            What other non-NetBeans projects this one depends on?
   1.209 +            
   1.210 +            <hint>
   1.211 +            Some non-NetBeans projects are packaged as NetBeans modules
   1.212 +            (see <a href="http://libs.netbeans.org">libraries</a>) and
   1.213 +            it is prefered to use this approach when more modules may
   1.214 +            depend on such third-party library.
   1.215 +            </hint>
   1.216 +        </question>
   1.217 +-->
   1.218 +<answer id="dep-non-nb">
   1.219 +the servlet 2.3 api library is needed for compiling tag libraries.
   1.220 +    <api 
   1.221 +        name="ServletAPI23"
   1.222 +        type="import"
   1.223 +        category="friend"
   1.224 +        url=""
   1.225 +    />
   1.226 +</answer>
   1.227 +
   1.228 +
   1.229 +
   1.230 +<!-- Question: dep-platform
   1.231 +
   1.232 +     <question id="dep-platform">
   1.233 +            On which platforms your module run? Any? Does it run in the same
   1.234 +            way?
   1.235 +            <hint>
   1.236 +            If your module is using JNI or deals with special differences of
   1.237 +            OSes like filesystems, etc. please describe here what they are.
   1.238 +            </hint>
   1.239 +        </question>
   1.240 +-->
   1.241 +<answer id="dep-platform">
   1.242 +100% pure Java. It should run anywhere.
   1.243 +</answer>
   1.244 +
   1.245 +
   1.246 +
   1.247 +<!-- Question: deploy-jar
   1.248 +
   1.249 +     <question id="deploy-jar">
   1.250 +            Do you deploy just module JAR file(s) or some other files?
   1.251 +            <hint>
   1.252 +            If your module consist just from one module JAR file, just confirm that.
   1.253 +            If it uses more than one JAR, describe where there are located, how
   1.254 +            they refer to each other. 
   1.255 +            If it consist of module JAR(s) and other files, please describe
   1.256 +            what is their purpose, why other files are necessary. Please 
   1.257 +            make sure that installation/deinstallation leaves the system 
   1.258 +            in state as it was before installation.
   1.259 +            </hint>
   1.260 +        </question>
   1.261 +-->
   1.262 +<answer id="deploy-jar">
   1.263 +Besides documentation, there is just the module jar: <code>taglibed.jar</code>.
   1.264 +</answer>
   1.265 +
   1.266 +
   1.267 +
   1.268 +<!-- Question: deploy-nbm
   1.269 +
   1.270 +     <question id="deploy-nbm">
   1.271 +            Can you deploy NBM via AutoUpdate center?
   1.272 +            <hint>
   1.273 +            If not why?
   1.274 +            </hint>
   1.275 +        </question>
   1.276 +-->
   1.277 +<answer id="deploy-nbm">
   1.278 +Yes.
   1.279 +</answer>
   1.280 +
   1.281 +
   1.282 +
   1.283 +<!-- Question: deploy-packages
   1.284 +
   1.285 +     <question id="deploy-packages">
   1.286 +            Are packages of your module made inaccessible by not declaring them
   1.287 +            public?
   1.288 +            
   1.289 +            <hint>
   1.290 +            NetBeans module system allows restriction of access rights to
   1.291 +            public classes of your module from other modules. This prevents
   1.292 +            unwanted dependencies of others on your code and should be used
   1.293 +            whenever possible (<a href="http://www.netbeans.org/download/apis/org/openide/doc-files/upgrade.html#3.4-public-packages">
   1.294 +            public packages
   1.295 +            </a>). 
   1.296 +            </hint>
   1.297 +        </question>
   1.298 +-->
   1.299 +<answer id="deploy-packages">
   1.300 +No.
   1.301 +</answer>
   1.302 +
   1.303 +
   1.304 +
   1.305 +<!-- Question: deploy-shared
   1.306 +
   1.307 +     <question id="deploy-shared">
   1.308 +            Do you need to be installed in shared location or only in user directory?
   1.309 +            <hint>
   1.310 +            Installation location shall not matter, if it does explain why.
   1.311 +            </hint>
   1.312 +        </question>
   1.313 +-->
   1.314 +<answer id="deploy-shared">
   1.315 +Either way is possible.
   1.316 +</answer>
   1.317 +
   1.318 +
   1.319 +
   1.320 +<!-- Question: exec-classloader
   1.321 +
   1.322 +     <question id="exec-classloader">
   1.323 +            Does your code uses own classloader?
   1.324 +            <hint>
   1.325 +            A bit unusual. Please explain why and what for.
   1.326 +            </hint>
   1.327 +        </question>
   1.328 +-->
   1.329 +<answer id="exec-classloader">
   1.330 +No.
   1.331 +</answer>
   1.332 +
   1.333 +
   1.334 +
   1.335 +<!-- Question: exec-component
   1.336 +
   1.337 +     <question id="exec-component">
   1.338 +            Is execution of your code influenced by (string) property
   1.339 +            of any of your components?
   1.340 +            
   1.341 +            <hint>
   1.342 +            Often <code>JComponent.getClientProperty</code>, <code>Action.getValue</code>
   1.343 +            or <code>PropertyDescriptor.getValue</code>, etc. are used to influence
   1.344 +            a behaviour of some code. This of course forms an interface that should
   1.345 +            be documented. Also if one depends on some interface that an object
   1.346 +            implements (<code>component instanceof Runnable</code>) that forms an
   1.347 +            API as well.
   1.348 +            </hint>
   1.349 +        </question>
   1.350 +-->
   1.351 +<answer id="exec-component">
   1.352 +No.
   1.353 +</answer>
   1.354 +
   1.355 +
   1.356 +
   1.357 +<!-- Question: exec-privateaccess
   1.358 +
   1.359 +     <question id="exec-privateaccess">
   1.360 +            Are you aware of any other part of the system calling some of 
   1.361 +            your methods by reflection?
   1.362 +            <hint>
   1.363 +            If so, describe the "contract" as an API. Likely private or friend one, but
   1.364 +            still API and consider rewrite of it.
   1.365 +            </hint>
   1.366 +        </question>
   1.367 +-->
   1.368 +<answer id="exec-privateaccess">
   1.369 +No.
   1.370 +</answer>
   1.371 +
   1.372 +
   1.373 +
   1.374 +<!-- Question: exec-property
   1.375 +
   1.376 +     <question id="exec-property">
   1.377 +            Is execution of your code influenced by any environment of
   1.378 +            system (<code>System.getProperty</code>) property?
   1.379 +            
   1.380 +            <hint>
   1.381 +            If there is a property that can change the behaviour of your 
   1.382 +            code, somebody will likely use it. You should describe what it does 
   1.383 +            and the stability category of this API. You may use
   1.384 +            <PRE>
   1.385 +                &lt;property name="id" category="private" &gt;
   1.386 +                    description of the property, where it is used, what it influence, etc.
   1.387 +                &lt;/property&gt;            
   1.388 +            </PRE>
   1.389 +            </hint>
   1.390 +        </question>
   1.391 +-->
   1.392 +<answer id="exec-property">
   1.393 +No.
   1.394 +</answer>
   1.395 +
   1.396 +
   1.397 +
   1.398 +<!-- Question: exec-reflection
   1.399 +
   1.400 +     <question id="exec-reflection">
   1.401 +            Does your code uses java.lang.reflect to execute some other code?
   1.402 +            <hint>
   1.403 +            This usually indicates a missing or unsufficient API in the other
   1.404 +            part of the system. If the other side is not aware of your dependency
   1.405 +            this contract can be easily broken.
   1.406 +            </hint>
   1.407 +        </question>
   1.408 +-->
   1.409 +<answer id="exec-reflection">
   1.410 +No.
   1.411 +</answer>
   1.412 +
   1.413 +
   1.414 +
   1.415 +<!-- Question: format-clipboard
   1.416 +
   1.417 +     <question id="format-clipboard">
   1.418 +            Which protocols your code reads/inserts when communicating with
   1.419 +            clipboard?
   1.420 +        </question>
   1.421 +-->
   1.422 +<answer id="format-clipboard">
   1.423 +Implementations of cut, copy and paste (<code>CutAction</code>, <code>CopyAction</code>
   1.424 +and <code>PasteAction</code>) reads/writes from/into clipboard. It uses standard
   1.425 +<a href="http://java.sun.com/j2se/1.4.1/docs/api/java/awt/datatransfer/package-summary.html">java datatransfer mechanism</a>
   1.426 +and <a href="http://www.netbeans.org/download/dev/javadoc/OpenAPIs/org/openide/util/datatransfer/package-summary.html">Netbeans extension to the mechanism</a>.
   1.427 +</answer>
   1.428 +
   1.429 +
   1.430 +<!-- Question: format-dnd
   1.431 +
   1.432 +     <question id="format-dnd">
   1.433 +            Which protocols your code understands during drag-n-drop?
   1.434 +        </question>
   1.435 +-->
   1.436 +<answer id="format-dnd">
   1.437 +Drag and drop is not implemented or used by this module.
   1.438 +</answer>
   1.439 +
   1.440 +
   1.441 +
   1.442 +<!-- Question: format-types
   1.443 +
   1.444 +     <question id="format-types">
   1.445 +            Which file formats your code reads or writes on disk?
   1.446 +        </question>
   1.447 +-->
   1.448 +<answer id="format-types">
   1.449 +It reads tld (Tag Library Descriptor) files as defined in 
   1.450 +the JSP 1.1 and JSP 1.2  specifications. 
   1.451 +It writes tld (Tag Library Descriptor) files as defined in 
   1.452 +the JSP 1.2  specification.
   1.453 +</answer>
   1.454 +
   1.455 +
   1.456 +
   1.457 +<!-- Question: lookup-lookup
   1.458 +
   1.459 +     <question id="lookup-lookup">
   1.460 +            Does your module uses <code>org.openide.util.Lookup</code>
   1.461 +            to find any components to communicate to? Which ones?
   1.462 +            
   1.463 +            <hint>
   1.464 +            Please describe the interfaces you are searching for, where 
   1.465 +            are defined, whether you are searching for just one or more of them,
   1.466 +            if the order is important, etc. Also clasify the stability of such
   1.467 +            API contract.
   1.468 +            </hint>
   1.469 +        </question>
   1.470 +-->
   1.471 +<answer id="lookup-lookup">
   1.472 +No.
   1.473 +</answer>
   1.474 +
   1.475 +
   1.476 +
   1.477 +<!-- Question: lookup-register
   1.478 +
   1.479 +     <question id="lookup-register">
   1.480 +            Do you register anything into the lookup for other to find? 
   1.481 +            <hint>
   1.482 +            Do you register using layer file or using <code>META-INF/services</code>?
   1.483 +            Who is supposed to find your component?
   1.484 +            </hint>
   1.485 +        </question>
   1.486 +-->
   1.487 +<answer id="lookup-register">
   1.488 +No.
   1.489 +</answer>
   1.490 +
   1.491 +
   1.492 +
   1.493 +<!-- Question: lookup-remove
   1.494 +
   1.495 +     <question id="lookup-remove">
   1.496 +            Do you remove entries of other modules from lookup?
   1.497 +            <hint>
   1.498 +            Why? Of course, that is possible, but it can be dangerous. Is the module
   1.499 +            your are masking resource from aware of what you are doing?
   1.500 +            </hint>
   1.501 +        </question>
   1.502 +-->
   1.503 +<answer id="lookup-remove">
   1.504 +No.
   1.505 +</answer>
   1.506 +
   1.507 +
   1.508 +
   1.509 +<!-- Question: perf-exit
   1.510 +
   1.511 +     <question id="perf-exit">
   1.512 +            Does your module executes anything on exit?
   1.513 +        </question>
   1.514 +-->
   1.515 +<answer id="perf-exit">
   1.516 +No.
   1.517 +</answer>
   1.518 +
   1.519 +
   1.520 +
   1.521 +<!-- Question: perf-huge_dialogs
   1.522 +
   1.523 +     <question id="perf-huge_dialogs">
   1.524 +            Does your module contain any dialogs or wizards with huge
   1.525 +            amount of GUI controls like combo boxes, lists, trees, text
   1.526 +            areas?
   1.527 +        </question>
   1.528 +-->
   1.529 +<answer id="perf-huge_dialogs">
   1.530 +The customizer for tags contains a moderately large amount of gui controls, 
   1.531 +but only 42% of actually being "huge."
   1.532 +</answer>
   1.533 +
   1.534 +
   1.535 +
   1.536 +<!-- Question: perf-limit
   1.537 +
   1.538 +     <question id="perf-limit">
   1.539 +            Are there any limits in number/size of elements your code
   1.540 +            can handle?
   1.541 +        </question>
   1.542 +-->
   1.543 +<answer id="perf-limit">
   1.544 +When tag handlers are generated, the java files are brought up in the source editor.
   1.545 +After about 100 files, this gets a bit slow.
   1.546 +</answer>
   1.547 +
   1.548 +
   1.549 +
   1.550 +<!-- Question: perf-mem
   1.551 +
   1.552 +     <question id="perf-mem">
   1.553 +            What is the amount of memory your component occupies? Estimate
   1.554 +            with a relaction to the number of windows, etc.
   1.555 +        </question>
   1.556 +-->
   1.557 +<answer id="perf-mem">
   1.558 +The module keeps an in-memory representation of all tag library descriptors
   1.559 +(tld files). The xml files tend to be 1 to 10 K in size. 
   1.560 +</answer>
   1.561 +
   1.562 +
   1.563 +
   1.564 +<!-- Question: perf-menus
   1.565 +
   1.566 +     <question id="perf-menus">
   1.567 +            Does your module use dynamically changing context menus or
   1.568 +            context sensitive actions with complicated logic for enable/disable?
   1.569 +        </question>
   1.570 +-->
   1.571 +<answer id="perf-menus">
   1.572 +No.
   1.573 +</answer>
   1.574 +
   1.575 +
   1.576 +
   1.577 +<!-- Question: perf-progress
   1.578 +
   1.579 +     <question id="perf-progress">
   1.580 +            Does your module executes some long running task?
   1.581 +            <hint>Typically they are tasks like connecting over
   1.582 +            network, computing huge amount of data, compilation.
   1.583 +            Such communication should be done asynchronously (for example
   1.584 +            using <code>RequestProcessor</code>), definitively it should 
   1.585 +            not block AWT thread.
   1.586 +            </hint>
   1.587 +        </question>
   1.588 +-->
   1.589 +<answer id="perf-progress">
   1.590 +Code generation can take some time writing java files. Progress is indicated with
   1.591 +messages in the ide's status bar. 
   1.592 +</answer>
   1.593 +
   1.594 +
   1.595 +
   1.596 +<!-- Question: perf-scale
   1.597 +
   1.598 +     <question id="perf-scale">
   1.599 +            Which external criteria influence the performance of your
   1.600 +            program (size of file in editor, number of files in menu, 
   1.601 +            in source directory, etc.) and how well your code scales?
   1.602 +            Please include some estimates.
   1.603 +        </question>
   1.604 +-->
   1.605 +<answer id="perf-scale">
   1.606 +Number of tags in a tag library. When it gets to over 100, generating code 
   1.607 +for all the tags takes a long time and a lot of memory, since each file is opened in the source editor. 
   1.608 +</answer>
   1.609 +
   1.610 +
   1.611 +
   1.612 +<!-- Question: perf-startup
   1.613 +
   1.614 +     <question id="perf-startup">
   1.615 +            Does your module executes anything on startup?
   1.616 +        </question>
   1.617 +-->
   1.618 +<answer id="perf-startup">
   1.619 +Currently the tld files are parsed as they are recognized. This is being
   1.620 +changed to have them parsed as they are needed. 
   1.621 +</answer>
   1.622 +
   1.623 +
   1.624 +
   1.625 +<!-- Question: perf-wakeup
   1.626 +
   1.627 +     <question id="perf-wakeup">
   1.628 +            Is any piece of your code waking up periodically?
   1.629 +        </question>
   1.630 +-->
   1.631 +<answer id="perf-wakeup">
   1.632 +No. Just the developer. 
   1.633 +</answer>
   1.634 +
   1.635 +
   1.636 +
   1.637 +<!-- Question: resources-file
   1.638 +
   1.639 +     <question id="resources-file">
   1.640 +            Does your module use <code>java.io.File</code> directly?
   1.641 +            
   1.642 +            <hint>
   1.643 +            NetBeans provide a logical wrapper over plain files called 
   1.644 +            <code>org.openide.filesystems.FileObject</code> that
   1.645 +            provides uniform access to such resources and is the prefered
   1.646 +            way that should be used. But of course there can be situations when
   1.647 +            this is not suitable.
   1.648 +            </hint>
   1.649 +        </question>
   1.650 +-->
   1.651 +<answer id="resources-file">
   1.652 +Yes, java.io.File is used to get absolute paths to files when generating
   1.653 +code and finding jar files. Also, paths can be specified for files which are 
   1.654 +not yet mounted. Their filesystems will be mounted when they are needed
   1.655 +(for example, when generating tag handlers into a user-specified directory). 
   1.656 +</answer>
   1.657 +
   1.658 +
   1.659 +
   1.660 +<!-- Question: resources-layer
   1.661 +
   1.662 +     <question id="resources-layer">
   1.663 +            Does your module provide own layer? Does it create some files or
   1.664 +            folders on it? What it is trying to communicate by that and with which 
   1.665 +            component?
   1.666 +            
   1.667 +            <hint>
   1.668 +            NetBeans allows automatic and declarative installation of resources 
   1.669 +            by module layers. Module register files into appropriate places
   1.670 +            and other components use that information to perform their task
   1.671 +            (build menu, toolbar, window layout, list of templates, set of
   1.672 +            options, etc.). 
   1.673 +            </hint>
   1.674 +        </question>
   1.675 +-->
   1.676 +<answer id="resources-layer">
   1.677 +The layer file is used for the following purposes:
   1.678 +<ul>
   1.679 +  <li>Register templates, which then appear in the <code>New...</code> menu.</li>
   1.680 +</ul>
   1.681 +</answer>
   1.682 +
   1.683 +
   1.684 +
   1.685 +<!-- Question: resources-mask
   1.686 +
   1.687 +     <question id="resources-mask">
   1.688 +            Does your module mask/hide/override any resource provided by another one in
   1.689 +            module layer? 
   1.690 +            
   1.691 +            <hint>
   1.692 +            If you mask a file provided by another module, you probably depend
   1.693 +            on that and do not want the other module to (for example) change
   1.694 +            the file's name. That module shall thus make that file available as an API
   1.695 +            of some stability category.
   1.696 +            </hint>
   1.697 +        </question>
   1.698 +-->
   1.699 +<answer id="resources-mask">
   1.700 +No.
   1.701 +</answer>
   1.702 +
   1.703 +
   1.704 +
   1.705 +<!-- Question: resources-read
   1.706 +
   1.707 +     <question id="resources-read">
   1.708 +            Does your module read any resources from layers? For what purpose?
   1.709 +            
   1.710 +            <hint>
   1.711 +            As this is some kind of intermodule dependency, it is a kind of API.
   1.712 +            Please describe it and clasify according to 
   1.713 +            <a href="http://openide.netbeans.org/tutorial/api-design.html#categories">
   1.714 +            common stability categories</a>.
   1.715 +            </hint>
   1.716 +        </question>
   1.717 +-->
   1.718 +<answer id="resources-read">
   1.719 +No.
   1.720 +</answer>
   1.721 +
   1.722 +</api-answers>