<!-- <questionid="arch-what"> Whatisthisprojectgoodfor? <hint> Pleaseprovideherefewlinesdescribingthetheproject, whatproblemitshouldsolve,providelinkstodocumentation, specifications,etc. </hint> </question>
-->
<answer id="arch-what">
The IDE uses a small interface to describe the execution of Java-based
classes together with arguments. The
<api name="ExecutionAPI"url="@org-openide-execution@/org/openide/execution/doc-files/api.html" type="export" category="official"
group="java" />
controls the execution
of user-level classes. The system may have several different types
of executors simultaneously installed. By default we provide so called
External Execution for running a user code by an external process and
Internal Execution for running the user code in the same virtual machine
as the IDE.
<!-- <questionid="compat-version"> Canyourmodulecoexistwithearlierandfuture versions?Canyoucorrectlyreadalloldsettings?Willfuture versionsbeabletoreadyourcurrentsettings?Canyouread orpolitelyignoresettingsstoredbyafutureversion? <hint> Veryhelpfulforreadingsettingsistostoreversionnumber there,sofutureversionscandecidewhetherhowtoread/convert thesettingsandolderversionscanignorethenewones. </hint> </question>
-->
<answer id="compat-version">
Yes. It uses the settings API to store its settings.
</answer>
<!-- <questionid="dep-non-nb"> WhatotherprojectsoutsideNetBeansdoesthisonedependon? <hint> Somenon-NetBeansprojectsarepackagedasNetBeansmodules (see<ahref="http://libs.netbeans.org">libraries</a>)and itispreferedtousethisapproachwhenmoremodulesmay dependonsuchthird-partylibrary. </hint> </question>
-->
<answer id="dep-non-nb">
Execution does not depend on any external library.
</answer>
<!-- <questionid="dep-platform"> Onwhichplatformsdoesyourmodulerun?Doesitruninthesame wayoneach? <hint> IfyourmoduleisusingJNIordealswithspecialdifferencesof OSeslikefilesystems,etc.pleasedescribeherewhattheyare. </hint> </question>
-->
<answer id="dep-platform">
For running with so called external execution the java process is
spawned. The module tries to find the java executable. It uses the
same executable as the whole NetBeans IDE.
</answer>
<!-- <questionid="deploy-jar"> DoyoudeployjustmoduleJARfile(s)orotherfilesaswell? <hint> IfyourmoduleconsistjustfromonemoduleJARfile,justconfirmthat. IfitusesmorethanoneJAR,describewheretherearelocated,how theyrefertoeachother. IfitconsistofmoduleJAR(s)andotherfiles,pleasedescribe whatistheirpurpose,whyotherfilesarenecessary.Please makesurethatinstallation/deinstallationleavesthesystem instateasitwasbeforeinstallation. </hint> </question>
-->
<answer id="deploy-jar">
The module creates openide-execution.jar and core-execution.jar. Both of them
are autoload modules. The openide-execution.jar contains the public APIs
and the core-execution.jar contains private implementation.
</answer>
<!-- <questionid="deploy-packages"> Arepackagesofyourmodulemadeinaccessiblebynotdeclaringthem public? <hint> NetBeansmodulesystemallowsrestrictionofaccessrightsto publicclassesofyourmodulefromothermodules.Thisprevents unwanteddependenciesofothersonyourcodeandshouldbeused wheneverpossible(<ahref="http://www.netbeans.org/download/apis/org/openide/doc-files/upgrade.html#3.4-public-packages"> publicpackages </a>). </hint> </question>
-->
<answer id="deploy-packages">
core-execution.jar does not define any public packages. So the public classes
in this jar are made inaccessible by the NetBeans module system.
openide-execution.jar contains publicly accessible classes (no protection
by the module system needed in this case).
</answer>
<!-- <questionid="exec-classloader"> Doesyourcodecreateitsownclassloader(s)? <hint> Abitunusual.Pleaseexplainwhyandwhatfor. </hint> </question>
-->
<answer id="exec-classloader">
Yes --- this module creates its own class loader. NbClassLoader is in the public API and it is a class loader which is capable of loading classes
from the Repository (a user defined dynamic class path).
</answer>
<!-- <questionid="exec-component"> Isexecutionofyourcodeinfluencedbyany(string)property ofanyofyourcomponents? <hint> Often<code>JComponent.getClientProperty</code>,<code>Action.getValue</code> or<code>PropertyDescriptor.getValue</code>,etc.areusedtoinfluence abehaviourofsomecode.Thisofcourseformsaninterfacethatshould bedocumented.Alsoifonedependsonsomeinterfacethatanobject implements(<code>componentinstanceofRunnable</code>)thatformsan APIaswell. </hint> </question>
-->
<answer id="exec-component">
File attributes accessible via calls to
org.openide.filesystems.FileObject.getAttribute(name)
org.openide.filesystems.FileObject.setAttribute(name, value)
They can also be stored in the module layer. Please see filesystems
for more information about this.
<!-- <questionid="exec-property"> Isexecutionofyourcodeinfluencedbyanyenvironmentor Javasystem(<code>System.getProperty</code>)property? <hint> Ifthereisapropertythatcanchangethebehaviourofyour code,somebodywilllikelyuseit.Youshoulddescribewhatitdoes andthestabilitycategoryofthisAPI.Youmayuse <pre> <propertyname="id"category="private"> descriptionoftheproperty,whereitisused,whatitinfluence,etc. </property> </pre> </hint> </question>
-->
<answer id="exec-property">
Following is the list of properties used by the Execution module
<!-- <questionid="exec-reflection"> DoesyourcodeuseJavaReflectiontoexecuteothercode? <hint> ThisusuallyindicatesamissingorunsufficientAPIintheother partofthesystem.Iftheothersideisnotawareofyourdependency thiscontractcanbeeasilybroken. </hint> </question>
-->
<answer id="exec-reflection">
Hack to close windows belonging to a thread group uses method
javax.swing.SwingUtilities.getSharedOwnerFrame.<p/>
The field
java.security.AccessControlContext.context is accessed due
to some JDK 1.2.1 hack in org.netbeans.core.execution.AccController.<p/>
When you want to execute some object it is first compiled.
<!-- <questionid="perf-exit"> Doesyourmodulerunanycodeonexit? </question>
-->
<answer id="perf-exit">
Yes. It runs a dialog prompting the user to shut down the external
processes.
</answer>
<!-- <questionid="perf-progress"> Doesyourmoduleexecuteanylong-runningtasks? <hint>Typicallytheyaretaskslikeconnectingover network,computinghugeamountofdata,compilation. Suchcommunicationshouldbedoneasynchronously(forexample using<code>RequestProcessor</code>),definitivelyitshould notblockAWTthread. </hint> </question>
-->
<answer id="perf-progress">
The module executes external processes. It does not block the AWT thread.
</answer>
<!-- <questionid="perf-scale"> Whichexternalcriteriainfluencetheperformanceofyour program(sizeoffileineditor,numberoffilesinmenu, insourcedirectory,etc.)andhowwellyourcodescales? Pleaseincludesomeestimates. </question>
-->
<answer id="perf-scale">
The code should scale linarly with number of running processes.
</answer>
<!-- <questionid="resources-layer"> Doesyourmoduleprovideownlayer?Doesitcreateanyfilesor foldersinit?Whatitistryingtocommunicatebythatandwithwhich components? <hint> NetBeansallowsautomaticanddeclarativeinstallationofresources bymodulelayers.Moduleregisterfilesintoappropriateplaces andothercomponentsusethatinformationtoperformtheirtask (buildmenu,toolbar,windowlayout,listoftemplates,setof options,etc.). </hint> </question>
-->
<answer id="resources-layer">
Yes. It provides its own layer. It creates menu items, services, templates
and window system components.
</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.