<!-- <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">
<p>
See harness/README.
</p>
<ul>
<li>
<api group="dtd" name="project.xml"type="export" category="devel"url="http://www.netbeans.org/ns/nb-module-project/2.xsd">
<p>
Syntax for NBM <code>project.xml</code> files.
</p>
</api>
</li>
<li>
<api group="java.io.File" name="project.properties"type="export" category="devel">
<p>
Permitted keys for NBM <code>project.properties</code> files.
</p>
</api>
</li>
<li>
<api group="java.io.File" name="projectized.xml"type="export" category="devel">
<p>
Targets in <code>nbbuild/templates/projectized.xml</code> which may be
called or overridden in a module's <code>build.xml</code>.
</p>
</api>
</li>
</ul>
<p>
This module provides the <api group="java" name="APISupportAPI"type="export" category="friend"url="@TOP@index.html"/>
SPI which allows to share parts of the ApiSupport UI with alternate project types.
</p>
</answer>
<!-- <questionid="arch-quality"when="init"> Howwillthe<ahref="http://www.netbeans.org/community/guidelines/q-evangelism.html">quality</a> ofyourcodebetestedand howarefutureregressionsgoingtobeprevented? <hint> Whatkindoftestingdo youwanttouse?Howmuchfunctionality,inwhichareas, shouldbecoveredbythetests? </hint> </question>
-->
<answer id="arch-quality">
<p>
There are unit tests for some critical functionality such as query
implementations.
</p>
</answer>
<!-- <questionid="arch-time"when="init"> Whatarethetimeestimatesofthework? <hint> Pleaseexpressyourestimatesofhowlongthedesign,implementation, stabilizationarelikelytolast.Howmanypeoplewillbeneededto implementthisandwhatistheexpectedmilestonebywhichtheworkshouldbe ready? </hint> </question>
-->
<answer id="arch-time">
<p>
In progress; no formal schedule. Major remaining item: support for modules
outside netbeans.org. Tracking issue: #42680.
</p>
</answer>
<!-- <questionid="arch-usecases"when="init"> Describethemain<ahref="http://openide.netbeans.org/tutorial/api-design.html#usecase"> usecases</a>ofthenewAPI.Whowilluseitunder whatcircumstances?Whatkindofcodewouldtypicallyneedtobewritten tousethemodule? </question>
-->
<answer id="arch-usecases">
<p>
Can be used to work on any module projects.
</p>
</answer>
<!-- <questionid="arch-what"when="init"> Whatisthisprojectgoodfor? <hint> Pleaseprovidehereafewlinesdescribingtheproject, whatproblemitshouldsolve,providelinkstodocumentation, specifications,etc. </hint> </question>
-->
<answer id="arch-what">
<p>
NetBeans module (<dfn>NBM</dfn>) project type. Permits NBM projects to be
opened as first-class projects in the IDE. Logical view displays main source
tree, unit tests, functional tests, JavaHelp, module manifest, and/or
architecture summary. Context menu actions and main menu action bindings map
to commonly used module build targets. Code completion for different kinds of
sources. Ability to run unit tests out of the box, create API Javadoc, build
architecture summaries, reload the module in the running IDE, etc.
</p>
</answer>
<!-- <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">
<p>
JAR only. But requires that projects be collocated with various build
infrastructure files which are not currently distributed as part of the
module.
</p>
</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">
<api name="DataFolder.Index.reorderable"type="import" category="friend" group="systemproperty">
Claims that layer filesystems are reorderable so that <code>DataFolder</code> will give them an <code>Index</code>.
</api>
<api name="OpenIDE-Folder-Order"type="import" category="friend" group="systemproperty">
Specially interprets requests from <code>FolderOrder</code> to reorder layer folders.
</api>
<api name="MultiFileObject.VoidValue"type="import" category="private" group="systemproperty">
Specially interprets requests from <code>MultiFileSystem</code> to store null attribute values.
Otherwise would be serializing special quasi-nulls into the XML layer, which is unacceptable
(and anyway not what folder ordering semantics requires, in a development-time context).
</api>
</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="org.netbeans.ui.apisupport.DEPENDENCIES" category="friend" group="logger"type="export">
There is a special support for notifying the UI gestures collector
about the usage of NetBeans APIs. When a project customizer is closed,
the modules sends to <a href="@JDK@@JDKMODULE_JAVA_LOGGING@/java/util/logging/Logger.html">
Logger.getLogger("org.netbeans.ui.apisupport")
</a> a <a href="@JDK@@JDKMODULE_JAVA_LOGGING@/java/util/logging/LogRecord.html">LogRecord</a>
with message <code>DEPENDENCIES</code>,
<code>CONFIG</code> <a href="@JDK@@JDKMODULE_JAVA_LOGGING@/java/util/logging/LogRecord.html">level</a>
and paramerters being the code name bases of modules that start with
<code>org.openide</code> or <code>org.netbeans</code>.
This message can then be consumed
by enhanced UI logger to let netbeans.org project know which APIs are
used to most.
</api>
<api name="org.openide.awt.ActionReference.completion" category="devel" group="systemproperty"type="import">
<code>apisupport.project</code> registers a
<a href="@JDK@@JDKMODULE_JAVA_COMPILER@/javax/annotation/processing/Processor.html">Processor</a>
implementation to provide
items representing valid paths in current project for
<a href="@org-openide-awt@/org/openide/awt/ActionReference.html#path()">
ActionReference.path()</a>.
</api>
</p>
</answer>
<!-- <questionid="lookup-register"when="final"> Doyouregisteranythingintolookupforothercodetofind? <hint> Doyouregisterusinglayerfileorusing<code>META-INF/services</code>? Whoissupposedtofindyourcomponent? </hint> </question>
-->
<answer id="lookup-register">
<ul>
<li>
<p>
The project type itself.
</p>
</li>
<li>
<p>
Some query implementations for built JARs in <code>nbbuild/netbeans/</code>.
Will probably be replaced by a special projectization of
<code>nbbuild</code> and normal project-based query delegation.
</p>
</li>
</ul>
</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">
<api group="layer" name="ModuleProjectLookup"type="export" category="official">
<p> "Projects/org-netbeans-modules-apisupport-project/Lookup" folder's content is used to construct the project's additional lookup.
It's content is expected to be <code>LookupProvider</code> instances. Apisupport project provides <code>LookupMerger</code>s
for <code>Sources</code>, <code>PrivilegedTemplates</code> and <code>RecommendedTemplates</code>. Implementations added by 3rd parties
will be merged into a single instance in the project's lookup.
</p>
</api>
<api group="layer" name="SuiteProjectLookup"type="export" category="official">
<p> "Projects/org-netbeans-modules-apisupport-project-suite/Lookup" folder's content is used to construct the project's additional lookup.
It's content is expected to be <code>LookupProvider</code> instances.
</p>
</api>
<api group="layer" name="ModuleLogicalViewProvider"type="export" category="official">
<p> "Projects/org-netbeans-modules-apisupport-project/Nodes" folder's content is used to construct the project's child nodes.
It's content is expected to be <code>NodeFactory</code> instances.
</p>
</api>
<api group="layer" name="SuiteLogicalViewProvider"type="export" category="official">
<p> "Projects/org-netbeans-modules-apisupport-project-suite/Nodes" folder's content is used to construct the project's child nodes.
It's content is expected to be <code>NodeFactory</code> instances.
</p>
</api>
<api group="layer" name="ModuleProjectCustomizer"type="export" category="official">
<p> "Projects/org-netbeans-modules-apisupport-project/Customizer" folder's content is used to construct the project's customizer.
It's content is expected to be <code>ProjectCustomizer.CompositeCategoryProvider</code> instances.
The lookup passed to the panels contains an instance of <code>Project</code> and <code>org.netbeans.modules.apisupport.project.ui.customizer.SingleModuleProperties</code>
Please note that the latter is not part of any public APIs and you need implementation dependency to make use of it.
</p>
</api>
<api group="layer" name="SuiteProjectCustomizer"type="export" category="official">
<p> "Projects/org-netbeans-modules-apisupport-project-suite/Customizer" folder's content is used to construct the project's customizer.
It's content is expected to be <code>ProjectCustomizer.CompositeCategoryProvider</code> instances.
The lookup passed to the panels contains an instance of <code>Project</code> and <code>org.netbeans.modules.apisupport.project.ui.customizer.SuiteProperties</code>
Please note that the latter is not part of any public APIs and you need implementation dependency to make use of it.
</p>
</api>
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.