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

Old filter architecture,  patchAXIOM_to_moduleaxiom-apisrcmainjava.txt and 
patchAXIS2_to_moduleskernelsrc.txt, need to change constructor of StAXBuilder, 
StAXOMBuilder, StAXSOAPModelBuilder, and MTOMStAXSOAPModelBuilder. Most people 
are not happy for this change.

New Filter architecture, 
er2_patch_to_axiom_modules_axiom-api_src_main_java_org_apache_axiom_om_impl_builder.txt
 and ver2_patch_to_axis2_modules_kernel_src_org_apache_axis2_transport.txt, do 
not change constructor.
 StAXBuilder.enableFilter(Object object) method is added instead of changing 
constructor. Filter will be inserted after instance of StAXBuilder is created. 
The following is example
-----------------------------------------------------------------------------------------------
StAXBuilder builder = new StAXOMBuilder(xmlreader);
builder.enableFilter(msgContext);
SOAPEnvelope envelope = (SOAPEnvelope) builder.getDocumentElement();
-----------------------------------------------------------------------------------------------

How do you think? Give me comments. thanks.

> 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, 
> ver2_patch_to_axiom_modules_axiom-api_src_main_java_org_apache_axiom_om_impl_builder.txt,
>  ver2_patch_to_axis2_modules_kernel_src_org_apache_axis2_transport.txt
>
>
> 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