<!-- <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 group="java" name="ProjectAPI"type="export" category="official">
The Project API defines abstract projects. These are groupings of files built and
manipulated as units. It is used for Ant-based projects but could support
other scenarios such as makefiles. Modules can plug in project types which can
recognize certain folders as being projects, and define their behaviors.
Besides the visible Javadoc, this module permits a project to add implementations
of <code>org.netbeans.spi.queries.FileBuiltQueryImplementation</code>,
<code>org.netbeans.spi.queries.SharabilityQueryImplementation</code> and
<code>org.netbeans.spi.queries.FileEncodingQueryImplementation</code>
into the project lookup (rather than global lookup).
The implementations will be consulted only in the case the relevant file
belongs to that project (according to <code>org.netbeans.api.project.FileOwnerQuery</code>).
This helps avoid the need to consult irrelevant query implementations.
</api>
</answer>
<!-- <questionid="arch-quality"when="init"> Howthe<ahref="http://www.netbeans.org/community/guidelines/q-evangelism.html">quality</a> ofyourcodewillbetestedand howfutureregressionsaregoingtobeprevented? <hint> Whatkindoftesting youwanttouse?What/howmuchareaoffunctionality shouldbecoveredbythetests? </hint> </question>
-->
<answer id="arch-quality">
<p>
All Javadoc-specified functionality should be covered by unit tests.
</p>
</answer>
<!-- <questionid="arch-time"when="init"> Whatarethetimeestimatesofthework? <hint> Pleaseexpressyourestimatesofhowlongthedesign,implementation, stabilizationarelikelytolast.Howmanypeoplewillbeneededto implementthisandwhatistheexpectedmilestonetheworkshouldbe ready. </hint> </question>
-->
<answer id="arch-time">
<p>
Basic code already written. No major remaining work anticipated.
</p>
</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">
<p>
The SPI should be used by modules defining particular project types, e.g. the
J2SE project type. The API is to be used primarily by GUI infrastructure and
some queries, though other module code may on occasion need to refer to the
API.
</p>
</answer>
<!-- <questionid="arch-what"when="init"> Whatisthisprojectgoodfor? <hint> Pleaseprovidehereafewlinesdescribingtheproject, whatproblemitshouldsolve,providelinkstodocumentation, specifications,etc. </hint> </question>
-->
<answer id="arch-what">
<p>
Provides a generic infrastructure for modelling projects.
Documentation available in the Javadoc. The build system design overview
describes the basic purpose of modelling projects.
</p>
</answer>
<!-- <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">
<p>
No I18N messages. Projects may have localized display names if they wish.
</p>
</answer>
<!-- <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">
<p>
<api name="project.limitScanRoot" category="friend" group="systemproperty"type="export">
<p>
If defined, limits search for a parent project to a certain subtree. The property defines the <b>absolute path</b> of a folder
where upwards search for a project in parent folders is terminated. Queries outside the root will not find any project.
Multiple folders may be specified when delimited with OS-specific path separators (':' on *nix, ';' on Windows).
Currently used for tests so the tested runtime does not escape the workdir.
</p>
</api>
</p>
</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">
<p>
There is a single global read-write lock used by all project metadata
operations. Additionally, certain read operations use a nested private lock to
avoid cache corruption.
</p>
</answer>
<!-- <questionid="lookup-lookup"when="init"> Doesyourmoduleuse<code>org.openide.util.Lookup</code> oranysimilartechnologytofindanycomponentstocommunicatewith?Whichones? <hint> Pleasedescribetheinterfacesyouaresearchingfor,where aredefined,whetheryouaresearchingforjustoneormoreofthem, iftheorderisimportant,etc.Alsoclassifythestabilityofsuch APIcontract. </hint> </question>
-->
<answer id="lookup-lookup">
<p>
Project factories are searched for in global lookup. Order is significant;
earlier factories take precedence. Similarly for <code>FileBuiltQuery</code>.
</p>
</answer>
<!-- <questionid="perf-mem"when="final"> Howmuchmemorydoesyourcomponentconsume?Estimate witharelationtothenumberofwindows,etc. </question>
-->
<answer id="perf-mem">
<p>
Each loaded project consumes a small amount of memory for object overhead.
</p>
</answer>
<!-- <questionid="perf-scale"when="init"> Whichexternalcriteriainfluencetheperformanceofyour program(sizeoffileineditor,numberoffilesinmenu, insourcedirectory,etc.)andhowwellyourcodescales? <hint> Pleaseincludesomeestimates,thereareothermoredetailed questionstoanswerinlaterphasesofimplementation. </hint> </question>
-->
<answer id="perf-scale">
<p>
Performance scales linearly in number of project type providers registered
globally. However typically there is just the singleton Ant-based provider
which delegates to others in constant time.
</p>
</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.