<?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.24"
  author="milan.kuchtiak@sun.com,ludovic.champenois@sun.com,pavel.buzek@sun.com"
>

  &api-questions;

<!--
        <question id="arch-what" when="init" >
            What is this project good for?
            <hint>
            Please provide here a few lines describing the project, 
            what problem it should solve, provide links to documentation, 
            specifications, etc.
            </hint>
        </question>
-->
        
<answer id="arch-what">
The project is based on the requirement to access all J2ee deployment descriptor files 
for other Netbeans modules in a simple and J2EE spec.-independant way. This module replaces
the Web DD API (web/ddapi) module form the Web area.
</answer>


<!--
        <question id="arch-overall" when="init">
            Describe the overall architecture. 
            <hint>
            What will be API for 
            <a href="http://openide.netbeans.org/tutorial/api-design.html#design.apiandspi">
                clients and what support API</a>? 
            What parts will be pluggable?
            How will plug-ins be registered? Please use <code>&lt;api type="export"/&gt;</code>
            to describe your general APIs.
            If possible please provide 
            simple diagrams. 
            </hint>
        </question>
-->
<answer id="arch-overall">
    <api 
        name="J2EEDDAPI"
        type="export"
        category="friend"
        group="java"
        url="index.html">
The J2EE DD API is based on a bunch of interfaces based on the deployment descriptor xml structure. The names of interfaces correspond to the names of deployment descriptor elements in the J2EE DD files like ejb-jar.xml, web.xml or applicaiton.xml.
The DD API interfaces are organized in  a hierarchic tree structure and are accassible through the root (<b>Application</b>), (<b>WebApp</b>) or (<b>EjbJar</b>) interfaces.
The implementation of DD API interfaces is hidden for clients.  It is based on schema2beans infrastructure and is the DD version - specific. 
(there is always requirement to support at least two successive versions of DD specification). 
The implementation is located in <b>non-public</b> packages of <a href="index.html">j2ee/ddapi</a> module. 
It is expected that interfaces will not be implemented by the client.<br/>
The root of the deployment descriptor is accessible through the <b>DDProvider</b> class. 
    </api>
</answer>
<!--        
        <question id="arch-usecases" when="init">
            Describe the main <a href="http://openide.netbeans.org/tutorial/api-design.html#usecase">
            use cases</a> of the new API. Who will use it at
            what circumstances and what will be the typical code to write
            to use the module.
        </question>
-->
<answer id="arch-usecases">

<usecase id="web-dd-1" name="J2EE Application" >
J2EE Aplications often need to explore the included modules. 
Ejb modules are usually used as components of a J2EE application.
Web modules are usually used as clients or front-end  components of J2EE application.<br/>
There is a requirement to be able to identify the sub-elements of web modules that are included to J2EE Application. 
For example, the J2EE Application need to be able to create a web module (<b>WEB client</b>), 
with the default web.xml file, then create a display-name and add a servlet element to deployment descriptor.
Similarly, the J2EE Application need to be able to create an ejb module, with the default ejb-jar.xml file, 
then create a display-name and add an ejb element to deployment descriptor.
</usecase>

<usecase id="web-dd-2" name="Web Services Based on Servlet">
	JAX-RPC Web Services based on servlet need to include specific elemens to deployment descriptor and map the service to a URL that specifies where the WSDL file can be found.<br/>
	See the example (JWSDP1.2)  :
<pre>
<code>
<b>&lt;listener&gt;</b>
  <b>&lt;listener-class&gt;</b>com.sun.xml.rpc.server.http.JAXRPCContextListener<b>&lt;/listener-class&gt;</b>
<b>&lt;/listener&gt;</b>
<b>&lt;servlet&gt;</b>
  <b>&lt;servlet-name&gt;</b>Hello<b>&lt;/servlet-name&gt;</b>
  <b>&lt;display-name&gt;</b>Hello<b>&lt;/display-name&gt;</b>
  <b>&lt;description&gt;</b>JAX-RPC endpoint - Hello<b>&lt;/description&gt;</b>
  <b>&lt;servlet-class&gt;</b>com.sun.xml.rpc.server.http.JAXRPCServlet<b>&lt;/servlet-class&gt;</b>
  <b>&lt;load-on-startup&gt;</b>1<b>&lt;/load-on-startup&gt;</b>
<b>&lt;/servlet&gt;</b>
<b>&lt;servlet-mapping&gt;</b>
 <b> &lt;servlet-name&gt;</b>Hello<b>&lt;/servlet-name&gt;</b>
  <b>&lt;url-pattern&gt;/</b>hello<b>&lt;/url-pattern&gt;</b>
<b>&lt;/servlet-mapping&gt;</b>
</code>
</pre>
</usecase>

<usecase id="web-dd-3" name="Web Application Wizards">
	There are several wizards that need to insert elements to DD regarding the type of the wizard.<br/>
	Examples :
	<ul>
	<li><b>Web Module Wizard</b> - need to specify the web module  &lt;display-name&gt; and &lt;locale-encoding-mapping-list&gt;</li>
	<li><b>Servlet Wizard</b> - need to specify the &lt;servlet&gt; and &lt;servlet-mapping&gt; elements</li>
	<li><b>Listener Wizard</b> - need to specify the &lt;listener&gt; element</li>
	<li><b>Filter Wizard</b> - need to specify the &lt;filter&gt; and &lt;filter-mapping&gt; elements</li>
	</ul>
    <p/>
</usecase>

<usecase id="web-dd-4" name="DD Editor">
<p>
	DD Editor significantly improves DD editing in the way that user doesn't need to know the syntax of 
        deployment descriptor file.
        It is desirable for DD Editor module to work with DD API interfaces instead of  
        working with  s2b beans directly (generated specifically for the particular version of DD). 
        This method was used in previous versions of IDE.
</p>
</usecase>

<usecase id="web-dd-5" name="Other modules that need to modify the deployment descriptor">
	This is the list of other possible clients of DD API :
	<ul>
	<li><b>RAVE</b></li>
	<li><b>JATO module</b></li>
	<li><b>STRUTS module</b></li>
	</ul>
An example of this is adding EJB reference to allow the module to call an EJB in another EJB module.
<p/>
</usecase>

</answer>
<!--         
        <question id="arch-time" when="init">
            What are the time estimates of the work?
            <hint>
            Please express your estimates of how long the design, implementation,
            stabilization are likely to last. How many people will be needed to
            implement this and what is the expected milestone the work should be 
            ready.
            </hint>
        </question>
-->
<answer id="arch-time">
All the programming work is already done. It has been extensively reusing the same patterns as the equivalent module for Web DD APIs.
J2EE 1.3 and 1.4 APIS are covered.
</answer>
<!--    
        <question id="arch-quality" when="init">
            How the quality of your code will be tested and 
            how future regressions are going to be prevented?
            <hint>
            What kind of testing you want to use? What/how much area of functionality
            should be covered by the tests? 
            </hint>
        </question>
-->
<answer id="arch-quality">
Web DD APIs have a set of unit tests. Application and EJB part is not covered.
</answer>
<!-- 
    </category>
    <category id="dep" name="Project and platform dependencies">
        <question id="dep-nb" when="init" >
            What other NetBeans projects and modules does this one depend on?
            <hint>
            If you want, describe such projects as imported API using
            the <code>&lt;api name="identification" type="import or export" category="stable" url="where is the description" /&gt;</code>
            </hint>
        </question>
-->
<answer id="dep-nb">
    <defaultanswer generate='none' />
It uses these API's:

<ul>
<li>
    <api 
        name="FileSystems"
        type="import"
        group="java"
        category="official"
        url="@org-openide-filesystems@/overview-summary.html">
    NetBeans Open APIs / FileSystems
    </api>
</li>
<li>
    <api 
        name="Loaders"
        type="import"
        category="official"
        group="java"
        url="@org-openide-loaders@/overview-summary.html">
    NetBeans Open APIs / Loaders
    </api>
</li>
<li>
    <api 
        name="schema2beans"
        type="import"
        category="stable"
        group="java"
        url="">
    Schema2beans infrastructure
    </api>
<b>Runtime dependency - the implementation part depends on this library. The implementation part is a part of j2ee/ddapis module (org.netbeans.modules.j2ee.dd.impl package).
</b>
</li>
</ul>
</answer>
<!--
        <question id="dep-non-nb" when="init" >
            What other projects outside NetBeans does this one depend on?
            
            <hint>
            Some non-NetBeans projects are packaged as NetBeans modules
            (see <a href="http://libs.netbeans.org/">libraries</a>) and
            it is preferred to use this approach when more modules may
            depend on such third-party library.
            </hint>
        </question>
-->
<answer id="dep-non-nb">
<ul>
    <li>
        <api group="java" name="Xerces" type="import" category="third" url="">
            for obtaining an xml parser able to validate against the XML schema (Crimson does not).<br/>
           Used in <a href="org/netbeans/modules/j2ee/dd/api/web/DDProvider.html">DDProvider</a>.
        </api>
    </li>
    <li>
        <api group="dtd" category="standard" name="web-app_2_2.dtd" type="import" url="http://java.sun.com/products/servlet/2.2/">
        DTD for web.xml in Servlet API 2.2
        </api>
    </li>
    <li>
        <api group="dtd" category="standard" name="web-app_2_3.dtd" type="import" url="http://java.sun.com/products/servlet/download.html">
        DTD for web.xml in Servlet API 2.3
        </api>
    </li>
    <li>
        <api group="dtd" category="standard" name="web-app_2_4.xsd" type="import" url="http://java.sun.com/products/servlet/download.html">
        Schema for web.xml in Servlet API 2.4
        </api>
    </li>
    <li>
        <api group="dtd" category="standard" name="appplication_1_3.dtd" type="import" url="http://java.sun.com/j2ee/download.html">
        DTD for application.xml in J2EE 1.3
        </api>
    </li>
    <li>
        <api group="dtd" category="standard" name="application_1_4.xsd" type="import" url="http://java.sun.com/j2ee/download.html">
        Schema for application.xml in J2EE 1.4
        </api>
    </li>
    <li>
        <api group="dtd" category="standard" name="ejb-jar_1_1.dtd" type="import" url="http://java.sun.com/products/ejb/docs.html">
        DTD for ejb-jar.xml in EJB 1.1
        </api>
    </li>
    <li>
        <api group="dtd" category="standard" name="ejb-jar_2_0.dtd" type="import" url="http://java.sun.com/products/ejb/docs.html">
        DTD for ejb-jar.xml in EJB 2.0
        </api>
    </li>
    <li>
        <api group="dtd" category="standard" name="ejb-jar_2_1.xsd" type="import" url="http://java.sun.com/products/ejb/docs.html">
        Schema for ejb-jar.xml in EJB 2.1
        </api>
    </li>
    <li>
        <api group="dtd" category="standard" name="j2ee_1_4.xsd" type="import" url="http://java.sun.com/j2ee/download.html">
        Schema for deployment descriptors in J2EE 1.4
        </api>
    </li>
    <li>
        <api group="dtd" category="standard" name="j2ee_web_services_client_1_1.xsd" type="import" url="">
        Schema for wev services client 1.1.
        </api>
    </li>
    <li>
        <api group="dtd" category="standard" name="jsp_2_0.xsd" type="import" url="">
        Schema for JSP 2.0.
        </api>
    </li>
</ul>
</answer>
<!-- 
        <question id="dep-platform" when="init" >
            On which platforms does your module run? Does it run in the same
            way on each?
            <hint>
            If your module is using JNI or deals with special differences of
            OSes like filesystems, etc. please describe here what they are.
            </hint>
        </question>
-->
<answer id="dep-platform">
100% pure Java. It should run anywhere.
</answer>
<!-- 
        <question id="dep-jre" when="final" >
            Which version of JRE do you need (1.2, 1.3, 1.4, etc.)?
            <hint>
            It is expected that if your module runs on 1.x that it will run 
            on 1.x+1 if no, state that please. Also describe here cases where
            you run different code on different versions of JRE and why.
            </hint>
        </question>
-->
<answer id="dep-jre">
<b>JRE 1.4</b> or <b>JRE 1.3</b> with <b>JAXP</b>
</answer>
<!-- 
        <question id="dep-jrejdk" when="final" >
            Do you require the JDK or is the JRE enough?
        </question>
-->
<answer id="dep-jrejdk">
<b>JRE 1.4</b> or <b>JRE 1.3</b> with <b>JAXP</b>
</answer>
<!-- 
    </category>
    <category id="deploy" name="Deployment">
        <question id="deploy-jar" when="impl" >
            Do you deploy just module JAR file(s) or other files as well?
            <hint>
            If your module consists of just one module JAR file, just confirm that.
            If it uses more than one JAR, describe where they are located, how
            they refer to each other. 
            If it consist of module JAR(s) and other files, please describe
            what is their purpose, why other files are necessary. Please 
            make sure that installation/uninstallation leaves the system 
            in state as it was before installation.
            </hint>
        </question>
-->
<answer id="deploy-jar">
No other files are deployed.
</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">
Yes
</answer>
<!-- 
        <question id="deploy-shared" when="final" >
            Do you need to be installed in the shared location only, or in the user directory only,
            or can your module be installed anywhere?
            <hint>
            Installation location shall not matter, if it does explain why.
            Consider also whether <code>InstalledFileLocator</code> can help.
            </hint>
        </question>
-->
<answer id="deploy-shared">
Anywhere.
</answer>
<!--
        <question id="deploy-packages" when="init" >
            Are packages of your module made inaccessible by not declaring them public?
            <hint>
            NetBeans module system allows restriction of access rights to
            public classes of your module from other modules. This prevents
            unwanted dependencies of others on your code and should be used
            whenever possible (<a href="http://www.netbeans.org/download/javadoc/OpenAPIs/org/openide/doc-files/upgrade.html#3.4-public-packages">
            public packages
            </a>). If you do not restrict access to your classes you are
            making it too easy for other people to misuse your implementation
            details, that is why you should have good reason for not 
            restricting package access.
            </hint>
        </question>
-->
<answer id="deploy-packages">
Yes. Public packages of DD API module are specified in module manifest file :<br/><br/>
<b>OpenIDE-Module-Public-Packages: org.netbeans.modules.j2ee.api.dd.**</b><br/>
(the DDProvider class and interfaces for manipulation with ejb-jar.xml, web.xml or application.xml files)
</answer>
<answer id="deploy-dependencies">
Nothing.
</answer>
<!-- 
    </category>
    <category id="compat" name="Compatibility with environment">
        <question id="compat-i18n" when="impl" >
            Is your module correctly internationalized?
            <hint>
            Correct internationalization means that it obeys instructions 
            at <a href="http://www.netbeans.org/download/dev/javadoc/org-openide-modules/org/openide/modules/doc-files/i18n-branding.html">
            NetBeans I18N pages</a>.
            </hint>
        </question>
-->
<answer id="compat-i18n">
Yes.
</answer>
<!-- 
        <question id="compat-standards" when="init" >
            Does the module implement or define any standards? Is the 
            implementation exact or does it deviate somehow?
        </question>
-->
<answer id="compat-standards">
The DD API implements the <b>Ejb 1.1</b>,  <b>Ejb 2.0 </b>and <b>Ejb 2.0</b>, J2EE 1.3 
and 1.4 for Application specifications and <b>Servlet2.3</b> and <b>Servlert2.4</b> specification. 
It quietly supports the <b>Servlet2.2</b> but not checks the syntactical correctness of such web.xml files.
The handling of different versions is supported by throwing the <b>VersionNotSupportedException</b> 
in case the specific version doesn't support the specific method. 
</answer>
<!-- 
        <question id="compat-version" when="impl" >
            Can your module coexist with earlier and future
            versions of itself? Can you correctly read all old settings? Will future
            versions be able to read your current settings? Can you read
            or politely ignore settings stored by a future version?
            
            <hint>
            Very helpful for reading settings is to store version number
            there, so future versions can decide whether how to read/convert
            the settings and older versions can ignore the new ones.
            </hint>
        </question>
-->
<answer id="compat-version">
The DD API need do be flexible enough towards the future changes in J2EE specification. Nowadays DD API accepts both the DTD and XML schema files. 
It is expected that in future the XML schema for deployment descriptor will be changed. 
The DD API is prepared for changes that either break or not break the backward compatibility regarding the J2EE specification.<br/>
It is expected that :
<ul>
<li>some interfaces/methods can be added for new versions</li>
<li>some methods can turned to throw the VersionNotSupportedException in the future</li>
</ul><br/>
There is supossed that DD API will support at least 2 successive versions of XML schema for J2EE application deployment descriptor.<br/><br/>
As implementation is supposed to be fully the part of j2ee/ddapi module, no problems with adding new interfaces/methods to the future versions of DD API are expected.<br/>
 <b>This will be specified clearly in the API documentation</b>.
</answer>
<!-- 
    </category>
    <category id="resources" name="Access to resources">
        <question id="resources-file" when="final">
            Does your module use <code>java.io.File</code> directly?       
            <hint>
            NetBeans provide a logical wrapper over plain files called 
            <code>org.openide.filesystems.FileObject</code> that
            provides uniform access to such resources and is the preferred
            way that should be used. But of course there can be situations when
            this is not suitable.
            </hint>
        </question>
-->
<answer id="resources-file">
No.
</answer>
<!-- 
        <question id="resources-layer" when="final">
            Does your module provide own layer? Does it create any files or
            folders in it? What it is trying to communicate by that and with which 
            components?
            
            <hint>
            NetBeans allows automatic and declarative installation of resources 
            by module layers. Module register files into appropriate places
            and other components use that information to perform their task
            (build menu, toolbar, window layout, list of templates, set of
            options, etc.). 
            </hint>
        </question>
-->
<answer id="resources-layer">
No.
</answer>
<!-- 
        <question id="resources-read" when="final">
            Does your module read any resources from layers? For what purpose?
            
            <hint>
            As this is some kind of intermodule dependency, it is a kind of API.
            Please describe it and classify according to 
            <a href="http://openide.netbeans.org/tutorial/api-design.html#categories">
            common stability categories</a>.
            </hint>
        </question>
-->
<answer id="resources-read">
No.
</answer>
<!--
        <question id="resources-mask" when="final">
            Does your module mask/hide/override any resources provided by other modules in
            their layers?
            
            <hint>
            If you mask a file provided by another module, you probably depend
            on that and do not want the other module to (for example) change
            the file's name. That module shall thus make that file available as an API
            of some stability category.
            </hint>
        </question>
    </category>
-->
<answer id="resources-mask">
No.
</answer>
<!--
    <category id="lookup" name="Lookup of components">
        <question id="lookup-lookup" when="init" >
            Does your module use <code>org.openide.util.Lookup</code>
            to find any components to communicate with? Which ones?
            
            <hint>
            Please describe the interfaces you are searching for, where 
            are defined, whether you are searching for just one or more of them,
            if the order is important, etc. Also classify the stability of such
            API contract.
            </hint>
        </question>
-->
<answer id="lookup-lookup">
No.
</answer>
<!--
        <question id="lookup-register" when="final" >
            Do you register anything into lookup for other code to find?
            <hint>
            Do you register using layer file or using <code>META-INF/services</code>?
            Who is supposed to find your component?
            </hint>
        </question>
-->
<answer id="lookup-register">
No.
</answer>
<!--
        <question id="lookup-remove" when="final" >
            Do you remove entries of other modules from lookup?
            <hint>
            Why? Of course, that is possible, but it can be dangerous. Is the module
            your are masking resource from aware of what you are doing?
            </hint>
        </question>
-->
<answer id="lookup-remove">
No.
</answer>
<!--
    </category>
-->
    <!-- classification of interfaces -->
    <!-- package names -->
<!--
    <category id="exec" name="Execution Environment">
        <question id="exec-property" when="impl" >
            Is execution of your code influenced by any environment or
            Java system (<code>System.getProperty</code>) property?
            
            <hint>
            If there is a property that can change the behavior of your 
            code, somebody will likely use it. You should describe what it does 
            and the <a href="http://openide.netbeans.org/tutorial/api-design.html#life">stability category</a>
            of this API. You may use
            <pre>
                &lt;api type="export" group="property" name="id" category="private" url="http://..."&gt;
                    description of the property, where it is used, what it influence, etc.
                &lt;/api&gt;            
            </pre>
            </hint>
        </question>
-->
<answer id="exec-property">
No.
</answer>
<!--
        <question id="exec-component" when="impl" >
            Is execution of your code influenced by any (string) property
            of any of your components?
            
            <hint>
            Often <code>JComponent.getClientProperty</code>, <code>Action.getValue</code>
            or <code>PropertyDescriptor.getValue</code>, etc. are used to influence
            a behavior of some code. This of course forms an interface that should
            be documented. Also if one depends on some interface that an object
            implements (<code>component instanceof Runnable</code>) that forms an
            API as well.
            </hint>
        </question>
-->
<answer id="exec-component">
No.
</answer>
<!--
        <question id="exec-classloader" when="impl" >
            Does your code create its own class loader(s)?
            <hint>
            A bit unusual. Please explain why and what for.
            </hint>
        </question>
-->
<answer id="exec-classloader">
No.
</answer>
<!--
        <question id="exec-reflection" when="impl" >
            Does your code use Java Reflection to execute other code?
            <hint>
            This usually indicates a missing or insufficient API in the other
            part of the system. If the other side is not aware of your dependency
            this contract can be easily broken.
            </hint>
        </question>
-->
<answer id="exec-reflection">
Not directly. The implementation part of DD API uses the reflection when implementing the :
<ul>
	<li><b>public CommonDDBean findBeanByName(String beanName, String propertyName, String value);</b> method</li>
</ul>
</answer>
<!--
        <question id="exec-privateaccess" when="final" >
            Are you aware of any other parts of the system calling some of 
            your methods by reflection?
            <hint>
            If so, describe the "contract" as an API. Likely private or friend one, but
            still API and consider rewrite of it.
            </hint>
        </question>
-->
<answer id="exec-privateaccess">
No.
</answer>
<!--
        <question id="exec-process" when="impl" >
            Do you execute an external process from your module? How do you ensure
            that the result is the same on different platforms? Do you parse output?
            Do you depend on result code?
            <hint>
            If you feed an input, parse the output please declare that as an API.
            </hint>
        </question>
-->
<answer id="exec-process">
No.
</answer>
<!--
        <question id="exec-introspection" when="impl" >
            Does your module use any kind of runtime type information (<code>instanceof</code>,
            work with <code>java.lang.Class</code>, etc.)?
            <hint>
            Check for cases when you have an object of type A and you also
            expect it to (possibly) be of type B and do some special action. That
            should be documented. The same applies on operations in meta-level
            (Class.isInstance(...), Class.isAssignableFrom(...), etc.).
            </hint>
        </question>
-->
<answer id="exec-introspection">
Not directly. The implementation of DD API uses the introspection in :
<ul>
	<li><b>public CommonDDBean createBean(String beanName) throws ClassNotFoundException;</b> method</li>
</ul>
</answer>
<!--
        <question id="exec-threading" when="impl">
            What threading models, if any, does your module adhere to?
            <hint>
                If your module calls foreign APIs which have a specific threading model,
                indicate how you comply with the requirements for multithreaded access
                (synchronization, mutexes, etc.) applicable to those APIs.
                If your module defines any APIs, or has complex internal structures
                that might be used from multiple threads, declare how you protect
                data against concurrent access, race conditions, deadlocks, etc.,
                and whether such rules are enforced by runtime warnings, errors, assertions, etc.
                Examples: a class might be non-thread-safe (like Java Collections); might
                be fully thread-safe (internal locking); might require access through a mutex
                (and may or may not automatically acquire that mutex on behalf of a client method);
                might be able to run only in the event queue; etc.
                Also describe when any events are fired: synchronously, asynchronously, etc.
                Ideas: <a href="http://core.netbeans.org/proposals/threading/index.html#recommendations">Threading Recommendations</a> (in progress)
            </hint>
        </question>
-->
<answer id="exec-threading">
No.
</answer>
<!--
    </category>
    <category id="format" name="Format of files and protocols">
        <question id="format-types" when="impl" >
            Which protocols and file formats (if any) does your module read or write on disk,
            or transmit or receive over the network?
        </question>
-->
<answer id="format-types">
XML format specified by both DTD and XML schema.
</answer>
<!--
        <question id="format-dnd" when="impl" >
            Which protocols (if any) does your code understand during Drag &amp; Drop?
            <hint>
            Often Node's deal with clipboard by usage of <code>Node.drag, Node.getDropType</code>. 
            Check your code for overriding these methods. Btw. if they are not overridden, they
            by default delegate to <code>Node.clipboardCopy, Node.clipboardCut and Node.pasteTypes</code>.
            </hint>
        </question>
-->
<answer id="format-dnd">
Not applied.
</answer>
<!--
        <question id="format-clipboard" when="impl" >
            Which data flavors (if any) does your code read from or insert to
            the clipboard (by access to clipboard on means calling methods on <code>java.awt.datatransfer.Transferable</code>?
            
            <hint>
            Often Node's deal with clipboard by usage of <code>Node.clipboardCopy, Node.clipboardCut and Node.pasteTypes</code>.
            Check your code for overriding these methods.
            </hint>
        </question>
-->
<answer id="format-clipboard">
Not applied.
</answer>
<!--
    </category>
    <category id="performance" name="Performance and Scalability">
        <question id="perf-startup" when="final" >
            Does your module run any code on startup?
        </question>
-->
<answer id="perf-startup">
No.
</answer>
<!--
        <question id="perf-exit" when="final">
            Does your module run any code on exit?
        </question>
-->
<answer id="perf-exit">
No.
</answer>
<!--
        <question id="perf-scale" when="init">
            Which external criteria influence the performance of your
            program (size of file in editor, number of files in menu, 
            in source directory, etc.) and how well your code scales?
            <hint>
            Please include some estimates, there are other more detailed 
            questions to answer in later phases of implementation. 
            </hint>
        </question>
-->
<answer id="perf-scale">
The size of ejb-jar.xml or application.xml files, the performance of schema2beans module :
<ul>
	<li> bean graph generating (marshaling)</li>
	<li> bean graph merging</li>
	<li> bean graph writing (unmarshaling)</li>
</ul>
The reading/parsing and writing the web.xml is the bottleneck of the DD API performance. Than the schema2beans root object is <b>weakly</b> cached in memmory.
However, those operations have no visible impact while working with web modules with standard-sized deployment descriptors.<br/>
The measurements were not provided for DD API specifically, but there may have been some measurements made in <a href="http://schema2beans.netbeans.org">schema2beans infrastructure</a> that is used for DD API implementation. There should be no additional deficites added by DD API. 
</answer>
<!--
        <question id="perf-limit" when="init">
            Are there any hard-coded or practical limits in the number or size of
            elements your code can handle?
        </question>
-->
<answer id="perf-limit">
Not aware of any.
</answer>
        <!-- multithreading -->
<!--
        <question id="perf-mem" when="final" >
            How much memory does your component consume? Estimate
            with a relation to the number of windows, etc.
        </question>
-->
<answer id="perf-mem">
?
</answer>
<!--
        <question id="perf-wakeup" when="final">
            Does any piece of your code wake up periodically and do something
            even when the system is otherwise idle (no user interaction)?
        </question>
-->
<answer id="perf-wakeupp">
No.
</answer>
<!--
        <question id="perf-progress" when="final">
            Does your module execute any long-running tasks?
            
            <hint>Long running tasks should never block 
            AWT thread as it badly hurts the UI
            <a href="http://performance.netbeans.org/responsiveness/issues.html">
            responsiveness</a>.
            Tasks like connecting over
            network, computing huge amount of data, compilation
            be done asynchronously (for example
            using <code>RequestProcessor</code>), definitively it should 
            not block AWT thread.
            </hint>
        </question>
-->
<answer id="perf-progress">
No.
</answer>
<!--
        <question id="perf-huge_dialogs" when="final">
            Does your module contain any dialogs or wizards with a large number of
            GUI controls such as combo boxes, lists, trees, or text areas?
        </question>
-->
<answer id="perf-huge_dialogs">
No.
</answer>
<!--
        <question id="perf-menus" when="final">
            Does your module use dynamically updated context menus, or
            context-sensitive actions with complicated enablement logic?
        </question>
-->
<answer id="perf-menus">
No.
</answer>
<!--
        <question  id="perf-spi" when="init">
            How the performance of the plugged in code will be enforced?
            <hint>
            If you allow foreign code to be plugged into your own module, how
            do you enforce, that it will behave correctly and fast and will not
            negatively influence the performance of your own module?
            </hint>
        </question>
-->
<answer id="perf-spi">
The DD API has no SPI part.<br/>
Though the DD API consists of a set of interfaces, <b>the implementation part is supposed to be writen only by DD API owners</b>.<br/>
There is no support for plug-in a new implementation.<br/>
 <b>This will be specified clearly in the API documentation</b>.
</answer>
<!--
    </category>
-->    


<!--
        <question id="perf-wakeup" when="final">
            Does any piece of your code wake up periodically and do something
            even when the system is otherwise idle (no user interaction)?
        </question>
-->
 <answer id="perf-wakeup">
  <p>
   No.
  </p>
 </answer>



<!--
        <question id="security-grant" when="final">
            Does your code grant additional rights to some other code?
            <hint>Avoid using a class loader that adds extra
            permissions to loaded code unless really necessary.
            Also note that your API implementation
            can also expose unneeded permissions to enemy code by
            calling AccessController.doPrivileged().</hint>
        </question>
-->
 <answer id="security-grant">
  <p>
   No.
  </p>
 </answer>



<!--
        <question id="security-policy" when="final">
            Does your functionality require modifications to the standard policy file?
            <hint>Your code might pass control to third-party code not
            coming from trusted domains. This could be code downloaded over the
            network or code coming from libraries that are not bundled
            with NetBeans. Which permissions need to be granted to which domains?</hint>
        </question>
-->
 <answer id="security-policy">
  <p>
   No.
  </p>
 </answer>

</api-answers>
<!-- Copy this above the </api-answers> tag! -->
