<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>
<!-- <questionid="arch-overall"when="init"> Describetheoverallarchitecture. <hint> WhatwillbeAPIfor <ahref="http://openide.netbeans.org/tutorial/api-design.html#design.apiandspi"> clientsandwhatsupportAPI</a>? Whatpartswillbepluggable? Howwillplug-insberegistered?Pleaseuse<code><apitype="export"/></code> todescribeyourgeneralAPIs. Ifpossiblepleaseprovide simplediagrams. </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> <!-- <questionid="arch-usecases"when="init"> Describethemain<ahref="http://openide.netbeans.org/tutorial/api-design.html#usecase"> usecases</a>ofthenewAPI.Whowilluseitat whatcircumstancesandwhatwillbethetypicalcodetowrite tousethemodule. </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><listener></b>
<b><listener-class></b>com.sun.xml.rpc.server.http.JAXRPCContextListener<b></listener-class></b>
<b></listener></b>
<b><servlet></b>
<b><servlet-name></b>Hello<b></servlet-name></b>
<b><display-name></b>Hello<b></display-name></b>
<b><description></b>JAX-RPC endpoint - Hello<b></description></b>
<b><servlet-class></b>com.sun.xml.rpc.server.http.JAXRPCServlet<b></servlet-class></b>
<b><load-on-startup></b>1<b></load-on-startup></b>
<b></servlet></b>
<b><servlet-mapping></b>
<b> <servlet-name></b>Hello<b></servlet-name></b>
<b><url-pattern>/</b>hello<b></url-pattern></b>
<b></servlet-mapping></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 <display-name> and <locale-encoding-mapping-list></li>
<li><b>Servlet Wizard</b> - need to specify the <servlet> and <servlet-mapping> elements</li>
<li><b>Listener Wizard</b> - need to specify the <listener> element</li>
<li><b>Filter Wizard</b> - need to specify the <filter> and <filter-mapping> 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> <!-- <questionid="arch-time"when="init"> Whatarethetimeestimatesofthework? <hint> Pleaseexpressyourestimatesofhowlongthedesign,implementation, stabilizationarelikelytolast.Howmanypeoplewillbeneededto implementthisandwhatistheexpectedmilestonetheworkshouldbe 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> <!-- <questionid="arch-quality"when="init"> Howthequalityofyourcodewillbetestedand howfutureregressionsaregoingtobeprevented? <hint> Whatkindoftestingyouwanttouse?What/howmuchareaoffunctionality shouldbecoveredbythetests? </hint> </question>
-->
<answer id="arch-quality">
Web DD APIs have a set of unit tests. Application and EJB part is not covered.
</answer> <!-- </category> <categoryid="dep"name="Projectandplatformdependencies"> <questionid="dep-nb"when="init"> WhatotherNetBeansprojectsandmodulesdoesthisonedependon? <hint> Ifyouwant,describesuchprojectsasimportedAPIusing the<code><apiname="identification"type="importorexport"category="stable"url="whereisthedescription"/></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> <!-- <questionid="dep-non-nb"when="init"> WhatotherprojectsoutsideNetBeansdoesthisonedependon? <hint> Somenon-NetBeansprojectsarepackagedasNetBeansmodules (see<ahref="http://libs.netbeans.org/">libraries</a>)and itispreferredtousethisapproachwhenmoremodulesmay dependonsuchthird-partylibrary. </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="https://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
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="https://www.oracle.com/webfolder/technetwork/jsc/dtd/web-app_2_3.dtd">
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="https://www.oracle.com/webfolder/technetwork/jsc/xml/ns/j2ee/web-app_2_4.xsd">
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="https://www.oracle.com/webfolder/technetwork/jsc/dtd/application-client_1_3.dtd">
DTD for application.xml in J2EE 1.3
</api>
</li>
<li>
<api group="dtd" category="standard" name="application_1_4.xsd"type="import"url="https://www.oracle.com/webfolder/technetwork/jsc/xml/ns/j2ee/application_1_4.xsd">
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="https://java.sun.com/j2ee/dtds/ejb-jar_1_1.dtd">
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="https://java.sun.com/dtd/ejb-jar_2_0.dtd">
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="https://www.oracle.com/webfolder/technetwork/jsc/xml/ns/j2ee/ejb-jar_2_1.xsd">
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="https://www.oracle.com/webfolder/technetwork/jsc/xml/ns/j2ee/j2ee_1_4.xsd">
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> <!-- <questionid="dep-platform"when="init"> Onwhichplatformsdoesyourmodulerun?Doesitruninthesame wayoneach? <hint> IfyourmoduleisusingJNIordealswithspecialdifferencesof OSeslikefilesystems,etc.pleasedescribeherewhattheyare. </hint> </question>
-->
<answer id="dep-platform"> 100% pure Java. It should run anywhere.
</answer> <!-- <questionid="dep-jre"when="final"> WhichversionofJREdoyouneed(1.2,1.3,1.4,etc.)? <hint> Itisexpectedthatifyourmodulerunson1.xthatitwillrun on1.x+1ifno,statethatplease.Alsodescribeherecaseswhere yourundifferentcodeondifferentversionsofJREandwhy. </hint> </question>
-->
<answer id="dep-jre">
<b>JRE 1.4</b> or <b>JRE 1.3</b> with <b>JAXP</b>
</answer> <!-- <questionid="dep-jrejdk"when="final"> DoyourequiretheJDKoristheJREenough? </question>
-->
<answer id="dep-jrejdk">
<b>JRE 1.4</b> or <b>JRE 1.3</b> with <b>JAXP</b>
</answer> <!-- </category> <categoryid="deploy"name="Deployment"> <questionid="deploy-jar"when="impl"> DoyoudeployjustmoduleJARfile(s)orotherfilesaswell? <hint> IfyourmoduleconsistsofjustonemoduleJARfile,justconfirmthat. IfitusesmorethanoneJAR,describewheretheyarelocated,how theyrefertoeachother. IfitconsistofmoduleJAR(s)andotherfiles,pleasedescribe whatistheirpurpose,whyotherfilesarenecessary.Please makesurethatinstallation/uninstallationleavesthesystem instateasitwasbeforeinstallation. </hint> </question>
-->
<answer id="deploy-jar">
No other files are deployed.
</answer> <!-- <questionid="deploy-nbm"when="impl"> CanyoudeployanNBMviatheUpdateCenter? <hint> Ifnotwhy? </hint> </question>
-->
<answer id="deploy-nbm">
Yes
</answer> <!-- <questionid="deploy-shared"when="final"> Doyouneedtobeinstalledinthesharedlocationonly,orintheuserdirectoryonly, orcanyourmodulebeinstalledanywhere? <hint> Installationlocationshallnotmatter,ifitdoesexplainwhy. Consideralsowhether<code>InstalledFileLocator</code>canhelp. </hint> </question>
-->
<answer id="deploy-shared">
Anywhere.
</answer> <!-- <questionid="deploy-packages"when="init"> Arepackagesofyourmodulemadeinaccessiblebynotdeclaringthempublic? <hint> NetBeansmodulesystemallowsrestrictionofaccessrightsto publicclassesofyourmodulefromothermodules.Thisprevents unwanteddependenciesofothersonyourcodeandshouldbeused wheneverpossible(<ahref="http://www.netbeans.org/download/javadoc/OpenAPIs/org/openide/doc-files/upgrade.html#3.4-public-packages"> publicpackages </a>).Ifyoudonotrestrictaccesstoyourclassesyouare makingittooeasyforotherpeopletomisuseyourimplementation details,thatiswhyyoushouldhavegoodreasonfornot restrictingpackageaccess. </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> <categoryid="compat"name="Compatibilitywithenvironment"> <questionid="compat-i18n"when="impl"> Isyourmodulecorrectlyinternationalized? <hint> Correctinternationalizationmeansthatitobeysinstructions at<ahref="http://www.netbeans.org/download/dev/javadoc/org-openide-modules/org/openide/modules/doc-files/i18n-branding.html"> NetBeansI18Npages</a>. </hint> </question>
-->
<answer id="compat-i18n">
Yes.
</answer> <!-- <questionid="compat-standards"when="init"> Doesthemoduleimplementordefineanystandards?Isthe implementationexactordoesitdeviatesomehow? </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> <!-- <questionid="compat-version"when="impl"> Canyourmodulecoexistwithearlierandfuture versionsofitself?Canyoucorrectlyreadalloldsettings?Willfuture versionsbeabletoreadyourcurrentsettings?Canyouread orpolitelyignoresettingsstoredbyafutureversion? <hint> Veryhelpfulforreadingsettingsistostoreversionnumber there,sofutureversionscandecidewhetherhowtoread/convert thesettingsandolderversionscanignorethenewones. </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> <categoryid="resources"name="Accesstoresources"> <questionid="resources-file"when="final"> Doesyourmoduleuse<code>java.io.File</code>directly? <hint> NetBeansprovidealogicalwrapperoverplainfilescalled <code>org.openide.filesystems.FileObject</code>that providesuniformaccesstosuchresourcesandisthepreferred waythatshouldbeused.Butofcoursetherecanbesituationswhen thisisnotsuitable. </hint> </question>
-->
<answer id="resources-file">
No.
</answer> <!-- <questionid="resources-layer"when="final"> Doesyourmoduleprovideownlayer?Doesitcreateanyfilesor foldersinit?Whatitistryingtocommunicatebythatandwithwhich components? <hint> NetBeansallowsautomaticanddeclarativeinstallationofresources bymodulelayers.Moduleregisterfilesintoappropriateplaces andothercomponentsusethatinformationtoperformtheirtask (buildmenu,toolbar,windowlayout,listoftemplates,setof options,etc.). </hint> </question>
-->
<answer id="resources-layer">
No.
</answer> <!-- <questionid="resources-read"when="final"> Doesyourmodulereadanyresourcesfromlayers?Forwhatpurpose? <hint> Asthisissomekindofintermoduledependency,itisakindofAPI. Pleasedescribeitandclassifyaccordingto <ahref="http://openide.netbeans.org/tutorial/api-design.html#categories"> commonstabilitycategories</a>. </hint> </question>
-->
<answer id="resources-read">
No.
</answer> <!-- <questionid="resources-mask"when="final"> Doesyourmodulemask/hide/overrideanyresourcesprovidedbyothermodulesin theirlayers? <hint> Ifyoumaskafileprovidedbyanothermodule,youprobablydepend onthatanddonotwanttheothermoduleto(forexample)change thefile'sname.ThatmoduleshallthusmakethatfileavailableasanAPI ofsomestabilitycategory. </hint> </question> </category>
-->
<answer id="resources-mask">
No.
</answer> <!-- <categoryid="lookup"name="Lookupofcomponents"> <questionid="lookup-lookup"when="init"> Doesyourmoduleuse<code>org.openide.util.Lookup</code> tofindanycomponentstocommunicatewith?Whichones? <hint> Pleasedescribetheinterfacesyouaresearchingfor,where aredefined,whetheryouaresearchingforjustoneormoreofthem, iftheorderisimportant,etc.Alsoclassifythestabilityofsuch APIcontract. </hint> </question>
-->
<answer id="lookup-lookup">
No.
</answer> <!-- <questionid="lookup-register"when="final"> Doyouregisteranythingintolookupforothercodetofind? <hint> Doyouregisterusinglayerfileorusing<code>META-INF/services</code>? Whoissupposedtofindyourcomponent? </hint> </question>
-->
<answer id="lookup-register">
No.
</answer> <!-- <questionid="lookup-remove"when="final"> Doyouremoveentriesofothermodulesfromlookup? <hint> Why?Ofcourse,thatispossible,butitcanbedangerous.Isthemodule youraremaskingresourcefromawareofwhatyouaredoing? </hint> </question>
-->
<answer id="lookup-remove">
No.
</answer> <!-- </category>
--> <!-- classification of interfaces --> <!-- package names --> <!-- <categoryid="exec"name="ExecutionEnvironment"> <questionid="exec-property"when="impl"> Isexecutionofyourcodeinfluencedbyanyenvironmentor Javasystem(<code>System.getProperty</code>)property? <hint> Ifthereisapropertythatcanchangethebehaviorofyour code,somebodywilllikelyuseit.Youshoulddescribewhatitdoes andthe<ahref="http://openide.netbeans.org/tutorial/api-design.html#life">stabilitycategory</a> ofthisAPI.Youmayuse <pre> <apitype="export"group="property"name="id"category="private"url="http://..."> descriptionoftheproperty,whereitisused,whatitinfluence,etc. </api> </pre> </hint> </question>
-->
<answer id="exec-property">
No.
</answer> <!-- <questionid="exec-component"when="impl"> Isexecutionofyourcodeinfluencedbyany(string)property ofanyofyourcomponents? <hint> Often<code>JComponent.getClientProperty</code>,<code>Action.getValue</code> or<code>PropertyDescriptor.getValue</code>,etc.areusedtoinfluence abehaviorofsomecode.Thisofcourseformsaninterfacethatshould bedocumented.Alsoifonedependsonsomeinterfacethatanobject implements(<code>componentinstanceofRunnable</code>)thatformsan APIaswell. </hint> </question>
-->
<answer id="exec-component">
No.
</answer> <!-- <questionid="exec-classloader"when="impl"> Doesyourcodecreateitsownclassloader(s)? <hint> Abitunusual.Pleaseexplainwhyandwhatfor. </hint> </question>
-->
<answer id="exec-classloader">
No.
</answer> <!-- <questionid="exec-reflection"when="impl"> DoesyourcodeuseJavaReflectiontoexecuteothercode? <hint> ThisusuallyindicatesamissingorinsufficientAPIintheother partofthesystem.Iftheothersideisnotawareofyourdependency thiscontractcanbeeasilybroken. </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> <!-- <questionid="exec-privateaccess"when="final"> Areyouawareofanyotherpartsofthesystemcallingsomeof yourmethodsbyreflection? <hint> Ifso,describethe"contract"asanAPI.Likelyprivateorfriendone,but stillAPIandconsiderrewriteofit. </hint> </question>
-->
<answer id="exec-privateaccess">
No.
</answer> <!-- <questionid="exec-process"when="impl"> Doyouexecuteanexternalprocessfromyourmodule?Howdoyouensure thattheresultisthesameondifferentplatforms?Doyouparseoutput? Doyoudependonresultcode? <hint> Ifyoufeedaninput,parsetheoutputpleasedeclarethatasanAPI. </hint> </question>
-->
<answer id="exec-process">
No.
</answer> <!-- <questionid="exec-introspection"when="impl"> Doesyourmoduleuseanykindofruntimetypeinformation(<code>instanceof</code>, workwith<code>java.lang.Class</code>,etc.)? <hint> CheckforcaseswhenyouhaveanobjectoftypeAandyoualso expectitto(possibly)beoftypeBanddosomespecialaction.That shouldbedocumented.Thesameappliesonoperationsinmeta-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> <!-- <questionid="exec-threading"when="impl"> Whatthreadingmodels,ifany,doesyourmoduleadhereto? <hint> IfyourmodulecallsforeignAPIswhichhaveaspecificthreadingmodel, indicatehowyoucomplywiththerequirementsformultithreadedaccess (synchronization,mutexes,etc.)applicabletothoseAPIs. IfyourmoduledefinesanyAPIs,orhascomplexinternalstructures thatmightbeusedfrommultiplethreads,declarehowyouprotect dataagainstconcurrentaccess,raceconditions,deadlocks,etc., andwhethersuchrulesareenforcedbyruntimewarnings,errors,assertions,etc. Examples:aclassmightbenon-thread-safe(likeJavaCollections);might befullythread-safe(internallocking);mightrequireaccessthroughamutex (andmayormaynotautomaticallyacquirethatmutexonbehalfofaclientmethod); mightbeabletorunonlyintheeventqueue;etc. Alsodescribewhenanyeventsarefired:synchronously,asynchronously,etc. Ideas:<ahref="http://core.netbeans.org/proposals/threading/index.html#recommendations">ThreadingRecommendations</a>(inprogress) </hint> </question>
-->
<answer id="exec-threading">
No.
</answer> <!-- </category> <categoryid="format"name="Formatoffilesandprotocols"> <questionid="format-types"when="impl"> Whichprotocolsandfileformats(ifany)doesyourmodulereadorwriteondisk, ortransmitorreceiveoverthenetwork? </question>
-->
<answer id="format-types"> XML format specified by both DTD and XML schema.
</answer> <!-- <questionid="format-dnd"when="impl"> Whichprotocols(ifany)doesyourcodeunderstandduringDrag&Drop? <hint> OftenNode'sdealwithclipboardbyusageof<code>Node.drag,Node.getDropType</code>. Checkyourcodeforoverridingthesemethods.Btw.iftheyarenotoverridden,they bydefaultdelegateto<code>Node.clipboardCopy,Node.clipboardCutandNode.pasteTypes</code>. </hint> </question>
-->
<answer id="format-dnd">
Not applied.
</answer> <!-- <questionid="format-clipboard"when="impl"> Whichdataflavors(ifany)doesyourcodereadfromorinsertto theclipboard(byaccesstoclipboardonmeanscallingmethodson<code>java.awt.datatransfer.Transferable</code>? <hint> OftenNode'sdealwithclipboardbyusageof<code>Node.clipboardCopy,Node.clipboardCutandNode.pasteTypes</code>. Checkyourcodeforoverridingthesemethods. </hint> </question>
-->
<answer id="format-clipboard">
Not applied.
</answer> <!-- </category> <categoryid="performance"name="PerformanceandScalability"> <questionid="perf-startup"when="final"> Doesyourmodulerunanycodeonstartup? </question>
-->
<answer id="perf-startup">
No.
</answer> <!-- <questionid="perf-exit"when="final"> Doesyourmodulerunanycodeonexit? </question>
-->
<answer id="perf-exit">
No.
</answer> <!-- <questionid="perf-scale"when="init"> Whichexternalcriteriainfluencetheperformanceofyour program(sizeoffileineditor,numberoffilesinmenu, insourcedirectory,etc.)andhowwellyourcodescales? <hint> Pleaseincludesomeestimates,thereareothermoredetailed questionstoanswerinlaterphasesofimplementation. </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="https://netbeans.apache.org/projects/schema2beans/">schema2beans infrastructure</a> that is used for DD API implementation. There should be no additional deficites added by DD API.
</answer> <!-- <questionid="perf-limit"when="init"> Arethereanyhard-codedorpracticallimitsinthenumberorsizeof elementsyourcodecanhandle? </question>
-->
<answer id="perf-limit">
Not aware of any.
</answer> <!-- multithreading --> <!-- <questionid="perf-mem"when="final"> Howmuchmemorydoesyourcomponentconsume?Estimate witharelationtothenumberofwindows,etc. </question>
-->
<answer id="perf-mem">
?
</answer> <!-- <questionid="perf-wakeup"when="final"> Doesanypieceofyourcodewakeupperiodicallyanddosomething evenwhenthesystemisotherwiseidle(nouserinteraction)? </question>
-->
<answer id="perf-wakeupp">
No.
</answer> <!-- <questionid="perf-progress"when="final"> Doesyourmoduleexecuteanylong-runningtasks? <hint>Longrunningtasksshouldneverblock AWTthreadasitbadlyhurtstheUI <ahref="http://performance.netbeans.org/responsiveness/issues.html"> responsiveness</a>. Taskslikeconnectingover network,computinghugeamountofdata,compilation bedoneasynchronously(forexample using<code>RequestProcessor</code>),definitivelyitshould notblockAWTthread. </hint> </question>
-->
<answer id="perf-progress">
No.
</answer> <!-- <questionid="perf-huge_dialogs"when="final"> Doesyourmodulecontainanydialogsorwizardswithalargenumberof GUIcontrolssuchascomboboxes,lists,trees,ortextareas? </question>
-->
<answer id="perf-huge_dialogs">
No.
</answer> <!-- <questionid="perf-menus"when="final"> Doesyourmoduleusedynamicallyupdatedcontextmenus,or context-sensitiveactionswithcomplicatedenablementlogic? </question>
-->
<answer id="perf-menus">
No.
</answer> <!-- <questionid="perf-spi"when="init"> Howtheperformanceofthepluggedincodewillbeenforced? <hint> Ifyouallowforeigncodetobepluggedintoyourownmodule,how doyouenforce,thatitwillbehavecorrectlyandfastandwillnot negativelyinfluencetheperformanceofyourownmodule? </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>
-->
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.