<!-- <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>
The wsdl model provides a read and write model based on XDM and XAM.
</p>
<api name="wsdl.model" category="friend"type="export" group="java">
This package provides API's for obtaining a wsdl model using the
factory pattern as well as reading and writing the wsdl structure.
This package is made up mostly of interfaces, which are not expected
to be implemented by the client. The entry point is the wsdl
model factory. The components are based on the structure of wsdl
and the names should reflect element and attribute names from the
specification.
</api>
<api name="wsdl.model.visitor" category="friend"type="export" group="java">
Generic visitor pattern support (such as empty and deep visitors) as well
as visitors for finding usages.
</api>
<api name="wsdl.model.spi" category="friend"type="export" group="java">
The SPI package provides the ability to plug-in strongly typed
extensibility elements, which are used in every concrete wsdl for bindings.
</api>
<api name="wsdl.model.extensions.soap" category="friend"type="export" group="java">
Strongly typed extensibility elements for the SOAP binding.
</api>
<api name="wsdl.model.extensions.xsd" category="friend"type="export" group="java">
Strongly typed extensibility element for Schema. This supports embedding
the schema model within the WSDL model to introspect the types section
of WSDL.
</api>
</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>
Junit tests are provided and expected to cover the common functionality. The
implementation is based on XDM and XAM and thus the implementations of the
classes mostly perform parameterized manipulation of the underlying XDM model.
Thus the testing approach is to have extensive unit testing for
areas where custom code needs to be written (such as resolving references and sync)
and course grained (does wsdl x work appropriately) for the balance of the
features.
As part of the development process we also use findBugs for static analysis.
</p>
</answer>
<!-- <questionid="arch-time"when="init"> Whatarethetimeestimatesofthework? <hint> Pleaseexpressyourestimatesofhowlongthedesign,implementation, stabilizationarelikelytolast.Howmanypeoplewillbeneededto implementthisandwhatistheexpectedmilestonebywhichtheworkshouldbe ready? </hint> </question>
-->
<answer id="arch-time">
<p>
This module is implementation complete, but will require additional effort
for ongoing maintenence in conjunction with the other modules.
</p>
</answer>
<!-- <questionid="arch-usecases"when="init"> <hint> Contentofthisanswerwillbedisplayedaspartofpageat http://www.netbeans.org/download/dev/javadoc/usecases.html Youcanusetags<usecasename="name>regularhtmldescription</usecase> andifyouwanttouseanURLyoucanprefixifwith@TOP@tobegin attherootofyourjavadoc </hint> Describethemain<ahref="http://openide.netbeans.org/tutorial/api-design.html#usecase"> usecases</a>ofthenewAPI.Whowilluseitunder whatcircumstances?Whatkindofcodewouldtypicallyneedtobewritten tousethemodule? </question>
-->
<answer id="arch-usecases">
<p>
The typical client of the WSDL model would be a tool author requiring read
or write access to WSDL.
</p>
<usecase id="uc1" name="customization editor">
Both Tango and JAXWS define WSDL extensions which support customization of
their capabilities. The WSDL model supports the ability to add strongly
typed extensions. The Web Service customization relies on this support to read and write
extensibility elements from an existing WSDL document.
</usecase>
<usecase id="uc2" name="WSDL editor">
The WSDL editor uses the WSDL model to support both textual and
graphical editing.
</usecase>
<usecase id="uc3" name="Validation">
Only some of the WSDL semantics can be described in terms of XML schema.
The visitor is used to provide additional validation semantics to ensure
successful deployment to the BPEL engine.
</usecase>
Here is a code sample for working with the WSDL model:
<code><br/><br/>
FileObject wsdlFileObj = ...; // get file object for WSDL
<br/>
ModelSource source =
<br/>
org.netbeans.modules.xml.xam.locator.api.Utilities.getModelSource(wsdlFileObj, true);
<br/>
WSDLModel model = WSDLModelFactory.getDefault().getModel(source);
<br/>
// access port types
<br/>
Collection<PortType> portTypes = model.getDefinitions().getPortTypes();
<br/>
<br/>
// add port type
<br/>
PortType pt = model.getFactory().createPortType();
<br/>
pt.setName("newPortType");
<br/>
// pt manipulation before adding to model, name, etc.
<br/>
try {
<br/>
// model must be manipulated in transaction
<br/>
model.startTransaction();
<br/>
// add port type to model
<br/>
model.getDefinitions().addPortType(pt);
<br/>
} finally {
<br/>
model.endTransaction();
<br/>
}
<br/>
</code>
</answer>
<!-- <questionid="arch-what"when="init"> Whatisthisprojectgoodfor? <hint> Pleaseprovidehereafewlinesdescribingtheproject, whatproblemitshouldsolve,providelinkstodocumentation, specifications,etc. </hint> </question>
-->
<answer id="arch-what">
<p>
The WSDL model provides the ability to read, write, and extend documents
complying with the WSDL 1.1 specification.
</p>
<ul>
<li>Full document fidelty</li>
<li>Support for undo/redo</li>
<li>Support for sync which allow changes to be detected in
the underlying source and mutating the model to be compatible</li>
<li>Visitor support</li>
<li>Incorporation of the XAM locator for catalog based resolution
of referenced wsdl artifacts</li>
<li>Use of reference instead of raw URI to support retrieving the
actual component referenced instead of a URI</li>
<li>Support for generic and strongly typed extensibility elements</li>
</ul>
</answer>
<!-- <questionid="deploy-dependencies"when="final"> Whatdoothermodulesneedtodotodeclareadependencyonthisone? <hint> Provideasampleoftheactuallinesyouwouldaddtoamodulemanifest todeclareadependency,forexampleusingOpenIDE-Module-Module-Dependencies orOpenIDE-Module-Requires.Youmayusethemagictoken@SPECIFICATION-VERSION@ torepresentthecurrentspecificationversionofthemodule. </hint> </question>
-->
<answer id="deploy-dependencies">
<p>
The API's are currently exposed through the friend mechanism, thus another
module would need to be added to the friends list.
</p>
</answer>
<!-- <questionid="deploy-packages"when="init"> Arepackagesofyourmodulemadeinaccessiblebynotdeclaringthem public? <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">
<p>
yes, only the packages which are intended for external use are marked public.
Additionally the friend mechanism is used.
</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>
This model uses the threading model of XAM/XDM. No additional synchronization
has been added in the module.
</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.Forthatuse<apigroup=&lookup&/>tag. </hint> </question>
-->
<answer id="lookup-lookup">
<p>
<api category='stable'type='import' group='lookup' name="lookup">
org.openide.util.Lookup is used to obtain the list of
org.netbeans.modules.xml.wsdl.model.spi.ElementFactory instances. A factory
supports recognition and creation of extensibility elements based on the
specified QNames. The first factory supporting a given QName is the factory providing the component
instance (Order is important).
</api>
</p>
</answer>
<!-- <questionid="lookup-register"when="final"> Doyouregisteranythingintolookupforothercodetofind? <hint> Doyouregisterusinglayerfileorusing<code>META-INF/services</code>? Whoissupposedtofindyourcomponent? </hint> </question>
-->
<answer id="lookup-register">
<p>
The extension mechanism for registering external factories is also used for
internal factories. These factories are expected to be discovered when
creating the WSDL model components. The factories are registered using
META-INF/services
</p>
</answer>
<!-- <questionid="perf-limit"when="init"> Arethereanyhard-codedorpracticallimitsinthenumberorsizeof elementsyourcodecanhandle? </question>
-->
<answer id="perf-limit">
<p>
There are no hard coded limits.
</p>
</answer>
<!-- <questionid="perf-mem"when="final"> Howmuchmemorydoesyourcomponentconsume?Estimate witharelationtothenumberofwindows,etc. </question>
-->
<answer id="perf-mem">
<p>
A empty populated model is about 8000 bytes, this depends on how many components
and the size of the file. Each additional component adds about 20 bytes.
</p>
</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">
<p>
no, this module is called by other modules.
</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>
The size of the WSDL document and the number of components affect scalability.
Performance testing has been performed on industry standard
WSDL documents to ensure reasonable performance in practical situatitions.
</p>
</answer>
<!-- <questionid="perf-spi"when="init"> Howtheperformanceofthepluggedincodewillbeenforced? <hint> Ifyouallowforeigncodetobepluggedintoyourownmodule,how doyouenforcethatitwillbehavecorrectlyandquicklyandwillnot negativelyinfluencetheperformanceofyourownmodule? </hint> </question>
-->
<answer id="perf-spi">
<p>
There are no special provisions.
</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.