You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by he...@apache.org on 2004/06/14 10:30:03 UTC

cvs commit: ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/toWs/wrapperWs WebEndpointWrapperClassWriter.java WrapperClassWriter.java WrapperWsGenerator.java

hemapani    2004/06/14 01:30:03

  Modified:    contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/toWs/ws
                        ClientSideWsGenerator.java
                        ServerSideWsGenerator.java
               contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/toWs
                        GenerationConstants.java Generator.java
                        AbstractWriter.java Ws4J2EEwithWSDL.java
                        Ws4J2EEClientwithWSDL.java Ws4J2EEwithoutWSDL.java
                        GenerationFault.java
               contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/toWs/dd/jonas
                        JOnASDDWriter.java
               contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/toWs/ejb
                        EJBGenerator.java
               contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/toWs/wsdl
                        WSDLGenerator.java
               contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/toWs/handlers
                        HandlerGenerator.java HandlerWriter.java
               contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/toWs/dd
                        J2EEContainerSpecificDDGenerator.java
                        WebContainerDDGenerator.java
                        JaxrpcMapperGenerator.java
                        WebServiceDDGenerator.java
               contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/toWs/wrapperWs/geronimo
                        InternalBasedWrapperClassWriter.java
               contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/toWs/misc
                        BuildFileGenerator.java
               contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/toWs/wrapperWs
                        WebEndpointWrapperClassWriter.java
                        WrapperClassWriter.java WrapperWsGenerator.java
  Added:       contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/toWs/ws
                        J2eeDeployWriter.java
  Log:
  fixed the testcases and correct genarate() to generate() and 
  change the code to add the handlers to deploy writer
  
  Revision  Changes    Path
  1.2       +2 -2      ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/toWs/ws/ClientSideWsGenerator.java
  
  Index: ClientSideWsGenerator.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/toWs/ws/ClientSideWsGenerator.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ClientSideWsGenerator.java	10 Jun 2004 11:35:18 -0000	1.1
  +++ ClientSideWsGenerator.java	14 Jun 2004 08:30:03 -0000	1.2
  @@ -101,7 +101,7 @@
   		this.j2eewscontext = j2eewscontext;
   	}
   
  -	public void genarate() throws GenerationFault {
  +	public void generate() throws GenerationFault {
   		try {
   			String confFileLocation =
   					j2eewscontext.getMiscInfo().getWsConfFileLocation();
  @@ -136,7 +136,7 @@
   
   		} catch (Exception e) {
   			e.printStackTrace();
  -			throw new GenerationFault(e);
  +			throw GenerationFault.createGenerationFault(e);
   		}
           
   	}
  
  
  
  1.2       +12 -3     ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/toWs/ws/ServerSideWsGenerator.java
  
  Index: ServerSideWsGenerator.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/toWs/ws/ServerSideWsGenerator.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ServerSideWsGenerator.java	10 Jun 2004 11:35:18 -0000	1.1
  +++ ServerSideWsGenerator.java	14 Jun 2004 08:30:03 -0000	1.2
  @@ -97,7 +97,7 @@
   		this.j2eewscontext = j2eewscontext;
   	}
   
  -	public void genarate() throws GenerationFault {
  +	public void generate() throws GenerationFault {
   		try {
   
   			String mappingfile = j2eewscontext.getMiscInfo().getJaxrpcfile();
  @@ -109,12 +109,17 @@
   				log.info("jaxrpc mapping file = " + mappingfile);
   				log.info("calling the jaxrpcmapper >> ");
   			}
  +
   			j2ee.setMappingFilePath(mappingfile);
   			j2ee.setOutputDir(j2eewscontext.getMiscInfo().getOutPutPath());
   			j2ee.setServerSide(true);
   			j2ee.setVerbose(j2eewscontext.getMiscInfo().isVerbose());
   			j2ee.setHelperWanted(true);
   			j2ee.runServerSide(wsdlfile);
  +			
  +			J2eeDeployWriter deploywriter = new J2eeDeployWriter(j2ee,j2eewscontext);
  +			deploywriter.generate();
  +			
   			SymbolTable axisSymboltable = j2ee.getSymbolTable();
   			j2eewscontext.setWSDLContext(ContextFactory.createWSDLContext(axisSymboltable));
   
  @@ -122,8 +127,12 @@
   			j2eewscontext.setJAXRPCMappingContext(ContextFactory.createJaxRpcMapperContext(new Object[]{mapper,j2ee}));
   
   		} catch (Exception e) {
  -			e.printStackTrace();
  -			throw new GenerationFault(e);
  +			if(e instanceof RuntimeException){
  +				throw (RuntimeException)e;
  +			}else{
  +				e.printStackTrace();
  +				throw GenerationFault.createGenerationFault(e);
  +			}
   		}
   	}
   
  
  
  
  1.1                  ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/toWs/ws/J2eeDeployWriter.java
  
  Index: J2eeDeployWriter.java
  ===================================================================
  
  
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2001-2003 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Axis" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  package org.apache.geronimo.ews.ws4j2ee.toWs.ws;
  
  import java.io.File;
  import java.io.FileOutputStream;
  import java.io.IOException;
  import java.io.OutputStreamWriter;
  import java.io.PrintWriter;
  import java.util.ArrayList;
  import java.util.Collection;
  import java.util.HashSet;
  import java.util.Iterator;
  import java.util.Map;
  import java.util.Vector;
  
  import javax.wsdl.Binding;
  import javax.wsdl.BindingOperation;
  import javax.wsdl.Definition;
  import javax.wsdl.Operation;
  import javax.wsdl.OperationType;
  import javax.wsdl.Port;
  import javax.wsdl.Service;
  import javax.wsdl.extensions.UnknownExtensibilityElement;
  import javax.wsdl.extensions.soap.SOAPBinding;
  import javax.xml.namespace.QName;
  
  import org.apache.axis.Constants;
  import org.apache.axis.deployment.wsdd.WSDDConstants;
  import org.apache.axis.enum.Scope;
  import org.apache.axis.enum.Style;
  import org.apache.axis.enum.Use;
  import org.apache.axis.utils.JavaUtils;
  import org.apache.axis.utils.Messages;
  import org.apache.axis.wsdl.symbolTable.BindingEntry;
  import org.apache.axis.wsdl.symbolTable.CollectionTE;
  import org.apache.axis.wsdl.symbolTable.Element;
  import org.apache.axis.wsdl.symbolTable.FaultInfo;
  import org.apache.axis.wsdl.symbolTable.Parameter;
  import org.apache.axis.wsdl.symbolTable.Parameters;
  import org.apache.axis.wsdl.symbolTable.SchemaUtils;
  import org.apache.axis.wsdl.symbolTable.SymbolTable;
  import org.apache.axis.wsdl.symbolTable.TypeEntry;
  import org.apache.axis.wsdl.toJava.Emitter;
  import org.apache.axis.wsdl.toJava.JavaWriter;
  import org.apache.axis.wsdl.toJava.Utils;
  import org.apache.geronimo.ews.ws4j2ee.context.J2EEWebServiceContext;
  import org.apache.geronimo.ews.ws4j2ee.context.webservices.server.interfaces.WSCFHandler;
  import org.apache.geronimo.ews.ws4j2ee.context.webservices.server.interfaces.WSCFInitParam;
  import org.apache.geronimo.ews.ws4j2ee.toWs.GenerationConstants;
  
  /**
   * This is Wsdl2java's deploy Writer.  It writes the deploy.wsdd file.
   */
  public class J2eeDeployWriter  extends JavaWriter{
  
  	/** Field definition */
  	protected Definition definition;
  
  	/** Field symbolTable */
  	protected SymbolTable symbolTable;
  	
  	protected J2EEWebServiceContext wscontext;
  
  	/**
  	 * Constructor.
  	 * 
  	 * @param emitter     
  	 * @param definition  
  	 * @param symbolTable 
  	 */
  	public J2eeDeployWriter(Emitter emitter, J2EEWebServiceContext wscontext) {
  		this(emitter,emitter.getSymbolTable().getDefinition(),emitter.getSymbolTable());
  		this.wscontext = wscontext;
  	} 
  
  	/**
  	 * Constructor.
  	 * 
  	 * @param emitter     
  	 * @param definition  
  	 * @param symbolTable 
  	 */
  	public J2eeDeployWriter(Emitter emitter, Definition definition,
  							SymbolTable symbolTable) {
  
  		super(emitter, "deploy");
  
  		this.definition = definition;
  		this.symbolTable = symbolTable;
  	}    // ctor
  
  	/**
  	 * Generate deploy.wsdd.  Only generate it if the emitter
  	 * is generating server-side mappings.
  	 * 
  	 * @throws IOException 
  	 */
  	public void generate() throws IOException {
  
  		if (emitter.isServerSide()) {
  			super.generate();
  		}
  	}    // generate
  	
  
  	/**
  	 * Return the fully-qualified name of the deploy.wsdd file
  	 * to be generated.
  	 * 
  	 * @return 
  	 */
  	protected String getFileName() {
  
  		String dir =
  				emitter.getNamespaces().getAsDir(definition.getTargetNamespace());
  		String filename = wscontext.getMiscInfo().getOutPutPath()+ "/deploy.wsdd";
  		File file = new File(dir + "deploy.wsdd");
  		if(file.exists()){
  			file.delete();
  		}
  		return filename; 
  	}    // getFileName
  
  	/**
  	 * Replace the default file header with the deployment doc file header.
  	 * 
  	 * @param pw 
  	 * @throws IOException 
  	 */
  	protected void writeFileHeader(PrintWriter pw) throws IOException {
  
  		pw.println(Messages.getMessage("deploy00"));
  		pw.println(Messages.getMessage("deploy02"));
  		pw.println(Messages.getMessage("deploy03"));
  		pw.println(Messages.getMessage("deploy05"));
  		pw.println(Messages.getMessage("deploy06"));
  		pw.println(Messages.getMessage("deploy07"));
  		pw.println(Messages.getMessage("deploy09"));
  		pw.println();
  		pw.println("<deployment");
  		pw.println("    xmlns=\"" + WSDDConstants.URI_WSDD + "\"");
  		pw.println("    xmlns:" + WSDDConstants.NS_PREFIX_WSDD_JAVA + "=\""
  				+ WSDDConstants.URI_WSDD_JAVA + "\">");
  	}    // writeFileHeader
  
  	/**
  	 * Write the body of the deploy.wsdd file.
  	 * 
  	 * @param pw 
  	 * @throws IOException 
  	 */
  	protected void writeFileBody(PrintWriter pw) throws IOException {
  		writeDeployServices(pw);
  		pw.println("</deployment>");
  	}    // writeFileBody
  
  	/**
  	 * Write out deployment and undeployment instructions for each WSDL service
  	 * 
  	 * @param pw 
  	 * @throws IOException 
  	 */
  	protected void writeDeployServices(PrintWriter pw) throws IOException {
  
  		// deploy the ports on each service
  		Map serviceMap = definition.getServices();
  
  		for (Iterator mapIterator = serviceMap.values().iterator();
  			 mapIterator.hasNext();) {
  			Service myService = (Service) mapIterator.next();
  
  			pw.println();
  			pw.println(
  					"  <!-- "
  					+ Messages.getMessage(
  							"wsdlService00", myService.getQName().getLocalPart()) + " -->");
  			pw.println();
  
  			for (Iterator portIterator = myService.getPorts().values().iterator();
  				 portIterator.hasNext();) {
  				Port myPort = (Port) portIterator.next();
  				BindingEntry bEntry =
  						symbolTable.getBindingEntry(myPort.getBinding().getQName());
  
  				// If this isn't an SOAP binding, skip it
  				if (bEntry.getBindingType() != BindingEntry.TYPE_SOAP) {
  					continue;
  				}
  
  				writeDeployPort(pw, myPort, myService, bEntry);
  			}
  		}
  	}    // writeDeployServices
  
  	/**
  	 * Write out bean mappings for each type
  	 * 
  	 * @param pw         
  	 * @param binding    
  	 * @param hasLiteral 
  	 * @param hasMIME    
  	 * @param use        
  	 * @throws IOException 
  	 */
  	protected void writeDeployTypes(
  			PrintWriter pw, Binding binding, boolean hasLiteral, boolean hasMIME, Use use)
  			throws IOException {
  
  		pw.println();
  
  		if (hasMIME) {
  			QName bQName = binding.getQName();
  
  			writeTypeMapping(
  					pw, bQName.getNamespaceURI(), "DataHandler",
  					"javax.activation.DataHandler",
  					"org.apache.axis.encoding.ser.JAFDataHandlerSerializerFactory",
  					"org.apache.axis.encoding.ser.JAFDataHandlerDeserializerFactory",
  					use.getEncoding());
  		}
  
  		Map types = symbolTable.getTypeIndex();
  		Collection typeCollection = types.values();
  		for (Iterator i = typeCollection.iterator(); i.hasNext(); ) {
  			TypeEntry type = (TypeEntry) i.next();
  
  			// Note this same check is repeated in JavaStubWriter.
  			boolean process = true;
  
  			// 1) Don't register types that are base (primitive) types.
  			// If the baseType != null && getRefType() != null this
  			// is a simpleType that must be registered.
  			// 2) Don't register the special types for collections
  			// (indexed properties) or element types
  			// 3) Don't register types that are not referenced
  			// or only referenced in a literal context.
  			if (((type.getBaseType() != null) && (type.getRefType() == null))
  					|| (type instanceof CollectionTE)
  					|| (type instanceof Element) || !type.isReferenced()
  					|| type.isOnlyLiteralReferenced()) {
  				process = false;
  			}
  
  			if (process) {
  				String namespaceURI = type.getQName().getNamespaceURI();
  				String localPart = type.getQName().getLocalPart();
  				String javaType = type.getName();
  				String serializerFactory;
  				String deserializerFactory;
  				String encodingStyle = "";
  
  				if (!hasLiteral) {
  					encodingStyle = use.getEncoding();
  				}
  
  				if (javaType.endsWith("[]")) {
  					if (SchemaUtils.isListWithItemType(type.getNode())) {
  						serializerFactory =
  						"org.apache.axis.encoding.ser.SimpleListSerializerFactory";
  						deserializerFactory =
  						"org.apache.axis.encoding.ser.SimpleListDeserializerFactory";
  					} else {
  						serializerFactory =
  						"org.apache.axis.encoding.ser.ArraySerializerFactory";
  						deserializerFactory =
  						"org.apache.axis.encoding.ser.ArrayDeserializerFactory";
  					}
  				} else if ((type.getNode() != null) && (Utils.getEnumerationBaseAndValues(
  						type.getNode(), symbolTable) != null)) {
  					serializerFactory =
  							"org.apache.axis.encoding.ser.EnumSerializerFactory";
  					deserializerFactory =
  							"org.apache.axis.encoding.ser.EnumDeserializerFactory";
  				} else if (type.isSimpleType()) {
  					serializerFactory =
  							"org.apache.axis.encoding.ser.SimpleSerializerFactory";
  					deserializerFactory =
  							"org.apache.axis.encoding.ser.SimpleDeserializerFactory";
  				} else if (type.getBaseType() != null) {
  					serializerFactory =
  							"org.apache.axis.encoding.ser.SimpleSerializerFactory";
  					deserializerFactory =
  							"org.apache.axis.encoding.ser.SimpleDeserializerFactory";
  				} else {
  					serializerFactory =
  							"org.apache.axis.encoding.ser.BeanSerializerFactory";
  					deserializerFactory =
  							"org.apache.axis.encoding.ser.BeanDeserializerFactory";
  				}
  
  				writeTypeMapping(pw, namespaceURI, localPart, javaType,
  						serializerFactory, deserializerFactory,
  						encodingStyle);
  			}
  		}
  	}    // writeDeployTypes
  
  	/**
  	 * Raw routine that writes out the typeMapping.
  	 * 
  	 * @param pw                  
  	 * @param namespaceURI        
  	 * @param localPart           
  	 * @param javaType            
  	 * @param serializerFactory   
  	 * @param deserializerFactory 
  	 * @param encodingStyle       
  	 * @throws IOException 
  	 */
  	protected void writeTypeMapping(
  			PrintWriter pw, String namespaceURI, String localPart, String javaType, String serializerFactory, String deserializerFactory, String encodingStyle)
  			throws IOException {
  
  		pw.println("      <typeMapping");
  		pw.println("        xmlns:ns=\"" + namespaceURI + "\"");
  		pw.println("        qname=\"ns:" + localPart + '"');
  		pw.println("        type=\"java:" + javaType + '"');
  		pw.println("        serializer=\"" + serializerFactory + "\"");
  		pw.println("        deserializer=\"" + deserializerFactory + "\"");
  		pw.println("        encodingStyle=\"" + encodingStyle + "\"");
  		pw.println("      />");
  	}
  
  	/**
  	 * Write out deployment and undeployment instructions for given WSDL port
  	 * 
  	 * @param pw      
  	 * @param port    
  	 * @param service 
  	 * @param bEntry  
  	 * @throws IOException 
  	 */
  	protected void writeDeployPort(
  			PrintWriter pw, Port port, Service service, BindingEntry bEntry)
  			throws IOException {
  
  		String serviceName = port.getName();
  		boolean hasLiteral = bEntry.hasLiteral();
  		boolean hasMIME = Utils.hasMIME(bEntry);
  		String prefix = WSDDConstants.NS_PREFIX_WSDD_JAVA;
  		String styleStr = "";
  		Use use = Use.DEFAULT;
  		Iterator iterator =
  				bEntry.getBinding().getExtensibilityElements().iterator();
  
  		//get the Name of the provider needed in the deploy.wsdd
  		String provider = null;
  		provider = GenerationConstants.getProperties()
  			.getProperty(GenerationConstants.WS4J2EE_PROVIDER); 
  
  		while (iterator.hasNext()) {
  			Object obj = iterator.next();
  
  			if (obj instanceof SOAPBinding) {
  				use = Use.ENCODED;
  			} else if (obj instanceof UnknownExtensibilityElement) {
  
  				// TODO: After WSDL4J supports soap12, change this code
  				UnknownExtensibilityElement unkElement =
  						(UnknownExtensibilityElement) obj;
  				QName name =
  						unkElement.getElementType();
  
  				if (name.getNamespaceURI().equals(Constants.URI_WSDL12_SOAP)
  						&& name.getLocalPart().equals("binding")) {
  					use = Use.ENCODED;
  				}
  			}
  		}
  
  		if (symbolTable.isWrapped()) {
  			styleStr = " style=\"" + Style.WRAPPED + "\"";
  			use = Use.LITERAL;
  		} else {
  			styleStr = " style=\"" + bEntry.getBindingStyle().getName() + "\"";
  
  			if (hasLiteral) {
  				use = Use.LITERAL;
  			}
  		}
  
  		String useStr = " use=\"" + use + "\"";
  //		if(provider!= null){
  //			pw.println("  <service name=\"" + serviceName + "\" provider=\""
  //					+ provider + "\"" + styleStr + useStr + ">");
  //			WSCFHandler[] handlers = wscontext.getMiscInfo().getHandlers();	
  //			for(int i = 0;i<handlers.length;i++){
  //				writeHandler(pw,handlers[i]);
  //			}	
  //		}else{
  //			pw.println("  <service name=\"" + serviceName + "\" provider=\""
  //					+ prefix + ":RPC" + "\"" + styleStr + useStr + ">");
  //		}
  		pw.println("  <service name=\"" + serviceName + "\" provider=\"java:j2ee\"" 
  			+ styleStr + useStr + ">");
  
  		pw.println("      <parameter name=\"wsdlTargetNamespace\" value=\""
  				+ service.getQName().getNamespaceURI() + "\"/>");
  		pw.println("      <parameter name=\"wsdlServiceElement\" value=\""
  				+ service.getQName().getLocalPart() + "\"/>");
  		pw.println("      <parameter name=\"wsdlServicePort\" value=\""
  				+ serviceName + "\"/>");
  
  		// MIME attachments don't work with multiref, so turn it off.
  		if (hasMIME) {
  			pw.println(
  					"      <parameter name=\"sendMultiRefs\" value=\"false\"/>");
  		}
  
  		writeDeployBinding(pw, bEntry);
  		writeDeployTypes(pw, bEntry.getBinding(), hasLiteral, hasMIME, use);
  		
  		WSCFHandler[] handlers = wscontext.getMiscInfo().getHandlers();
  		if(handlers != null){
  			for(int i = 0;i<handlers.length;i++){
  				writeHandler(pw,handlers[i]);
  			}	
  		}	
  		pw.println("  </service>");
  	}    // writeDeployPort
  
  	/**
  	 * Write out deployment instructions for given WSDL binding
  	 * 
  	 * @param pw     
  	 * @param bEntry 
  	 * @throws IOException 
  	 */
  	protected void writeDeployBinding(PrintWriter pw, BindingEntry bEntry)
  			throws IOException {
  
  		Binding binding = bEntry.getBinding();
  		String className = bEntry.getName();
  
  		if (emitter.isSkeletonWanted()) {
  			className += "Skeleton";
  		} else {
  			className += "Impl";
  		}
  
  		pw.println("      <parameter name=\"className\" value=\"" + className
  				+ "\"/>");
  		pw.println("      <parameter name=\"wsdlPortType\" value=\""
  				+ binding.getPortType().getQName().getLocalPart() + "\"/>");
  
  		HashSet allowedMethods = new HashSet();
  
  		if (!emitter.isSkeletonWanted()) {
  			Iterator operationsIterator =
  					binding.getBindingOperations().iterator();
  
  			for (; operationsIterator.hasNext();) {
  				BindingOperation bindingOper =
  						(BindingOperation) operationsIterator.next();
  				Operation operation = bindingOper.getOperation();
  				OperationType type = operation.getStyle();
  				String javaOperName =
  						JavaUtils.xmlNameToJava(operation.getName());
  
  				// These operation types are not supported.  The signature
  				// will be a string stating that fact.
  				if ((type == OperationType.NOTIFICATION)
  						|| (type == OperationType.SOLICIT_RESPONSE)) {
  					continue;
  				}
  
  				allowedMethods.add(javaOperName);
  
  				// We pass "" as the namespace argument because we're just
  				// interested in the return type for now.
  				Parameters params =
  						symbolTable.getOperationParameters(operation, "", bEntry);
  
  				if (params != null) {
  
  					// Get the operation QName
  					QName elementQName = Utils.getOperationQName(bindingOper,
  							bEntry, symbolTable);
  
  					// Get the operation's return QName and type
  					QName returnQName = null;
  					QName returnType = null;
  
  					if (params.returnParam != null) {
  						returnQName = params.returnParam.getQName();
  						returnType = Utils.getXSIType(params.returnParam);
  					}
  
  					// Get the operations faults
  					Map faultMap = bEntry.getFaults();
  					ArrayList faults = null;
  
  					if (faultMap != null) {
  						faults = (ArrayList) faultMap.get(bindingOper);
  					}
  
  					// Write the operation metadata
  					writeOperation(pw, javaOperName, elementQName, returnQName,
  							returnType, params, binding.getQName(),
  							faults);
  				}
  			}
  		}
  
  		pw.print("      <parameter name=\"allowedMethods\" value=\"");
  
  		if (allowedMethods.isEmpty()) {
  			pw.println("*\"/>");
  		} else {
  			boolean first = true;
  
  			for (Iterator i = allowedMethods.iterator(); i.hasNext();) {
  				String method = (String) i.next();
  
  				if (first) {
  					pw.print(method);
  
  					first = false;
  				} else {
  					pw.print(" " + method);
  				}
  			}
  
  			pw.println("\"/>");
  		}
  
  		Scope scope = emitter.getScope();
  
  		if (scope != null) {
  			pw.println("      <parameter name=\"scope\" value=\""
  					+ scope.getName() + "\"/>");
  		}
  	}    // writeDeployBinding
  
  	/**
  	 * Raw routine that writes out the operation and parameters.
  	 * 
  	 * @param pw           
  	 * @param javaOperName 
  	 * @param elementQName 
  	 * @param returnQName  
  	 * @param returnType   
  	 * @param params       
  	 * @param bindingQName 
  	 * @param faults       
  	 */
  	protected void writeOperation(PrintWriter pw, String javaOperName,
  								  QName elementQName, QName returnQName,
  								  QName returnType, Parameters params,
  								  QName bindingQName, ArrayList faults) {
  
  		pw.print("      <operation name=\"" + javaOperName + "\"");
  
  		if (elementQName != null) {
  			pw.print(" qname=\""
  					+ Utils.genQNameAttributeString(elementQName, "operNS")
  					+ "\"");
  		}
  
  		if (returnQName != null) {
  			pw.print(" returnQName=\""
  					+ Utils.genQNameAttributeStringWithLastLocalPart(returnQName, "retNS")
  					+ "\"");
  		}
  
  		if (returnType != null) {
  			pw.print(" returnType=\""
  					+ Utils.genQNameAttributeString(returnType, "rtns")
  					+ "\"");
  		}
  
  		if ((params.returnParam != null) && params.returnParam.isOutHeader()) {
  			pw.print(" returnHeader=\"true\"");
  		}
  
  		pw.println(" >");
  
  		Vector paramList = params.list;
  
  		for (int i = 0; i < paramList.size(); i++) {
  			Parameter param = (Parameter) paramList.elementAt(i);
  
  			// Get the parameter name QName and type QName
  			QName paramQName = param.getQName();
  			QName paramType = Utils.getXSIType(param);
  
  			pw.print("        <parameter");
  
  			if ((paramQName == null)
  					|| "".equals(paramQName.getNamespaceURI())) {
  				pw.print(" name=\"" + param.getName() + "\"");
  			} else {
  				pw.print(" qname=\""
  						+ Utils.genQNameAttributeStringWithLastLocalPart(paramQName, "pns")
  						+ "\"");
  			}
  
  			pw.print(" type=\""
  					+ Utils.genQNameAttributeString(paramType, "tns") + "\"");
  
  			// Get the parameter mode
  			if (param.getMode() != Parameter.IN) {
  				pw.print(" mode=\"" + getModeString(param.getMode()) + "\"");
  			}
  
  			// Is this a header?
  			if (param.isInHeader()) {
  				pw.print(" inHeader=\"true\"");
  			}
  
  			if (param.isOutHeader()) {
  				pw.print(" outHeader=\"true\"");
  			}
  
  			pw.println("/>");
  		}
  
  		if (faults != null) {
  			for (Iterator iterator = faults.iterator(); iterator.hasNext();) {
  				FaultInfo faultInfo = (FaultInfo) iterator.next();
  				QName faultQName = faultInfo.getQName();
  
  				if (faultQName != null) {
  					String className =
  							Utils.getFullExceptionName(faultInfo.getMessage(),
  									symbolTable);
  
  					pw.print("        <fault");
  					pw.print(" name=\"" + faultInfo.getName() + "\"");
  					pw.print(" qname=\""
  							+ Utils.genQNameAttributeString(faultQName, "fns")
  							+ "\"");
  					pw.print(" class=\"" + className + "\"");
  					pw.print(
  							" type=\""
  							+ Utils.genQNameAttributeString(
  									faultInfo.getXMLType(), "tns") + "\"");
  					pw.println("/>");
  				}
  			}
  		}
  
  		pw.println("      </operation>");
  	}
  
  	/**
  	 * Method getModeString
  	 * 
  	 * @param mode 
  	 * @return 
  	 */
  	public String getModeString(byte mode) {
  
  		if (mode == Parameter.IN) {
  			return "IN";
  		} else if (mode == Parameter.INOUT) {
  			return "INOUT";
  		} else {
  			return "OUT";
  		}
  	}
  
  	/**
  	 * Method getPrintWriter
  	 * 
  	 * @param filename 
  	 * @return 
  	 * @throws IOException 
  	 */
  	protected PrintWriter getPrintWriter(String filename) throws IOException {
  
  		File file = new File(filename);
  		File parent = new File(file.getParent());
  
  		parent.mkdirs();
  
  		FileOutputStream out = new FileOutputStream(file);
  		OutputStreamWriter writer = new OutputStreamWriter(out, "UTF-8");
  
  		return new PrintWriter(writer);
  	}
  	
  	private void writeHandler(PrintWriter pw,WSCFHandler handler){
  		pw.println("      <handler name=\""+handler.getHandlerName()+"\"type=\""+handler.getHandlerClass()+"\">");
  		WSCFInitParam[] param = handler.getInitParam();
  		for(int i = 0;i<param.length;i++){
  			pw.println("      <parameter name=\""+param[i].getParamName()+"\" value=\""+param[i].getParamValue()+"\"/>");
  		}
  		//TODO handle soap role and soaphandlers 
  		pw.println("      </handler>");
  	}
  }    // class JavaDeployWriter
  
  
  
  1.10      +1 -1      ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/toWs/GenerationConstants.java
  
  Index: GenerationConstants.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/toWs/GenerationConstants.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- GenerationConstants.java	10 Jun 2004 11:35:19 -0000	1.9
  +++ GenerationConstants.java	14 Jun 2004 08:30:03 -0000	1.10
  @@ -131,7 +131,7 @@
   				proIn = GenerationConstants.class.getResourceAsStream("META-INF/"+WS4J2EE_PROPERTY_FILE);
   			}
   			if(proIn == null){
  -				proIn = new FileInputStream("src/conf/"+WS4J2EE_PROPERTY_FILE);
  +				proIn = new FileInputStream("conf/"+WS4J2EE_PROPERTY_FILE);
   			}
   			if(proIn == null){
   				proIn = new FileInputStream(WS4J2EE_PROPERTY_FILE);
  
  
  
  1.3       +1 -1      ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/toWs/Generator.java
  
  Index: Generator.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/toWs/Generator.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- Generator.java	4 Feb 2004 04:29:53 -0000	1.2
  +++ Generator.java	14 Jun 2004 08:30:03 -0000	1.3
  @@ -65,5 +65,5 @@
        * it is suppose to be genarate. Usally the Genarator is a assembly of
        * One or more writers.</p>
        */
  -    public abstract void genarate() throws GenerationFault;
  +    public abstract void generate() throws GenerationFault;
   }
  
  
  
  1.6       +39 -6     ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/toWs/AbstractWriter.java
  
  Index: AbstractWriter.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/toWs/AbstractWriter.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- AbstractWriter.java	23 May 2004 15:53:26 -0000	1.5
  +++ AbstractWriter.java	14 Jun 2004 08:30:03 -0000	1.6
  @@ -86,15 +86,18 @@
       public AbstractWriter(J2EEWebServiceContext j2eewscontext)
               throws GenerationFault {
           this.j2eewscontext = j2eewscontext;
  -
  +		boolean verbose = j2eewscontext.getMiscInfo().isVerbose();
           try {
               File file = new File(getFileName());
  -			if(j2eewscontext.getMiscInfo().isVerbose())
  -            	log.info("genarating ... " + file.getAbsolutePath());
  -
  +			if(verbose){
  +				log.info("genarating ... " + file.getAbsolutePath());
  +			}
               if (!isOverWrite() && file.exists()) {
               	out = null;
  -				log.info("the file already exists .. tool will not overwrite it ");
  +				if(verbose){
  +					log.info("the file already exists .. tool will not overwrite it ");
  +				}
  +
               } else {
                   File parent = file.getParentFile();
                   if (parent != null)
  @@ -104,10 +107,40 @@
               }
   
           } catch (IOException e) {
  -            throw new GenerationFault(e);
  +            throw GenerationFault.createGenerationFault(e);
           }
   
       }
  +    
  +	public AbstractWriter(J2EEWebServiceContext j2eewscontext,String filename)
  +			throws GenerationFault {
  +		this.j2eewscontext = j2eewscontext;
  +		boolean verbose = j2eewscontext.getMiscInfo().isVerbose();
  +		try {
  +			File file = new File(filename);
  +			if(verbose){
  +				log.info("genarating ... " + file.getAbsolutePath());
  +			}
  +			if (!isOverWrite() && file.exists()) {
  +				out = null;
  +				if(verbose){
  +					log.info("the file already exists .. tool will not overwrite it ");
  +				}
  +
  +			} else {
  +				File parent = file.getParentFile();
  +				if (parent != null)
  +					parent.mkdirs();
  +				file.createNewFile();
  +				out = new PrintWriter(new FileWriter(file, false));
  +			}
  +
  +		} catch (IOException e) {
  +			throw GenerationFault.createGenerationFault(e);
  +		}
  +
  +	}
  +
   
       /**
        * return complete path for the file associated with this writer
  
  
  
  1.10      +10 -10    ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/toWs/Ws4J2EEwithWSDL.java
  
  Index: Ws4J2EEwithWSDL.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/toWs/Ws4J2EEwithWSDL.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- Ws4J2EEwithWSDL.java	10 Jun 2004 11:35:19 -0000	1.9
  +++ Ws4J2EEwithWSDL.java	14 Jun 2004 08:30:03 -0000	1.10
  @@ -92,7 +92,7 @@
        * 
        * @see org.apache.geronimo.ews.ws4j2ee.toWs.Generator#genarate()
        */
  -    public void genarate() throws GenerationFault {
  +    public void generate() throws GenerationFault {
   
               try {
                   String wscffile = clparser.getWscffile();
  @@ -118,7 +118,7 @@
                   genarate(wscfwsdiss[0]);
               } catch (FileNotFoundException e) {
                   e.printStackTrace();
  -                throw new GenerationFault(e);
  +                throw GenerationFault.createGenerationFault(e);
               }            
           }
   		public void genarate(WSCFWebserviceDescription wscfwsdis) throws GenerationFault {            
  @@ -133,7 +133,7 @@
               //JAX-RPC mapper calling       
   			Generator jaxrpcmapperGen = GeneratorFactory.createGenerator(wscontext,
                       GenerationConstants.SEI_AND_TYPES_GENERATOR);
  -			jaxrpcmapperGen.genarate();
  +			jaxrpcmapperGen.generate();
   			ContextValidator cvalidater = new ContextValidator(wscontext);
   			cvalidater.validateWithWSDL();
               //get and populate the symbol table 
  @@ -146,33 +146,33 @@
   					log.info("genarating ejb >>");
   				Generator ejbGen =	GeneratorFactory.createGenerator(wscontext,
   						GenerationConstants.EJB_GENERATOR);
  -				ejbGen.genarate();
  +				ejbGen.generate();
   				if (verbose)
   					log.info("genarating web service wrapper >>");
   				Generator wrapperWsGen = GeneratorFactory.createGenerator(wscontext,
   						GenerationConstants.AXIS_WEBSERVICE_WRAPPER_GENERATOR);
  -				wrapperWsGen.genarate();
  +				wrapperWsGen.generate();
   				if (verbose)
   					log.info("genarating j2ee dd >>");
   				Generator j2eeContainerDDGen = GeneratorFactory.createGenerator(wscontext, GenerationConstants.J2EE_CONTAINER_DD_GENERATOR);
  -				j2eeContainerDDGen.genarate();
  +				j2eeContainerDDGen.generate();
               }else{
               	//in this case user should fill the implementation 
               	//in the *BindingImpl class 
   				wscontext.getMiscInfo().setImplwithEJB(false);
   				Generator webCointainerDDGen = GeneratorFactory.createGenerator(wscontext, GenerationConstants.WEB_CONTAINER_DD_GENERATOR);
  -				webCointainerDDGen.genarate();
  +				webCointainerDDGen.generate();
               }
   			Generator buildFileGen = GeneratorFactory.createGenerator(wscontext, GenerationConstants.BUILD_FILE_GENERATOR);
  -			buildFileGen.genarate();
  +			buildFileGen.generate();
   			Generator handlerGen = GeneratorFactory.createGenerator(wscontext,
                   GenerationConstants.HANDLER_GENERATOR);
  -			handlerGen.genarate();
  +			handlerGen.generate();
       }
   
   
       public static void main(String[] args) throws Exception {
           Ws4J2EEwithWSDL gen = new Ws4J2EEwithWSDL(args);
  -        gen.genarate();
  +        gen.generate();
       }
   }
  
  
  
  1.2       +10 -7     ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/toWs/Ws4J2EEClientwithWSDL.java
  
  Index: Ws4J2EEClientwithWSDL.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/toWs/Ws4J2EEClientwithWSDL.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- Ws4J2EEClientwithWSDL.java	23 May 2004 15:53:26 -0000	1.1
  +++ Ws4J2EEClientwithWSDL.java	14 Jun 2004 08:30:03 -0000	1.2
  @@ -90,7 +90,7 @@
        * 
        * @see org.apache.geronimo.ews.ws4j2ee.toWs.Generator#genarate()
        */
  -    public void genarate() throws GenerationFault {
  +    public void generate() throws GenerationFault {
           try {
   			J2EEWebServiceContext wscontext = new J2EEWebServiceContextImpl(true);
   			wscontext.setMiscInfo(misc);
  @@ -106,9 +106,12 @@
               //parsing of the webservice.xml happen here 
               ServiceReferanceParser parser 
               	= new ServiceReferanceParser(new FileInputStream(wscfClientfile));
  -            if (verbose)
  -                log.info(wscfClientfile + " parsed ..");
   			ServiceReferance ref = parser.getRef();
  +            if (verbose){
  +				log.info(wscfClientfile + " parsed ..");
  +				log.info(ref.getJaxrpcmappingFile());       
  +				log.info(ref.getWsdlFile());
  +           }
   
               wscontext.getMiscInfo().setJaxrpcfile(Utils.getAbsolutePath(ref.getJaxrpcmappingFile(),misc.getWsConfFileLocation()));
               wscontext.getMiscInfo().setWsdlFile(Utils.getAbsolutePath(ref.getWsdlFile(), misc.getWsConfFileLocation()));
  @@ -120,21 +123,21 @@
                   log.info("starting client side code genaration .. ");
   			Generator clientStubGen = GeneratorFactory.createGenerator(wscontext,
                       GenerationConstants.CLIENT_STUB_GENERATOR);
  -			clientStubGen.genarate();
  +			clientStubGen.generate();
   			ContextValidator cvalidator = new ContextValidator(wscontext);
   			//cvalidator.validateWithWSDL();
   			Generator handlerGen = GeneratorFactory.createGenerator(wscontext,
                       GenerationConstants.HANDLER_GENERATOR);
  -			handlerGen.genarate();
  +			handlerGen.generate();
           } catch (Exception e) {
               e.printStackTrace();
  -            throw new GenerationFault(e);
  +            throw GenerationFault.createGenerationFault(e);
           }
       }
   
   
       public static void main(String[] args) throws Exception {
           Ws4J2EEClientwithWSDL gen = new Ws4J2EEClientwithWSDL(args);
  -        gen.genarate();
  +        gen.generate();
       }
   }
  
  
  
  1.9       +13 -9     ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/toWs/Ws4J2EEwithoutWSDL.java
  
  Index: Ws4J2EEwithoutWSDL.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/toWs/Ws4J2EEwithoutWSDL.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- Ws4J2EEwithoutWSDL.java	10 Jun 2004 11:35:19 -0000	1.8
  +++ Ws4J2EEwithoutWSDL.java	14 Jun 2004 08:30:03 -0000	1.9
  @@ -93,7 +93,7 @@
       private Vector genarators;
       private String[] args;
       private J2EEWebServiceContext wscontext;
  -    private boolean verbose = true;
  +    private boolean verbose = false;
       private Ws4J2eeWtihoutWSDLCLOptionParser clparser;
   	private File jarfile;
   	private JarFileLoader jarfileLoader;
  @@ -132,7 +132,7 @@
   			if (verbose)
   				log.info(wscffile + " parsed ..");
   		}catch(FileNotFoundException e){
  -			throw new GenerationFault(e);
  +			throw GenerationFault.createGenerationFault(e);
   		}	
       }
   
  @@ -166,7 +166,7 @@
        * 
        * @see org.apache.geronimo.ews.ws4j2ee.toWs.Generator#genarate()
        */
  -    public void genarate() throws GenerationFault {
  +    public void generate() throws GenerationFault {
   		WSCFWebserviceDescription[] wscfwsdiss = wscontext.getWSCFContext().getWebServicesDescription();
   		//TODO fix this to handle multiple discriptions let us take the first discription
   		if (wscfwsdiss == null || wscfwsdiss.length == 0)
  @@ -249,11 +249,11 @@
                   log.info("genarating jaxrpc-mapper.xml ..............");
   			Generator jaxrpcfilegen = GeneratorFactory.createGenerator(wscontext,
                       GenerationConstants.JAXRPCMAPPER_GENERATOR);
  -			jaxrpcfilegen.genarate();
  +			jaxrpcfilegen.generate();
   			
   			Generator seiAndTypegen = GeneratorFactory.createGenerator(wscontext,
                       GenerationConstants.SEI_AND_TYPES_GENERATOR);
  -			seiAndTypegen.genarate();
  +			seiAndTypegen.generate();
   			
   			ContextValidator cvalidater = new ContextValidator(wscontext);
   			cvalidater.validateWithWSDL();        
  @@ -288,7 +288,7 @@
   				if (verbose)
   						log.info("genarating ejb >>");
   				GeneratorFactory.createGenerator(wscontext,
  -					GenerationConstants.EJB_GENERATOR).genarate();
  +					GenerationConstants.EJB_GENERATOR).generate();
   			}else{
   				wscontext.getMiscInfo().setImplwithEJB(false);
   				//parse the web.xml file and gereratre wrapper
  @@ -310,10 +310,14 @@
   			}
   			Generator wrapgen = GeneratorFactory.createGenerator(wscontext,
   				GenerationConstants.AXIS_WEBSERVICE_WRAPPER_GENERATOR);
  -			wrapgen.genarate();
  +			wrapgen.generate();
  +			
  +			Generator handlerGen = GeneratorFactory.createGenerator(wscontext,
  +							GenerationConstants.HANDLER_GENERATOR);
  +						handlerGen.generate();
   			
   			Generator buildFileGen = GeneratorFactory.createGenerator(wscontext, GenerationConstants.BUILD_FILE_GENERATOR);
  -			buildFileGen.genarate();
  +			buildFileGen.generate();
   //uncomment this to run the build file programatically
   //			AntExecuter executer = new AntExecuter();
   //			executer.execute(wscontext.getMiscInfo().getOutPutPath() + "/build.xml");
  @@ -348,6 +352,6 @@
       	}else{
   			gen = new Ws4J2EEwithoutWSDL(args,false);    	
       	}
  -        gen.genarate();
  +        gen.generate();
       }
   }
  
  
  
  1.3       +22 -7     ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/toWs/GenerationFault.java
  
  Index: GenerationFault.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/toWs/GenerationFault.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- GenerationFault.java	4 Feb 2004 04:29:53 -0000	1.2
  +++ GenerationFault.java	14 Jun 2004 08:30:03 -0000	1.3
  @@ -55,6 +55,9 @@
   
   package org.apache.geronimo.ews.ws4j2ee.toWs;
   
  +import java.io.FileWriter;
  +import java.io.PrintWriter;
  +
   /**
    * <p>This denotes the Exception occured at the code genaration.
    * There is a isssue of wrapping the Exception such that JDK1.3 compatibility.
  @@ -72,9 +75,19 @@
        */
       public Throwable detail;
   
  -    public GenerationFault(Exception e) {
  +    private GenerationFault(Exception e) {
           initCause(null); // Disallow subsequent initCause
  +//        setStackTrace(e.getStackTrace());
           detail = e;
  +        try{
  +			PrintWriter w = new PrintWriter(new FileWriter("error.log"));
  +			e.printStackTrace(w);
  +			w.flush();
  +			w.close();
  +        }catch(Exception e1){
  +	        
  +        }
  +
       }
   
       public GenerationFault(String message) {
  @@ -89,9 +102,9 @@
        * @param ex the nested exception
        */
       public GenerationFault(String s, Throwable ex) {
  -        super(s);
           initCause(null); // Disallow subsequent initCause
  -        detail = ex;
  +		detail = ex;
  +//		setStackTrace(ex.getStackTrace());
       }
   
       /**
  @@ -104,9 +117,8 @@
           if (detail == null) {
               return super.getMessage();
           } else {
  -            return super.getMessage()
  -                    + "; nested exception is: \n\t"
  -                    + detail.toString();
  +			return super.getMessage() +
  +                    detail.getMessage();
           }
       }
   
  @@ -116,12 +128,15 @@
        * @return the wrapped exception, which may be <tt>null</tt>.
        */
       public Throwable getCause() {
  -        return detail;
  +		return detail;
  +        
       }
   
       public static GenerationFault createGenerationFault(Exception e) {
           if (e instanceof GenerationFault) {
               return (GenerationFault) e;
  +//        }else if(e instanceof RuntimeException){
  +//        	return (RuntimeException)e;
           } else
               return new GenerationFault(e);
       }
  
  
  
  1.6       +4 -3      ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/toWs/dd/jonas/JOnASDDWriter.java
  
  Index: JOnASDDWriter.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/toWs/dd/jonas/JOnASDDWriter.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- JOnASDDWriter.java	11 Jun 2004 13:26:11 -0000	1.5
  +++ JOnASDDWriter.java	14 Jun 2004 08:30:03 -0000	1.6
  @@ -69,7 +69,7 @@
   
   	public String getFileName() {
   		return j2eewscontext.getMiscInfo().getOutPutPath() +
  -				"/ejb/META-INF/jonas-ejb-jar.xml";
  +				"/ejb/META-INF/JonAs.xml";
   	}
   
   	/* (non-Javadoc)
  @@ -86,7 +86,7 @@
   		out.write("<jonas-ejb-jar xmlns=\"http://www.objectweb.org/jonas/ns\"\n");
   		out.write("               xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n");
   		out.write("               xsi:schemaLocation=\"http://www.objectweb.org/jonas/ns\"\n");
  -		out.write("                                    http://www.objectweb.org/jonas/ns/jonas-ejb-jar_4_1.xsd\">\n");
  +		out.write("                                    http://www.objectweb.org/jonas/ns/jonas-ejb-jar_4_0.xsd\">\n");
   		out.write("	<jonas-session>\n");
   		out.write("	  <ejb-name>" + j2eewscontext.getMiscInfo().getEjbName() + "</ejb-name>\n");
   		String implStyle = j2eewscontext.getMiscInfo().getImplStyle();
  @@ -96,7 +96,8 @@
   		}
   		if(GenerationConstants.USE_LOCAL_AND_REMOTE.equals(implStyle)
   			|| GenerationConstants.USE_LOCAL.equals(implStyle)){
  -			out.write("	  <jndi-local-name>" + "ejb/" +ejbname+ "Local"+"</jndi-local-name>\n");
  +			//TODO fill this what is the correct tag for JonAs	
  +			//out.write("	  <local-jndi-name>" + "ejb/" +ejbname+ "Local"+"</local-jndi-name>\n");
   		}
   		out.write("	</jonas-session>\n");
   		out.write("</jonas-ejb-jar>\n");
  
  
  
  1.2       +1 -1      ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/toWs/ejb/EJBGenerator.java
  
  Index: EJBGenerator.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/toWs/ejb/EJBGenerator.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- EJBGenerator.java	10 Jun 2004 11:35:19 -0000	1.1
  +++ EJBGenerator.java	14 Jun 2004 08:30:03 -0000	1.2
  @@ -95,7 +95,7 @@
   		ddwriter = WriterFactory.createWriter(context, GenerationConstants.EJB_DD_WRITER);
   	}
   
  -	public void genarate() throws GenerationFault {
  +	public void generate() throws GenerationFault {
   		if(homewriter != null)
   			homewriter.writeCode();
   		if(remotewriter != null)	
  
  
  
  1.2       +1 -1      ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/toWs/wsdl/WSDLGenerator.java
  
  Index: WSDLGenerator.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/toWs/wsdl/WSDLGenerator.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- WSDLGenerator.java	10 Jun 2004 11:35:19 -0000	1.1
  +++ WSDLGenerator.java	14 Jun 2004 08:30:03 -0000	1.2
  @@ -152,7 +152,7 @@
   		}
   	} // run
   
  -	public void genarate() throws GenerationFault {
  +	public void generate() throws GenerationFault {
   		try {
   			//write the WSDLFile
   			this.run(args);
  
  
  
  1.2       +19 -6     ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/toWs/handlers/HandlerGenerator.java
  
  Index: HandlerGenerator.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/toWs/handlers/HandlerGenerator.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- HandlerGenerator.java	10 Jun 2004 11:35:19 -0000	1.1
  +++ HandlerGenerator.java	14 Jun 2004 08:30:03 -0000	1.2
  @@ -55,6 +55,8 @@
   
   package org.apache.geronimo.ews.ws4j2ee.toWs.handlers;
   
  +import java.util.HashMap;
  +
   import org.apache.geronimo.ews.ws4j2ee.context.J2EEWebServiceContext;
   import org.apache.geronimo.ews.ws4j2ee.context.webservices.server.interfaces.WSCFHandler;
   import org.apache.geronimo.ews.ws4j2ee.toWs.GenerationFault;
  @@ -68,7 +70,14 @@
    */
   public class HandlerGenerator implements Generator {
   	private J2EEWebServiceContext j2eewscontext;
  -	private Writer[] writers = null;
  +	private Writer[] writers = new Writer[0];
  +	
  +	private static HashMap handlermap = new HashMap();
  +	static {
  +		handlermap.put("org.apache.ws.axis.security.CheckPoint4J2EEHandler",
  +			"org.apache.ws.axis.security.CheckPoint4J2EEHandler");
  +	};
  +
   
   	public HandlerGenerator(J2EEWebServiceContext j2eewscontext) throws GenerationFault {
   		this.j2eewscontext = j2eewscontext;
  @@ -76,18 +85,22 @@
   			if(handlers!= null){
   				writers = new Writer[handlers.length];
   				for (int i = 0; i < handlers.length; i++) {
  -					writers[i] = new HandlerWriter(j2eewscontext, handlers[i]);
  +					if(!handlermap.containsKey(handlers[i].getHandlerClass())
  +						&& j2eewscontext.getMiscInfo().getJarFileName() == null){
  +						writers[i] = new HandlerWriter(j2eewscontext, handlers[i]);
  +					}
   				}
  -			}else
  -				writers = new Writer[0];
  +			}
   	}
   
   	/**
   	 * genarate the handlers
   	 */
  -	public void genarate() throws GenerationFault {
  +	public void generate() throws GenerationFault {
   		for (int i = 0; i < writers.length; i++) {
  -			writers[i].writeCode();
  +			if(writers[i] != null){
  +				writers[i].writeCode();			
  +			}
   		}
   	}
   }
  
  
  
  1.4       +11 -8     ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/toWs/handlers/HandlerWriter.java
  
  Index: HandlerWriter.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/toWs/handlers/HandlerWriter.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- HandlerWriter.java	16 Mar 2004 04:45:29 -0000	1.3
  +++ HandlerWriter.java	14 Jun 2004 08:30:03 -0000	1.4
  @@ -57,6 +57,7 @@
   
   import org.apache.geronimo.ews.ws4j2ee.context.J2EEWebServiceContext;
   import org.apache.geronimo.ews.ws4j2ee.context.webservices.server.interfaces.WSCFHandler;
  +import org.apache.geronimo.ews.ws4j2ee.context.webservices.server.interfaces.WSCFSOAPHeader;
   import org.apache.geronimo.ews.ws4j2ee.toWs.AbstractWriter;
   import org.apache.geronimo.ews.ws4j2ee.toWs.GenerationFault;
   import org.apache.geronimo.ews.ws4j2ee.utils.Utils;
  @@ -70,14 +71,15 @@
       private WSCFHandler handler;
       private String className = null;
       private String packageName = null;
  -
  +    
       /**
        * @param j2eewscontext 
        * @throws GenerationFault 
        */
       public HandlerWriter(J2EEWebServiceContext j2eewscontext, WSCFHandler handler)
               throws GenerationFault {
  -        super(j2eewscontext);
  +        super(j2eewscontext,j2eewscontext.getMiscInfo().getOutPutPath()
  +			+  "/" + handler.getHandlerClass().replace('.', '/') +  ".java");
           this.handler = handler;
   
           className = Utils.getClassNameFromQuallifiedName(handler.getHandlerClass());
  @@ -85,8 +87,7 @@
       }
   
       public String getFileName() {
  -        return j2eewscontext.getMiscInfo().getOutPutPath()
  -                + "/jaxrpc/" + packageName.replace('.', '/') + "/" + className + ".java";
  +        throw new UnsupportedOperationException();
       }
   
       /**
  @@ -99,22 +100,22 @@
           out.write("package " + packageName + ";\n");
           out.write("public class " + className + " extends org.apache.axis.handlers.BasicHandler{\n");
   
  -        out.write("\tpublic class " + className + "(){");
  +        out.write("\tpublic class " + className + "(){\n");
           out.write("\t\tsetName(\"" + handler.getHandlerName() + "\");\n");
           out.write("\t}\n");
   
           out.write("\tpublic void init(){}\n");
           out.write("\tpublic void cleanup(){}\n");
  -        out.write("\tpublic void onFault(MessageContext msgContext){}");
  +        out.write("\tpublic void onFault(MessageContext msgContext){}\n");
           out.write("\tpublic abstract void invoke(MessageContext msgContext) throws AxisFault{\n");
           out.write("\t\t//write your implementation here\n");
           out.write("\t}\n");
   
           out.write("\tpublic java.util.List getUnderstoodHeaders() {\n");
           out.write("\t\t	java.util.List list = new java.util.ArrayList();\n");
  -        String[] headers = handler.getSoapHeader();
  +		WSCFSOAPHeader[] headers = handler.getSoapHeader();
           for (int i = 0; i < headers.length; i++) {
  -            out.write("\t\tjavax.xml.namespace.QName name" + i + " = new javax.xml.namespace.QName(\"" + headers[i] + "\");\n");
  +            out.write("\t\tjavax.xml.namespace.QName name" + i + " = new javax.xml.namespace.QName(\"" + headers[i].getNamespaceURI()+"\",\""+ headers[i].getNamespaceURI()+ "\");\n");
               out.write("\t\tlist.add(name" + i + ");\n");
           }
           out.write("\t\treturn list;\n");
  @@ -124,5 +125,7 @@
           out.flush();
           out.close();
       }
  +    
  +    
   
   }
  
  
  
  1.8       +1 -1      ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/toWs/dd/J2EEContainerSpecificDDGenerator.java
  
  Index: J2EEContainerSpecificDDGenerator.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/toWs/dd/J2EEContainerSpecificDDGenerator.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- J2EEContainerSpecificDDGenerator.java	10 Jun 2004 11:35:19 -0000	1.7
  +++ J2EEContainerSpecificDDGenerator.java	14 Jun 2004 08:30:03 -0000	1.8
  @@ -83,7 +83,7 @@
               new GenerationFault("unsupported j2ee container " + j2eewscontext.getMiscInfo().getTargetJ2EEContainer());
       }
   
  -    public void genarate() throws GenerationFault {
  +    public void generate() throws GenerationFault {
       	if(writer != null)
   			writer.writeCode();
       }
  
  
  
  1.4       +1 -1      ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/toWs/dd/WebContainerDDGenerator.java
  
  Index: WebContainerDDGenerator.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/toWs/dd/WebContainerDDGenerator.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- WebContainerDDGenerator.java	10 Jun 2004 11:35:19 -0000	1.3
  +++ WebContainerDDGenerator.java	14 Jun 2004 08:30:03 -0000	1.4
  @@ -73,7 +73,7 @@
           
       }
   
  -    public void genarate() throws GenerationFault {
  +    public void generate() throws GenerationFault {
       	System.out.println("code to generatre web.xml");
       }
   }
  
  
  
  1.2       +2 -2      ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/toWs/dd/JaxrpcMapperGenerator.java
  
  Index: JaxrpcMapperGenerator.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/toWs/dd/JaxrpcMapperGenerator.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- JaxrpcMapperGenerator.java	10 Jun 2004 11:35:19 -0000	1.1
  +++ JaxrpcMapperGenerator.java	14 Jun 2004 08:30:03 -0000	1.2
  @@ -83,7 +83,7 @@
   		this.j2eewscontext = j2eewscontext;
   	}
   
  -	public void genarate() throws GenerationFault {
  +	public void generate() throws GenerationFault {
   		try {
   			String fileName = j2eewscontext.getMiscInfo().getJaxrpcfile();
   
  @@ -94,7 +94,7 @@
   				log.info(fileName + " genarated .................");
   		} catch (IOException e) {
   			e.printStackTrace();
  -			throw new GenerationFault(e);
  +			throw GenerationFault.createGenerationFault(e);
   		}
   	}
   
  
  
  
  1.2       +1 -1      ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/toWs/dd/WebServiceDDGenerator.java
  
  Index: WebServiceDDGenerator.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/toWs/dd/WebServiceDDGenerator.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- WebServiceDDGenerator.java	10 Jun 2004 11:35:19 -0000	1.1
  +++ WebServiceDDGenerator.java	14 Jun 2004 08:30:03 -0000	1.2
  @@ -80,7 +80,7 @@
   		this.j2eewscontext = j2eewscontext;
   	}
   
  -	public void genarate() throws GenerationFault {
  +	public void generate() throws GenerationFault {
   		try {
   			if(j2eewscontext.getMiscInfo().isVerbose())
   				log.info(j2eewscontext.getMiscInfo().getWsConfFileLocation()+" generated ....");
  
  
  
  1.4       +3 -1      ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/toWs/wrapperWs/geronimo/InternalBasedWrapperClassWriter.java
  
  Index: InternalBasedWrapperClassWriter.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/toWs/wrapperWs/geronimo/InternalBasedWrapperClassWriter.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- InternalBasedWrapperClassWriter.java	27 May 2004 15:28:46 -0000	1.3
  +++ InternalBasedWrapperClassWriter.java	14 Jun 2004 08:30:03 -0000	1.4
  @@ -125,7 +125,9 @@
   				+ getName(j2eewscontext).replace('.', '/')
   				+ "Impl.java";
   		//j2eewscontext.getMiscInfo().getJaxrpcSEI().replace('.','/')+"BindingImpl.java";
  -		log.info(filename + " generating.....................");
  +		if(j2eewscontext.getMiscInfo().isVerbose()){
  +			log.info(filename + " generating.....................");
  +		}
   		return filename;
   	}
   		protected void writeMethods() throws GenerationFault {
  
  
  
  1.8       +1 -1      ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/toWs/misc/BuildFileGenerator.java
  
  Index: BuildFileGenerator.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/toWs/misc/BuildFileGenerator.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- BuildFileGenerator.java	10 Jun 2004 11:35:19 -0000	1.7
  +++ BuildFileGenerator.java	14 Jun 2004 08:30:03 -0000	1.8
  @@ -82,7 +82,7 @@
   		this.j2eewscontext = j2eewscontext;
   	}
   
  -	public void genarate() throws GenerationFault {
  +	public void generate() throws GenerationFault {
   		try {
   			String buildfile = j2eewscontext.getMiscInfo().getOutPutPath() + "/build.xml";
   			if(j2eewscontext.getMiscInfo().isVerbose())
  
  
  
  1.6       +0 -1      ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/toWs/wrapperWs/WebEndpointWrapperClassWriter.java
  
  Index: WebEndpointWrapperClassWriter.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/toWs/wrapperWs/WebEndpointWrapperClassWriter.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- WebEndpointWrapperClassWriter.java	10 Jun 2004 11:35:19 -0000	1.5
  +++ WebEndpointWrapperClassWriter.java	14 Jun 2004 08:30:03 -0000	1.6
  @@ -136,7 +136,6 @@
   				+ getName(j2eewscontext).replace('.', '/')
   				+ "Impl.java";
   		//j2eewscontext.getMiscInfo().getJaxrpcSEI().replace('.','/')+"BindingImpl.java";
  -		log.info(filename + " generating.....................");
   		return filename;
   	}
   	/* (non-Javadoc)
  
  
  
  1.6       +0 -1      ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/toWs/wrapperWs/WrapperClassWriter.java
  
  Index: WrapperClassWriter.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/toWs/wrapperWs/WrapperClassWriter.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- WrapperClassWriter.java	10 Jun 2004 11:35:19 -0000	1.5
  +++ WrapperClassWriter.java	14 Jun 2004 08:30:03 -0000	1.6
  @@ -107,7 +107,6 @@
   		String filename = j2eewscontext.getMiscInfo().getOutPutPath()+"/"+
   				getName(j2eewscontext).replace('.','/') +"Impl.java";
   				//j2eewscontext.getMiscInfo().getJaxrpcSEI().replace('.','/')+"BindingImpl.java";
  -		log.info(filename + " generating.....................");
   		return filename;
   	}
   }
  
  
  
  1.2       +1 -1      ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/toWs/wrapperWs/WrapperWsGenerator.java
  
  Index: WrapperWsGenerator.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/contrib/ews/src/org/apache/geronimo/ews/ws4j2ee/toWs/wrapperWs/WrapperWsGenerator.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- WrapperWsGenerator.java	10 Jun 2004 11:35:19 -0000	1.1
  +++ WrapperWsGenerator.java	14 Jun 2004 08:30:03 -0000	1.2
  @@ -78,7 +78,7 @@
   		writer = WrapperClassGeneratorFactory.createInstance(j2eewscontext);
   	}
       
  -	public void genarate() throws GenerationFault {
  +	public void generate() throws GenerationFault {
   		writer.writeCode();
   	}
   }