<questionid="arch-what"> Whatisthisprojectgoodfor? <hint> Pleaseprovideherefewlinesdescribingthetheproject, whatproblemitshouldsolve,providelinkstodocumentation, specifications,etc. </hint> </question>
-->
<answer id="arch-what">
The module is for parsing JSP pages. The information produced by the parser is then
used in other parts of the product.
</answer>
<questionid="compat-standards"> Doesthemoduleimplementsordefinesanystandards?Isthe implementationexactoritdeviatessomehow? </question>
-->
<answer id="compat-standards">
The parser reads JSP pages which follow the JSP 1.2 standard (including pages
written to older versions of the JSP specification). Itself, it does not implement
or define a standard.
</answer>
<!-- Question: compat-version
<questionid="compat-version"> Doesyourmoduleproperlycoexistswithearlierandfuture versions?Canyoucorrectlyreadsettings?Willfuture versionsbeabletoreadsettings? <hint> Veryhelpfulforreadingsettingsistostoreversionnumber there,sofutureversionscandecidewhetherhowtoread/convert thesettingsandolderversionscanignorethenewones. </hint> </question>
-->
<answer id="compat-version">
The module does not define any persistent information, so it does not need to
read old or future settings.
</answer>
<questionid="dep-jrejdk"> DoyourequireJDKorisJREenough? </question>
-->
<answer id="dep-jrejdk">
The module requires the JDK. The reason is the fact that the Tomcat server,
whose component is used as a third party library, needs the JDK.
</answer>
<!-- Question: dep-nb
<questionid="dep-nb"> WhatotherNetBeansprojectsthisonedependson? <hint> Ifyouwant,describesuchprojectsasimportedAPIusing the<code><apiname="identification"type="importorexport"category="stable"url="whereisthedescription"/></code> </hint> </question>
-->
<answer id="dep-nb">
It uses various kinds of API's:
<ul>
<li>
<api
name="OpenAPIs" type="import"
category="stable"
group="java" url="http://www.netbeans.org/download/dev/javadoc/OpenAPIs/"
/>
NetBeans OpenAPIs
</li>
<li>
<api
name="web-core" type="import"
category="friend"
group="java" url=""
/>
The <code>web-core</code> module. Notably, the <code>JSPParserAPI</code> class defined
in the <code>web-core</code> friend API is implemented by this module.
</li>
<li>
<api
name="servletjspapi" type="import"
category="standard"
group="java" url="http://java.sun.com/products/servlets/"
/>
The Servlet 2.5/JSP 2.1 APIs, packaged as a NetBeans module.
</li>
</ul>
</answer>
<!-- Question: dep-non-nb
<questionid="dep-non-nb"> Whatothernon-NetBeansprojectsthisonedependson? <hint> Somenon-NetBeansprojectsarepackagedasNetBeansmodules (see<ahref="http://libs.netbeans.org">libraries</a>)and itispreferedtousethisapproachwhenmoremodulesmay dependonsuchthird-partylibrary. </hint> </question>
-->
<answer id="dep-non-nb">
<ul>
<li>
<api
name="Tomcat4.0-Jasper" type="import"
category="private"
group="java" url="http://jakarta.apache.org/tomcat/"
/>
Tomcat JSP compiler library is used as an implementation of the parser.
</li>
</ul>
I am not sure whether the ServletAPIs should be listed here or in the NetBeans projects.
</answer>
<!-- Question: dep-platform
<questionid="dep-platform"> Onwhichplatformsyourmodulerun?Any?Doesitruninthesame way? <hint> IfyourmoduleisusingJNIordealswithspecialdifferencesof OSeslikefilesystems,etc.pleasedescribeherewhattheyare. </hint> </question>
-->
<answer id="dep-platform"> 100% pure Java. It should run anywhere.
</answer>
<!-- Question: deploy-jar
<questionid="deploy-jar"> DoyoudeployjustmoduleJARfile(s)orsomeotherfiles? <hint> IfyourmoduleconsistjustfromonemoduleJARfile,justconfirmthat. IfitusesmorethanoneJAR,describewheretherearelocated,how theyrefertoeachother. IfitconsistofmoduleJAR(s)andotherfiles,pleasedescribe whatistheirpurpose,whyotherfilesarenecessary.Please makesurethatinstallation/deinstallationleavesthesystem instateasitwasbeforeinstallation. </hint> </question>
-->
<answer id="deploy-jar">
There is the module jar: <code>jsp-parser.jar</code>, and the tomcat libraries:
<code>jasper-compiler-4.0.4.jar</code> and <code>jasper-runtime-4.0.4.jar</code>.
Additionally, some libraries are needed by the Tomcat JSP compiler, e.g.
an XML parser and the Servlet APIs.
</answer>
<questionid="deploy-shared"> Doyouneedtobeinstalledinsharedlocationoronlyinuserdirectory? <hint> Installationlocationshallnotmatter,ifitdoesexplainwhy. </hint> </question>
-->
<answer id="deploy-shared">
Either way is possible.
</answer>
<!-- Question: exec-classloader
<questionid="exec-classloader"> Doesyourcodeusesownclassloader? <hint> Abitunusual.Pleaseexplainwhyandwhatfor. </hint> </question>
-->
<answer id="exec-classloader">
Yes. It uses a classloader class imported from the <code>web-core</code> friend API. This classloader
is used by the Tomcat JSP compiler/parser libraries (it is passed as a parameter). The reason is that
the JSP compiler needs to load user classes present in the Web Application the user is developing, so the
custom classloader simulates what the app will look like at runtime.
</answer>
<questionid="format-dnd"> Whichprotocolsyourcodeunderstandsduringdrag-n-drop? </question>
-->
<answer id="format-dnd">
Drag and drop is not applicable to this module (it is non-gui).
</answer>
<!-- Question: format-types
<questionid="format-types"> Whichfileformatsyourcodereadsorwritesondisk? </question>
-->
<answer id="format-types">
It reads files which make up the user's web application, e.g. JSPs, tag libraries,
the deployment descriptor etc. These are described by the JSP and Servlet specifications.
</answer>
<questionid="lookup-register"> Doyouregisteranythingintothelookupforothertofind? <hint> Doyouregisterusinglayerfileorusing<code>META-INF/services</code>? Whoissupposedtofindyourcomponent? </hint> </question>
-->
<answer id="lookup-register">
The module registers the implementation of the <code>JSPParserAPI</code> class defined by the
<code>web-core</code> friend API, through an XML layer file.
</answer>
<questionid="perf-limit"> Arethereanylimitsinnumber/sizeofelementsyourcode canhandle? </question>
-->
<answer id="perf-limit">
The horse power of the machine is a limiting factor, as parsing JSP pages
can be demanding resource-wise.
</answer>
<!-- Question: perf-mem
<questionid="perf-mem"> Whatistheamountofmemoryyourcomponentoccupies?Estimate witharelactiontothenumberofwindows,etc. </question>
-->
<answer id="perf-mem">
Relatively to the number of windows, it's pretty high (as there are no windows) :-)
It occupies a reasonable amount of memory necessary to do the parsing job.
It also keeps a cache of parsed tag libraries constructed from the user application.
</answer>
<questionid="perf-progress"> Doesyourmoduleexecutessomelongrunningtask? <hint>Typicallytheyaretaskslikeconnectingover network,computinghugeamountofdata,compilation. Suchcommunicationshouldbedoneasynchronously(forexample using<code>RequestProcessor</code>),definitivelyitshould notblockAWTthread. </hint> </question>
-->
<answer id="perf-progress">
Yes. I guess parsing can be considered long.
</answer>
<!-- Question: perf-scale
<questionid="perf-scale"> Whichexternalcriteriainfluencetheperformanceofyour program(sizeoffileineditor,numberoffilesinmenu, insourcedirectory,etc.)andhowwellyourcodescales? Pleaseincludesomeestimates. </question>
-->
<answer id="perf-scale">
Size of file in editor, number of components (e.g. tag libraries) in the web module,
the length of the deployment descriptor.
Performance improvements are possible.
</answer>
<questionid="resources-file"> Doesyourmoduleuse<code>java.io.File</code>directly? <hint> NetBeansprovidealogicalwrapperoverplainfilescalled <code>org.openide.filesystems.FileObject</code>that providesuniformaccesstosuchresourcesandistheprefered waythatshouldbeused.Butofcoursetherecanbesituationswhen thisisnotsuitable. </hint> </question>
-->
<answer id="resources-file">
Yes. The Tomcat JSP Compiler library expects <code>java.io.File</code> to be passed to it.
</answer>
<!-- Question: resources-layer
<questionid="resources-layer"> Doesyourmoduleprovideownlayer?Doesitcreatesomefilesor foldersonit?Whatitistryingtocommunicatebythatandwithwhich component? <hint> NetBeansallowsautomaticanddeclarativeinstallationofresources bymodulelayers.Moduleregisterfilesintoappropriateplaces andothercomponentsusethatinformationtoperformtheirtask (buildmenu,toolbar,windowlayout,listoftemplates,setof options,etc.). </hint> </question>
-->
<answer id="resources-layer">
Yes. It registers an implementation of an interface class declared by the <code>web-core</code> API
with the <code>web-core</code> module.
</answer>
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.