[ 
http://issues.apache.org/jira/browse/WSCOMMONS-76?page=comments#action_12432513 
] 
            
Takahide Nogayama commented on WSCOMMONS-76:
--------------------------------------------

Objective of StAX Filter is mainly performance improvement. 

    - Avoid creating fruitless OMElements 
        If there are many unnecessary Elements in XML, and
        if StAX Filter remove them before StAXBuilder, we 
        can save CPU and Memory resources about creating 
        OMElements. i.e. Others SOAP headers are unnecessary
        elements. 

    - Avoid creating duplicate OMElements 
        If there are many Elements to be converted in XML, 
        StAXOMBuilder creates OMElements of raw data then 
        converts it to another OMElements. There exists double 
        OMElements they have same meaning. If user only uses 
        converted OMElements, Creating raw OMElements are 
        fruitless process. If StAX Filter converts XML data 
        before StAXBuilder, StAXOMBuilder creates only OMElements
        of converted data. 

- Avoid fruitless traverse 
        Searching OM tree can consume many CPU resources, if 
        target OMElement is in edge of the OM tree or the target
        OMElement is not exists. 
        
        If we get candidates for this search, we can only search
        in the candidate set. StAXOMBuilder invokes next() against
        all XML events. And StAX Filter pick up candidate and put
        it to candidate set in the next() invocation. Then we can
        use the candidate set for searching OMElement. 


> StAX Filter [ Data conversion, extraction, or do something between 
> XMLStreamReader and StAXBuilder]
> ---------------------------------------------------------------------------------------------------
>
>                 Key: WSCOMMONS-76
>                 URL: http://issues.apache.org/jira/browse/WSCOMMONS-76
>             Project: WS-Commons
>          Issue Type: New Feature
>          Components: AXIOM
>         Environment: windows
>            Reporter: Takahide Nogayama
>         Attachments: patchAXIOM_to_moduleaxiom-apisrcmainjava.txt, 
> patchAXIS2_to_moduleskernelsrc.txt, src_demo.zip, StAX_filter_architecture.ppt
>
>
> Filter is interface and extends XMLStreamReader. Filter wraps 
> XMLStreamReader. And XMLStreamReader of StAXBuilder is replaced by Filter.
> In building phase, next() method must be invoked on each event. filter get 
> result of next() from XMLStreamReader, and do some process, then return the 
> result to StAXBuilder.
> We can set Object on filter. Filter get some information from it and set 
> result on it to transfer the result.
> We can set StAXBuilder on filter. Filter get OMDocument from the builder. If 
> filter want to know past information, the OMDocument has it.
> If StAXBuilder has lastNode() method, Filter can make reference list to 
> OMNode. this is commneted in 
> http://issues.apache.org/jira/browse/WSCOMMONS-75 .
> Example1)
> SOAP header has some child elements. and they has actor Attribute. it 
> indicates which intermediary should process the element.
> ExtractMyActorSOAPHeaderFilter.java is implementation of Filter for this 
> example. The filter monitors locaName at first,
> If START_ELEMENT whose actor does not equals myactor is found, The filter 
> invokes next() until the element's END_ELEMENT.
> Thus, The soap header elements which has other's actor are not transfered to 
> StAXBuilder. We can ommit creating fruitness OM.
> Example2)
> If StAXBuilder has lastNode() method, Filter can make reference list. The 
> list has OMNode whose actor indicates myactor.
> After building, If we want to access Security header elements which has 
> myactor, we can access the element directry by using the reference list.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to