<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../new_and_noteworthy.xsl"?>
<release name="2.0 RC0" root="../../..">
	<component name="Web Services">

		<item title="Axis2 Web Services tools">
			<description>
				The Web services tools now supports the Axis2 version
				1.2 Web services runtime.
				<br />
				First, install the Axis2 v1.2 runtime using the Web
				services preference:
				<br />
				<img src="webservices/axis2runtime.png"
					alt="Installing Axis2 runtime" />
				<br />
				Second, create a dynamic Web project adding the Axis2
				facets:
				<br />
				<img src="webservices/axis2facet.png"
					alt="Axis2 facets" />
				<br />
				To choose the Axis2 Web service runtime, click the
				<b>Web service runtime</b>
				hyperlink. Then, you can create Axis2 bottom up Web
				service, top down Web service and Web service client
				using the existing Web services tools:
				<br />
				<img src="webservices/axis2ws.png"
					alt="Axis2 Web service" />
				<br />
				<img src="webservices/axis2topdown.png"
					alt="Axis2 top down" />
				<br />
				Refer to the following Axis2 Web services tutorials for
				details:
				<ul>
					<li>
						<a
							href="http://www.eclipse.org/webtools/community/tutorials/BottomUpAxis2WebService/bu_tutorial.html">
							Bottom up Axis2 Web service
						</a>
					</li>
					<li>
						<a
							href="http://www.eclipse.org/webtools/community/tutorials/TopDownAxis2WebService/td_tutorial.html">
							Top down Axis2 Web service
						</a>
					</li>
				</ul>
			</description>
		</item>

		<item title="Web Services tools supports Axis 1.4">
			<description>
				The Web services tools have been updated to support Axis
				1.4 instead of Axis 1.3.
				<br />
			</description>
		</item>

		<item
			title="Web Services Explorer supports pluggable transport and message stack">
			<description>
				A new extension point has been added to the Web Services
				Explorer:

				org.eclipse.wst.ws.explorer.wseTransportProvider

				<p>
					This extension point entry allows an extender to
					plug in a new factory for creating
					org.eclipse.wst.ws.internal.explorer.transport.ISOAPTransport
					instances. The ISOAPTranport is used by the Web
					Services Explorer for invoking Web services
					operations that uses the SOAP message protocol. The
					factory must implement the
					org.eclipse.wst.ws.internal.explorer.transport.ISOAPTransportProvider
					interface.
				</p>

				<p>
					Other classes/interfaces which are part of this API
					are as follows:
				</p>
				<ul>
					<li>
						Interfaces:
						<ul>
							<li>
								ISOAPMessage - This interface represents
								a SOAP message in a web service
								invocation made by the Web Services
								Explorer's transport stack.
							</li>
							<li>
								ISerializer - The ISerializer is
								responsible for taking an ISOAPMessage
								and serializing it into an XML string.
							</li>
							<li>
								IDeserializer - The IDeserializer is
								responsible for taking an XML string and
								deserializing it into values to populate
								an ISOAPMessage.
							</li>
						</ul>
					</li>
					<li>
						Classes:
						<ul>
							<li>
								MessageContext - A MessageContext object
								holds information about the message that
								is to be sent on a web service
								invocation.
							</li>
							<li>
								SOAPMessage - This is a default
								implementation of the ISOAPMessage
								interface that extenders of the Web
								Services Explorer transport can use.
							</li>
						</ul>
					</li>
					<li>
						exceptions:
						<ul>
							<li>
								TransportException - A general purpose
								exception to indicate a problem has
								occurred when invoking a web service.
							</li>
							<li>
								HttpTransportException - A type of
								TransportException that can be thrown
								when the transport protocol is HTTP.
							</li>
						</ul>
					</li>
				</ul>
				<p>
					These classes/interfaces are found in the
					org.eclipse.wst.ws.internal.explorer.transport
					package.
				</p>
				<br />
				<br />
			</description>
		</item>

		<item
			title="Adding optional mergerClass attribute to the Web Services implementation type extension">
			<description>
				A new optional attribute "mergerClass" is introduced in
				the Web services implementation type extension point
				org.eclipse.jst.ws.consumption.ui.wsImpl. This
				mergerClass should implement the newly defined
				org.eclipse.wst.ws.internal.wsrt.IMerger interface which
				contains a load() and merge() method. This class is used
				for the purpose of Web services skeleton file merging
				for the Web service implementation type. A
				org.eclipse.jst.ws.internal.consumption.common.JavaMerger
				has been defined for the Java Web service implementation
				type.
				<br />
				<br />
			</description>
		</item>
	</component>
	<!--
	<component name="WSDL">
		<item title="">
			<description></description>
		</item>
	</component>
	-->

	<!--
		<component name="component name, such as XML, XSD, or DTD Tools">
		<item title="item title can go here">
		<title>item title can also go here</title>
		<description>description of this new feature, preferably with cropped .pngs of the UI</description>
		</item>
		</component>
	-->
</release>
