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 ve...@apache.org on 2005/06/03 16:08:13 UTC

svn commit: r179794 [2/2] - in /webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj: src/javax/xml/ src/org/apache/ src/org/apache/axis/ src/org/apache/axis/saaj/ src/org/apache/axis/util/ test/org/ test/org/apache/ test/org/apache/axis/ test/org/apache/axis/saaj/

Added: webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/src/org/apache/axis/saaj/SOAPEnvelopeImpl.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/src/org/apache/axis/saaj/SOAPEnvelopeImpl.java?rev=179794&view=auto
==============================================================================
--- webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/src/org/apache/axis/saaj/SOAPEnvelopeImpl.java (added)
+++ webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/src/org/apache/axis/saaj/SOAPEnvelopeImpl.java Fri Jun  3 07:08:11 2005
@@ -0,0 +1,190 @@
+/*
+ * Created on Mar 16, 2005
+ *
+ */
+package org.apache.axis.saaj;
+
+import javax.xml.soap.Name;
+import javax.xml.soap.SOAPBody;
+import javax.xml.soap.SOAPEnvelope;
+import javax.xml.soap.SOAPException;
+import javax.xml.soap.SOAPHeader;
+
+import org.apache.axis.soap.SOAPFactory;
+import org.apache.axis.om.OMAbstractFactory;
+
+
+/**
+ * Class SOAPEnvelopeImpl
+ * 
+ * @author Jayachandra
+ * jayachandra@gmail.com
+ */
+public class SOAPEnvelopeImpl extends SOAPElementImpl implements SOAPEnvelope {
+
+	/**
+	 * Field soSOAPEnvelope
+	 * A data member of OM's SOAPEnvelopeImpl which would be used for delegation of any work to underlying OM.
+	 */
+	private org.apache.axis.soap.SOAPEnvelope omSOAPEnvelope;
+	
+	/**
+	 * Constructor SOAPEnvelopeImpl
+	 */
+	public SOAPEnvelopeImpl(){
+		//super(omEnv);
+		SOAPFactory fac = OMAbstractFactory.getDefaultSOAPFactory();
+		omNode = omElement =omSOAPEnvelope = fac.getDefaultEnvelope();
+	}
+	
+	public SOAPEnvelopeImpl(org.apache.axis.soap.SOAPEnvelope omEnvelope){
+		super(omEnvelope);
+		this.omSOAPEnvelope = omEnvelope;
+	}
+	
+	/**
+	 * method getOMEnvelope
+	 * @return
+	 */
+	public org.apache.axis.soap.SOAPEnvelope getOMEnvelope(){
+		return omSOAPEnvelope;
+	}
+	
+
+	/**
+	 * method createName
+	 * @param localName
+	 * @param prefix
+	 * @param uri
+	 * @return
+	 * @throws SOAPException
+	 * @see javax.xml.soap.SOAPEnvelope#createName(java.lang.String, java.lang.String, java.lang.String)
+	 */
+	public Name createName(String localName, String prefix, String uri)
+			throws SOAPException {
+		try {
+			return new PrefixedQName(uri,localName, prefix);
+		}catch (Exception e)
+		{
+			throw new SOAPException(e);
+		}
+	}
+
+	/**
+	 * method createName
+	 * 
+	 * @param localName
+	 * @return
+	 * @throws SOAPException
+	 * @see javax.xml.soap.SOAPEnvelope#createName(java.lang.String)
+	 */
+	public Name createName(String localName) throws SOAPException {
+		try {
+			return new PrefixedQName(null, localName, null);
+		}catch (Exception e)
+		{
+			throw new SOAPException(e);
+		}
+	}
+
+	/**
+	 * method getHeader
+	 * 
+	 * @return
+	 * @throws SOAPException
+	 * @see javax.xml.soap.SOAPEnvelope#getHeader()
+	 */
+	public SOAPHeader getHeader() throws SOAPException {
+
+		org.apache.axis.soap.SOAPHeader omSOAPHeader;
+		try
+		{
+			omSOAPHeader = (org.apache.axis.soap.SOAPHeader) omSOAPEnvelope.getHeader();
+		}catch (Exception e)
+		{
+			throw new SOAPException(e);
+		}
+		if(omSOAPHeader != null)
+			return  new SOAPHeaderImpl(omSOAPHeader);
+		else
+			return null;
+	}
+
+	/**
+	 * method getBody
+	 * 
+	 * @return
+	 * @throws SOAPException
+	 * @see javax.xml.soap.SOAPEnvelope#getBody()
+	 */
+	public SOAPBody getBody() throws SOAPException {
+
+		org.apache.axis.soap.SOAPBody omSOAPBody = null;
+		try
+		{
+			omSOAPBody = omSOAPEnvelope.getBody();
+		} catch (Exception e)
+		{
+			//throw new SOAPException(e);
+		}
+		if(omSOAPBody != null)
+			return (new SOAPBodyImpl(omSOAPBody));
+		else
+			return null;
+	}
+
+	/**
+	 * method addHeader
+	 * 
+	 * @return
+	 * @throws SOAPException
+	 * @see javax.xml.soap.SOAPEnvelope#addHeader()
+	 */
+	public SOAPHeader addHeader() throws SOAPException {
+		/*
+		 * Our objective is to set the omSOAPHeader of the omSOAPEnvelope if not already present
+		 */
+		try {
+			org.apache.axis.soap.SOAPHeader header = omSOAPEnvelope.getHeader();
+			if (header == null) {
+				SOAPFactory soapFactory = OMAbstractFactory.getDefaultSOAPFactory();
+				header = soapFactory.createSOAPHeader(omSOAPEnvelope);
+				omSOAPEnvelope.addChild(header);
+				return (new SOAPHeaderImpl(header));
+			} else {
+				throw new SOAPException("Header already present, can't set body again without deleting the existing header");
+			}
+		}catch (Exception e)
+		{
+			throw new SOAPException(e);
+		}
+	}
+
+	/**
+	 * method addBody
+	 * 
+	 * @return
+	 * @throws SOAPException
+	 * @see javax.xml.soap.SOAPEnvelope#addBody()
+	 */
+	public SOAPBody addBody() throws SOAPException {
+		/*
+		 * Our objective is to set the omSOAPBody of the omSOAPEnvelope if not already present
+		 */
+		try {
+			org.apache.axis.soap.SOAPBody body = omSOAPEnvelope.getBody();
+			if (body == null) {
+				SOAPFactory soapFactory = OMAbstractFactory.getDefaultSOAPFactory();
+				body = soapFactory.createSOAPBody(omSOAPEnvelope);
+				omSOAPEnvelope.addChild(body);
+				return (new SOAPBodyImpl(body));
+			} else {
+				throw new SOAPException("Body already present, can't set body again without deleting the existing body");
+			}
+		}catch (Exception e)
+		{
+			throw new SOAPException(e);
+		}
+	}
+
+}

Added: webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/src/org/apache/axis/saaj/SOAPFactoryImpl.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/src/org/apache/axis/saaj/SOAPFactoryImpl.java?rev=179794&view=auto
==============================================================================
--- webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/src/org/apache/axis/saaj/SOAPFactoryImpl.java (added)
+++ webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/src/org/apache/axis/saaj/SOAPFactoryImpl.java Fri Jun  3 07:08:11 2005
@@ -0,0 +1,75 @@
+/*
+ * Created on Apr 27, 2005
+ *
+ * TODO To change the template for this generated file go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+package org.apache.axis.saaj;
+
+import javax.xml.soap.Detail;
+import javax.xml.soap.Name;
+import javax.xml.soap.SOAPElement;
+import javax.xml.soap.SOAPException;
+
+import org.apache.axis.om.OMElement;
+import org.apache.axis.om.OMAbstractFactory;
+
+/**
+ * @author shaas02
+ *
+ * TODO To change the template for this generated type comment go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+public class SOAPFactoryImpl extends javax.xml.soap.SOAPFactory {
+
+	/* (non-Javadoc)
+	 * @see javax.xml.soap.SOAPFactory#createElement(javax.xml.soap.Name)
+	 */
+	public SOAPElement createElement(Name name) throws SOAPException {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see javax.xml.soap.SOAPFactory#createElement(java.lang.String)
+	 */
+	public SOAPElement createElement(String localName) throws SOAPException {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see javax.xml.soap.SOAPFactory#createElement(java.lang.String, java.lang.String, java.lang.String)
+	 */
+	public SOAPElement createElement(String localName, String prefix, String uri)
+			throws SOAPException {
+		OMElement newOMElement = OMAbstractFactory.getOMFactory().createOMElement(localName, uri, prefix);
+		return new SOAPElementImpl(newOMElement);
+	}
+
+	/* (non-Javadoc)
+	 * @see javax.xml.soap.SOAPFactory#createDetail()
+	 */
+	public Detail createDetail() throws SOAPException {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see javax.xml.soap.SOAPFactory#createName(java.lang.String, java.lang.String, java.lang.String)
+	 */
+	public Name createName(String localName, String prefix, String uri)
+			throws SOAPException {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see javax.xml.soap.SOAPFactory#createName(java.lang.String)
+	 */
+	public Name createName(String localName) throws SOAPException {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+}

Added: webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/src/org/apache/axis/saaj/SOAPFaultElementImpl.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/src/org/apache/axis/saaj/SOAPFaultElementImpl.java?rev=179794&view=auto
==============================================================================
--- webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/src/org/apache/axis/saaj/SOAPFaultElementImpl.java (added)
+++ webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/src/org/apache/axis/saaj/SOAPFaultElementImpl.java Fri Jun  3 07:08:11 2005
@@ -0,0 +1,21 @@
+/*
+ * Created on Mar 17, 2005
+ *
+ */
+package org.apache.axis.saaj;
+
+import javax.xml.soap.SOAPFaultElement;
+
+/**
+ * Class SOAPFaultElementImpl
+ * Just a placeholder, extends SOAPElementImpl
+ * Does not implement any new methods or override anything
+ * 
+ * @author Ashutosh Shahi
+ * ashutosh.shahi@gmail.com
+ *
+ */
+public class SOAPFaultElementImpl extends SOAPElementImpl implements
+		SOAPFaultElement {
+
+}

Added: webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/src/org/apache/axis/saaj/SOAPFaultImpl.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/src/org/apache/axis/saaj/SOAPFaultImpl.java?rev=179794&view=auto
==============================================================================
--- webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/src/org/apache/axis/saaj/SOAPFaultImpl.java (added)
+++ webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/src/org/apache/axis/saaj/SOAPFaultImpl.java Fri Jun  3 07:08:11 2005
@@ -0,0 +1,204 @@
+/*
+ * Created on Mar 16, 2005
+ *
+ */
+package org.apache.axis.saaj;
+
+import java.util.Locale;
+
+import javax.xml.namespace.QName;
+import javax.xml.soap.Detail;
+import javax.xml.soap.Name;
+import javax.xml.soap.SOAPException;
+import javax.xml.soap.SOAPFault;
+
+import org.apache.axis.om.OMNode;
+
+/**
+ * Class SOAPFaultImpl
+ * 
+ * @author Ashutosh Shahi
+ * ashutosh.shahi@gmail.com
+ * 
+ * SOAPFault specific classes not implemented in OM, so
+ * throwing unsupported operation for the time being
+ */
+public class SOAPFaultImpl extends SOAPBodyElementImpl implements SOAPFault {
+	
+	/**
+	 * Field fault   The omSOAPFault field
+	 */
+	org.apache.axis.soap.SOAPFault fault;
+	
+	/**
+	 * Constructor SOAPFaultImpl
+	 * @param fault
+	 */
+	public SOAPFaultImpl(org.apache.axis.soap.SOAPFault fault){
+		this.fault = fault;
+	}
+
+	/**
+	 * Method setFaultCode
+	 * 
+	 * @param faultCode
+	 * @throws SOAPException
+	 * @see javax.xml.soap.SOAPFault#setFaultCode(java.lang.String)
+	 */
+	public void setFaultCode(String faultCode) throws SOAPException {
+		//QName qName = new QName(faultCode);
+		//fault.setFaultCode(qName);
+		throw new UnsupportedOperationException("No supoprted for M2 release");
+	}
+
+	/**
+	 * Method getFaultCode
+	 * 
+	 * @return
+	 * @see javax.xml.soap.SOAPFault#getFaultCode()
+	 */
+	public String getFaultCode() {
+	
+		//QName qName = fault.getFaultCode();
+		//return qName.getLocalPart();
+		throw new UnsupportedOperationException("No supoprted for M2 release");
+	}
+
+	/**
+	 * method setFaultActor
+	 * 
+	 * @param faultActor
+	 * @throws SOAPException
+	 * @see javax.xml.soap.SOAPFault#setFaultActor(java.lang.String)
+	 */
+	public void setFaultActor(String faultActor) throws SOAPException {
+		
+		//fault.setFaultActor(faultActor);
+		throw new UnsupportedOperationException("No supoprted for M2 release");
+	}
+
+	/**
+	 * method getFaultActor
+	 * 
+	 * @return
+	 * @see javax.xml.soap.SOAPFault#getFaultActor()
+	 */
+	public String getFaultActor() {
+	
+		//return fault.getFaultActor();
+		throw new UnsupportedOperationException("No supoprted for M2 release");
+	}
+
+	/**
+	 * method setFaultString
+	 * 
+	 * @param faultString
+	 * @throws SOAPException
+	 * @see javax.xml.soap.SOAPFault#setFaultString(java.lang.String)
+	 */
+	public void setFaultString(String faultString) throws SOAPException {
+	
+		//fault.setFaultString(faultString);
+		throw new UnsupportedOperationException("No supoprted for M2 release");
+	}
+
+	/**
+	 * method getFaultString
+	 * 
+	 * @return
+	 * @see javax.xml.soap.SOAPFault#getFaultString()
+	 */
+	public String getFaultString() {
+	
+		//return fault.getFaultString();
+		throw new UnsupportedOperationException("No supoprted for M2 release");
+	}
+
+	/**
+	 * method getDetail
+	 * 
+	 * @return
+	 * @see javax.xml.soap.SOAPFault#getDetail()
+	 */
+	public Detail getDetail() {
+		// May need to change after w have detail and detail entry implementation
+		//in SoapEnvelope of OM
+		/*QName detailName = new QName("detail");
+		DetailImpl detail = new DetailImpl(detailName, fault);
+		OMNode entry = fault.getDetailInformation();
+		detail.addDetailEntry(entry);
+		return detail;*/
+		throw new UnsupportedOperationException("No supoprted for M2 release");
+	}
+
+	/**
+	 * method addDetail
+	 * 
+	 * @return
+	 * @throws SOAPException
+	 * @see javax.xml.soap.SOAPFault#addDetail()
+	 */
+	public Detail addDetail() throws SOAPException {
+		// Not sure what detail information to add
+		//May need to change later
+		/*QName detailName = new QName("detail");
+		DetailImpl detail = new DetailImpl(detailName, fault);
+		return detail;*/
+		throw new UnsupportedOperationException("No supoprted for M2 release");
+	}
+
+	/**
+	 * method setFaultCode
+	 * 
+	 * @param name
+	 * @throws SOAPException
+	 * @see javax.xml.soap.SOAPFault#setFaultCode(javax.xml.soap.Name)
+	 */
+	public void setFaultCode(Name name) throws SOAPException {
+		
+		/*QName qName = new QName(name.getURI(), name.getLocalName(), name.getPrefix());
+		fault.setFaultCode(qName);*/
+		throw new UnsupportedOperationException("No supoprted for M2 release");
+	}
+
+	/**
+	 * method getFaultCodeAsName
+	 * 
+	 * @return
+	 * @see javax.xml.soap.SOAPFault#getFaultCodeAsName()
+	 */
+	public Name getFaultCodeAsName() {
+	
+		/*QName qName = fault.getFaultCode();
+		Name name = new PrefixedQName(qName);
+		return name;*/
+		throw new UnsupportedOperationException("No supoprted for M2 release");
+	}
+
+	/**
+	 * method seFaultString
+	 * 
+	 * @param faultString
+	 * @param locale
+	 * @throws SOAPException
+	 * @see javax.xml.soap.SOAPFault#setFaultString(java.lang.String, java.util.Locale)
+	 */
+	public void setFaultString(String faultString, Locale locale)
+			throws SOAPException {
+	
+		//fault.setFaultString(faultString);
+		throw new UnsupportedOperationException("No supoprted for M2 release");
+	}
+
+	/**
+	 * method getFaultStringLocale
+	 * 
+	 * @return
+	 * @see javax.xml.soap.SOAPFault#getFaultStringLocale()
+	 */
+	public Locale getFaultStringLocale() {
+		//No implementation in Axis 1.2 also, not sure what to do here
+		return null;  //TODO
+	}
+
+}

Added: webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/src/org/apache/axis/saaj/SOAPHeaderElementImpl.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/src/org/apache/axis/saaj/SOAPHeaderElementImpl.java?rev=179794&view=auto
==============================================================================
--- webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/src/org/apache/axis/saaj/SOAPHeaderElementImpl.java (added)
+++ webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/src/org/apache/axis/saaj/SOAPHeaderElementImpl.java Fri Jun  3 07:08:11 2005
@@ -0,0 +1,78 @@
+/*
+ * Created on Mar 16, 2005
+ *
+ */
+package org.apache.axis.saaj;
+
+import javax.xml.soap.SOAPHeaderElement;
+
+import org.apache.axis.soap.SOAPHeaderBlock;
+
+/**
+ * Class SOAPHeaderImpl
+ * 
+ * @author Ashutosh Shahi
+ * ashutosh.shahi@gmail.com
+ */
+public class SOAPHeaderElementImpl extends SOAPElementImpl implements
+		SOAPHeaderElement {
+	
+	/**
+	 * Field omHeaderElement
+	 */
+	SOAPHeaderBlock omHeaderElement;
+	
+	/**
+	 * Constructor SOAPHeaderElementImpl
+	 * @param headerElement
+	 */
+	public SOAPHeaderElementImpl(org.apache.axis.soap.SOAPHeaderBlock headerElement){
+		super(headerElement);
+		this.omHeaderElement = headerElement;
+	}
+
+	/**
+	 * method setActor
+	 * 
+	 * @param actorURI
+	 * @see javax.xml.soap.SOAPHeaderElement#setActor(java.lang.String)
+	 */
+	public void setActor(String actorURI) {
+	
+		omHeaderElement.setRole(actorURI);
+	}
+
+	/**
+	 * method getActor
+	 * 
+	 * @return
+	 * @see javax.xml.soap.SOAPHeaderElement#getActor()
+	 */
+	public String getActor() {
+
+		return omHeaderElement.getRole();
+	}
+
+	/**
+	 * method setMustUnderstand
+	 * 
+	 * @param mustUnderstand
+	 * @see javax.xml.soap.SOAPHeaderElement#setMustUnderstand(boolean)
+	 */
+	public void setMustUnderstand(boolean mustUnderstand) {
+		
+		omHeaderElement.setMustUnderstand(mustUnderstand);
+	}
+
+	/**
+	 * method getMustUnderstand
+	 * 
+	 * @return
+	 * @see javax.xml.soap.SOAPHeaderElement#getMustUnderstand()
+	 */
+	public boolean getMustUnderstand() {
+		
+		return omHeaderElement.getMustUnderstand();
+	}
+
+}

Added: webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/src/org/apache/axis/saaj/SOAPHeaderImpl.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/src/org/apache/axis/saaj/SOAPHeaderImpl.java?rev=179794&view=auto
==============================================================================
--- webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/src/org/apache/axis/saaj/SOAPHeaderImpl.java (added)
+++ webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/src/org/apache/axis/saaj/SOAPHeaderImpl.java Fri Jun  3 07:08:11 2005
@@ -0,0 +1,180 @@
+/*
+ * Created on Mar 16, 2005
+ *
+ */
+package org.apache.axis.saaj;
+
+import java.util.Iterator;
+import java.util.ArrayList;
+
+import javax.xml.soap.Name;
+import javax.xml.soap.SOAPException;
+import javax.xml.soap.SOAPHeader;
+import javax.xml.soap.SOAPHeaderElement;
+
+import org.apache.axis.om.OMFactory;
+import org.apache.axis.om.OMAbstractFactory;
+import org.apache.axis.om.OMNamespace;
+
+/**
+ * Class SOAPHeaderImpl
+ * 
+ * @author Ashutosh Shahi
+ * ashutosh.shahi@gmail.com
+ */
+public class SOAPHeaderImpl extends SOAPElementImpl implements SOAPHeader {
+
+	/**
+	 * Field omHeader	OM's SOAPHeader field
+	 */
+	private org.apache.axis.soap.SOAPHeader omHeader;
+	
+	/**
+	 * Constructor SOAPHeaderImpl
+	 * @param header
+	 */
+	public SOAPHeaderImpl(org.apache.axis.soap.SOAPHeader header){
+		super(header);
+		this.omHeader = header; 
+	}
+	
+	/**
+	 * Method addHeaderElement
+	 * 
+	 * @param name
+	 * @return
+	 * @throws SOAPException
+	 * @see javax.xml.soap.SOAPHeader#addHeaderElement(javax.xml.soap.Name)
+	 */
+	public SOAPHeaderElement addHeaderElement(Name name) throws SOAPException {
+		// Create an OMHeaderBlock out of name and add it a SOAPHeaderElement
+		//to SOAPHeader
+		String localName = name.getLocalName();
+		OMFactory omFactory = OMAbstractFactory.getOMFactory();
+		OMNamespace ns = omFactory.createOMNamespace(name.getURI(), name.getPrefix());
+		org.apache.axis.soap.SOAPHeaderBlock headerBlock = omHeader.addHeaderBlock(localName, ns);
+		return (new SOAPHeaderElementImpl(headerBlock));
+	}
+
+	/**
+	 * method examineHeaderElements
+	 * 
+	 * @param actor
+	 * @return
+	 * @see javax.xml.soap.SOAPHeader#examineHeaderElements(java.lang.String)
+	 */
+	public Iterator examineHeaderElements(String actor) {
+		// Get all the om specific header elements in an iterator and wrap it
+		// in a soap specific iterator and return
+		Iterator headerElementsIter = omHeader.examineHeaderBlocks(actor);
+		ArrayList aList = new ArrayList();
+		while(headerElementsIter.hasNext()){
+			Object o = headerElementsIter.next();
+			if(o instanceof org.apache.axis.soap.SOAPHeaderBlock){
+				org.apache.axis.soap.SOAPHeaderBlock headerBlock = (org.apache.axis.soap.SOAPHeaderBlock)o;
+				SOAPHeaderElement element = (new SOAPHeaderElementImpl(headerBlock)); 
+				aList.add(element);
+			}
+		}
+		return aList.iterator();
+	}
+
+	/**
+	 * method extractHeaderElements
+	 * 
+	 * @param actor
+	 * @return
+	 * @see javax.xml.soap.SOAPHeader#extractHeaderElements(java.lang.String)
+	 */
+	public Iterator extractHeaderElements(String actor) {
+		// Get all the om specific header elements in an iterator and wrap it
+		// in a soap specific iterator and return
+		Iterator headerElementsIter = omHeader.extractHeaderBlocks(actor);
+		ArrayList aList = new ArrayList();
+		while(headerElementsIter.hasNext()){
+			Object o = headerElementsIter.next();
+			if(o instanceof org.apache.axis.soap.SOAPHeaderBlock){
+				org.apache.axis.soap.SOAPHeaderBlock headerBlock = (org.apache.axis.soap.SOAPHeaderBlock)o;
+				SOAPHeaderElement element = (new SOAPHeaderElementImpl(headerBlock)); 
+				aList.add(element);
+			}
+		}
+		return aList.iterator();
+	}
+
+	/**
+	 * method examineMustUnderstandHeaderElements
+	 * 
+	 * @param actor
+	 * @return
+	 * @see javax.xml.soap.SOAPHeader#examineMustUnderstandHeaderElements(java.lang.String)
+	 */
+	public Iterator examineMustUnderstandHeaderElements(String actor) {
+		// Get all the om specific header elements in an iterator and wrap it
+		// in a soap specific iterator and return		
+		Iterator headerElementsIter = omHeader.examineMustUnderstandHeaderBlocks(actor);
+		ArrayList aList = new ArrayList();
+		while(headerElementsIter.hasNext()){
+			Object o = headerElementsIter.next();
+			if(o instanceof org.apache.axis.soap.SOAPHeaderBlock){
+				org.apache.axis.soap.SOAPHeaderBlock headerBlock = (org.apache.axis.soap.SOAPHeaderBlock)o;
+				SOAPHeaderElement element = (new SOAPHeaderElementImpl(headerBlock)); 
+				aList.add(element);
+			}
+		}
+		return aList.iterator();
+	}
+
+	/**
+	 * method examineAllHeaderElements
+	 * 
+	 * @return
+	 * @see javax.xml.soap.SOAPHeader#examineAllHeaderElements()
+	 */
+	public Iterator examineAllHeaderElements() {
+		// Get all the om specific header elements in an iterator and wrap it
+		// in a soap specific iterator and return	
+		Iterator headerElementsIter = omHeader.examineAllHeaderBlocks();
+		ArrayList aList = new ArrayList();
+		while(headerElementsIter.hasNext()){
+			Object o = headerElementsIter.next();
+			if(o instanceof org.apache.axis.soap.SOAPHeaderBlock){
+				org.apache.axis.soap.SOAPHeaderBlock headerBlock = (org.apache.axis.soap.SOAPHeaderBlock)o;
+				SOAPHeaderElement element = (new SOAPHeaderElementImpl(headerBlock)); 
+				aList.add(element);
+			}
+		}
+		return aList.iterator();
+	}
+
+	/**
+	 * method extractAllHeaderElements
+	 * 
+	 * @return
+	 * @see javax.xml.soap.SOAPHeader#extractAllHeaderElements()
+	 */
+	public Iterator extractAllHeaderElements() {
+		// Get all the om specific header elements in an iterator and wrap it
+		// in a soap specific iterator and return	
+		Iterator headerElementsIter = omHeader.extractAllHeaderBlocks();
+		ArrayList aList = new ArrayList();
+		while(headerElementsIter.hasNext()){
+			Object o = headerElementsIter.next();
+			if(o instanceof org.apache.axis.soap.SOAPHeaderBlock){
+				org.apache.axis.soap.SOAPHeaderBlock headerBlock = (org.apache.axis.soap.SOAPHeaderBlock)o;
+				SOAPHeaderElement element = (new SOAPHeaderElementImpl(headerBlock)); 
+				aList.add(element);
+			}
+		}
+		return aList.iterator();
+	}
+	
+	/*public boolean equals(Object o){
+		if(o instanceof SOAPHeaderImpl){
+			if(this.omHeader.equals(((SOAPHeaderImpl)o).omHeader))
+					return true;
+		}
+		return false;
+	}*/
+
+}

Added: webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/src/org/apache/axis/saaj/SOAPMessageImpl.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/src/org/apache/axis/saaj/SOAPMessageImpl.java?rev=179794&view=auto
==============================================================================
--- webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/src/org/apache/axis/saaj/SOAPMessageImpl.java (added)
+++ webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/src/org/apache/axis/saaj/SOAPMessageImpl.java Fri Jun  3 07:08:11 2005
@@ -0,0 +1,197 @@
+/*
+ * Created on Apr 8, 2005
+ *
+ * TODO To change the template for this generated file go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+package org.apache.axis.saaj;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.Iterator;
+
+import javax.xml.soap.AttachmentPart;
+import javax.xml.soap.SOAPException;
+import javax.xml.soap.SOAPMessage;
+import javax.xml.soap.SOAPPart;
+import javax.xml.soap.SOAPBody;
+import javax.xml.soap.SOAPHeader;
+import javax.xml.stream.XMLOutputFactory;
+import javax.xml.stream.XMLStreamWriter;
+
+import org.apache.axis.transport.http.HTTPConstants;
+
+/**
+ * @author Ashutosh Shahi ashutosh.shahi@gmail.com
+ *
+ * TODO To change the template for this generated type comment go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+public class SOAPMessageImpl extends SOAPMessage {
+	
+	private SOAPPartImpl mSOAPPart;
+    private java.util.Hashtable mProps = new java.util.Hashtable();
+    private MimeHeaders headers;
+
+	public SOAPMessageImpl(Object initialContents){
+		try{
+		setup(initialContents, false, null, null, null);
+		} catch(SOAPException e){
+			e.printStackTrace();
+		}
+	}
+	
+    public SOAPMessageImpl(Object initialContents, boolean bodyInStream, javax.xml.soap.MimeHeaders headers) {
+    	try{
+    	setup(initialContents, bodyInStream, null, null, (MimeHeaders)headers);
+		} catch(SOAPException e){
+			e.printStackTrace();
+		}   	
+    }
+	
+	private void setup(Object initialContents, boolean bodyInStream,
+			String contentType, String contentLocation,
+			MimeHeaders mimeHeaders)throws SOAPException{
+		if(null == mSOAPPart)
+			mSOAPPart = new SOAPPartImpl(this, initialContents, bodyInStream);
+		else
+			mSOAPPart.setMessage(this);
+		
+		headers = (mimeHeaders == null) ? new MimeHeaders() : new MimeHeaders(mimeHeaders);
+	}
+	
+    /**
+     * Retrieves a description of this <CODE>SOAPMessage</CODE>
+     * object's content.
+     * @return  a <CODE>String</CODE> describing the content of this
+     *     message or <CODE>null</CODE> if no description has been
+     *     set
+     * @see #setContentDescription(java.lang.String) setContentDescription(java.lang.String)
+     */
+    public String getContentDescription() {
+        String values[] = headers.getHeader(HTTPConstants.HEADER_CONTENT_DESCRIPTION);
+        if(values != null && values.length > 0)
+            return values[0];
+        return null;
+    }
+
+    /**
+     * Sets the description of this <CODE>SOAPMessage</CODE>
+     * object's content with the given description.
+     * @param  description a <CODE>String</CODE>
+     *     describing the content of this message
+     * @see #getContentDescription() getContentDescription()
+     */
+    public void setContentDescription(String description) {
+        headers.setHeader(HTTPConstants.HEADER_CONTENT_DESCRIPTION, description);
+    }
+
+	/* (non-Javadoc)
+	 * @see javax.xml.soap.SOAPMessage#getSOAPPart()
+	 */
+	public SOAPPart getSOAPPart() {
+		return mSOAPPart;
+	}
+	
+    public SOAPBody getSOAPBody() throws SOAPException {
+        return mSOAPPart.getEnvelope().getBody();
+    }
+
+    public SOAPHeader getSOAPHeader() throws SOAPException {
+        return mSOAPPart.getEnvelope().getHeader();
+    }
+    
+    public void setProperty(String property, Object value) throws SOAPException {
+        mProps.put(property, value);
+    }
+
+    public Object getProperty(String property) throws SOAPException {
+        return mProps.get(property);
+    }
+
+	/* (non-Javadoc)
+	 * @see javax.xml.soap.SOAPMessage#removeAllAttachments()
+	 */
+	public void removeAllAttachments() {
+		// TODO Auto-generated method stub
+
+	}
+
+	/* (non-Javadoc)
+	 * @see javax.xml.soap.SOAPMessage#countAttachments()
+	 */
+	public int countAttachments() {
+		// TODO Auto-generated method stub
+		return 0;
+	}
+
+	/* (non-Javadoc)
+	 * @see javax.xml.soap.SOAPMessage#getAttachments()
+	 */
+	public Iterator getAttachments() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see javax.xml.soap.SOAPMessage#getAttachments(javax.xml.soap.MimeHeaders)
+	 */
+	public Iterator getAttachments(javax.xml.soap.MimeHeaders headers) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see javax.xml.soap.SOAPMessage#addAttachmentPart(javax.xml.soap.AttachmentPart)
+	 */
+	public void addAttachmentPart(AttachmentPart attachmentpart) {
+		// TODO Auto-generated method stub
+
+	}
+
+	/* (non-Javadoc)
+	 * @see javax.xml.soap.SOAPMessage#createAttachmentPart()
+	 */
+	public AttachmentPart createAttachmentPart() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see javax.xml.soap.SOAPMessage#getMimeHeaders()
+	 */
+	public javax.xml.soap.MimeHeaders getMimeHeaders() {
+		
+		return headers;
+	}
+
+	/* (non-Javadoc)
+	 * @see javax.xml.soap.SOAPMessage#saveChanges()
+	 */
+	public void saveChanges() throws SOAPException {
+		// TODO Auto-generated method stub
+
+	}
+
+	/* (non-Javadoc)
+	 * @see javax.xml.soap.SOAPMessage#saveRequired()
+	 */
+	public boolean saveRequired() {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	/* (non-Javadoc)
+	 * @see javax.xml.soap.SOAPMessage#writeTo(java.io.OutputStream)
+	 */
+	public void writeTo(OutputStream out) throws SOAPException, IOException {
+		try{
+		XMLStreamWriter writer = XMLOutputFactory.newInstance().createXMLStreamWriter(out);
+		((SOAPEnvelopeImpl)mSOAPPart.getEnvelope()).getOMEnvelope().serialize(writer);
+		writer.flush();
+		} catch(Exception e){
+			throw new SOAPException(e);
+		}
+	}
+
+}

Added: webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/src/org/apache/axis/saaj/SOAPPartImpl.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/src/org/apache/axis/saaj/SOAPPartImpl.java?rev=179794&view=auto
==============================================================================
--- webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/src/org/apache/axis/saaj/SOAPPartImpl.java (added)
+++ webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/src/org/apache/axis/saaj/SOAPPartImpl.java Fri Jun  3 07:08:11 2005
@@ -0,0 +1,493 @@
+/*
+ * Created on Apr 8, 2005
+ *
+ * TODO To change the template for this generated file go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+package org.apache.axis.saaj;
+
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.util.Iterator;
+
+import javax.xml.soap.MimeHeaders;
+import javax.xml.soap.SOAPEnvelope;
+import javax.xml.soap.SOAPException;
+import javax.xml.soap.SOAPPart;
+import javax.xml.transform.Source;
+
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLInputFactory;
+import org.apache.axis.soap.impl.llom.builder.StAXSOAPModelBuilder;
+
+import org.apache.axis.transport.http.HTTPConstants;
+import org.apache.axis.util.SessionUtils;
+import org.w3c.dom.Attr;
+import org.w3c.dom.CDATASection;
+import org.w3c.dom.Comment;
+import org.w3c.dom.DOMException;
+import org.w3c.dom.DOMImplementation;
+import org.w3c.dom.Document;
+import org.w3c.dom.DocumentFragment;
+import org.w3c.dom.DocumentType;
+import org.w3c.dom.Element;
+import org.w3c.dom.EntityReference;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import org.w3c.dom.ProcessingInstruction;
+import org.w3c.dom.Text;
+
+/**
+ * @author Ashutosh Shahi ashutosh.shahi@gmail.com
+ *
+ * TODO To change the template for this generated type comment go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+public class SOAPPartImpl extends SOAPPart {
+
+	private SOAPMessageImpl msgObject;
+	private MimeHeaders mimeHeaders = new MimeHeaders();
+	private Object envelope;
+    /**
+     * default message encoding charset
+     */
+    private String currentEncoding = "UTF-8";
+	
+	public SOAPPartImpl(SOAPMessageImpl parent, Object initialContents, boolean isBodyStream) throws SOAPException{
+		
+        setMimeHeader(HTTPConstants.HEADER_CONTENT_ID , SessionUtils.generateSessionId());
+        setMimeHeader(HTTPConstants.HEADER_CONTENT_TYPE , "text/xml");
+        StAXSOAPModelBuilder stAXSOAPModelBuilder;
+        
+        msgObject = parent;
+        try{
+        	if(initialContents instanceof SOAPEnvelope){
+        		((SOAPEnvelopeImpl)initialContents).setOwnerDocument(this);
+        		envelope = initialContents;
+        	} else if(initialContents instanceof InputStream){
+        		//XMLStreamReader reader = XMLInputFactory.newInstance().createXMLStreamReader((InputStream)initialContents);
+        		InputStreamReader inr = new InputStreamReader((InputStream)initialContents);
+        		stAXSOAPModelBuilder = new StAXSOAPModelBuilder(XMLInputFactory.newInstance().createXMLStreamReader(inr));
+        		org.apache.axis.soap.SOAPEnvelope omEnv = stAXSOAPModelBuilder.getSOAPEnvelope();
+        		envelope = new SOAPEnvelopeImpl(omEnv);
+        		((SOAPEnvelopeImpl)envelope).setOwnerDocument(this);
+        	}
+        
+        }catch(Exception e){
+        	throw new SOAPException(e);
+        }
+	}
+	
+    public SOAPMessageImpl getMessage(){
+        return msgObject;
+      }
+
+      /**
+       * Set the Message for this Part.
+       * Do not call this Directly. Called by Message.
+       *
+       * @param msg  the <code>Message</code> for this part
+       */
+      public void setMessage (SOAPMessageImpl msg) {
+          this.msgObject= msg;
+      }
+	
+	/* (non-Javadoc)
+	 * @see javax.xml.soap.SOAPPart#getEnvelope()
+	 */
+  	public SOAPEnvelope getEnvelope() throws SOAPException {
+		//if(envelope != null)
+			return (SOAPEnvelope)envelope;
+		
+	}
+
+    /**
+     * Removes all MIME headers that match the given name.
+     * @param  header  a <CODE>String</CODE> giving
+     *     the name of the MIME header(s) to be removed
+     */
+    public void removeMimeHeader(String header) {
+        mimeHeaders.removeHeader(header);
+    }
+
+	   /**
+     * Removes all the <CODE>MimeHeader</CODE> objects for this
+     * <CODE>SOAPEnvelope</CODE> object.
+     */
+    public void removeAllMimeHeaders() {
+        mimeHeaders.removeAllHeaders();
+    }
+
+    /**
+     * Gets all the values of the <CODE>MimeHeader</CODE> object
+     * in this <CODE>SOAPPart</CODE> object that is identified by
+     * the given <CODE>String</CODE>.
+     * @param   name  the name of the header; example:
+     *     "Content-Type"
+     * @return a <CODE>String</CODE> array giving all the values for
+     *     the specified header
+     * @see #setMimeHeader(java.lang.String, java.lang.String) setMimeHeader(java.lang.String, java.lang.String)
+     */
+    public String[] getMimeHeader(String name) {
+        return mimeHeaders.getHeader(name);
+    }
+
+    /**
+     * Changes the first header entry that matches the given
+     *   header name so that its value is the given value, adding a
+     *   new header with the given name and value if no existing
+     *   header is a match. If there is a match, this method clears
+     *   all existing values for the first header that matches and
+     *   sets the given value instead. If more than one header has
+     *   the given name, this method removes all of the matching
+     *   headers after the first one.
+     *
+     *   <P>Note that RFC822 headers can contain only US-ASCII
+     *   characters.</P>
+     * @param  name a <CODE>String</CODE> giving the
+     *     header name for which to search
+     * @param  value a <CODE>String</CODE> giving the
+     *     value to be set. This value will be substituted for the
+     *     current value(s) of the first header that is a match if
+     *     there is one. If there is no match, this value will be
+     *     the value for a new <CODE>MimeHeader</CODE> object.
+     * @ throws java.lang.IllegalArgumentException if
+     *     there was a problem with the specified mime header name
+     *     or value
+     * @see #getMimeHeader(java.lang.String) getMimeHeader(java.lang.String)
+     */
+    public void setMimeHeader(String name, String value) {
+        mimeHeaders.setHeader(name,value);
+    }
+
+    /**
+     * Add the specified MIME header, as per JAXM.
+     *
+     * @param header  the header to add
+     * @param value   the value of that header
+     */
+    public void addMimeHeader (String header, String value) {
+        mimeHeaders.addHeader(header, value);
+    }
+
+    /**
+     * Retrieves all the headers for this <CODE>SOAPPart</CODE>
+     * object as an iterator over the <CODE>MimeHeader</CODE>
+     * objects.
+     * @return an <CODE>Iterator</CODE> object with all of the Mime
+     *     headers for this <CODE>SOAPPart</CODE> object
+     */
+    public Iterator getAllMimeHeaders() {
+        return mimeHeaders.getAllHeaders();
+    }
+
+    /**
+     * Get all headers that match.
+     *
+     * @param match  an array of <code>String</code>s giving mime header names
+     * @return an <code>Iterator</code> over all values matching these headers
+     */
+    public java.util.Iterator getMatchingMimeHeaders( final String[] match){
+        return mimeHeaders.getMatchingHeaders(match);
+    }
+
+    /**
+     * Get all headers that do not match.
+     *
+     * @param match  an array of <code>String</code>s giving mime header names
+     * @return an <code>Iterator</code> over all values not matching these
+     *          headers
+     */
+    public java.util.Iterator getNonMatchingMimeHeaders( final String[] match){
+        return mimeHeaders.getNonMatchingHeaders(match);
+    }
+
+	/* (non-Javadoc)
+	 * @see javax.xml.soap.SOAPPart#setContent(javax.xml.transform.Source)
+	 */
+	public void setContent(Source source) throws SOAPException {
+		// TODO Auto-generated method stub
+
+	}
+
+	/* (non-Javadoc)
+	 * @see javax.xml.soap.SOAPPart#getContent()
+	 */
+	public Source getContent() throws SOAPException {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+    /**
+     *  Implementation of org.w3c.Document
+     *  Most of methods will be implemented using the delgate
+     *  instance of SOAPDocumentImpl
+     *  This is for two reasons:
+     *  - possible change of message classes, by extenstion of xerces implementation
+     *  - we cannot extends SOAPPart (multiple inheritance),
+     *    since it is defined as Abstract class
+     * ***********************************************************
+     */
+
+    private Document document = new SOAPDocumentImpl(this);
+    /**
+     *  @since SAAJ 1.2
+     */
+    public Document getSOAPDocument(){
+        if(document == null){
+            document = new SOAPDocumentImpl(this);
+        }
+        return document;
+    }
+
+    /**
+     * @return
+     */
+    public DocumentType getDoctype(){
+        return document.getDoctype();
+    }
+
+    /**
+     * @return
+     */
+    public DOMImplementation getImplementation(){
+        return document.getImplementation();
+    }
+
+    /**
+     * SOAPEnvelope is the Document Elements of this XML docuement
+     */
+    protected Document mDocument;
+
+    public Element getDocumentElement()
+    {
+        try{
+            return getEnvelope();
+        }catch(SOAPException se){
+            return null;
+        }
+    }
+
+    /**
+     *
+     * @param tagName
+     * @return
+     * @throws DOMException
+     */
+    public Element createElement(String tagName) throws DOMException {
+        return document.createElement(tagName);
+    }
+
+    public DocumentFragment createDocumentFragment() {
+        return document.createDocumentFragment();
+    }
+
+    public Text createTextNode(String data) {
+        return document.createTextNode(data);
+    }
+
+    public Comment createComment(String data){
+        return document.createComment(data);
+    }
+
+    public CDATASection createCDATASection(String data) throws DOMException {
+        return document.createCDATASection(data);
+    }
+
+    public ProcessingInstruction createProcessingInstruction(String target, String data)
+    throws DOMException {
+        return document.createProcessingInstruction(target,data);
+    }
+
+    public Attr createAttribute(String name)throws DOMException {
+        return document.createAttribute(name);
+    }
+
+    public EntityReference createEntityReference(String name) throws DOMException {
+        return document.createEntityReference(name);
+    }
+
+    public NodeList getElementsByTagName(String tagname) {
+        return document.getElementsByTagName(tagname);
+    }
+
+    public Node importNode(Node importedNode, boolean deep)
+    throws DOMException {
+        return document.importNode(importedNode, deep);
+    }
+
+    public Element createElementNS(String namespaceURI, String qualifiedName)
+    throws DOMException {
+        return document.createElementNS(namespaceURI, qualifiedName);
+    }
+
+    public Attr createAttributeNS(String namespaceURI, String qualifiedName)
+    throws DOMException {
+        return document.createAttributeNS(namespaceURI, qualifiedName);
+    }
+
+    public NodeList getElementsByTagNameNS(String namespaceURI, String localName) {
+        return document.getElementsByTagNameNS(namespaceURI,localName);
+    }
+
+    public Element getElementById(String elementId){
+        return document.getElementById(elementId);
+    }
+
+    /////////////////////////////////////////////////////////////
+
+    public String getEncoding()
+    {
+        return currentEncoding;
+    }
+
+    public  void setEncoding(String s)
+    {
+        currentEncoding = s;
+    }
+
+    public  boolean getStandalone()
+    {
+        throw new UnsupportedOperationException("Not yet implemented.71");
+    }
+
+
+    public  void setStandalone(boolean flag)
+    {
+        throw new UnsupportedOperationException("Not yet implemented.72");
+    }
+
+    public  boolean getStrictErrorChecking()
+    {
+        throw new UnsupportedOperationException("Not yet implemented.73");
+    }
+
+
+    public  void setStrictErrorChecking(boolean flag)
+    {
+        throw new UnsupportedOperationException("Not yet implemented. 74");
+    }
+
+
+    public  String getVersion()
+    {
+        throw new UnsupportedOperationException("Not yet implemented. 75");
+    }
+
+
+    public  void setVersion(String s)
+    {
+        throw new UnsupportedOperationException("Not yet implemented.76");
+    }
+
+
+    public  Node adoptNode(Node node)
+    throws DOMException
+    {
+        throw new UnsupportedOperationException("Not yet implemented.77");
+    }
+
+    /**
+     *  Node Implementation
+     */
+
+    public String getNodeName(){
+        return document.getNodeName();
+    }
+
+    public String getNodeValue() throws DOMException {
+        return document.getNodeValue();
+    }
+
+    public void setNodeValue(String nodeValue) throws DOMException{
+        document.setNodeValue(nodeValue);
+    }
+
+    public short getNodeType() {
+        return document.getNodeType();
+    }
+
+    public Node getParentNode(){
+        return  document.getParentNode();
+    }
+
+    public NodeList getChildNodes() {
+        return document.getChildNodes();
+    }
+
+    public Node getFirstChild() {
+        return document.getFirstChild();
+    }
+
+    public Node getLastChild(){
+        return document.getLastChild();
+    }
+
+    public Node getPreviousSibling(){
+        return document.getPreviousSibling();
+    }
+
+    public Node getNextSibling(){
+        return document.getNextSibling();
+    }
+
+    public NamedNodeMap getAttributes(){
+        return document.getAttributes();
+    }
+
+    public Document getOwnerDocument(){
+        return document.getOwnerDocument();
+    }
+
+    public Node insertBefore(Node newChild, Node refChild) throws DOMException {
+        return document.insertBefore(newChild, refChild);
+    }
+
+    public Node replaceChild(Node newChild, Node oldChild) throws DOMException {
+        return document.replaceChild(newChild, oldChild);
+    }
+
+    public Node removeChild(Node oldChild) throws DOMException {
+        return document.removeChild(oldChild);
+    }
+
+    public Node appendChild(Node newChild) throws DOMException {
+        return document.appendChild(newChild);
+    }
+
+    public boolean hasChildNodes(){
+        return document.hasChildNodes();
+    }
+    public Node cloneNode(boolean deep) {
+        return document.cloneNode(deep);
+    }
+
+    public void normalize(){
+        document.normalize();
+    }
+
+    public boolean isSupported(String feature, String version){
+        return document.isSupported(feature, version);
+    }
+
+    public String getNamespaceURI() {
+        return document.getNamespaceURI();
+    }
+
+    public String getPrefix() {
+        return document.getPrefix();
+    }
+
+    public void setPrefix(String prefix) throws DOMException {
+        document.setPrefix(prefix);
+    }
+    public String getLocalName() {
+        return document.getLocalName();
+    }
+
+    public boolean hasAttributes(){
+        return document.hasAttributes();
+    }
+
+}

Added: webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/src/org/apache/axis/saaj/TextImpl.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/src/org/apache/axis/saaj/TextImpl.java?rev=179794&view=auto
==============================================================================
--- webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/src/org/apache/axis/saaj/TextImpl.java (added)
+++ webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/src/org/apache/axis/saaj/TextImpl.java Fri Jun  3 07:08:11 2005
@@ -0,0 +1,167 @@
+/*
+ * Created on Apr 11, 2005
+ *
+ * TODO To change the template for this generated file go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+package org.apache.axis.saaj;
+
+import javax.xml.soap.SOAPElement;
+import javax.xml.soap.Text;
+import javax.xml.soap.SOAPException;
+
+import org.apache.axis.om.OMElement;
+import org.apache.axis.om.OMText;
+import org.w3c.dom.DOMException;
+
+/**
+ * @author Ashutosh Shahi ashutosh.shahi@gmail.com
+ *
+ * TODO To change the template for this generated type comment go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+public class TextImpl extends NodeImpl implements Text {
+
+	private OMText omText;
+	
+	public TextImpl(String s){
+		//super();
+		omNode = omText = org.apache.axis.om.OMAbstractFactory.getOMFactory().createText(s);
+	}
+	
+	public TextImpl(SOAPElementImpl parent, String s) throws SOAPException{
+		//super();
+		//super.setParentElement(parent);
+		OMElement par = parent.getOMElement();
+		omNode = omText = org.apache.axis.om.OMAbstractFactory.getOMFactory().createText(par, s);
+	}
+	
+	public TextImpl(org.w3c.dom.CharacterData data){
+        if ( data == null ){
+           throw new IllegalArgumentException( "Text value may not be null." );
+        }
+        omText = org.apache.axis.om.OMAbstractFactory.getOMFactory().createText(data.getData());
+	}
+	
+	/*Overridden Method*/
+	public SOAPElement getParentElement() {
+		OMElement parent = omText.getParent();
+		return new SOAPElementImpl(parent);
+	}
+	
+	/*Overridden Method*/
+	public void setParentElement(SOAPElement parent) throws SOAPException {
+		OMElement omParent = ((SOAPElementImpl)parent).getOMElement();
+		omText.setParent(omParent);
+	}
+	
+	/*Overridden Method*/
+	public String getValue() {
+		return omText.getText();
+	}
+	
+	public boolean isComment() {
+		
+		String temp = omText.getText();
+		if(temp.startsWith("<!--") && temp.endsWith("-->"))
+            return true;
+        return false;
+	}
+
+    /**
+     * Implementation of DOM TEXT Interface
+     * *************************************************************
+     */
+	
+	
+	public org.w3c.dom.Text splitText(int offset) throws DOMException {
+		
+		String temp = omText.getText();
+		int length = temp.length();
+		String tailData = temp.substring(offset);
+		temp = temp.substring(0, offset);
+		omText = org.apache.axis.om.OMAbstractFactory.getOMFactory().createText(temp);
+		TextImpl tailText = new TextImpl(tailData);
+		org.w3c.dom.Node myParent = getParentNode();
+        if(myParent != null){
+            org.w3c.dom.NodeList brothers = myParent.getChildNodes();
+            for(int i = 0;i  < brothers.getLength(); i++){
+                if(brothers.item(i).equals(this)){
+                    myParent.insertBefore(tailText, this);
+                    return tailText;
+                }
+            }
+        }
+        return tailText;
+	}
+
+	
+	public int getLength() {
+		
+		return omText.getText().length();
+	}
+
+	
+	public void deleteData(int offset, int count) throws DOMException {
+		
+		String temp = omText.getText();
+		StringBuffer subString = new StringBuffer(temp.substring(0,offset));
+		if(temp.length() - offset >= count - offset)
+			subString = subString.append(temp.substring(offset+count));
+		temp = subString.toString();
+		omText = org.apache.axis.om.OMAbstractFactory.getOMFactory().createText(temp);
+		
+	}
+
+	
+	public String getData() throws DOMException {
+		
+		return omText.getText();
+	}
+
+	
+	public String substringData(int offset, int count) throws DOMException {
+		
+		String temp = omText.getText();
+		if(temp.length() - offset >= count - offset)
+			return temp.substring(offset, count);
+		else
+			return temp.substring(offset);
+	}
+
+	
+	public void replaceData(int offset, int count, String arg)
+			throws DOMException {
+		
+		deleteData(offset, count);
+		StringBuffer temp = new StringBuffer(omText.getText());
+		temp.append(arg);
+		omText = org.apache.axis.om.OMAbstractFactory.getOMFactory().createText(temp.toString());
+	}
+
+	
+	public void insertData(int offset, String arg) throws DOMException {
+		
+		if(offset < 0 || offset > omText.getText().length())
+			throw new DOMException(DOMException.INDEX_SIZE_ERR, "");
+		StringBuffer temp = new StringBuffer(omText.getText().substring(0, offset));
+		temp = temp.append(arg);
+		omText = org.apache.axis.om.OMAbstractFactory.getOMFactory().createText(temp.toString());
+	}
+
+	
+	public void appendData(String arg) throws DOMException {
+		
+		StringBuffer temp = new StringBuffer(omText.getText());
+		temp = temp.append(arg);
+		omText = org.apache.axis.om.OMAbstractFactory.getOMFactory().createText(temp.toString());
+
+	}
+
+	
+	public void setData(String arg) throws DOMException {
+		
+		omText = org.apache.axis.om.OMAbstractFactory.getOMFactory().createText(arg);
+	}
+
+}

Added: webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/src/org/apache/axis/util/Dom2OmUtils.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/src/org/apache/axis/util/Dom2OmUtils.java?rev=179794&view=auto
==============================================================================
--- webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/src/org/apache/axis/util/Dom2OmUtils.java (added)
+++ webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/src/org/apache/axis/util/Dom2OmUtils.java Fri Jun  3 07:08:11 2005
@@ -0,0 +1,32 @@
+/*
+ * Created on May 20, 2005
+ *
+ * TODO To change the template for this generated file go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+package org.apache.axis.util;
+
+import org.apache.axis.om.OMNode;
+import org.apache.axis.saaj.NodeImpl;
+import org.w3c.dom.Node;
+
+/**
+ * @author shaas02
+ *
+ * TODO To change the template for this generated type comment go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+public class Dom2OmUtils {
+	
+	private OMNode omNode;
+	public static OMNode toOM(Node node){
+		if(node instanceof NodeImpl){
+			return ((NodeImpl)node).getOMNode();
+		}
+		//ELSE Assumes an implemenattion of DOM to be present
+		//so, here we convert DOM Node to a OMNode and add it as a
+		//child to the omNode member of this NodeImpl
+		return null;
+	}
+
+}

Added: webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/src/org/apache/axis/util/IOUtils.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/src/org/apache/axis/util/IOUtils.java?rev=179794&view=auto
==============================================================================
--- webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/src/org/apache/axis/util/IOUtils.java (added)
+++ webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/src/org/apache/axis/util/IOUtils.java Fri Jun  3 07:08:11 2005
@@ -0,0 +1,55 @@
+/*
+ * Created on Apr 7, 2005
+ *
+ * TODO To change the template for this generated file go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+package org.apache.axis.util;
+
+import java.io.IOException;
+import java.io.InputStream;
+
+/**
+ * Utility class containing IO helper methods
+ */
+public class IOUtils
+{
+    private IOUtils() {
+    }
+
+    /**
+     * Read into a byte array; tries to ensure that the the
+     * full buffer is read.
+     *
+     * Helper method, just calls <tt>readFully(in, b, 0, b.length)</tt>
+     * @see #readFully(java.io.InputStream, byte[], int, int)
+     */
+    public static int readFully(InputStream in, byte[] b)
+    throws IOException
+    {
+        return readFully(in, b, 0, b.length);
+    }
+
+    /**
+     * Same as the normal <tt>in.read(b, off, len)</tt>, but tries to ensure that
+     * the entire len number of bytes is read.
+     * <p>
+     * @returns the number of bytes read, or -1 if the end of file is
+     *  reached before any bytes are read
+     */
+    public static int readFully(InputStream in, byte[] b, int off, int len)
+    throws IOException
+    {
+        int total = 0;
+        for (;;) {
+            int got = in.read(b, off + total, len - total);
+            if (got < 0) {
+                return (total == 0) ? -1 : total;
+            } else {
+                total += got;
+                if (total == len)
+                    return total;
+            }
+        }
+    }
+}

Added: webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/src/org/apache/axis/util/SessionUtils.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/src/org/apache/axis/util/SessionUtils.java?rev=179794&view=auto
==============================================================================
--- webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/src/org/apache/axis/util/SessionUtils.java (added)
+++ webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/src/org/apache/axis/util/SessionUtils.java Fri Jun  3 07:08:11 2005
@@ -0,0 +1,99 @@
+/*
+ * Created on Apr 8, 2005
+ *
+ * TODO To change the template for this generated file go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+package org.apache.axis.util;
+
+import java.util.Random;
+
+/**
+ * Code borrowed from AuthenticatorBase.java for generating a secure id's.
+ */
+public class SessionUtils {
+
+    /**
+     * The number of random bytes to include when generating a
+     * session identifier.
+     */
+    protected static final int SESSION_ID_BYTES = 16;
+
+    /**
+     * A random number generator to use when generating session identifiers.
+     */
+    protected static Random random = null;
+
+    /**
+     * The Java class name of the random number generator class to be used
+     * when generating session identifiers.
+     */
+    protected static String randomClass = "java.security.SecureRandom";
+
+    /**
+     * Host name/ip.
+     */
+    private static String thisHost = null;
+
+    /**
+     * Generate and return a new session identifier.
+     *
+     * @return a new session id
+     */
+    public static synchronized String generateSessionId() {
+        // Generate a byte array containing a session identifier
+        byte bytes[] = new byte[SESSION_ID_BYTES];
+
+        getRandom().nextBytes(bytes);
+
+        // Render the result as a String of hexadecimal digits
+        StringBuffer result = new StringBuffer();
+
+        for (int i = 0; i < bytes.length; i++) {
+            byte b1 = (byte) ((bytes[i] & 0xf0) >> 4);
+            byte b2 = (byte) (bytes[i] & 0x0f);
+
+            if (b1 < 10) {
+                result.append((char) ('0' + b1));
+            } else {
+                result.append((char) ('A' + (b1 - 10)));
+            }
+            if (b2 < 10) {
+                result.append((char) ('0' + b2));
+            } else {
+                result.append((char) ('A' + (b2 - 10)));
+            }
+        }
+        return (result.toString());
+    }
+
+    /**
+     * Generate and return a new session identifier.
+     *
+     * @return a new session.
+     */
+    public static synchronized Long generateSession() {
+        return new Long(getRandom().nextLong());
+    }
+
+    /**
+     * Return the random number generator instance we should use for
+     * generating session identifiers.  If there is no such generator
+     * currently defined, construct and seed a new one.
+     *
+     * @return Random object
+     */
+    private static synchronized Random getRandom() {
+        if (random == null) {
+            try {
+                Class clazz = Class.forName(randomClass);
+                random = (Random) clazz.newInstance();
+            } catch (Exception e) {
+                random = new java.util.Random();
+            }
+        }
+        return (random);
+    }
+
+}
+

Added: webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/src/org/apache/axis/util/XMLUtils.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/src/org/apache/axis/util/XMLUtils.java?rev=179794&view=auto
==============================================================================
--- webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/src/org/apache/axis/util/XMLUtils.java (added)
+++ webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/src/org/apache/axis/util/XMLUtils.java Fri Jun  3 07:08:11 2005
@@ -0,0 +1,60 @@
+/*
+ * Created on Apr 11, 2005
+ *
+ * TODO To change the template for this generated file go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+package org.apache.axis.util;
+
+import org.w3c.dom.Document;
+import org.xml.sax.SAXException;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+import java.io.IOException;
+import java.io.InputStream;
+
+/**
+ * @author shaas02
+ *
+ * TODO To change the template for this generated type comment go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+public class XMLUtils {
+	
+    /**
+     * Get an empty new Document
+     *
+     * @return Document
+     * @throws ParserConfigurationException if construction problems occur
+     */
+    public static Document newDocument()
+    throws ParserConfigurationException {
+    	DocumentBuilder db = null;
+    	
+        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+        dbf.setNamespaceAware(true);
+        db = dbf.newDocumentBuilder();
+        Document doc = db.newDocument();
+        return doc;
+    }
+	
+    /**
+     * Method newDocument
+     *
+     * @param in
+     * @return
+     * @throws ParserConfigurationException
+     * @throws SAXException
+     * @throws IOException
+     */
+    public static Document newDocument(InputStream in)
+            throws ParserConfigurationException, SAXException, IOException {
+        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+        dbf.setNamespaceAware(true);
+        DocumentBuilder db = dbf.newDocumentBuilder();
+        return db.parse(in);
+    }
+
+}

Added: webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/test/org/apache/axis/saaj/TestClient.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/test/org/apache/axis/saaj/TestClient.java?rev=179794&view=auto
==============================================================================
--- webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/test/org/apache/axis/saaj/TestClient.java (added)
+++ webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/test/org/apache/axis/saaj/TestClient.java Fri Jun  3 07:08:11 2005
@@ -0,0 +1,83 @@
+/*
+ * Created on Mar 21, 2005
+ *
+ */
+package org.apache.axis.saaj;
+
+import javax.xml.soap.Name;
+import javax.xml.soap.SOAPBody;
+import javax.xml.soap.SOAPElement;
+import javax.xml.stream.XMLStreamWriter;
+import javax.xml.stream.FactoryConfigurationError;
+import javax.xml.stream.XMLOutputFactory;
+import javax.xml.stream.XMLStreamException;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+
+import org.apache.axis.Constants;
+import org.apache.axis.clientapi.Call;
+import org.apache.axis.addressing.AddressingConstants;
+import org.apache.axis.addressing.EndpointReference;
+import org.apache.axis.engine.AxisFault;
+
+/**
+ * Class TestClient
+ * Creates a SAAJ specific soap message using SAAJ api
+ * Takes the omEnvelope from this SAAJ Envelope and sends it using Call.sendReceive()
+ * recives the echoed response
+ * 
+ * @author Ashutosh Shahi
+ * ashutosh.shahi@gmail.com
+ */
+public class TestClient {
+	
+	public static void main(String[] args){
+		try{
+		SOAPEnvelopeImpl env = new SOAPEnvelopeImpl();
+		Name ns =  env.createName("EchoOM", "test1", "http://MyClient.org/MyClient");
+		SOAPBody body = env.getBody();
+		SOAPElement bodyElmnt =  body.addBodyElement(ns);
+		Name ns2 = env.createName("Text","test2", "http://MyClient.org/ABC");
+		SOAPElement text = bodyElmnt.addChildElement(ns2);
+		text.addTextNode("Echo String");
+		
+		org.apache.axis.soap.SOAPEnvelope omEnv = env.getOMEnvelope();
+		
+		System.out.println("Request sent   ...");
+		XMLStreamWriter writer = XMLOutputFactory.newInstance().createXMLStreamWriter(System.out);
+		omEnv.serialize(writer);
+		writer.flush();
+		System.out.println();
+		
+		Call call = new Call();
+		URL url = null;
+
+		try {
+				url = new URL("http://localhost:8080/axis2/services/myecho");
+		} catch (MalformedURLException e) {
+			e.printStackTrace();
+			System.exit(0);
+		}
+		
+		call.setTransportInfo(Constants.TRANSPORT_HTTP,Constants.TRANSPORT_HTTP, true);
+		call.setTo(new EndpointReference(AddressingConstants.WSA_TO, url.toString()));
+		
+		org.apache.axis.soap.SOAPEnvelope responseEnv = (org.apache.axis.soap.SOAPEnvelope)call.invokeBlocking("echo", omEnv);
+
+		System.out.println("Responce received  ...");
+		responseEnv.serialize(writer);
+		writer.flush();
+		
+		} catch(AxisFault e1){
+			e1.printStackTrace();
+		} catch(javax.xml.soap.SOAPException e){
+			e.printStackTrace();
+		} catch (XMLStreamException e1) {
+			e1.printStackTrace();
+		}catch (FactoryConfigurationError e1) {
+			// TODO Auto-generated catch block
+			e1.printStackTrace();
+		}
+	}
+}

Added: webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/test/org/apache/axis/saaj/TestClient2.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/test/org/apache/axis/saaj/TestClient2.java?rev=179794&view=auto
==============================================================================
--- webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/test/org/apache/axis/saaj/TestClient2.java (added)
+++ webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/test/org/apache/axis/saaj/TestClient2.java Fri Jun  3 07:08:11 2005
@@ -0,0 +1,67 @@
+/*
+ * Created on Apr 8, 2005
+ *
+ * TODO To change the template for this generated file go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+package org.apache.axis.saaj;
+
+import javax.xml.soap.Name;
+import javax.xml.soap.SOAPBody;
+import javax.xml.soap.SOAPConnection;
+import javax.xml.soap.SOAPConnectionFactory;
+import javax.xml.soap.SOAPElement;
+import javax.xml.soap.SOAPEnvelope;
+import javax.xml.soap.SOAPException;
+import javax.xml.stream.XMLOutputFactory;
+import javax.xml.stream.XMLStreamWriter;
+import javax.xml.stream.XMLStreamException;
+/**
+ * @author Ashutosh Shahi
+ *
+ * TODO To change the template for this generated type comment go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+public class TestClient2 {
+	
+	public static void main(String[] args){
+		try{
+			javax.xml.soap.MessageFactory fact = javax.xml.soap.MessageFactory.newInstance(); 
+			javax.xml.soap.SOAPMessage message = fact.createMessage();
+			javax.xml.soap.SOAPPart soapPart = message.getSOAPPart();
+			SOAPEnvelopeImpl env = (SOAPEnvelopeImpl)soapPart.getEnvelope(); 
+			Name ns =  env.createName("EchoOM", "test1", "http://MyClient.org/MyClient");
+			SOAPBody body = env.getBody();
+			SOAPElement bodyElmnt =  body.addBodyElement(ns);
+			Name ns2 = env.createName("Text","test2", "http://MyClient.org/ABC");
+			SOAPElement text = bodyElmnt.addChildElement(ns2);
+			text.addTextNode("Echo String");
+			// TODO: Test with TextImpl, need some fix 
+			//TextImpl data = new TextImpl((SOAPElementImpl)text, "Echo String");
+			//System.out.println(data.getParentElement().getElementName());
+			//data.setParentElement(text);
+					
+		/*	SOAPConnectionFactory factory = SOAPConnectionFactory.newInstance();
+			SOAPConnection connection = factory.createConnection();
+			javax.xml.soap.SOAPMessage respMsg = ((SOAPConnectionImpl)connection).call(message, "http://localhost:8080/axis2/services/myecho");
+			SOAPEnvelope response = respMsg.getSOAPPart().getEnvelope();
+		*/	
+			org.apache.axis.soap.SOAPEnvelope omEnv = env.getOMEnvelope();
+			System.out.println("Request sent   ...");
+			XMLStreamWriter writer = XMLOutputFactory.newInstance().createXMLStreamWriter(System.out);
+			omEnv.serialize(writer);
+			writer.flush();
+			System.out.println();
+		/*	org.apache.axis.om.SOAPEnvelope omResp = ((SOAPEnvelopeImpl)response).getOMEnvelope();
+			System.out.println("Response received  ...");
+			omResp.serialize(writer,true);
+			writer.flush();
+			*/
+			} catch(SOAPException e){
+				e.printStackTrace();
+			} catch(XMLStreamException e1){
+				e1.printStackTrace();
+			}
+	}
+
+}

Added: webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/test/org/apache/axis/saaj/TestHeaders.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/test/org/apache/axis/saaj/TestHeaders.java?rev=179794&view=auto
==============================================================================
--- webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/test/org/apache/axis/saaj/TestHeaders.java (added)
+++ webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/test/org/apache/axis/saaj/TestHeaders.java Fri Jun  3 07:08:11 2005
@@ -0,0 +1,57 @@
+/*
+ * Created on Apr 15, 2005
+ *
+ * TODO To change the template for this generated file go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+package org.apache.axis.saaj;
+
+import junit.framework.TestCase;
+import java.io.ByteArrayOutputStream;
+import java.util.Iterator;
+
+import javax.xml.soap.Name;
+import javax.xml.soap.SOAPElement;
+
+/**
+ * @author Ashutosh Shahi ashutosh.shahi@gmail.com
+ *
+ * TODO To change the template for this generated type comment go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+public class TestHeaders extends TestCase {
+	
+    private final String actor = "ACTOR#1";
+    private final String localName = "Local1";
+    private final String namespace = "http://ws.apache.org";
+    private final String prefix = "P1";
+	
+    public TestHeaders(String name) {
+        super(name);
+    }
+    
+    public void testAddingHeaderElements() throws Exception {
+        javax.xml.soap.SOAPMessage soapMessage = javax.xml.soap.MessageFactory.newInstance().createMessage();
+        javax.xml.soap.SOAPEnvelope soapEnv = soapMessage.getSOAPPart().getEnvelope();
+        javax.xml.soap.SOAPHeader header = soapEnv.getHeader();
+        header.addChildElement("ebxmlms");
+        
+        /*ByteArrayOutputStream baos = new ByteArrayOutputStream();
+        soapMessage.writeTo(baos);
+        String xml = new String(baos.toByteArray());
+        assertTrue(xml.indexOf("ebxmlms") != -1);*/
+        
+        Iterator it = header.getChildElements();
+        boolean b = false;
+        while(it.hasNext()){
+            SOAPElement el = (SOAPElement) it.next();
+            String lName = el.getNodeName();
+            if(lName.equalsIgnoreCase("ebxmlms")){
+            	b = true;
+            	break;
+            }
+        }
+        assertTrue(b);
+    }
+
+}

Added: webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/test/org/apache/axis/saaj/TestPrefixes.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/test/org/apache/axis/saaj/TestPrefixes.java?rev=179794&view=auto
==============================================================================
--- webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/test/org/apache/axis/saaj/TestPrefixes.java (added)
+++ webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/test/org/apache/axis/saaj/TestPrefixes.java Fri Jun  3 07:08:11 2005
@@ -0,0 +1,77 @@
+/*
+ * Created on Apr 26, 2005
+ *
+ * TODO To change the template for this generated file go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+package org.apache.axis.saaj;
+
+import junit.framework.TestCase;
+
+import javax.xml.soap.MessageFactory;
+import javax.xml.soap.SOAPMessage;
+import javax.xml.soap.SOAPPart;
+import javax.xml.soap.SOAPEnvelope;
+import javax.xml.soap.SOAPBody;
+import javax.xml.soap.SOAPElement;
+
+import java.io.ByteArrayOutputStream;
+import java.io.ByteArrayInputStream;
+
+/**
+ * @author Ashutosh Shahi
+ *
+ * TODO To change the template for this generated type comment go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+public class TestPrefixes extends TestCase {
+	
+    public TestPrefixes(String name) {
+        super(name);
+    }
+    
+    public void testAddingPrefixesForChildElements() throws Exception {
+    	MessageFactory factory = MessageFactory.newInstance();
+    	SOAPMessage msg = factory.createMessage();
+    	SOAPPart sp = msg.getSOAPPart();
+    	SOAPEnvelope se = sp.getEnvelope();
+    	SOAPBody sb = se.getBody();
+        SOAPElement el1 = sb.addBodyElement(se.createName
+                ("element1", "prefix1", "http://www.sun.com"));
+        SOAPElement el2 = el1.addChildElement(se.createName
+                ("element2", "prefix2", "http://www.apache.org"));
+        
+        org.apache.axis.soap.SOAPEnvelope omEnv = ((SOAPEnvelopeImpl)se).getOMEnvelope();
+        ByteArrayOutputStream baos = new ByteArrayOutputStream();
+        msg.writeTo(baos);
+        
+        String xml = new String(baos.toByteArray());
+        System.out.println(xml);
+        assertTrue(xml.indexOf("prefix1") != -1);
+        assertTrue(xml.indexOf("prefix2") != -1);
+        assertTrue(xml.indexOf("http://www.sun.com") != -1);
+        assertTrue(xml.indexOf("http://www.apache.org") != -1);
+    }
+    
+   /* public void testAttribute() throws Exception {
+        String soappacket = "<SOAP-ENV:Envelope xmlns:SOAP-ENV =\"http://schemas.xmlsoap.org/soap/envelope/\"" + 
+                            "xmlns:xsi =\"http://www.w3.org/1999/XMLSchema-instance\"" +
+                            "xmlns:xsd =\"http://www.w3.org/1999/XMLSchema\">" + 
+                            "<SOAP-ENV:Body>" +
+                            "<helloworld name=\"tester\" />" + 
+                            "</SOAP-ENV:Body>" +
+                            "</SOAP-ENV:Envelope>";
+        SOAPMessage msg = MessageFactory.newInstance().createMessage(new MimeHeaders(), new ByteArrayInputStream(soappacket.getBytes()));
+        SOAPBody body = msg.getSOAPPart().getEnvelope().getBody();
+        msg.writeTo(System.out);
+
+        SOAPElement ele = (SOAPElement) body.getChildElements().next();
+        java.util.Iterator attit = ele.getAllAttributes();
+
+        System.out.println(attit.next().getClass());
+        
+        javax.xml.soap.Name n = (javax.xml.soap.Name) attit.next();
+        //assertEquals("Test fail prefix problem",n.getQualifiedName(),"name");
+    }*/
+
+}

Added: webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/test/org/apache/axis/saaj/TestSOAPBody.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/test/org/apache/axis/saaj/TestSOAPBody.java?rev=179794&view=auto
==============================================================================
--- webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/test/org/apache/axis/saaj/TestSOAPBody.java (added)
+++ webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/test/org/apache/axis/saaj/TestSOAPBody.java Fri Jun  3 07:08:11 2005
@@ -0,0 +1,94 @@
+/*
+ * Created on Apr 13, 2005
+ *
+ */
+package org.apache.axis.saaj;
+
+import java.util.Iterator;
+
+import javax.xml.soap.MessageFactory;
+import javax.xml.soap.Name;
+import javax.xml.soap.SOAPBody;
+import javax.xml.soap.SOAPBodyElement;
+import javax.xml.soap.SOAPHeader;
+import javax.xml.soap.SOAPElement;
+import javax.xml.soap.SOAPMessage;
+import javax.xml.soap.SOAPPart;
+
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+import junit.framework.Test;
+
+/**
+ * @author Ashutosh Shahi ashutosh.shahi@gmail.com
+ *
+ */
+public class TestSOAPBody extends TestCase {
+
+    /**
+     * Method suite
+     *
+     * @return
+     */
+  /*  public static Test suite() {
+        return new TestSuite(test.message.TestSOAPBody.class);
+    }
+  */
+    /**
+     * Method main
+     *
+     * @param argv
+     */
+    public static void main(String[] argv) throws Exception {
+        TestSOAPBody tester = new TestSOAPBody("TestSOAPBody");
+        tester.testSoapBodyBUG();
+    }
+
+    /**
+     * Constructor TestSOAPBody
+     *
+     * @param name
+     */
+    public TestSOAPBody(String name) {
+        super(name);
+    }
+    
+    /**
+     * Method testSoapBodyBUG
+     *
+     * @throws Exception
+     */
+    public void testSoapBodyBUG() throws Exception {
+    	
+    	MessageFactory fact = MessageFactory.newInstance();
+    	SOAPMessage message = fact.createMessage();
+    	SOAPPart soapPart = message.getSOAPPart();
+    	SOAPEnvelopeImpl env = (SOAPEnvelopeImpl)soapPart.getEnvelope();
+    	SOAPHeader header = env.getHeader();
+    	Name hns = env.createName("Hello","shw", "http://www.jcommerce.net/soap/ns/SOAPHelloWorld");
+    	SOAPElement headElmnt = header.addHeaderElement(hns);
+    	Name hns1 = env.createName("Myname","shw", "http://www.jcommerce.net/soap/ns/SOAPHelloWorld");
+    	SOAPElement myName = headElmnt.addChildElement(hns1);
+    	myName.addTextNode("Tony");
+    	Name ns =  env.createName("Address", "shw", "http://www.jcommerce.net/soap/ns/SOAPHelloWorld");
+    	SOAPBody body = env.getBody();
+    	SOAPElement bodyElmnt =  body.addBodyElement(ns);
+    	Name ns1 =  env.createName("City", "shw", "http://www.jcommerce.net/soap/ns/SOAPHelloWorld");
+    	SOAPElement city = bodyElmnt.addChildElement(ns1);
+    	city.addTextNode("GENT");
+    	
+    	Iterator it = body.getChildElements();
+    	int count = 0;
+    	
+        while (it.hasNext()) {
+            SOAPElement el = (SOAPElement) it.next();
+            count++;
+            Name name = el.getElementName();
+            System.out.println("Element:" + el);
+            System.out.println("BODY ELEMENT NAME:" + name.getPrefix() + ":"
+                    + name.getLocalName() + " " + name.getURI());
+        }
+        assertTrue(count == 1);
+    }
+
+}

Added: webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/test/org/apache/axis/saaj/TestSOAPElement.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/test/org/apache/axis/saaj/TestSOAPElement.java?rev=179794&view=auto
==============================================================================
--- webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/test/org/apache/axis/saaj/TestSOAPElement.java (added)
+++ webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/test/org/apache/axis/saaj/TestSOAPElement.java Fri Jun  3 07:08:11 2005
@@ -0,0 +1,57 @@
+/*
+ * Created on Apr 27, 2005
+ *
+ * TODO To change the template for this generated file go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+package org.apache.axis.saaj;
+
+import junit.framework.TestCase;
+
+import javax.xml.soap.SOAPElement;
+import java.util.List;
+
+/**
+ * @author Ashutosh Shahi ashutosh.shahi@gmail.com	
+ *
+ * TODO To change the template for this generated type comment go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+public class TestSOAPElement extends TestCase {
+	
+	private SOAPElement soapElem;
+	
+    protected void setUp() throws Exception
+    {
+        soapElem = SOAPFactoryImpl.newInstance().createElement( "Test", "test", "http://test.apache.org/" );
+    }
+
+    public void testAddTextNode() throws Exception
+    {
+        assertNotNull( soapElem );
+        final String value = "foo";
+        soapElem.addTextNode( value );
+        assertEquals( value, soapElem.getValue() );
+        TextImpl text = assertContainsText( soapElem );
+        assertEquals( value, text.getValue() );
+    }
+
+    private TextImpl assertContainsText( SOAPElement soapElem ){
+    	assertTrue( soapElem.hasChildNodes() );
+    	List childElems = toList( soapElem.getChildElements() );
+    	assertTrue( childElems.size() == 1 );
+    	NodeImpl node = (NodeImpl) childElems.get( 0 );
+    	assertTrue( node instanceof TextImpl );
+    	return (TextImpl) node;
+    }
+    
+    private List toList( java.util.Iterator iter )
+    {
+        List list = new java.util.ArrayList();
+        while ( iter.hasNext() )
+        {
+            list.add( iter.next() );
+        }
+        return list;
+    }
+}

Added: webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/test/org/apache/axis/saaj/TestSOAPEnvelope.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/test/org/apache/axis/saaj/TestSOAPEnvelope.java?rev=179794&view=auto
==============================================================================
--- webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/test/org/apache/axis/saaj/TestSOAPEnvelope.java (added)
+++ webservices/axis/trunk/archive/java/scratch/ashu_jaya_venkat/saaj/test/org/apache/axis/saaj/TestSOAPEnvelope.java Fri Jun  3 07:08:11 2005
@@ -0,0 +1,107 @@
+/*
+ * Created on Apr 13, 2005
+ *
+ * TODO To change the template for this generated file go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+package org.apache.axis.saaj;
+
+import junit.framework.TestCase;
+
+import javax.xml.soap.Name;
+import javax.xml.soap.SOAPBody;
+import javax.xml.soap.SOAPEnvelope;
+import javax.xml.soap.SOAPException;
+import javax.xml.soap.SOAPHeader;
+
+
+/**
+ * @author shaas02
+ *
+ * TODO To change the template for this generated type comment go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+public class TestSOAPEnvelope extends TestCase {
+	
+    public TestSOAPEnvelope(String name) {
+        super(name);
+    }
+    
+    public void testName() throws Exception {
+        SOAPEnvelope env = new org.apache.axis.saaj.SOAPEnvelopeImpl();
+        Name n = env.createName("local", "pref", "urn:blah");
+        assertEquals("local part of name did not match", "local",
+                     n.getLocalName());
+        assertEquals("qname of name did not match", "pref:local",
+                     n.getQualifiedName());
+        assertEquals("prefix of name did not match", "pref",
+                     n.getPrefix());
+        assertEquals("uri of name did not match", "urn:blah",
+                     n.getURI());
+        Name n2 = env.createName("loc");
+        assertEquals("local part of name2 did not match", "loc",
+                     n2.getLocalName());
+    }
+    
+    public void testHeader() throws Exception {
+        SOAPEnvelope env = new org.apache.axis.saaj.SOAPEnvelopeImpl();
+        SOAPHeader h1 = env.getHeader();
+        assertTrue("null initial header", h1 != null);
+        h1.detachNode();
+        assertTrue("header not freed", env.getHeader() == null);
+        SOAPHeader h2 = env.addHeader();
+        assertTrue("null created header", h2 != null);
+        assertEquals("wrong header retrieved", h2, env.getHeader());
+        assertEquals("header parent incorrect", env, h2.getParentElement());
+        
+        try {
+            env.addHeader();
+            assertTrue("second header added", false);
+        } catch (SOAPException e) {
+        }
+    }
+
+    public void testBody() throws Exception {
+        SOAPEnvelope env = new org.apache.axis.saaj.SOAPEnvelopeImpl();
+        SOAPBody b1 = env.getBody();
+        assertTrue("null initial body", b1 != null);
+        b1.detachNode();
+        assertTrue("body not freed", env.getBody() == null);
+        SOAPBody b2 = env.addBody();
+        assertTrue("null created body", b2 != null);
+        assertEquals("wrong body retrieved", b2, env.getBody());
+        assertEquals("body parent incorrect", env, b2.getParentElement());
+        try {
+            env.addBody();
+            assertTrue("second body added", false);
+        } catch (SOAPException e) {
+        }
+    }
+    
+	/*public void testNullpointer() throws Exception{
+		org.apache.axis.saaj.SOAPEnvelopeImpl env=new org.apache.axis.saaj.SOAPEnvelopeImpl();
+		SOAPBodyElementImpl bdy=new SOAPBodyElementImpl();
+		bdy.setName("testResponse");
+		env.addBodyElement(bdy);
+		Message msg=new Message(env);
+		SOAPBodyElement sbe = msg.getSOAPEnvelope().getBodyByName(null,"testResponse");
+        assertTrue(sbe != null);
+	}
+	
+    public void testNullpointerInHeader() throws Exception{
+		org.apache.axis.saaj.SOAPEnvelopeImpl env=new org.apache.axis.saaj.SOAPEnvelopeImpl();
+		SOAPHeaderElementImpl hdr=new SOAPHeaderElementImpl("", "testHeader");
+		env.addHeader(hdr);
+		Message msg=new Message(env);
+		SOAPHeaderElement she = msg.getSOAPEnvelope().getHeaderByName(null,"testHeader");
+        assertTrue(she != null);
+	}*/
+    
+    public static void main(String args[]) throws Exception {
+        TestSOAPEnvelope tester = new TestSOAPEnvelope("TestSOAPEnvelope");
+        tester.testName();
+        tester.testHeader();
+        tester.testBody();
+    }
+
+}