Add arch documents for two of the modules release35-QBE200303112350-BLD200303131400
authortor@netbeans.org
Fri, 28 Feb 2003 08:55:27 +0000
changeset 121765bc651c4d2e
parent 1216 bb4db416cff7
child 1218 c4e58be79d8e
Add arch documents for two of the modules
tasklist/arch/arch-tasklist-api.xml
tasklist/arch/arch-tasklist-core.xml
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/tasklist/arch/arch-tasklist-api.xml	Fri Feb 28 08:55:27 2003 +0000
     1.3 @@ -0,0 +1,176 @@
     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="1.0" date="2003/02/27"
    1.11 +    question-version="1.11"
    1.12 +    module="tasklist/api"
    1.13 +    author="tor@netbeans.org"
    1.14 +>
    1.15 +
    1.16 +    &api-questions;
    1.17 +
    1.18 +<answer id="arch-what">
    1.19 +    The TaskList API module provides an API to register suggestions in the tasklist suggestions view.
    1.20 +</answer>
    1.21 +
    1.22 +<answer id="dep-nb">
    1.23 +    <api name="FileSystems" type="import" category="official"
    1.24 +	    url="http://www.netbeans.org/download/dev/javadoc/OpenAPIs/org/openide/filesystems/doc-files/api.html"/>
    1.25 +</answer>
    1.26 +
    1.27 +<answer id="dep-non-nb">
    1.28 +    None.
    1.29 +</answer>
    1.30 +
    1.31 +<answer id="dep-platform">
    1.32 +    None.
    1.33 +</answer>
    1.34 +
    1.35 +<answer id="dep-jre">
    1.36 +    1.2.2
    1.37 +</answer>
    1.38 +
    1.39 +<answer id="dep-jrejdk">
    1.40 +    JRE.
    1.41 +</answer>
    1.42 +
    1.43 +    <answer id="deploy-jar">
    1.44 +        Only one .jar (<code>tasklist-api.jar</code>) file is deployed.
    1.45 +    </answer>
    1.46 +
    1.47 +    <answer id="deploy-nbm">
    1.48 +        Yes.
    1.49 +    </answer>
    1.50 +
    1.51 +    <answer id="deploy-shared">
    1.52 +        Shared or user.
    1.53 +    </answer>
    1.54 +
    1.55 +    <answer id="deploy-packages">
    1.56 +        No.
    1.57 +    </answer>
    1.58 +
    1.59 +    <answer id="compat-i18n">
    1.60 +        Yes.
    1.61 +    </answer>
    1.62 +
    1.63 +    <answer id="compat-standards">
    1.64 +        None.
    1.65 +    </answer>
    1.66 +
    1.67 +    <answer id="compat-version">
    1.68 +        Yes.
    1.69 +    </answer>
    1.70 +
    1.71 +    <answer id="resources-file">
    1.72 +        Not used.
    1.73 +    </answer>
    1.74 +
    1.75 +    <answer id="resources-mask">
    1.76 +        None.
    1.77 +    </answer>
    1.78 +
    1.79 +    <answer id="resources-layer">
    1.80 +        None.
    1.81 +    </answer>
    1.82 +
    1.83 +    <answer id="resources-read">
    1.84 +        None.
    1.85 +    </answer>
    1.86 +
    1.87 +    <answer id="lookup-lookup">
    1.88 +        Yes, it looks up SuggestionManager implementations (which
    1.89 +        implement an interface defined by this module) to provide
    1.90 +        it to clients (via SuggestionManager.getDefault()).
    1.91 +        It does not communicate with these instances - it simply
    1.92 +        provides them to clients.
    1.93 +    </answer>
    1.94 +
    1.95 +    <answer id="lookup-register">
    1.96 +        None.
    1.97 +    </answer>
    1.98 +
    1.99 +    <answer id="lookup-remove">
   1.100 +        None.
   1.101 +    </answer>
   1.102 +
   1.103 +    <answer id="exec-property">
   1.104 +        None.
   1.105 +    </answer>
   1.106 +
   1.107 +    <answer id="exec-component">
   1.108 +        No.
   1.109 +    </answer>
   1.110 +
   1.111 +    <answer id="exec-classloader">
   1.112 +        No.
   1.113 +    </answer>
   1.114 +
   1.115 +    <answer id="exec-reflection">
   1.116 +        No.
   1.117 +    </answer>
   1.118 +
   1.119 +    <answer id="exec-privateaccess">
   1.120 +        No.
   1.121 +    </answer>
   1.122 +
   1.123 +    <answer id="exec-process">
   1.124 +        No.
   1.125 +    </answer>
   1.126 +
   1.127 +    <answer id="exec-introspection">
   1.128 +        No.
   1.129 +    </answer>
   1.130 +
   1.131 +
   1.132 +    <answer id="format-types">
   1.133 +        None defined.
   1.134 +    </answer>
   1.135 +
   1.136 +    <answer id="format-dnd">
   1.137 +        None.
   1.138 +    </answer>
   1.139 +
   1.140 +    <answer id="format-clipboard">
   1.141 +        None.
   1.142 +    </answer>
   1.143 +
   1.144 +    <answer id="perf-startup">
   1.145 +        No.
   1.146 +    </answer>
   1.147 +
   1.148 +    <answer id="perf-exit">
   1.149 +        No.
   1.150 +    </answer>
   1.151 +
   1.152 +    <answer id="perf-scale">
   1.153 +        N/A.
   1.154 +    </answer>
   1.155 +
   1.156 +    <answer id="perf-limit">
   1.157 +        N/A.
   1.158 +    </answer>
   1.159 +
   1.160 +    <answer id="perf-mem">
   1.161 +        N/A.
   1.162 +    </answer>
   1.163 +
   1.164 +    <answer id="perf-wakeup">
   1.165 +        No.
   1.166 +    </answer>
   1.167 +
   1.168 +    <answer id="perf-progress">
   1.169 +        N/A
   1.170 +    </answer>
   1.171 +
   1.172 +    <answer id="perf-huge_dialogs">
   1.173 +        No.
   1.174 +    </answer>
   1.175 +
   1.176 +    <answer id="perf-menus">
   1.177 +        No.
   1.178 +    </answer>
   1.179 +</api-answers>
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/tasklist/arch/arch-tasklist-core.xml	Fri Feb 28 08:55:27 2003 +0000
     2.3 @@ -0,0 +1,694 @@
     2.4 +<?xml version="1.0" encoding="UTF-8"?>
     2.5 +<!DOCTYPE api-answers PUBLIC "-//NetBeans//DTD Arch Answers//EN" "../../nbbuild/antsrc/org/netbeans/nbbuild/Arch.dtd" [
     2.6 +  <!ENTITY api-questions SYSTEM "../../nbbuild/antsrc/org/netbeans/nbbuild/Arch-api-questions.xml">
     2.7 +]>
     2.8 +
     2.9 +<api-answers
    2.10 +  version="1.0" date="2003/02/27"
    2.11 +  question-version="1.11"
    2.12 +  module="tasklist/core"
    2.13 +  author="tor@netbeans.org"
    2.14 +>
    2.15 +
    2.16 +  &api-questions;
    2.17 +
    2.18 +
    2.19 +<!-- Question: arch-what
    2.20 +
    2.21 +     <question id="arch-what">
    2.22 +            What is this project good for?
    2.23 +            <hint>
    2.24 +            Please provide here few lines describing the the project, 
    2.25 +            what problem it should solve, provide links to documentation, 
    2.26 +            specifications, etc.
    2.27 +            </hint>
    2.28 +        </question>
    2.29 +-->
    2.30 +<answer id="arch-what">
    2.31 +This module provides basic support for the other tasklist modules which do real work. In particular, it provides basic window support; subtask support; clipboard handling; HTML export; Searching and Filtering; etc.
    2.32 +</answer>
    2.33 +
    2.34 +
    2.35 +<!-- Question: compat-i18n
    2.36 +
    2.37 +     <question id="compat-i18n">
    2.38 +            Is your module correctly internationalized?
    2.39 +            <hint>
    2.40 +            Correct internationalization means that it obeys instuctions 
    2.41 +            at <a href="http://www.netbeans.org/devhome/docs/i18n/index.html">
    2.42 +            NetBeans I18N pages</a>.
    2.43 +            </hint>
    2.44 +        </question>
    2.45 +-->
    2.46 +<answer id="compat-i18n">
    2.47 +Yes.
    2.48 +</answer>
    2.49 +
    2.50 +
    2.51 +
    2.52 +<!-- Question: compat-standards
    2.53 +
    2.54 +     <question id="compat-standards">
    2.55 +            Does the module implements or defines any standards? Is the 
    2.56 +            implementation exact or it deviates somehow?
    2.57 +        </question>
    2.58 +-->
    2.59 +<answer id="compat-standards">
    2.60 +No.
    2.61 +</answer>
    2.62 +
    2.63 +
    2.64 +
    2.65 +<!-- Question: compat-version
    2.66 +
    2.67 +     <question id="compat-version">
    2.68 +            Does your module properly coexists with earlier and future
    2.69 +            versions? Can you correctly read settings? Will future
    2.70 +            versions be able to read settings?
    2.71 +            
    2.72 +            <hint>
    2.73 +            Very helpful for reading settings is to store version number
    2.74 +            there, so future versions can decide whether how to read/convert
    2.75 +            the settings and older versions can ignore the new ones.
    2.76 +            </hint>
    2.77 +        </question>
    2.78 +-->
    2.79 +<answer id="compat-version">
    2.80 +The only persistence this modules gets involved with is basic state
    2.81 +persistence of tasklist windows; in particular, column widths, 
    2.82 +column visibility selection, sorting column, and sorting order.
    2.83 +It stores a version time stamp so it will be able to handle older
    2.84 +versions; it might be able to handle future versions (depends on
    2.85 +what those future versions are).
    2.86 +</answer>
    2.87 +
    2.88 +
    2.89 +
    2.90 +<!-- Question: dep-jre
    2.91 +
    2.92 +     <question id="dep-jre">
    2.93 +            Which version of JRE you need (1.2, 1.3, 1.4, etc.)?
    2.94 +            <hint>
    2.95 +            It is expected that if your module runs on 1.x that it will run 
    2.96 +            on 1.x+1 if no, state that please. Also describe here cases where
    2.97 +            you run different code on different versions of JRE and why.
    2.98 +            </hint>
    2.99 +        </question>
   2.100 +-->
   2.101 +<answer id="dep-jre">
   2.102 +JRE 1.3 or higher. It does use some JDK 1.4 features when available, 
   2.103 +but these are obtained via reflection.
   2.104 +</answer>
   2.105 +
   2.106 +
   2.107 +
   2.108 +<!-- Question: dep-jrejdk
   2.109 +
   2.110 +     <question id="dep-jrejdk">
   2.111 +            Do you require JDK or is JRE enough?
   2.112 +        </question>
   2.113 +-->
   2.114 +<answer id="dep-jrejdk">
   2.115 +JRE.
   2.116 +</answer>
   2.117 +
   2.118 +
   2.119 +
   2.120 +<!-- Question: dep-nb
   2.121 +
   2.122 +     <question id="dep-nb">
   2.123 +            What other NetBeans projects this one depends on?
   2.124 +            <hint>
   2.125 +            If you want, describe such projects as imported API using
   2.126 +            the <code>&lt;api name="identification" type="import or export" category="stable" url="where is the description" /&gt;</code>
   2.127 +            </hint>
   2.128 +        </question>
   2.129 +-->
   2.130 +<answer id="dep-nb">
   2.131 +It depends on
   2.132 +<ul>
   2.133 +<li>
   2.134 +    <api 
   2.135 +        name="OpenAPIs"
   2.136 +        type="import"
   2.137 +        category="stable"
   2.138 +        url="http://www.netbeans.org/download/dev/javadoc/OpenAPIs/"
   2.139 +    />
   2.140 +    NetBeans OpenAPIs
   2.141 +</li>
   2.142 +<li>
   2.143 +    <api 
   2.144 +        name="TaskListAPIs"
   2.145 +        type="import"
   2.146 +        category="stable"
   2.147 +        url="http://www.netbeans.org/download/dev/javadoc/TaskListAPI/index.html"
   2.148 +    />
   2.149 +    Task List APIs
   2.150 +</li>
   2.151 +</ul>
   2.152 +</answer>
   2.153 +
   2.154 +  
   2.155 +<!-- Question: dep-non-nb
   2.156 +
   2.157 +     <question id="dep-non-nb">
   2.158 +            What other non-NetBeans projects this one depends on?
   2.159 +            
   2.160 +            <hint>
   2.161 +            Some non-NetBeans projects are packaged as NetBeans modules
   2.162 +            (see <a href="http://libs.netbeans.org">libraries</a>) and
   2.163 +            it is prefered to use this approach when more modules may
   2.164 +            depend on such third-party library.
   2.165 +            </hint>
   2.166 +        </question>
   2.167 +-->
   2.168 +<answer id="dep-non-nb">
   2.169 +None.
   2.170 +</answer>
   2.171 +
   2.172 +
   2.173 +
   2.174 +<!-- Question: dep-platform
   2.175 +
   2.176 +     <question id="dep-platform">
   2.177 +            On which platforms your module run? Any? Does it run in the same
   2.178 +            way?
   2.179 +            <hint>
   2.180 +            If your module is using JNI or deals with special differences of
   2.181 +            OSes like filesystems, etc. please describe here what they are.
   2.182 +            </hint>
   2.183 +        </question>
   2.184 +-->
   2.185 +<answer id="dep-platform">
   2.186 +Runs identically on all J2SE platforms
   2.187 +</answer>
   2.188 +
   2.189 +
   2.190 +
   2.191 +<!-- Question: deploy-jar
   2.192 +
   2.193 +     <question id="deploy-jar">
   2.194 +            Do you deploy just module JAR file(s) or some other files?
   2.195 +            <hint>
   2.196 +            If your module consist just from one module JAR file, just confirm that.
   2.197 +            If it uses more than one JAR, describe where there are located, how
   2.198 +            they refer to each other. 
   2.199 +            If it consist of module JAR(s) and other files, please describe
   2.200 +            what is their purpose, why other files are necessary. Please 
   2.201 +            make sure that installation/deinstallation leaves the system 
   2.202 +            in state as it was before installation.
   2.203 +            </hint>
   2.204 +        </question>
   2.205 +-->
   2.206 +<answer id="deploy-jar">
   2.207 +In addition to the module jar (<code>tasklist-core.jar</code>) there
   2.208 +is also the help file: <code>docs/tasklist-manual.zip</code>.
   2.209 +</answer>
   2.210 +
   2.211 +
   2.212 +
   2.213 +<!-- Question: deploy-nbm
   2.214 +
   2.215 +     <question id="deploy-nbm">
   2.216 +            Can you deploy NBM via AutoUpdate center?
   2.217 +            <hint>
   2.218 +            If not why?
   2.219 +            </hint>
   2.220 +        </question>
   2.221 +-->
   2.222 +<answer id="deploy-nbm">
   2.223 +Yes.
   2.224 +</answer>
   2.225 +
   2.226 +
   2.227 +
   2.228 +<!-- Question: deploy-packages
   2.229 +
   2.230 +     <question id="deploy-packages">
   2.231 +            Are packages of your module made inaccessible by not declaring them
   2.232 +            public?
   2.233 +            
   2.234 +            <hint>
   2.235 +            NetBeans module system allows restriction of access rights to
   2.236 +            public classes of your module from other modules. This prevents
   2.237 +            unwanted dependencies of others on your code and should be used
   2.238 +            whenever possible (<a href="http://www.netbeans.org/download/apis/org/openide/doc-files/upgrade.html#3.4-public-packages">
   2.239 +            public packages
   2.240 +            </a>). 
   2.241 +            </hint>
   2.242 +        </question>
   2.243 +-->
   2.244 +<answer id="deploy-packages">
   2.245 +No.
   2.246 +</answer>
   2.247 +
   2.248 +
   2.249 +
   2.250 +<!-- Question: deploy-shared
   2.251 +
   2.252 +     <question id="deploy-shared">
   2.253 +            Do you need to be installed in shared location or only in user directory?
   2.254 +            <hint>
   2.255 +            Installation location shall not matter, if it does explain why.
   2.256 +            </hint>
   2.257 +        </question>
   2.258 +-->
   2.259 +<answer id="deploy-shared">
   2.260 +Either way is possible.
   2.261 +</answer>
   2.262 +
   2.263 +
   2.264 +
   2.265 +<!-- Question: exec-classloader
   2.266 +
   2.267 +     <question id="exec-classloader">
   2.268 +            Does your code uses own classloader?
   2.269 +            <hint>
   2.270 +            A bit unusual. Please explain why and what for.
   2.271 +            </hint>
   2.272 +        </question>
   2.273 +-->
   2.274 +<answer id="exec-classloader">
   2.275 +No.
   2.276 +</answer>
   2.277 +
   2.278 +
   2.279 +<!--        <question id="exec-process">
   2.280 +            Do you execute an external process from your module? How do you ensure
   2.281 +            that the result is the same on different platforms? Do you parse output?
   2.282 +            Do you depend on result code?
   2.283 +            <hint>
   2.284 +            If you feed an input, parse the output please declare that as an API.
   2.285 +            </hint>
   2.286 +        </question>
   2.287 +-->
   2.288 +
   2.289 +<answer id="exec-process">
   2.290 +No.
   2.291 +</answer>
   2.292 +        
   2.293 +<!--        <question id="exec-introspection">
   2.294 +            Does your module use any kind of runtime type information (<code>instanceof</code>,
   2.295 +            work with <code>java.lang.Class</code>, etc.)?
   2.296 +            <hint>
   2.297 +            Check for cases when you have an object of type A and you also
   2.298 +            expect it to (possibly) be of type B and do some special action. That
   2.299 +            should be documented. The same applies on operations in meta-level
   2.300 +            (Class.isInstance(...), Class.isAssignableFrom(...), etc.).
   2.301 +            </hint>
   2.302 +        </question>
   2.303 +-->
   2.304 +<answer id="exec-introspection">
   2.305 +Perhaps.
   2.306 +</answer>
   2.307 +
   2.308 +
   2.309 +<!-- Question: exec-component
   2.310 +
   2.311 +     <question id="exec-component">
   2.312 +            Is execution of your code influenced by (string) property
   2.313 +            of any of your components?
   2.314 +            
   2.315 +            <hint>
   2.316 +            Often <code>JComponent.getClientProperty</code>, <code>Action.getValue</code>
   2.317 +            or <code>PropertyDescriptor.getValue</code>, etc. are used to influence
   2.318 +            a behaviour of some code. This of course forms an interface that should
   2.319 +            be documented. Also if one depends on some interface that an object
   2.320 +            implements (<code>component instanceof Runnable</code>) that forms an
   2.321 +            API as well.
   2.322 +            </hint>
   2.323 +        </question>
   2.324 +-->
   2.325 +<answer id="exec-component">
   2.326 +No.
   2.327 +</answer>
   2.328 +
   2.329 +
   2.330 +
   2.331 +<!-- Question: exec-privateaccess
   2.332 +
   2.333 +     <question id="exec-privateaccess">
   2.334 +            Are you aware of any other part of the system calling some of 
   2.335 +            your methods by reflection?
   2.336 +            <hint>
   2.337 +            If so, describe the "contract" as an API. Likely private or friend one, but
   2.338 +            still API and consider rewrite of it.
   2.339 +            </hint>
   2.340 +        </question>
   2.341 +-->
   2.342 +<answer id="exec-privateaccess">
   2.343 +No.
   2.344 +</answer>
   2.345 +
   2.346 +
   2.347 +
   2.348 +<!-- Question: exec-property
   2.349 +
   2.350 +     <question id="exec-property">
   2.351 +            Is execution of your code influenced by any environment of
   2.352 +            system (<code>System.getProperty</code>) property?
   2.353 +            
   2.354 +            <hint>
   2.355 +            If there is a property that can change the behaviour of your 
   2.356 +            code, somebody will likely use it. You should describe what it does 
   2.357 +            and the stability category of this API. You may use
   2.358 +            <PRE>
   2.359 +                &lt;property name="id" category="private" &gt;
   2.360 +                    description of the property, where it is used, what it influence, etc.
   2.361 +                &lt;/property&gt;            
   2.362 +            </PRE>
   2.363 +            </hint>
   2.364 +        </question>
   2.365 +-->
   2.366 +<answer id="exec-property">
   2.367 +No.
   2.368 +</answer>
   2.369 +
   2.370 +
   2.371 +
   2.372 +<!-- Question: exec-reflection
   2.373 +
   2.374 +     <question id="exec-reflection">
   2.375 +            Does your code uses java.lang.reflect to execute some other code?
   2.376 +            <hint>
   2.377 +            This usually indicates a missing or unsufficient API in the other
   2.378 +            part of the system. If the other side is not aware of your dependency
   2.379 +            this contract can be easily broken.
   2.380 +            </hint>
   2.381 +        </question>
   2.382 +-->
   2.383 +<answer id="exec-reflection">
   2.384 +Yes. It accesses some JDK 1.4 APIs via reflection
   2.385 +(javax.imageio and java.beans.XMLEncoder/XMLDecoder).
   2.386 +</answer>
   2.387 +
   2.388 +
   2.389 +
   2.390 +<!-- Question: format-clipboard
   2.391 +
   2.392 +     <question id="format-clipboard">
   2.393 +            Which protocols your code reads/inserts when communicating with
   2.394 +            clipboard?
   2.395 +        </question>
   2.396 +-->
   2.397 +<answer id="format-clipboard">
   2.398 +This is TBD. We have Task&lt;-&gt;String converters, but to do more.
   2.399 +</answer>
   2.400 +
   2.401 +
   2.402 +
   2.403 +<!-- Question: format-dnd
   2.404 +
   2.405 +     <question id="format-dnd">
   2.406 +            Which protocols your code understands during drag-n-drop?
   2.407 +        </question>
   2.408 +-->
   2.409 +<answer id="format-dnd">
   2.410 +None.
   2.411 +</answer>
   2.412 +
   2.413 +
   2.414 +
   2.415 +<!-- Question: format-types
   2.416 +
   2.417 +     <question id="format-types">
   2.418 +            Which file formats your code reads or writes on disk?
   2.419 +        </question>
   2.420 +-->
   2.421 +<answer id="format-types">
   2.422 +It writes files through the OpenAPIs, specifically through the FileSystem API
   2.423 +and the Settings API.
   2.424 +It also uses the XMLDecoder/XMLEncoder to read/write bean-xml data structures.
   2.425 +</answer>
   2.426 +
   2.427 +
   2.428 +
   2.429 +<!-- Question: lookup-lookup
   2.430 +
   2.431 +     <question id="lookup-lookup">
   2.432 +            Does your module uses <code>org.openide.util.Lookup</code>
   2.433 +            to find any components to communicate to? Which ones?
   2.434 +            
   2.435 +            <hint>
   2.436 +            Please describe the interfaces you are searching for, where 
   2.437 +            are defined, whether you are searching for just one or more of them,
   2.438 +            if the order is important, etc. Also clasify the stability of such
   2.439 +            API contract.
   2.440 +            </hint>
   2.441 +        </question>
   2.442 +-->
   2.443 +<answer id="lookup-lookup">
   2.444 +The module is looking for the following implementations:
   2.445 +<ul>
   2.446 +  <li><code>org.netbeans.modules.tasklist.core.TaskViewListener</code> (several, order does not matter)</li>
   2.447 +  <li><code>org.openide.util.actions.SystemAction</code> (several, order matters)</li>
   2.448 +  <li><code>java.lang.ClassLoader</code> (just one)</li>
   2.449 +  <li><code>org.openide.filesystems.Repository</code> (just one)</li>
   2.450 +</ul>
   2.451 +The interesting one above is the TaskViewListener. This interface lets the separate editor module be notified of interesting events in the task view, such as view going visible/invisible, as well as item selection.
   2.452 +</answer>
   2.453 +
   2.454 +
   2.455 +
   2.456 +<!-- Question: lookup-register
   2.457 +
   2.458 +     <question id="lookup-register">
   2.459 +            Do you register anything into the lookup for other to find? 
   2.460 +            <hint>
   2.461 +            Do you register using layer file or using <code>META-INF/services</code>?
   2.462 +            Who is supposed to find your component?
   2.463 +            </hint>
   2.464 +        </question>
   2.465 +-->
   2.466 +<answer id="lookup-register">
   2.467 +No.
   2.468 +</answer>
   2.469 +
   2.470 +
   2.471 +
   2.472 +<!-- Question: lookup-remove
   2.473 +
   2.474 +     <question id="lookup-remove">
   2.475 +            Do you remove entries of other modules from lookup?
   2.476 +            <hint>
   2.477 +            Why? Of course, that is possible, but it can be dangerous. Is the module
   2.478 +            your are masking resource from aware of what you are doing?
   2.479 +            </hint>
   2.480 +        </question>
   2.481 +-->
   2.482 +<answer id="lookup-remove">
   2.483 +No.
   2.484 +</answer>
   2.485 +
   2.486 +
   2.487 +
   2.488 +<!-- Question: perf-exit
   2.489 +
   2.490 +     <question id="perf-exit">
   2.491 +            Does your module executes anything on exit?
   2.492 +        </question>
   2.493 +-->
   2.494 +<answer id="perf-exit">
   2.495 +No.
   2.496 +</answer>
   2.497 +
   2.498 +
   2.499 +
   2.500 +<!-- Question: perf-huge_dialogs
   2.501 +
   2.502 +     <question id="perf-huge_dialogs">
   2.503 +            Does your module contain any dialogs or wizards with huge
   2.504 +            amount of GUI controls like combo boxes, lists, trees, text
   2.505 +            areas?
   2.506 +        </question>
   2.507 +-->
   2.508 +<answer id="perf-huge_dialogs">
   2.509 +Yes. The filter dialog is fairly complex.
   2.510 +</answer>
   2.511 +
   2.512 +
   2.513 +
   2.514 +<!-- Question: perf-limit
   2.515 +
   2.516 +     <question id="perf-limit">
   2.517 +            Are there any limits in number/size of elements your code
   2.518 +            can handle?
   2.519 +        </question>
   2.520 +-->
   2.521 +<answer id="perf-limit">
   2.522 +No, although sorting and node creation will cause a bottleneck
   2.523 +for a huge number of tasks in the task list.
   2.524 +</answer>
   2.525 +
   2.526 +
   2.527 +
   2.528 +<!-- Question: perf-mem
   2.529 +
   2.530 +     <question id="perf-mem">
   2.531 +            What is the amount of memory your component occupies? Estimate
   2.532 +            with a relaction to the number of windows, etc.
   2.533 +        </question>
   2.534 +-->
   2.535 +<answer id="perf-mem">
   2.536 +The amount of data is proportional to the number of tasks in the tasklists.
   2.537 +</answer>
   2.538 +
   2.539 +
   2.540 +
   2.541 +<!-- Question: perf-menus
   2.542 +
   2.543 +     <question id="perf-menus">
   2.544 +            Does your module use dynamically changing context menus or
   2.545 +            context sensitive actions with complicated logic for enable/disable?
   2.546 +        </question>
   2.547 +-->
   2.548 +<answer id="perf-menus">
   2.549 +Yes. The contents of context menus may depend on the selected nodes.
   2.550 +The enable/disable logic is not complicated.
   2.551 +</answer>
   2.552 +
   2.553 +
   2.554 +
   2.555 +<!-- Question: perf-progress
   2.556 +
   2.557 +     <question id="perf-progress">
   2.558 +            Does your module executes some long running task?
   2.559 +            <hint>Typically they are tasks like connecting over
   2.560 +            network, computing huge amount of data, compilation.
   2.561 +            Such communication should be done asynchronously (for example
   2.562 +            using <code>RequestProcessor</code>), definitively it should 
   2.563 +            not block AWT thread.
   2.564 +            </hint>
   2.565 +        </question>
   2.566 +-->
   2.567 +<answer id="perf-progress">
   2.568 +No.
   2.569 +</answer>
   2.570 +
   2.571 +
   2.572 +
   2.573 +<!-- Question: perf-scale
   2.574 +
   2.575 +     <question id="perf-scale">
   2.576 +            Which external criteria influence the performance of your
   2.577 +            program (size of file in editor, number of files in menu, 
   2.578 +            in source directory, etc.) and how well your code scales?
   2.579 +            Please include some estimates.
   2.580 +        </question>
   2.581 +-->
   2.582 +<answer id="perf-scale">
   2.583 +Mainly number of tasks in the view.
   2.584 +</answer>
   2.585 +
   2.586 +
   2.587 +
   2.588 +<!-- Question: perf-startup
   2.589 +
   2.590 +     <question id="perf-startup">
   2.591 +            Does your module executes anything on startup?
   2.592 +        </question>
   2.593 +-->
   2.594 +<answer id="perf-startup">
   2.595 +No.
   2.596 +</answer>
   2.597 +
   2.598 +
   2.599 +
   2.600 +<!-- Question: perf-wakeup
   2.601 +
   2.602 +     <question id="perf-wakeup">
   2.603 +            Is any piece of your code waking up periodically?
   2.604 +        </question>
   2.605 +-->
   2.606 +<answer id="perf-wakeup">
   2.607 +No.
   2.608 +</answer>
   2.609 +
   2.610 +
   2.611 +
   2.612 +<!-- Question: resources-file
   2.613 +
   2.614 +     <question id="resources-file">
   2.615 +            Does your module use <code>java.io.File</code> directly?
   2.616 +            
   2.617 +            <hint>
   2.618 +            NetBeans provide a logical wrapper over plain files called 
   2.619 +            <code>org.openide.filesystems.FileObject</code> that
   2.620 +            provides uniform access to such resources and is the prefered
   2.621 +            way that should be used. But of course there can be situations when
   2.622 +            this is not suitable.
   2.623 +            </hint>
   2.624 +        </question>
   2.625 +-->
   2.626 +<answer id="resources-file">
   2.627 +Yes. The code to import tasklist files, and export to HTML, is
   2.628 +using java.io.File directly. The code to read/write tasklists is
   2.629 +also using File. I had some code earlier using FileObject but I
   2.630 +had lots of problems with it so I modified it to use File. The
   2.631 +code is localized and it shouldn't be too hard to make it use
   2.632 +FileObject again, especially when "/" will be mounted by default
   2.633 +(NetBeans 4.0).
   2.634 +</answer>
   2.635 +
   2.636 +
   2.637 +
   2.638 +<!-- Question: resources-layer
   2.639 +
   2.640 +     <question id="resources-layer">
   2.641 +            Does your module provide own layer? Does it create some files or
   2.642 +            folders on it? What it is trying to communicate by that and with which 
   2.643 +            component?
   2.644 +            
   2.645 +            <hint>
   2.646 +            NetBeans allows automatic and declarative installation of resources 
   2.647 +            by module layers. Module register files into appropriate places
   2.648 +            and other components use that information to perform their task
   2.649 +            (build menu, toolbar, window layout, list of templates, set of
   2.650 +            options, etc.). 
   2.651 +            </hint>
   2.652 +        </question>
   2.653 +-->
   2.654 +<answer id="resources-layer">
   2.655 +Yes. It registers a toolbar, a java help set, and a transfer handler.
   2.656 +</answer>
   2.657 +
   2.658 +
   2.659 +
   2.660 +<!-- Question: resources-mask
   2.661 +
   2.662 +     <question id="resources-mask">
   2.663 +            Does your module mask/hide/override any resource provided by another one in
   2.664 +            module layer? 
   2.665 +            
   2.666 +            <hint>
   2.667 +            If you mask a file provided by another module, you probably depend
   2.668 +            on that and do not want the other module to (for example) change
   2.669 +            the file's name. That module shall thus make that file available as an API
   2.670 +            of some stability category.
   2.671 +            </hint>
   2.672 +        </question>
   2.673 +-->
   2.674 +<answer id="resources-mask">
   2.675 +No.
   2.676 +</answer>
   2.677 +
   2.678 +
   2.679 +
   2.680 +<!-- Question: resources-read
   2.681 +
   2.682 +     <question id="resources-read">
   2.683 +            Does your module read any resources from layers? For what purpose?
   2.684 +            
   2.685 +            <hint>
   2.686 +            As this is some kind of intermodule dependency, it is a kind of API.
   2.687 +            Please describe it and clasify according to 
   2.688 +            <a href="http://openide.netbeans.org/tutorial/api-design.html#categories">
   2.689 +            common stability categories</a>.
   2.690 +            </hint>
   2.691 +        </question>
   2.692 +-->
   2.693 +<answer id="resources-read">
   2.694 +No.
   2.695 +</answer>
   2.696 +
   2.697 +</api-answers>