You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by de...@apache.org on 2007/04/27 14:39:46 UTC

svn commit: r533081 [1/23] - in /webservices/axis2/site: ./ 1_2/ 1_2/adb/ 1_2/adb/images/ 1_2/images/ 1_2/images/archi-guide/ 1_2/images/userguide/ 1_2/jibx/ 1_2/resources/ 1_2/resources/schemas/ 1_2/src/ css/ download/0_9/ download/0_91/ download/0_92...

Author: deepal
Date: Fri Apr 27 05:39:33 2007
New Revision: 533081

URL: http://svn.apache.org/viewvc?view=rev&rev=533081
Log:
updating site for 1.2

Added:
    webservices/axis2/site/1_2/
    webservices/axis2/site/1_2/Axis2-rpc-support.html
    webservices/axis2/site/1_2/Axis2ArchitectureGuide.html
    webservices/axis2/site/1_2/WS_policy.html
    webservices/axis2/site/1_2/adb/
    webservices/axis2/site/1_2/adb/adb-advanced.html
    webservices/axis2/site/1_2/adb/adb-codegen-integration.html
    webservices/axis2/site/1_2/adb/adb-howto.html
    webservices/axis2/site/1_2/adb/adb-tweaking.html
    webservices/axis2/site/1_2/adb/images/
    webservices/axis2/site/1_2/adb/images/ADB.jpg   (with props)
    webservices/axis2/site/1_2/adv-userguide.html
    webservices/axis2/site/1_2/app_server.html
    webservices/axis2/site/1_2/axis2config.html
    webservices/axis2/site/1_2/contents.html
    webservices/axis2/site/1_2/dii.html
    webservices/axis2/site/1_2/ejb-provider.html
    webservices/axis2/site/1_2/http-transport.html
    webservices/axis2/site/1_2/images/
    webservices/axis2/site/1_2/images/Architecture.gif   (with props)
    webservices/axis2/site/1_2/images/AxisService.jpg   (with props)
    webservices/axis2/site/1_2/images/Component.png   (with props)
    webservices/axis2/site/1_2/images/OM001.gif   (with props)
    webservices/axis2/site/1_2/images/OM002.jpg   (with props)
    webservices/axis2/site/1_2/images/OM003.jpg   (with props)
    webservices/axis2/site/1_2/images/OM004.jpg   (with props)
    webservices/axis2/site/1_2/images/OM005.gif   (with props)
    webservices/axis2/site/1_2/images/OM006.gif   (with props)
    webservices/axis2/site/1_2/images/OM007.gif   (with props)
    webservices/axis2/site/1_2/images/OM008.gif   (with props)
    webservices/axis2/site/1_2/images/OM1.png   (with props)
    webservices/axis2/site/1_2/images/ServerSideFault.png   (with props)
    webservices/axis2/site/1_2/images/ServiceDesc.gif   (with props)
    webservices/axis2/site/1_2/images/TotalArch.png   (with props)
    webservices/axis2/site/1_2/images/WomBuilder.png   (with props)
    webservices/axis2/site/1_2/images/activate.jpg   (with props)
    webservices/axis2/site/1_2/images/admin.jpg   (with props)
    webservices/axis2/site/1_2/images/adminlogin.jpg   (with props)
    webservices/axis2/site/1_2/images/adminmain.jpg   (with props)
    webservices/axis2/site/1_2/images/ant.jpg   (with props)
    webservices/axis2/site/1_2/images/archi-guide/
    webservices/axis2/site/1_2/images/archi-guide/CodegenArchitecture-new.gif   (with props)
    webservices/axis2/site/1_2/images/archi-guide/CodegenArchitecture.jpg   (with props)
    webservices/axis2/site/1_2/images/archi-guide/all.png   (with props)
    webservices/axis2/site/1_2/images/archi-guide/big-picture.gif   (with props)
    webservices/axis2/site/1_2/images/archi-guide/contexts.png   (with props)
    webservices/axis2/site/1_2/images/archi-guide/phases.png   (with props)
    webservices/axis2/site/1_2/images/archi-guide/soap-processing.gif   (with props)
    webservices/axis2/site/1_2/images/archi-guide/soap.gif   (with props)
    webservices/axis2/site/1_2/images/archi001.gif   (with props)
    webservices/axis2/site/1_2/images/archi002.gif   (with props)
    webservices/axis2/site/1_2/images/archi003.gif   (with props)
    webservices/axis2/site/1_2/images/archi004.jpg   (with props)
    webservices/axis2/site/1_2/images/archi005.jpg   (with props)
    webservices/axis2/site/1_2/images/archi006.jpg   (with props)
    webservices/axis2/site/1_2/images/archi007.jpg   (with props)
    webservices/axis2/site/1_2/images/archi008.gif   (with props)
    webservices/axis2/site/1_2/images/archi009.jpg   (with props)
    webservices/axis2/site/1_2/images/archi010.jpg   (with props)
    webservices/axis2/site/1_2/images/archi011.gif   (with props)
    webservices/axis2/site/1_2/images/archi012.jpg   (with props)
    webservices/axis2/site/1_2/images/archi013.gif   (with props)
    webservices/axis2/site/1_2/images/archi014.jpg   (with props)
    webservices/axis2/site/1_2/images/archi015.jpg   (with props)
    webservices/axis2/site/1_2/images/archi016.jpg   (with props)
    webservices/axis2/site/1_2/images/archi017.jpg   (with props)
    webservices/axis2/site/1_2/images/archi018.jpg   (with props)
    webservices/axis2/site/1_2/images/archi019.jpg   (with props)
    webservices/axis2/site/1_2/images/archi020.jpg   (with props)
    webservices/axis2/site/1_2/images/archi021.jpg   (with props)
    webservices/axis2/site/1_2/images/archi022.jpg   (with props)
    webservices/axis2/site/1_2/images/archi023.jpg   (with props)
    webservices/axis2/site/1_2/images/archi024.jpg   (with props)
    webservices/axis2/site/1_2/images/archi025.jpg   (with props)
    webservices/axis2/site/1_2/images/archi026.jpg   (with props)
    webservices/axis2/site/1_2/images/arrow_left.gif   (with props)
    webservices/axis2/site/1_2/images/arrow_right.gif   (with props)
    webservices/axis2/site/1_2/images/axis.jpg   (with props)
    webservices/axis2/site/1_2/images/ayncresult.png   (with props)
    webservices/axis2/site/1_2/images/call.png   (with props)
    webservices/axis2/site/1_2/images/callback.png   (with props)
    webservices/axis2/site/1_2/images/cases.jpg   (with props)
    webservices/axis2/site/1_2/images/clientAPi.png   (with props)
    webservices/axis2/site/1_2/images/clientside.png   (with props)
    webservices/axis2/site/1_2/images/clip_image002.jpg   (with props)
    webservices/axis2/site/1_2/images/clip_image004.jpg   (with props)
    webservices/axis2/site/1_2/images/clip_image006.jpg   (with props)
    webservices/axis2/site/1_2/images/clip_image008.jpg   (with props)
    webservices/axis2/site/1_2/images/clip_image010.jpg   (with props)
    webservices/axis2/site/1_2/images/clip_image012.jpg   (with props)
    webservices/axis2/site/1_2/images/clip_image014.jpg   (with props)
    webservices/axis2/site/1_2/images/clip_image016.jpg   (with props)
    webservices/axis2/site/1_2/images/clip_image018.jpg   (with props)
    webservices/axis2/site/1_2/images/clip_image020.jpg   (with props)
    webservices/axis2/site/1_2/images/clip_image022.jpg   (with props)
    webservices/axis2/site/1_2/images/clip_image024.jpg   (with props)
    webservices/axis2/site/1_2/images/clip_image026.jpg   (with props)
    webservices/axis2/site/1_2/images/codegen.gif   (with props)
    webservices/axis2/site/1_2/images/correlator.png   (with props)
    webservices/axis2/site/1_2/images/deploymetncomponent.png   (with props)
    webservices/axis2/site/1_2/images/editserviecpara.jpg   (with props)
    webservices/axis2/site/1_2/images/engine1.png   (with props)
    webservices/axis2/site/1_2/images/faultmsg.jpg   (with props)
    webservices/axis2/site/1_2/images/faultservice.jpg   (with props)
    webservices/axis2/site/1_2/images/fig01.jpg   (with props)
    webservices/axis2/site/1_2/images/fig02.jpg   (with props)
    webservices/axis2/site/1_2/images/fig03.jpg   (with props)
    webservices/axis2/site/1_2/images/fig04.jpg   (with props)
    webservices/axis2/site/1_2/images/fig05.jpg   (with props)
    webservices/axis2/site/1_2/images/fig06.jpg   (with props)
    webservices/axis2/site/1_2/images/globalchain.jpg   (with props)
    webservices/axis2/site/1_2/images/happyaxis.jpg   (with props)
    webservices/axis2/site/1_2/images/image001.png   (with props)
    webservices/axis2/site/1_2/images/image002.jpg   (with props)
    webservices/axis2/site/1_2/images/image003.png   (with props)
    webservices/axis2/site/1_2/images/image004.jpg   (with props)
    webservices/axis2/site/1_2/images/image005.gif   (with props)
    webservices/axis2/site/1_2/images/image005.png   (with props)
    webservices/axis2/site/1_2/images/image006.jpg   (with props)
    webservices/axis2/site/1_2/images/image007.png   (with props)
    webservices/axis2/site/1_2/images/image008.jpg   (with props)
    webservices/axis2/site/1_2/images/image009.png   (with props)
    webservices/axis2/site/1_2/images/image010.jpg   (with props)
    webservices/axis2/site/1_2/images/image011.png   (with props)
    webservices/axis2/site/1_2/images/image012.jpg   (with props)
    webservices/axis2/site/1_2/images/image013.jpg   (with props)
    webservices/axis2/site/1_2/images/inactivate.jpg   (with props)
    webservices/axis2/site/1_2/images/maven.png   (with props)
    webservices/axis2/site/1_2/images/module.png   (with props)
    webservices/axis2/site/1_2/images/moduleengage.jpg   (with props)
    webservices/axis2/site/1_2/images/modules.jpg   (with props)
    webservices/axis2/site/1_2/images/new.gif   (with props)
    webservices/axis2/site/1_2/images/om2.png   (with props)
    webservices/axis2/site/1_2/images/om3.png   (with props)
    webservices/axis2/site/1_2/images/parameters.jpg   (with props)
    webservices/axis2/site/1_2/images/select_service_for_handler.jpg   (with props)
    webservices/axis2/site/1_2/images/send.png   (with props)
    webservices/axis2/site/1_2/images/sendAsync.png   (with props)
    webservices/axis2/site/1_2/images/sendRecievce.png   (with props)
    webservices/axis2/site/1_2/images/sendRecieveAsync.png   (with props)
    webservices/axis2/site/1_2/images/sendRecieveWithListnere.png   (with props)
    webservices/axis2/site/1_2/images/serverSide.png   (with props)
    webservices/axis2/site/1_2/images/service.png   (with props)
    webservices/axis2/site/1_2/images/serviceHandlers.jpg   (with props)
    webservices/axis2/site/1_2/images/servicegroups.jpg   (with props)
    webservices/axis2/site/1_2/images/userguide/
    webservices/axis2/site/1_2/images/userguide/DirectoryStructure.jpg   (with props)
    webservices/axis2/site/1_2/images/userguide/ModuleView.jpg   (with props)
    webservices/axis2/site/1_2/images/userguide/MyServiceDeployed.jpg   (with props)
    webservices/axis2/site/1_2/images/userguide/ServiceDeployed.jpg   (with props)
    webservices/axis2/site/1_2/images/userguide/ServiceItems.jpg   (with props)
    webservices/axis2/site/1_2/images/userguide/TestClient.jpg   (with props)
    webservices/axis2/site/1_2/images/userguide/http-get-ws.jpg   (with props)
    webservices/axis2/site/1_2/images/viewphases.jpg   (with props)
    webservices/axis2/site/1_2/images/wom.png   (with props)
    webservices/axis2/site/1_2/index.html
    webservices/axis2/site/1_2/installationguide.html
    webservices/axis2/site/1_2/jibx/
    webservices/axis2/site/1_2/jibx/jibx-codegen-integration.html
    webservices/axis2/site/1_2/jibx/jibx-doclit-example.html
    webservices/axis2/site/1_2/jibx/jibx-unwrapped-example.html
    webservices/axis2/site/1_2/jms-transport.html
    webservices/axis2/site/1_2/json_support.html
    webservices/axis2/site/1_2/mail-configuration.html
    webservices/axis2/site/1_2/mail-transport.html
    webservices/axis2/site/1_2/migration.html
    webservices/axis2/site/1_2/modules.html
    webservices/axis2/site/1_2/mtom-guide.html
    webservices/axis2/site/1_2/pojoguide.html
    webservices/axis2/site/1_2/quickstartguide.html
    webservices/axis2/site/1_2/reference.html
    webservices/axis2/site/1_2/resources/
    webservices/axis2/site/1_2/resources/schemas/
    webservices/axis2/site/1_2/resources/schemas/module.xsd
    webservices/axis2/site/1_2/resources/schemas/services.xsd
    webservices/axis2/site/1_2/rest-ws.html
    webservices/axis2/site/1_2/soapmonitor-module.html
    webservices/axis2/site/1_2/spring.html
    webservices/axis2/site/1_2/src/
    webservices/axis2/site/1_2/src/Axis2SampleDocLitServiceCode.html
    webservices/axis2/site/1_2/tcp-transport.html
    webservices/axis2/site/1_2/toc.html
    webservices/axis2/site/1_2/transport_howto.html
    webservices/axis2/site/1_2/userguide-buildingservices.html
    webservices/axis2/site/1_2/userguide-codelisting5.html
    webservices/axis2/site/1_2/userguide-codelisting7.html
    webservices/axis2/site/1_2/userguide-creatingclients-jibx.html
    webservices/axis2/site/1_2/userguide-creatingclients-xmlbeans.html
    webservices/axis2/site/1_2/userguide-creatingclients.html
    webservices/axis2/site/1_2/userguide-forfurtherstudy.html
    webservices/axis2/site/1_2/userguide-installingtesting.html
    webservices/axis2/site/1_2/userguide-introtoservices.html
    webservices/axis2/site/1_2/userguide-samples.html
    webservices/axis2/site/1_2/userguide.html
    webservices/axis2/site/1_2/webadminguide.html
    webservices/axis2/site/1_2/xmlbased-server.html
    webservices/axis2/site/download/1_2/
    webservices/axis2/site/download/1_2/download.cgi
    webservices/axis2/site/download/1_2/download.html
    webservices/axis2/site/modules/rampart/1_2/
    webservices/axis2/site/modules/rampart/1_2/sec-conf/
    webservices/axis2/site/modules/rampart/1_2/sec-conf/in-sample.png   (with props)
    webservices/axis2/site/modules/rampart/1_2/sec-conf/in.action.xsd
    webservices/axis2/site/modules/rampart/1_2/sec-conf/out-action.xsd
    webservices/axis2/site/modules/rampart/1_2/sec-conf/out-sample.png   (with props)
    webservices/axis2/site/modules/rampart/1_2/sec-conf/out-sample2.png   (with props)
    webservices/axis2/site/modules/rampart/1_2/sec-conf/rampart-config.xsd
    webservices/axis2/site/modules/rampart/1_2/sec-conf/sample-policy.html
    webservices/axis2/site/modules/rampart/1_2/sec-conf/sample-services.html
    webservices/axis2/site/modules/rampart/1_2/security-module.html
Modified:
    webservices/axis2/site/archived_news.html
    webservices/axis2/site/articles.html
    webservices/axis2/site/css/axis-docs.css
    webservices/axis2/site/cvs-usage.html
    webservices/axis2/site/dependencies.html
    webservices/axis2/site/download.cgi
    webservices/axis2/site/download.html
    webservices/axis2/site/download/0_9/download.cgi
    webservices/axis2/site/download/0_9/download.html
    webservices/axis2/site/download/0_91/download.cgi
    webservices/axis2/site/download/0_91/download.html
    webservices/axis2/site/download/0_92/download.cgi
    webservices/axis2/site/download/0_92/download.html
    webservices/axis2/site/download/0_93/download.cgi
    webservices/axis2/site/download/0_93/download.html
    webservices/axis2/site/download/0_94/download.cgi
    webservices/axis2/site/download/0_94/download.html
    webservices/axis2/site/download/0_95/download.cgi
    webservices/axis2/site/download/0_95/download.html
    webservices/axis2/site/download/1_0/download.cgi
    webservices/axis2/site/download/1_0/download.html
    webservices/axis2/site/download/1_1/download.cgi
    webservices/axis2/site/download/1_1/download.html
    webservices/axis2/site/download/1_1_1/download.cgi
    webservices/axis2/site/download/1_1_1/download.html
    webservices/axis2/site/download/M2/download.cgi
    webservices/axis2/site/download/M2/download.html
    webservices/axis2/site/downloads.html
    webservices/axis2/site/faq.html
    webservices/axis2/site/guidelines.html
    webservices/axis2/site/index.html
    webservices/axis2/site/issue-tracking.html
    webservices/axis2/site/mail-lists.html
    webservices/axis2/site/maven-help.html
    webservices/axis2/site/maven-reports.html
    webservices/axis2/site/modules/addressing/index.html
    webservices/axis2/site/modules/download.cgi
    webservices/axis2/site/modules/index.html
    webservices/axis2/site/modules/previous.html
    webservices/axis2/site/modules/rampart/1_0/sec-conf/in-sample.png
    webservices/axis2/site/modules/rampart/1_0/sec-conf/in.action.xsd
    webservices/axis2/site/modules/rampart/1_0/sec-conf/out-action.xsd
    webservices/axis2/site/modules/rampart/1_0/sec-conf/out-sample.png
    webservices/axis2/site/modules/rampart/1_0/sec-conf/out-sample2.png
    webservices/axis2/site/modules/rampart/1_0/security-module.html
    webservices/axis2/site/modules/rampart/1_1/sec-conf/in-sample.png
    webservices/axis2/site/modules/rampart/1_1/sec-conf/in.action.xsd
    webservices/axis2/site/modules/rampart/1_1/sec-conf/out-action.xsd
    webservices/axis2/site/modules/rampart/1_1/sec-conf/out-sample.png
    webservices/axis2/site/modules/rampart/1_1/sec-conf/out-sample2.png
    webservices/axis2/site/modules/rampart/1_1/sec-conf/rampart-config.xsd
    webservices/axis2/site/modules/rampart/1_1/security-module.html
    webservices/axis2/site/modules/wss4j/0_94/0.94/sec-conf/in-sample.png
    webservices/axis2/site/modules/wss4j/0_94/0.94/sec-conf/in.action.xsd
    webservices/axis2/site/modules/wss4j/0_94/0.94/sec-conf/out-action.xsd
    webservices/axis2/site/modules/wss4j/0_94/0.94/sec-conf/out-sample.png
    webservices/axis2/site/modules/wss4j/0_94/0.94/sec-conf/out-sample2.png
    webservices/axis2/site/modules/wss4j/0_94/0.94/security-module.html
    webservices/axis2/site/modules/wss4j/0_95/sec-conf/in-sample.png
    webservices/axis2/site/modules/wss4j/0_95/sec-conf/in.action.xsd
    webservices/axis2/site/modules/wss4j/0_95/sec-conf/out-action.xsd
    webservices/axis2/site/modules/wss4j/0_95/sec-conf/out-sample.png
    webservices/axis2/site/modules/wss4j/0_95/sec-conf/out-sample2.png
    webservices/axis2/site/modules/wss4j/0_95/security-module.html
    webservices/axis2/site/modules/wss4j/1_0/sec-conf/in-sample.png
    webservices/axis2/site/modules/wss4j/1_0/sec-conf/in.action.xsd
    webservices/axis2/site/modules/wss4j/1_0/sec-conf/out-action.xsd
    webservices/axis2/site/modules/wss4j/1_0/sec-conf/out-sample.png
    webservices/axis2/site/modules/wss4j/1_0/sec-conf/out-sample2.png
    webservices/axis2/site/modules/wss4j/1_0/security-module.html
    webservices/axis2/site/overview.html
    webservices/axis2/site/project-info.html
    webservices/axis2/site/refLib.html
    webservices/axis2/site/siteHowTo.html
    webservices/axis2/site/svn.html
    webservices/axis2/site/team-list.html
    webservices/axis2/site/thanks.html
    webservices/axis2/site/tools/1_1/CodegenToolReference.html
    webservices/axis2/site/tools/1_1/eclipse/images/ServicePage1.jpg
    webservices/axis2/site/tools/1_1/eclipse/images/ServiceWizardSelection.jpg
    webservices/axis2/site/tools/1_1/eclipse/images/Thumbs.db
    webservices/axis2/site/tools/1_1/eclipse/images/help.jpg
    webservices/axis2/site/tools/1_1/eclipse/images/java2wsdl-screen0.jpg
    webservices/axis2/site/tools/1_1/eclipse/images/java2wsdl-screen0.png
    webservices/axis2/site/tools/1_1/eclipse/images/java2wsdl-screen1.jpg
    webservices/axis2/site/tools/1_1/eclipse/images/java2wsdl-screen1.png
    webservices/axis2/site/tools/1_1/eclipse/images/java2wsdl-screen2.jpg
    webservices/axis2/site/tools/1_1/eclipse/images/java2wsdl-screen2.png
    webservices/axis2/site/tools/1_1/eclipse/images/java2wsdl-screen3.jpg
    webservices/axis2/site/tools/1_1/eclipse/images/java2wsdl-screen3.png
    webservices/axis2/site/tools/1_1/eclipse/images/java2wsdl-screen31.png
    webservices/axis2/site/tools/1_1/eclipse/images/java2wsdl-screen4.png
    webservices/axis2/site/tools/1_1/eclipse/images/service_page2.jpg
    webservices/axis2/site/tools/1_1/eclipse/images/service_page3.jpg
    webservices/axis2/site/tools/1_1/eclipse/images/service_page3_hl.jpg
    webservices/axis2/site/tools/1_1/eclipse/images/service_page4_load.jpg
    webservices/axis2/site/tools/1_1/eclipse/images/service_page4_plain.jpg
    webservices/axis2/site/tools/1_1/eclipse/images/service_page4_search_declared.jpg
    webservices/axis2/site/tools/1_1/eclipse/images/service_page4_table.jpg
    webservices/axis2/site/tools/1_1/eclipse/images/service_page5.jpg
    webservices/axis2/site/tools/1_1/eclipse/images/service_page5_added.jpg
    webservices/axis2/site/tools/1_1/eclipse/images/service_page5_browsed.jpg
    webservices/axis2/site/tools/1_1/eclipse/images/service_page5_hl.jpg
    webservices/axis2/site/tools/1_1/eclipse/images/service_page5_remove.jpg
    webservices/axis2/site/tools/1_1/eclipse/images/service_page6.jpg
    webservices/axis2/site/tools/1_1/eclipse/images/success_msg.jpg
    webservices/axis2/site/tools/1_1/eclipse/images/wsdl2java-screen0.jpg
    webservices/axis2/site/tools/1_1/eclipse/images/wsdl2java-screen0.png
    webservices/axis2/site/tools/1_1/eclipse/images/wsdl2java-screen1.jpg
    webservices/axis2/site/tools/1_1/eclipse/images/wsdl2java-screen1.png
    webservices/axis2/site/tools/1_1/eclipse/images/wsdl2java-screen2.jpg
    webservices/axis2/site/tools/1_1/eclipse/images/wsdl2java-screen2.png
    webservices/axis2/site/tools/1_1/eclipse/images/wsdl2java-screen3.jpg
    webservices/axis2/site/tools/1_1/eclipse/images/wsdl2java-screen3.png
    webservices/axis2/site/tools/1_1/eclipse/images/wsdl2java-screen31.png
    webservices/axis2/site/tools/1_1/eclipse/images/wsdl2java-screen4.jpg
    webservices/axis2/site/tools/1_1/eclipse/images/wsdl2java-screen4.png
    webservices/axis2/site/tools/1_1/eclipse/images/wsdl2java-screen41.png
    webservices/axis2/site/tools/1_1/eclipse/servicearchiver-plugin.html
    webservices/axis2/site/tools/1_1/eclipse/wsdl2java-plugin.html
    webservices/axis2/site/tools/1_1/idea/Idea_plug-in_userguide.html
    webservices/axis2/site/tools/1_1/idea/images/fig1.jpg
    webservices/axis2/site/tools/1_1/idea/images/fig10.jpg
    webservices/axis2/site/tools/1_1/idea/images/fig11.jpg
    webservices/axis2/site/tools/1_1/idea/images/fig12.jpg
    webservices/axis2/site/tools/1_1/idea/images/fig13.jpg
    webservices/axis2/site/tools/1_1/idea/images/fig14.jpg
    webservices/axis2/site/tools/1_1/idea/images/fig15.jpg
    webservices/axis2/site/tools/1_1/idea/images/fig16.jpg
    webservices/axis2/site/tools/1_1/idea/images/fig17.jpg
    webservices/axis2/site/tools/1_1/idea/images/fig18.jpg
    webservices/axis2/site/tools/1_1/idea/images/fig19.jpg
    webservices/axis2/site/tools/1_1/idea/images/fig2.jpg
    webservices/axis2/site/tools/1_1/idea/images/fig3.jpg
    webservices/axis2/site/tools/1_1/idea/images/fig4.jpg
    webservices/axis2/site/tools/1_1/idea/images/fig5.jpg
    webservices/axis2/site/tools/1_1/idea/images/fig6.jpg
    webservices/axis2/site/tools/1_1/idea/images/fig7.jpg
    webservices/axis2/site/tools/1_1/idea/images/fig8.jpg
    webservices/axis2/site/tools/1_1/idea/images/idea-icons.jpg
    webservices/axis2/site/tools/1_1/idea/images/idea-popup.jpg
    webservices/axis2/site/tools/1_1/maven-plugins/maven-aar-plugin.html
    webservices/axis2/site/tools/1_1/maven-plugins/maven-java2wsdl-plugin.html
    webservices/axis2/site/tools/1_1/maven-plugins/maven-wsdl2code-plugin.html
    webservices/axis2/site/tools/download.cgi
    webservices/axis2/site/tools/index.html
    webservices/axis2/site/tools/previous.html

Added: webservices/axis2/site/1_2/Axis2-rpc-support.html
URL: http://svn.apache.org/viewvc/webservices/axis2/site/1_2/Axis2-rpc-support.html?view=auto&rev=533081
==============================================================================
--- webservices/axis2/site/1_2/Axis2-rpc-support.html (added)
+++ webservices/axis2/site/1_2/Axis2-rpc-support.html Fri Apr 27 05:39:33 2007
@@ -0,0 +1,237 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html><head><title>Axis2/Java - Axis2 RPC Support</title><style type="text/css" media="all">
+          @import url("../style/maven-base.css");
+          
+			    @import url("../style/maven-theme.css");</style><link rel="stylesheet" href="../style/print.css" type="text/css" media="print"></link><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"></meta></head><body class="composite"><div id="banner"><a href="http://www.apache.org/" id="organizationLogo"><img alt="Apache Software Foundation" src="http://www.apache.org/images/asf-logo.gif"></img></a><a href="http://ws.apache.org/axis2/" id="projectLogo"><img alt="Apache Axis2" src="http://ws.apache.org/axis2/images/axis.jpg"></img></a><div class="clear"><hr></hr></div></div><div id="breadcrumbs"><div class="xleft">
+                	Last published: 27 April 2007
+                  | Doc for 1.2</div><div class="xright">
+        
+        <a href="../index.html">Axis2/Java</a>
+      
+        
+          
+            <span class="separator">|</span>
+          
+        
+        <a href="http://ws.apache.org/axis2/c" class="externalLink" title="External Link">Axis2/C</a>
+      
+        
+          
+            <span class="separator">|</span>
+          
+        
+        <a href="http://ws.apache.org" class="externalLink" title="External Link">Apache WS</a>
+      
+        
+          
+            <span class="separator">|</span>
+          
+        
+        <a href="http://www.apache.org" class="externalLink" title="External Link">Apache </a>
+      </div><div class="clear"><hr></hr></div></div><div id="leftColumn"><div id="navcolumn"><div id="menuAxis2_Java"><h5>Axis2/Java</h5><ul><li class="none"><a href="../index.html">Home</a></li></ul></div><div id="menuDownloads"><h5>Downloads</h5><ul><li class="none"><a href="../download.cgi">Releases</a></li><li class="none"><a href="../modules/index.html">Modules</a></li><li class="none"><a href="../tools/index.html">Tools</a></li></ul></div><div id="menuDocumentation"><h5>Documentation</h5><ul><li class="expanded"><a href="../1_2/contents.html">Version 1.2</a><ul><li class="none"><a href="../1_2/toc.html">Table of Contents</a></li><li class="none"><a href="../1_2/installationguide.html">Installation Guide</a></li><li class="none"><a href="../1_2/quickstartguide.html">QuickStart Guide</a></li><li class="none"><a href="../1_2/userguide.html">User Guide</a></li><li class="none"><a href="../1_2/pojoguide.html">POJO Guide</a></li><li class="none"><a href="../1_2/spring.html">
 Spring Guide</a></li><li class="none"><a href="../1_2/webadminguide.html">Web Administrator's Guide</a></li><li class="none"><a href="../1_2/migration.html">Migration Guide (from Axis1)</a></li></ul></li><li class="none"><a href="../1_1_1/index.html">Version 1.0</a></li><li class="none"><a href="../1_1/index.html">Version 1.0</a></li><li class="none"><a href="../1_0/index.html">Version 1.0</a></li><li class="none"><a href="../0_95/index.html">Version 0.95</a></li><li class="none"><a href="../0_94/index.html">Version 0.94</a></li><li class="none"><a href="../0_93/index.html">Version 0.93</a></li></ul></div><div id="menuResources"><h5>Resources</h5><ul><li class="none"><a href="../faq.html">FAQ</a></li><li class="none"><a href="../articles.html">Articles</a></li><li class="none"><a href="http://wiki.apache.org/ws/FrontPage/Axis2/" class="externalLink" title="External Link">Wiki</a></li><li class="none"><a href="../refLib.html">Reference Library</a></li><li class="none"><a href
 ="http://ws.apache.org/axis2/1_2/api/index.html" class="externalLink" title="External Link">Online Java Docs</a></li></ul></div><div id="menuGet_Involved"><h5>Get Involved</h5><ul><li class="none"><a href="../overview.html">Overview</a></li><li class="none"><a href="../svn.html">Checkout the Source</a></li><li class="none"><a href="../mail-lists.html">Mailing Lists</a></li><li class="none"><a href="../guidelines.html">Developer Guidelines</a></li><li class="none"><a href="../siteHowTo.html">Build the Site</a></li></ul></div><div id="menuProject_Information"><h5>Project Information</h5><ul><li class="none"><a href="../team-list.html">Project Team</a></li><li class="none"><a href="../issue-tracking.html">Issue Tracking</a></li><li class="none"><a href="http://svn.apache.org/viewcvs.cgi/webservices/axis2/trunk/?root=Apache-SVN" class="externalLink" title="External Link">Source Code</a></li><li class="none"><a href="../thanks.html">Acknowledgements</a></li><li class="none"><a hr
 ef="http://www.apache.org/licenses/LICENSE-2.0.html" class="externalLink" title="External Link">License</a></li></ul></div><a href="http://maven.apache.org/" title="Built by Maven" id="poweredBy"><img alt="Built by Maven" src="../images/logos/maven-button-1.png"></img></a></div></div><div id="bodyColumn"><div class="contentBox"><div class="section"><a name="Axis2_RPC_Support"></a><h2>Axis2 RPC Support</h2><p>This document describes Axis2's Remote Procedure Call support in a set of
+easy to understand implementation steps.</p><div class="subsection"><a name="Introduction"></a><h3>Introduction</h3><p>Axis2 Remote Procedure Call (RPC) support may seem somewhat tricky and
+confusing at first glance. However, Axis2 RPC strategy is based on a set of
+well defined rules. This document aims to drill down to the details of the
+strategy and resolve most of the unknown bits and pieces. Note that Axis2
+currently does not support the rpc/encoded style fully. Its main support is
+for the rpc/lit style.</p><p>We will discuss the Axis2 RPC strategy in the following steps</p></div><div class="subsection"><a name="Step_1_-_Converting_RPC_Style_WSDL_s_into_Doc_Lit_Style_WSDL"></a><h3>Step 1 - Converting RPC Style WSDL's into Doc/Lit Style WSDL</h3><p>This is probably the most confusing part of the RPC strategy. Since the
+Axis2 code generator is based on pure doc/lit style, the first step of the
+code generation process is to generate a wrapper schema. This wrapper
+generation can be easily explained by using an example.</p><p>Take the following piece of WSDL</p>
+    <div class="source"><pre> .....
+    &lt; message name="requestMessage"&gt;
+                &lt;part name="part1" type="xs:string"/&gt;
+                &lt;part name="part2" type="xs:int"/&gt;
+        &lt;/message&gt;
+        &lt;message name="responseMessage"&gt;
+                &lt;part name="part1" type="xs:string"/&gt;
+        &lt;/message&gt;
+        &lt;portType name="echoPortType"&gt;
+                &lt;operation name="echo"&gt;
+                        &lt;input message="y:requestMessage"/&gt;
+                        &lt;output message="y:responseMessage"/&gt;
+                &lt;/operation&gt;
+        &lt;/portType&gt;
+        &lt;binding name="echoBinding" type="y:echoPortType"&gt;
+                &lt;soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/&gt;
+                &lt;operation name="echo"&gt;
+                        &lt;soap:operation soapAction="echo"/&gt;
+                        &lt;input&gt;
+                                &lt;soap:body use="literal"/&gt;
+                        &lt;/input&gt;
+                        &lt;output&gt;
+                                &lt;soap:body use="literal"/&gt;
+                        &lt;/output&gt;
+                &lt;/operation&gt;
+        &lt;/binding&gt;
+.....
+
+</pre></div>
+  <p>The binding says its got to be rpc/lit and in this case the message parts
+need wrapping in the following order.</p><ol>
+  <li>The first element needs to have the operation name as the local name
+    and the operation namespace. (This happens to be the namespace of the
+    porttype - in this case the targetnamespace of the WSDL.)</li>
+  <li>The children of this element are non namespace qualified elements with
+    the part names as local names (referred to as <strong>part
+    element</strong>)</li>
+  <li>In case the part refers to a standard type like the example WSDL, the
+    content of the part element would be of that type. If the part refers to
+    a complex type defined in the schema, the content of the part element
+    becomes of that type. Having an element reference in the part when the
+    binding is rpc is invalid.</li>
+</ol><p>For example, the input wire message for the echo operation mentioned in
+the above WSDL fragment would look like this:</p>
+    <div class="source"><pre> &lt;op: xmlns:op="porttype namespace"&gt;
+  &lt;&gt;Hello World&lt;/part1&gt;
+  &lt;&gt;123&lt;/part2&gt;
+ &lt;/op:echo&gt;
+
+</pre></div>
+  <p>Note that the element name is in bold. The first one is the operation
+name, the second and third are part names. It can be seen that it is possible
+to generate a schema representing this structure, and then treat the whole
+service as a pure doc/lit service. In this case, the following piece of
+schema is generated to make the rpc to doc conversion. Note that in this case
+the wire message stays unchanged. It is only a different WSDL authoring
+style</p>
+    <div class="source"><pre> &lt;xs:element name="echo"&gt;
+    &lt;xs:complexType&gt;
+      &lt;xs:sequence&gt;
+                &lt;xs:element name="part1" type="xs:string" /&gt; 
+                &lt;xs:element name="part2" type="xs:int" /&gt; 
+           &lt;/xs:sequence&gt;    
+    &lt;/xs:complexType&gt;
+ &lt;/xs:element&gt;
+
+</pre></div>
+  <p>What the Axis2 code generator does is exactly this. By looking at the
+binding style, it generates a wrapper schema in places required before
+handing over the Axis* hierarchy to the code generator engine. In every case
+(even when the schema needs to be unwrapped) this wrapping part will take
+place!</p></div><div class="subsection"><a name="Step_2_-_Unwrapping_the_Schema"></a><h3>Step 2 - Unwrapping the Schema</h3><p>If the schema needs to be unwrapped, it brings up a few issues. This is
+mainly because the only thing that the emitters rely on when generating code
+is a mapping table.</p><ol>
+  <li>When the schema is unwrapped, where will the unwrapping information
+    remain?
+    <p>There has to be a store to keep the information seperated. The Axis *
+    hierarchy ca be used for this. It has nicely separated information
+    holders and a parameter store that can hold an information bean.</p>
+  </li>
+  <li>How do we maintain uniqueness among message part names?
+    <p>Part names are only unique across a message and not globally. However,
+    due to the fact that we have a global mapping table, we need a way to
+    differentiate between parts of different messages. The technique used
+    here is to generate a QName that has the operation name as a namespace
+    and a suffix (like _input) appended to the local name.</p>
+  </li>
+</ol><p>Given these solutions, the first step in unwrapping is to walk the schema
+and figure out the unwrappable items. The key player of the unwrapping
+process is the unwrapping extension. It walks a given schema and figure out
+the unwrappable parts if there are any.</p><p>The current unwrapper looks for the following patterns and fails if it is
+not found!</p>
+    <div class="source"><pre>&lt; element &gt;
+      &lt; complexType &gt;
+           &lt; sequence &gt;
+               &lt; element /&gt;
+           &lt; /sequence &gt;
+       &lt; /complexType &gt;
+  &lt; /element &gt;
+ 
+
+</pre></div>
+  <p>Once this pattern is detected, the unwrapper details will be added to the
+relevant AxisMessage component.</p></div><div class="subsection"><a name="Step_3_-_Populate_Type_Information"></a><h3>Step 3 - Populate Type Information</h3><p>The next step is to populate the Type information for the parts. This has
+to be explicitly done by the data binding extensions, and currently the ADB
+and XMLbeans extensions populate the relevant AxisMessage by looking up their
+generated type systems. This type information goes into the AxisMessage
+inside a MessagePartInformationHolder instance.</p><p>The following code fragment from the ADB extension shows how the
+AxisMessages get populated with the relevant type information. The code is
+almost the same for the XMLBeans extension. Note the items in bold.</p>
+    <div class="source"><pre> if (message.getParameter(Constants.UNWRAPPED_KEY) != null) {
+            XmlSchemaType schemaType = message.getSchemaElement().getSchemaType();
+            if (schemaType instanceof XmlSchemaComplexType) {
+                XmlSchemaComplexType cmplxType = (XmlSchemaComplexType) schemaType;
+                XmlSchemaParticle particle = cmplxType.getParticle();
+                if (particle instanceof XmlSchemaSequence) {
+                    XmlSchemaObjectCollection items =
+                            ((XmlSchemaSequence) particle).getItems();
+                    for (Iterator i = items.getIterator(); i.hasNext();) {
+                        Object item = i.next();
+                        if (item instanceof XmlSchemaElement) {
+                           XmlSchemaElement xmlSchemaElement = (XmlSchemaElement) item;
+                            XmlSchemaType eltSchemaType = xmlSchemaElement.getSchemaType();
+                            if (eltSchemaType != null) {
+                                
+                            } else if (xmlSchemaElement.getSchemaTypeName() != null) {
+                              eltSchemaType = findSchemaType(schemaMap,
+                                       xmlSchemaElement.getSchemaTypeName());
+                              if (eltSchemaType!=null){
+                                 populateClassName(eltSchemaType,mapper,opName,xmlSchemaElement.getName());
+                            }
+                          }
+                      }
+                  }
+              }
+         }
+   }
+
+</pre></div>
+  <p>The populateClassName looks like this</p>
+    <div class="source"><pre> private static void populateClassName(XmlSchemaType eltSchemaType,
+                                          TypeMapper typeMap,
+                                          String opName,
+                                          String partName) {
+        Map metaInfoMap = eltSchemaType.getMetaInfoMap();
+        if (metaInfoMap != null) {
+            
+            if (Boolean.TRUE.equals(
+                    metaInfoMap.get(SchemaConstants.
+                            SchemaCompilerInfoHolder.CLASSNAME_PRIMITVE_KEY))){
+                //this type is primitive - add that to the type mapper status
+                //for now lets add a boolean
+                typeMap.addTypeMappingStatus(partQName,Boolean.TRUE);
+            }
+
+        }
+    }
+
+</pre></div>
+  </div><div class="subsection"><a name="Step_4_-_Generate_Code_with_Unwrapped_Parameters"></a><h3>Step 4 - Generate Code with Unwrapped Parameters</h3><p>The next step is generating the actual code. The
+AxisServiceBasedMultiLanguageEmitter has a method that generates the XML
+model for the input parameters, and that method includes the relevant part
+parameters inside the relavant top level input parameter element.</p><p>The relevant part of the XML model looks like this. Note that this
+intermediate XML model is the one that is parsed against the Stylesheets to
+generate the code.</p>
+    <div class="source"><pre>&lt;input&gt;
+ &lt;param name="param4" type="com.example.www.ServiceNameStub.Echo" shorttype="Echo" value="null" location="body" opname="echo"&gt;
+        &lt;param name="param5" type="java.lang.String" shorttype="String" value="null" location="body" opname="echo" partname="Part1" 
+                                                                                                primitive="yes"/&gt;
+        &lt;param name="param6" type="int" shorttype="int" value="0" location="body" opname="echo" partname="Part2" primitive="yes"/&gt;
+  &lt;/param&gt;
+&lt;/input&gt;
+
+</pre></div>
+  <p>The next part is handled by the template. Basically, the template looks
+after the generation of multiple parameters into the method signatures, and
+then the generating of the relevant serialization and deserialization code
+for the parameters.</p></div><div class="subsection"><a name="Bringing_the_Parameters_Together_and_Exploding_Them"></a><h3>Bringing the Parameters Together and Exploding Them</h3><p>This is a somewhat controversial area. The current Axis2 code generator
+does the wrapping and unwrapping at the object level and not the XML level.
+In short, the exploded parameters are only a convenience and the explosion
+does not run down to the XML level. The following example of generated source
+code makes this clear:</p>
+    <div class="source"><pre> private org.apache.axiom.soap.SOAPEnvelope toEnvelope(
+        org.apache.axiom.soap.SOAPFactory factory, java.lang.String param1,
+        int param2, boolean optimizeContent) {
+        
+        rg.apache.axiom.soap.SOAPEnvelope emptyEnvelope = factory.getDefaultEnvelope();
+        emptyEnvelope.getBody().addChild(wrappedType.getOMElement(
+                        com.example.www.ServiceNameStub.Echo.MY_QNAME, factory));
+        
+        return emptyEnvelope;
+}
+
+</pre></div>
+  <p>Note the lines in bold. The wrapped class will anyway be instantiated and
+used at the end, but what the user sees is different. Exploding the
+parameters happens in a similar way!</p></div><div class="subsection"><a name="Conclusion"></a><h3>Conclusion</h3><p>Axis2 RPC support is sort of a misty area, but it is based on a well
+defined set of rules which makes it not <em>that</em> misty after all!</p></div></div><div class="section"></div></div></div><div class="clear"><hr></hr></div><div id="footer"><div class="xright">© 2004-2007, Apache Software Foundation</div><div class="clear"><hr></hr></div></div></body></html>
\ No newline at end of file

Added: webservices/axis2/site/1_2/Axis2ArchitectureGuide.html
URL: http://svn.apache.org/viewvc/webservices/axis2/site/1_2/Axis2ArchitectureGuide.html?view=auto&rev=533081
==============================================================================
--- webservices/axis2/site/1_2/Axis2ArchitectureGuide.html (added)
+++ webservices/axis2/site/1_2/Axis2ArchitectureGuide.html Fri Apr 27 05:39:33 2007
@@ -0,0 +1,517 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html><head><title>Axis2/Java - Axis2 Architecture Guide</title><style type="text/css" media="all">
+          @import url("../style/maven-base.css");
+          
+			    @import url("../style/maven-theme.css");</style><link rel="stylesheet" href="../style/print.css" type="text/css" media="print"></link><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"></meta></head><body class="composite"><div id="banner"><a href="http://www.apache.org/" id="organizationLogo"><img alt="Apache Software Foundation" src="http://www.apache.org/images/asf-logo.gif"></img></a><a href="http://ws.apache.org/axis2/" id="projectLogo"><img alt="Apache Axis2" src="http://ws.apache.org/axis2/images/axis.jpg"></img></a><div class="clear"><hr></hr></div></div><div id="breadcrumbs"><div class="xleft">
+                	Last published: 27 April 2007
+                  | Doc for 1.2</div><div class="xright">
+        
+        <a href="../index.html">Axis2/Java</a>
+      
+        
+          
+            <span class="separator">|</span>
+          
+        
+        <a href="http://ws.apache.org/axis2/c" class="externalLink" title="External Link">Axis2/C</a>
+      
+        
+          
+            <span class="separator">|</span>
+          
+        
+        <a href="http://ws.apache.org" class="externalLink" title="External Link">Apache WS</a>
+      
+        
+          
+            <span class="separator">|</span>
+          
+        
+        <a href="http://www.apache.org" class="externalLink" title="External Link">Apache </a>
+      </div><div class="clear"><hr></hr></div></div><div id="leftColumn"><div id="navcolumn"><div id="menuAxis2_Java"><h5>Axis2/Java</h5><ul><li class="none"><a href="../index.html">Home</a></li></ul></div><div id="menuDownloads"><h5>Downloads</h5><ul><li class="none"><a href="../download.cgi">Releases</a></li><li class="none"><a href="../modules/index.html">Modules</a></li><li class="none"><a href="../tools/index.html">Tools</a></li></ul></div><div id="menuDocumentation"><h5>Documentation</h5><ul><li class="expanded"><a href="../1_2/contents.html">Version 1.2</a><ul><li class="none"><a href="../1_2/toc.html">Table of Contents</a></li><li class="none"><a href="../1_2/installationguide.html">Installation Guide</a></li><li class="none"><a href="../1_2/quickstartguide.html">QuickStart Guide</a></li><li class="none"><a href="../1_2/userguide.html">User Guide</a></li><li class="none"><a href="../1_2/pojoguide.html">POJO Guide</a></li><li class="none"><a href="../1_2/spring.html">
 Spring Guide</a></li><li class="none"><a href="../1_2/webadminguide.html">Web Administrator's Guide</a></li><li class="none"><a href="../1_2/migration.html">Migration Guide (from Axis1)</a></li></ul></li><li class="none"><a href="../1_1_1/index.html">Version 1.0</a></li><li class="none"><a href="../1_1/index.html">Version 1.0</a></li><li class="none"><a href="../1_0/index.html">Version 1.0</a></li><li class="none"><a href="../0_95/index.html">Version 0.95</a></li><li class="none"><a href="../0_94/index.html">Version 0.94</a></li><li class="none"><a href="../0_93/index.html">Version 0.93</a></li></ul></div><div id="menuResources"><h5>Resources</h5><ul><li class="none"><a href="../faq.html">FAQ</a></li><li class="none"><a href="../articles.html">Articles</a></li><li class="none"><a href="http://wiki.apache.org/ws/FrontPage/Axis2/" class="externalLink" title="External Link">Wiki</a></li><li class="none"><a href="../refLib.html">Reference Library</a></li><li class="none"><a href
 ="http://ws.apache.org/axis2/1_2/api/index.html" class="externalLink" title="External Link">Online Java Docs</a></li></ul></div><div id="menuGet_Involved"><h5>Get Involved</h5><ul><li class="none"><a href="../overview.html">Overview</a></li><li class="none"><a href="../svn.html">Checkout the Source</a></li><li class="none"><a href="../mail-lists.html">Mailing Lists</a></li><li class="none"><a href="../guidelines.html">Developer Guidelines</a></li><li class="none"><a href="../siteHowTo.html">Build the Site</a></li></ul></div><div id="menuProject_Information"><h5>Project Information</h5><ul><li class="none"><a href="../team-list.html">Project Team</a></li><li class="none"><a href="../issue-tracking.html">Issue Tracking</a></li><li class="none"><a href="http://svn.apache.org/viewcvs.cgi/webservices/axis2/trunk/?root=Apache-SVN" class="externalLink" title="External Link">Source Code</a></li><li class="none"><a href="../thanks.html">Acknowledgements</a></li><li class="none"><a hr
 ef="http://www.apache.org/licenses/LICENSE-2.0.html" class="externalLink" title="External Link">License</a></li></ul></div><a href="http://maven.apache.org/" title="Built by Maven" id="poweredBy"><img alt="Built by Maven" src="../images/logos/maven-button-1.png"></img></a></div></div><div id="bodyColumn"><div class="contentBox"><div class="section"><a name="eApache_Axis2_Architecture_Guide"></a><h2>eApache Axis2 Architecture Guide</h2><p>This document gives an introduction to Axis2's modular architecture with
+explanations on every module.</p><p><i>Send your feedback to: <a href="mailto:axis-dev@ws.apache.org?subject=[Axis2]">axis-dev@ws.apache.org</a></i>.
+(Subscription details are available on the <a href="http://ws.apache.org/axis2/mail-lists.html" class="externalLink" title="External Link">Axis2 site</a>.) Kindly
+prefix subject with [Axis2].</p><div class="subsection"><a name="Contents"></a><h3>Contents</h3><ul>
+  <li><a href="#bmBP">The Big Picture</a></li>
+  <li><p><a href="#requirements">Requirement of Axis2</a></p>
+  </li>
+  <li><a href="#thearchi">Axis2 Architecture</a>
+    <ul>
+      <li><p><a href="#bmcore">Core Modules</a></p>
+      </li>
+      <li><a href="#bmother">Other Modules</a></li>
+      <li><p><a href="#bmInfoMod">Information Model</a></p>
+      </li>
+      <li><a href="#bmXML">XML Processing Model</a></li>
+      <li><p><a href="#bmSOAPPM">SOAP Processing Model</a></p>
+        <ul>
+          <li><a href="#default">Axis2 Default Processing Model</a></li>
+          <li><p><a href="#incomingsoap">Processing an Incoming SOAP
+            Message</a></p>
+          </li>
+          <li><a></a><a href="#outgoing">Processing of the Outgoing
+            Message</a></li>
+          <li><p><a href="#extending">Extending the SOAP Processing
+            Model</a></p>
+            <ul>
+              <li><a href="#extendingwithhandlers">Extending the SOAP
+                Processing Model with Handlers</a></li>
+              <li><p><a href="#extendingwithmodules">Extending the SOAP
+                Processing Model with Modules</a></p>
+              </li>
+            </ul>
+          </li>
+        </ul>
+      </li>
+      <li><a href="#bmDeployment">Deployment</a>
+        <ul>
+          <li><a href="#xmlfile">The <em>axis2.xml</em> file</a></li>
+          <li><p><a href="#servicearchive">Service Archive</a></p>
+          </li>
+          <li><a href="#modulearchive">Module Archive</a></li>
+        </ul>
+      </li>
+      <li><p><a href="#bmClientAPI">Client API</a></p>
+        <ul>
+          <li><a href="#oneway">One Way Messaging Support</a></li>
+          <li><p><a href="#requestresponse">Request Response Messaging
+            Support</a></p>
+          </li>
+        </ul>
+      </li>
+      <li><a href="#bmTransports">Transports</a></li>
+      <li><p><a href="#bmWSDL">Code Generation</a></p>
+      </li>
+      <li><a href="#bmDB">Data Binding</a>
+        <ul>
+          <li><a href="#integration">Integration with Code Generation
+            Engine</a></li>
+          <li><p><a href="#serial">Serialization and De-Serialization</a></p>
+          </li>
+        </ul>
+      </li>
+    </ul>
+  </li>
+</ul><p><a name="bmBP"></a></p></div><div class="subsection"><a name="The_Big_Picture"></a><h3>The Big Picture</h3><p>A new architecture for Axis was introduced during the August 2004 Summit
+in Colombo, Sri Lanka. This new architecture on which Axis2 is based is more
+flexible, efficient, and configurable in comparison to <a href="http://ws.apache.org/axis/java/architecture-guide.html" class="externalLink" title="External Link">Axis1.x
+architecture</a>. Some well established concepts from Axis 1.x, like handlers
+etc., have been preserved in this new architecture.</p><p>Any architecture is a result of what that architecture should yield. The
+success of an architecture should be evaluated based on the requirements
+expected to be met by that architecture. Let us start our journey into Axis2
+by looking at the requirements.</p><p><a name="requirements"></a></p></div><div class="subsection"><a name="Requirement_of_Axis2"></a><h3>Requirement of Axis2</h3><p>In SOAP terminology, a participant who is taking part in a Web service
+interaction is known as a SOAP Node. Delivery of a single SOAP Message is
+defined based on two participants, SOAP Sender and SOAP Receiver. Each SOAP
+message is sent by a SOAP Sender and received by a SOAP Receiver. A single
+SOAP delivery is the most basic unit that builds the Web service
+interaction.</p><p>Each SOAP Node may be written in specific programming language, may it be
+Java, C++, .NET or Perl, but the Web services allow them to interoperate.
+This is possible because on the wire each Web service interaction is done via
+SOAP, which is common to every SOAP Node.</p><p><img alt="" src="images/archi-guide/soap.gif" name="Graphic1" align="bottom" width="691" height="319" border="0"></img></p><p>Web service middleware handles the complexity in SOAP messaging and lets
+the users work with the programming language they are accustomed to. Axis2
+allows Java users to invoke Web services using Java representations, and
+handles the SOAP messaging behind the curtain.</p><p>Axis2 handles SOAP processing along with numerous other tasks. This makes
+life of a Web service developer a whole lot easier. Following are the
+identified requirements:</p><ol>
+  <li>Provide a framework to process the SOAP messages. The framework should
+    be extensible and the users should be able to extend the SOAP processing
+    per service or per operation basis. Furthermore, it should be able to
+    model different Message Exchange Patterns (MEPs) using the processing
+    framework.</li>
+  <li>Ability to deploy a Web service (with or without WSDL)</li>
+  <li>Provide a Client API that can be used to invoke Web services. This API
+    should support both the Synchronous and Asynchronous programming
+  models.</li>
+  <li>Ability to configure Axis2 and its components through deployment.</li>
+  <li>Ability to send and receive SOAP messages with different
+  transports.</li>
+</ol><p>Apart from the above functionalities, performance in terms of memory and
+speed is a major consideration for Axis2. Axis2 Core Architecture is built on
+three specifications- <a href="http://www.w3.org/TR/wsdl" class="externalLink" title="External Link">WSDL</a>, <a href="http://www.w3.org/TR/soap/" class="externalLink" title="External Link">SOAP</a> and <a href="http://www.w3.org/Submission/ws-addressing/" class="externalLink" title="External Link">WS-Addressing</a>. Other
+specifications like JAX-RPC, <a href="http://java.sun.com/webservices/saaj/index.jsp" class="externalLink" title="External Link"> SAAJ</a> and <a href="http://www.w3.org/Submission/WS-Policy/" class="externalLink" title="External Link">WS-Policy</a> are layered on
+top of the Core Architecture.</p><p><a name="thearchi"></a></p></div><div class="subsection"><a name="Axis2_Architecture"></a><h3>Axis2 Architecture</h3><p>
+Axis2 architecture lays out some principals to preserve the uniformity. They
+are as follows:
+<ul>
+  <li><p>Axis2 architecture separates the logic and the states. Code that
+    does the processing does not have a state inside Axis2. This allows code
+    to be executed freely by parallel threads.</p>
+  </li>
+  <li>All the information is kept in one information model, allowing the
+    system to be suspended and resumed.</li>
+</ul></p><p>Axis2 architecture is modular. Therefore, Axis2 Framework is built up of
+core modules that collectively make up the core architecture of Axis2.
+Non-core/other modules are layered on top of this core
+modules/architecture.</p><p><a name="bmcore"></a></p></div><div class="subsection"><a name="Core_Modules:"></a><h3>Core Modules:</h3><ul>
+  <li><a href="#bmInfoMod">Information Model</a> - Axis2 defines a model to
+    handle information and all states are kept in this model. The model
+    consists of a hierarchy of information. The system manages the life cycle
+    of the objects in this hierarchy.</li>
+  <li><p><a href="#bmXML">XML processing Model</a> - Handling the SOAP
+    Message is the most important and most complex task. The efficiency of
+    this is the single most important factor that decides the performance. It
+    makes sense to delegate this task to a separate sub-project under the Web
+    services project, allowing that sub-project (<a href="http://ws.apache.org/commons/axiom/index.html" class="externalLink" title="External Link">AXIOM</a> or AXis
+    Object Model) to provide a simple API for SOAP and XML info-set. It will
+    hide the complexities of the efficient XML processing within the
+    implementation.</p>
+  </li>
+  <li><a href="#bmSOAPPM">SOAP Processing Model</a> - This controls the
+    execution of the processing. The model defines different phases the
+    execution would walk through, and the user can extend the Processing
+    Model at specific places.</li>
+  <li><p><a href="#bmDeployment">Deployment Model</a> - The Axis2 deployment
+    model allows the user to deploy services, configure the transports, and
+    extend the SOAP Processing model per system, service, or operation
+    basis.</p>
+  </li>
+  <li><a href="#bmClientAPI">Client API</a> - This provides a convenient API
+    for users to communicate with Web services using Axis2. There are a set
+    of classes to interact with IN-OUT and IN-Only style <a href="http://www.w3.org/2002/ws/cg/2/07/meps.html" class="externalLink" title="External Link">Message Exchange
+    Patterns (MEPs)</a>, where they can be used to construct any other MEP.
+    (Please note that even if the client API has in-built support for the
+    above named MEPs, it does not by any means limit Axis2's flexibility to
+    support custom MEPs.)</li>
+  <li><p><a href="#bmTransports">Transports</a> - Axis2 defines a transport
+    framework that enables the user to use multiple different transports. The
+    transports fit into specific places in the SOAP processing model. The
+    implementation provides a few common transports and the user can write or
+    plug-in new ones if and when it is needed.</p>
+  </li>
+</ul><p><a name="bmother"></a></p></div><div class="subsection"><a name="Other_Modules:"></a><h3>Other Modules:</h3><ul>
+  <li><a href="#bmWSDL">Code Generation</a> - Axis2 provides a code
+    generation tool that generates server side and client side code along
+    with descriptors and a test case. The generated code would simplify the
+    service deployment and the service invocation. This would increase the
+    usability of Axis2.</li>
+  <li><p><a href="#bmDB">Data Binding</a> - The basic client API of Axis2
+    lets the users process SOAP at the infoset level, where as data binding
+    extends it to make it more convenient to the users by encapsulating the
+    infoset layer and providing a programming language specific interface.</p>
+  </li>
+</ul><map name="Graphic2Map" id="g2m">
+  <area shape="rect" coords="123,31,222,97" href="#bmInfoMod" alt=""></area>
+  <area shape="rect" coords="239,62,319,134" href="#bmXML" alt=""></area>
+  <area shape="rect" coords="127,112,218,177" href="#bmSOAPPM" alt=""></area>
+  <area shape="rect" coords="12,39,89,95" href="#bmDeployment" alt=""></area>
+  <area shape="rect" coords="0,108,94,156" href="#bmWSDL" alt=""></area>
+  <area shape="rect" coords="350,31,426,86" href="#bmClientAPI" alt=""></area>
+  <area shape="rect" coords="350,114,421,164" href="#bmTransports" alt=""></area>
+</map><p><img src="images/archi-guide/all.png" name="Graphic2" width="426" alt="" height="189" border="0" align="bottom" usemap="#Graphic2Map"></img></p><p><a name="bmInfoMod"></a></p></div><div class="subsection"><a name="Information_Model"></a><h3>Information Model</h3><p>Information Model has two main hierarchies-Contexts and Descriptions. This
+model is described in UML notations below.</p><p><img src="images/archi-guide/contexts.png" name="Graphic3" align="bottom" alt="" width="400" height="443" border="0"></img></p><p>( A ----&lt;&gt; B says, B has 1 or more objects of A. A------&gt;B says,
+the given relationship holds between A and B.)</p><p>The two hierarchies are connected as shown in the above figure. The
+Description hierarchy represents the static data. This data may be loaded
+from a configuration file that exists throughout the lifetime of Axis2. For
+example, deployed Web services, operations, etc. On the other hand, the
+context hierarchy holds more dynamic information about the things that have
+more than one instance (e.g.Message Context).</p><p>These two hierarchies create a model that provides the ability to search
+for key value pairs. When the values are searched at a given level, they are
+searched while moving up the hierarchy until a match is found. In the
+resulting model, the lower levels override the values in the upper levels.
+For example, when a value is looked up in the Message Context and is not
+found, it would be looked up in the Operation Context, etc, up the hierarchy.
+The Search is first done up the hierarchy, and if the starting point is a
+Context then it searches in the Description hierarchy as well.</p><p>This allows the user to declare and override values, with the result being
+a very flexible configuration model. The flexibility could be the
+<em>Achilles</em> heel for the system as the search is expensive, specially
+for something that does not exist. Yet in the final analysis, developers
+believe that the flexibility would serve better in this instant.</p><table class="bodyTable"><col width="112"></col><col width="371"></col><col width="103"></col><col width="336"></col><tbody>
+    <tr class="b"><td><strong>Context</strong></td><td><strong>Description</strong></td><td><strong>Configuration</strong></td><td><strong>Description</strong></td></tr>
+    <tr class="a"><td width="112"><p>Configuration Context</p>
+      </td><td width="371"><p>Holds the Axis2's run time status. A deep copy of
+        this would essentially make a copy of Axis2.</p>
+      </td><td width="103"><p>Axis Configuration</p>
+      </td><td width="336"><p>Holds all global configurations. Transports, global
+        modules, parameters, and services etc.</p>
+      </td></tr>
+    <tr class="b"><td width="112"><p>Service Group Context</p>
+      </td><td width="371"><p>Holds information about a particular usage of the
+        respective service group. The life of a Service Group Context starts
+        when a user starts interacting with a service that belong to this
+        service group. This can be used to share information between services
+        (within the same service group) in a single interaction.</p>
+      </td><td width="103"><p>AxisServiceGroup</p>
+      </td><td width="336"><p>Holds deployment time information about a particular
+        service group.</p>
+      </td></tr>
+    <tr class="a"><td width="112"><p>Service Context</p>
+      </td><td width="371"><p>This context is available throughout the usage of
+        the respective service. This can be used to share information between
+        several MEPs of the same service, within a single interaction. The
+        life cycle depends on the scope of the service.</p>
+      </td><td width="103"><p>AxisService</p>
+      </td><td width="336"><p>Holds the Operations and the service level
+        configurations</p>
+      </td></tr>
+    <tr class="b"><td width="112"><p>Operation Context</p>
+      </td><td width="371"><p>Holds the information about the current MEP
+        instance, maintain the messages in the current MEP etc.</p>
+      </td><td width="103"><p>AxisOperation</p>
+      </td><td width="336"><p>Holds the operation level configurations</p>
+      </td></tr>
+    <tr class="a"><td width="112"><a name="messageContext"></a>
+
+        <p>Message Context</p>
+      </td><td width="371"><p>Holds all the information about the Message
+        currently being executed.</p>
+      </td><td width="103"><p>AxisMessage</p>
+      </td><td width="336"><p>Holds message level static information like the
+        schema of the particular message.</p>
+      </td></tr>
+  </tbody></table><p><a name="bmXML"></a></p></div><div class="subsection"><a name="XML_Processing_Model"></a><h3>XML Processing Model</h3><p>As we mentioned above, the XML processing model of Axis2 has become a
+separate sub-project, called <a href="http://ws.apache.org/commons/axiom/index.html" class="externalLink" title="External Link">Apache Axiom</a>, in the
+Apache Web services project. Please refer to the <a href="OMTutorial.html">OM
+Tutorial</a> for more information.</p><p><a name="bmSOAPPM"></a></p></div><div class="subsection"><a name="SOAP_Processing_Model"></a><h3>SOAP Processing Model</h3><p><img src="images/archi-guide/soap-processing.gif" name="Graphic4" alt="" align="bottom" width="755" height="348" border="0"></img></p><p>The architecture identified two basic actions a SOAP processor should
+perform, sending and receiving SOAP messages. The architecture provides two
+Pipes ('Flows'), to perform these two basic actions. The Axis Engine or the
+driver of Axis2 defines two methods send() and receive() to implement these
+two Pipes. The two pipes are named <i><b>In</b> Pipe</i> and <i><b>Out</b>
+Pipe</i>, and the complex Message Exchange Patterns (MEPs) are constructed by
+combining these two pipes.</p><p>Extensibility of the SOAP processing model is provided through handlers.
+When a SOAP message is being processed, the handlers that are registered will
+be executed. The handlers can be registered in global, service, or operation
+scopes and the final handler chain is calculated combining the handlers from
+all the scopes.</p><p>The handlers act as interceptors and they process parts of the SOAP
+message and provide add-on services. Usually handlers work on the SOAP
+headers, yet they may access or change the SOAP body as well.</p><p>When a SOAP message is being sent through the Client API, an <i>Out
+Pipe</i> would begin, the <i>Out Pipe</i> invokes the handlers and end with a
+Transport Sender that sends the SOAP message to the target endpoint. The SOAP
+message is received by a Transport Receiver at the target endpoint, which
+reads the SOAP message and starts the <i>In Pipe</i>. The <em>In Pipe</em>
+consists of handlers and ends with the <a href="#mr">Message Receiver</a>,
+which consumes the SOAP message.</p><p>The processing explained above happens for each and every SOAP message
+that is exchanged. After processing one message, Axis2 may decide to create
+other SOAP messages, in which case more complex message patterns emerge.
+However, Axis2 always views the SOAP message in terms of processing a single
+message. The combination of the messages are layered on top of that basic
+framework.</p><p>The two pipes does not differentiate between the Server and the Client.
+The SOAP Processing Model handles the complexity and provides two abstract
+pipes to the user. The different areas or the stages of the pipes are given
+names, and according to Axis2 slang, they are named 'phases'. A Handler
+always runs inside a phase, and the phase provides a mechanism to specify the
+ordering of handlers. Both Pipes have built-in phases, and both define the
+areas for 'User Phases' which can be defined by the user.</p><p><a name="default"></a></p></div><div class="subsection"><a name="Axis2_Default_Processing_Model"></a><h3>Axis2 Default Processing Model</h3><p>Axis2 has some inbuilt handlers that run in inbuilt phases and they create
+the default configuration for Axis2. We will be looking more in to how to
+extend the default processing Model in the next section.</p><p>
+There are three special handlers defined in Axis2.
+<ol>
+  <li>Dispatchers - Finds the service and the operation the SOAP message is
+    directed to. Dispatchers always run on the <em>In-Pipe</em> and inside
+    the Dispatch phase. The in-built dispatchers dispatch to a particular
+    operation depending on various conditions like WS-Addressing information,
+    URI information, SOAP action information, etc. ( See more information on
+    <a href="http://www.wso2.net/tutorials/axis2/java/2006/06/18/operation-service-message-is-destined-to" class="externalLink" title="External Link">Dispatching</a>)</li>
+</ol><ul>
+  <li><a name="mr"></a>Message Receiver - Consumes the SOAP message and hands
+    it over to the application. The message receiver is the last handler of
+    the in-pipe</li>
+  <li><p>Transport Sender - Sends the SOAP message to the SOAP endpoint the
+    message is destined to. Always runs as the last handler in the
+    out-pipe</p>
+  </li>
+</ul><a name="incomingsoap"></a></p></div><div class="subsection"><a name="Processing_an_Incoming_SOAP_Message"></a><h3>Processing an Incoming SOAP Message</h3><p>An incoming SOAP message is always received by a Transport Receiver
+waiting for the SOAP messages. Once the SOAP message arrives, the transport
+Headers are parsed and a <a href="#messageContext">Message Context</a> is
+created from the incoming SOAP message. This message context encapsulates all
+the information, including the SOAP message itself, transport headers, etc.,
+inside it. Then the <i>In Pipe</i> is executed with the Message Context.</p><p>Let us see what happens at each phase of the execution. This process can
+happen in the server or in the client.</p><ol>
+  <li><strong>Transport Phase</strong> - The handlers are in the phase that
+    processes transport specific information such as validating incoming
+    messages by looking at various transport headers, adding data into
+    message context, etc.</li>
+  <li><strong>Pre-Dispatch Phase</strong>- The main functionality of the
+    handlers in this phase is to populate message context to do the
+    dispatching. For example, processing of addressing headers of the SOAP
+    message, if any, happens in this phase. Addressing handlers extract
+    information and put them in to the message context.</li>
+  <li><strong>Dispatch Phase</strong> - The Dispatchers run in this phase and
+    try to find the correct service and operation this particular message is
+    destined for.<br></br>
+    The post condition of the dispatch phase (any phase can contain a post
+    condition) checks whether a service and an operation were found by the
+    dispatchers. If not, the execution will halt and give a "service not
+    found' error.</li>
+  <li><strong>User Defined Phases</strong> - Users can engage their custom
+    handlers here.</li>
+  <li><strong>Message Validation Phase</strong> - Once the user level
+    execution has taken place, this phase validates whether SOAP Message
+    Processing has taken place correctly.</li>
+  <li><strong>Message Processing Phase</strong> - The Business logic of the
+    SOAP message is executed here. A <a href="#mr">Message Receiver</a> is
+    registered with each Operation. This message receiver (associated to the
+    particular operation) will be executed as the last handler of this
+  phase.</li>
+</ol><p>There may be other handlers in any of these phases. Users may use custom
+handlers to override the mechanics in each of these phases.</p><p><a name="outgoing"></a></p></div><div class="subsection"><a name="Processing_of_the_Outgoing_Message"></a><h3>Processing of the Outgoing Message</h3><p>The<em> Out Pipe</em> is simpler because the service and the operation to
+dispatch are known by the time the pipe is executed. The <em>Out Pipe</em>
+may be initiated by the</p><p><a href="#mr">Message Receiver</a> or the Client API implementation. Phases
+of the <em>Out Pipe</em> are described below:
+<ol>
+  <li><strong>Message Initialize Phase</strong> - First phase of the <em>Out
+    Pipe</em>. Serves as the placeholder for the custom handlers.</li>
+  <li><strong>User Phases</strong> - Executes handlers in user-defined
+  phases.</li>
+  <li><strong>Transports Phase</strong> - Executes any transport handlers
+    taken from the associated transport configuration. The last handler would
+    be a transport sender which will send the SOAP message to the target
+    endpoint.</li>
+</ol><a name="extending"></a></p></div><div class="subsection"><a name="Extending_the_SOAP_Processing_Model"></a><h3>Extending the SOAP Processing Model</h3><p>Above, we discussed the default processing model of Axis2. Now let us
+discuss the extension mechanism for the SOAP processing model. After all, the
+whole effort of making this SOAP engine/processing model was focused on
+making it extendable.</p><p>The idea behind introducing step-wise processing of the SOAP message in
+terms of handlers and phases is to allow easier modification of the
+processing order. The notion of phases makes it easier to place handlers in
+between other handlers. This enables modification of the default processing
+behavior. The SOAP Processing Model can be extended with <a href="#extendingwithhandlers">handlers</a> or <a href="#extendingwithmodules">modules</a>.</p></div><div class="subsection"><a name="Extending_the_SOAP_Processing_Model_with_Handlers"></a><h3>Extending the SOAP Processing Model with Handlers</h3><p>The handlers in a module can specify the phase they need to be placed in.
+Furthermore, they can specify their location inside a phase by providing
+phase rules. Phase rules will place a handler,</p><ol>
+  <li>as the first handler in a phase,</li>
+  <li>as the last handler in a phase,</li>
+  <li>before a given handler,</li>
+  <li>or after a given handler.</li>
+</ol><p><a name="extendingwithmodules"></a></p></div><div class="subsection"><a name="Extending_the_SOAP_Processing_Model_with_Modules"></a><h3>Extending the SOAP Processing Model with Modules</h3><p>Axis2 defines an entity called a 'module' that can introduce handlers and
+Web service operations. A Module in terms of Axis2 usually acts as a
+convenient packaging that includes:</p><ul>
+  <li>A set of handlers and</li>
+  <li>An associated descriptor which includes the phase rules</li>
+</ul><p>Modules have the concept of being 'available' and 'engaged'.
+'Availability' means the module is present in the system, but has not been
+activated, i.e., the handlers included inside the module have not been used
+in the processing mechanism. When a module is 'engaged' it becomes active and
+the handlers get placed in the proper phases. The handlers will act in the
+same way as explained in the previous section. Usually a module will be used
+to implement a WS-* functionality such as WS-Addressing.</p><p>Apart from the extension mechanism based on the handlers, the WS-*
+specifications may suggest a requirement for adding new operations. For
+example, once a user adds Reliable Messaging capability to a service, the
+"Create Sequence" operation needs to be available to the service endpoint.
+This can be implemented by letting the modules define the operations. Once
+the module is engaged to a service, the necessary operations will be added to
+that service.</p><p>A service, operation, or the system may engage a module. Once the module
+is engaged, the handlers and the operations defined in the module are added
+to the entity that engaged them.</p><p>Modules cannot be added (no hot deployment) while the Axis2 engine is
+running, but they will be available once the system is restarted.</p><p><a name="bmDeployment"></a></p></div><div class="subsection"><a name="Deployment"></a><h3>Deployment</h3><p>The Deployment Model provides a concrete mechanism to configure Axis2.
+This model has three entities that provide the configuration.</p><p><a name="xmlfile"></a></p></div><div class="subsection"><a name="The_axis2_xml_file"></a><h3>The axis2.xml file</h3><p>This file holds the global configuration for the client and server, and
+provides the following information:</p><ol>
+  <li>The global parameters</li>
+  <li>Registered transport-in and transport-outs</li>
+  <li>User-defined phase names</li>
+  <li>Modules that are engaged globally (to all services)</li>
+  <li>Globally defined <a href="#mr">Message Receivers</a></li>
+</ol><p><a name="servicearchive"></a></p></div><div class="subsection"><a name="Service_Archive"></a><h3>Service Archive</h3><p>The Service archive must have a <em>META-INF/<a href="resources/schemas/services.xsd">services.xml</a></em> file and may
+contain the dependent classes. The <em>services.xml</em> file has the
+following information.</p><ol>
+  <li>Service level parameters</li>
+  <li>Modules that are engaged at service level</li>
+  <li>Service Specific <a href="#mr">Message Receivers</a></li>
+  <li>Operations inside the service</li>
+</ol><p><a name="modulearchive"></a></p></div><div class="subsection"><a name="Module_Archive"></a><h3>Module Archive</h3><p>Module archive must have a META-INF/<a href="resources/schemas/module.xsd">module.xml</a> file and dependent
+classes. The <em>module.xml</em> file has Module parameters and the
+Operations defined in the module.</p><p>When the system starts up, Axis2 prompts the deployment model to create an
+Axis Configuration. The deployment model first finds the axis2.xml file and
+builds the global configuration. Then it checks for the module archives and
+then for the service archives. After that, the corresponding services and
+modules are added to the Axis Configuration. The system will build contexts
+on top of the Axis Configuration. After this, Axis2 is ready to send or
+receive SOAP messages. Hot deployment is only allowed for services.</p><p><a name="bmClientAPI"></a></p></div><div class="subsection"><a name="Client_API"></a><h3>Client API</h3><p>There are three parameters that decide the nature of the Web service
+interaction.</p><ol>
+  <li>Message Exchange Pattern (MEP)</li>
+  <li>The behavior of the transport, whether it's One-Way or Two-Way</li>
+  <li>Synchronous/ Asynchronous behavior of the Client API</li>
+</ol><p>Variations of the three parameters can result in an indefinite number of
+scenarios. Even though Axis2 is built on a core that supports any messaging
+interaction, the developers were compelled to provide in-built support for
+only two most widely used Message Exchange Patterns (MEPs).</p><p>The two supported MEPs are One-Way and the In-Out (Request-Response)
+scenarios in the Client API. The implementation is based on a class called
+<code>ServiceClient</code> and there are extensions for each MEP that Axis2
+Client API supports.</p><p><a name="oneway"></a></p></div><div class="subsection"><a name="One_Way_Messaging_Support"></a><h3>One Way Messaging Support</h3><p>The One-Way support is provided by the <code>fireAndForget</code> method
+of <code>ServiceClient</code>. For one way invocations, one can use HTTP ,
+SMTP and TCP transports. In the case of the HTTP transport, the return
+channel is not used, and the HTTP 202 OK is returned in the return
+channel.</p><p><a name="requestresponse"></a></p></div><div class="subsection"><a name="In-Out__Request_Response__Messaging_Support"></a><h3>In-Out (Request Response) Messaging Support</h3><p>The In-Out support is provided by the <code>sendReceive()</code> method in
+ServiceClient. This provides a simpler interface for the user. The Client API
+has four ways to configure a given message exchange</p><ol>
+  <li>Blocking or Non-Blocking nature - this can be decided by using
+    <code>sendReceive()</code> or <code>sendReceiveNonBlocking()</code>
+    methods</li>
+  <li>Sender transport - transport that sends the SOAP message</li>
+  <li>Listener transport - transport that receives the response</li>
+  <li>Use Separate Channel - determines whether the response is sent over a
+    separate transport connection or not. This can be false only when the
+    sender and listener transport is same and is a Two-Way transport.</li>
+</ol><p>Depending on the values of the above four parameters, Axis2 behaves
+differently.</p><p><a name="bmTransports"></a></p></div><div class="subsection"><a name="Transports"></a><h3>Transports</h3><p>Axis2 has two basic constructs for transports, namely: Transport Senders
+and Transport Receivers. These are accessed via the AxisConfiguration.</p><p>The incoming transport is the transport via which the AxisEngine receives
+the message. The outgoing transport is decided based on the addressing
+information (wsa:ReplyTo and wsa:FaultTo). If addressing information is not
+available and if the server is trying to respond, then the out going
+transport will be the outputstream of the incoming transport (if it is
+two-way transport).</p><p>At the client side, the user is free to specify the transport to be
+used.</p><p>Transport Senders and Transport Receivers contain the following
+information.</p><ol>
+  <li>Transport Sender for Out Configuration</li>
+  <li>Transport Listener for In Configuration</li>
+  <li>Parameters of the transport</li>
+</ol><p>Each and every transport out configuration defines a transport sender. The
+transport sender sends the SOAP message depending on its configuration.</p><p>The transport receiver waits for the SOAP messages, and for each SOAP
+message that arrives, it uses the <i>In Pipe</i> to process the SOAP
+message.</p><p>Axis2 presently supports the following transports:</p><ol>
+  <li>HTTP - In HTTP transport, the transport listener is a servlet or
+    org.apache.axis2.transport.http.SimpleHTTPServer provided by Axis2. The
+    transport sender uses commons-httpclient to connect and send the SOAP
+    message.</li>
+  <li>TCP - This is the simplest transport, but needs the WS - Addressing
+    support to be functional.</li>
+  <li>SMTP - This works off a single email account. Transport receiver is a
+    thread that checks for emails in fixed time intervals.</li>
+  <li>JMS</li>
+</ol><p><a name="bmWSDL" id="bmWSDL"></a></p></div><div class="subsection"><a name="Code_Generation"></a><h3>Code Generation</h3><p>Although the basic objective of the code generation tools has not changed,
+the code generation module of Axis2 has taken a different approach to
+generate code. Primarily, the change is in the use of templates, namely XSL
+templates, which gives the code generator the flexibility to generate code in
+multiple languages.</p><p>The basic approach is to set the code generator to generate an XML, and
+parse it with a template to generate the code file. The following figure
+describes how this shows up in the architecture of the tool.</p><p><img src="images/archi-guide/CodegenArchitecture-new.gif" name="Graphic6" alt="" align="bottom" border="0"></img></p><p>The fact here is that it is the same information that is extracted from
+the WSDL no matter what code is generated. First, an AxisService is populated
+from a WSDL. Then the code generator extracts information from the
+AxisService and creates an XML, which is language independent. This emitted
+XML is then parsed with the relevant XSL to generate code for the relevant
+language. No matter what the output language is, the process is the same
+except for the template that is being used.</p><p><a name="bmDB" id="bmDB"></a></p></div><div class="subsection"><a name="Data_Binding"></a><h3>Data Binding</h3></div><div class="subsection"><a name="Integration_with_the_Code_Generation_Engine"></a><h3>Integration with the Code Generation Engine</h3><p>Databinding for Axis2 is implemented in an interesting manner. Databinding
+has not been included in the core deliberately, and hence the code generation
+allows different data binding frameworks to be plugged in. This is done
+through an extension mechanism where the codegen engine first calls the
+extensions and then executes the core emitter. The extensions populate a map
+of QNames vs. class names that is passed to the code generator on which the
+emitter operates on.</p><p><strong>The following diagram shows the structure:</strong></p><p><img src="images/codegen.gif" name="Graphic7" align="bottom" border="0" alt=""></img></p><p><strong>The following databinding extensions are available:</strong></p><ol>
+  <li><strong>ADB</strong> - ADB (Axis Data Binding ) is a simple framework
+    that allows simple schemas to be compiled. It is lightweight and simple,
+    works off StAX and fairly performant. However, it does not support the
+    complete set of schema constructs and is likely to complain for certain
+    schemas!</li>
+  <li><strong>XMLBeans</strong> - XMLbeans claims that it supports the
+    complete schema specification, and it is preferred if full schema support
+    is needed!</li>
+  <li><strong>JAX-Me</strong> - JaxMe support has been added in a similar
+    manner to XMLbeans and serves as another option for the user</li>
+  <li><strong>JibX</strong> - This is the most recent addition to the family
+    of databinding extensions, and it is also another option the users have
+    for data binding.</li>
+</ol><p><a name="serial" id="serial"></a></p></div><div class="subsection"><a name="Serialization_and_De-Serialization_of_Data_bound_classes"></a><h3>Serialization and De-Serialization of Data bound classes</h3><p>AXIOM is based on a StAX API (Streaming API for XML). Xml-beans supports
+StAX API. Data binding in Axis2 is achieved through interfacing the AXIOM
+with the Xml-beans using the StAX API, which is supported by both parties. At
+the time of code generation, there will be utility methods generated inside
+the stub (or the message receiver) that can de-serialize from AXIOM to data
+bound object and serialize from data bound object to AXIOM. For example, if
+the WSDL has an operation called "echoString", once the code is generated,
+the following methods will be generated inside the relevant classes.</p>
+    <div class="source"><pre>public static
+org.apache.axiom.om.OMElement toOM(org.soapinterop.xsd.EchoStringParamDocument
+param)// This method will handle the serialization.
+
+public static org.apache.xmlbeans.XmlObject
+fromOM(org.apache.axis2.om.OMElement param, java.lang.Class type) //This
+method will handle the de-serialization.
+
+
+</pre></div>
+  </div></div></div></div><div class="clear"><hr></hr></div><div id="footer"><div class="xright">© 2004-2007, Apache Software Foundation</div><div class="clear"><hr></hr></div></div></body></html>
\ No newline at end of file



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org