[183046] Should not require to build axis2.war and other bugs.
diff --git a/bundles/org.eclipse.jst.ws.axis2.consumption.core/META-INF/MANIFEST.MF b/bundles/org.eclipse.jst.ws.axis2.consumption.core/META-INF/MANIFEST.MF
index 83f465d..d986201 100644
--- a/bundles/org.eclipse.jst.ws.axis2.consumption.core/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.jst.ws.axis2.consumption.core/META-INF/MANIFEST.MF
@@ -1,6 +1,6 @@
 Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
-Bundle-Name: Core Plug-in
+Bundle-Name: Axis2 Consumption Core Plug-in
 Bundle-SymbolicName: org.eclipse.jst.ws.axis2.consumption.core
 Bundle-Version: 1.0.0
 Bundle-Activator: org.eclipse.jst.ws.axis2.consumption.core.plugin.WebServiceAxis2ConsumptionCorePlugin
diff --git a/bundles/org.eclipse.jst.ws.axis2.consumption.core/src/org/eclipse/jst/ws/axis2/consumption/core/command/Axis2ClientCodegenCommand.java b/bundles/org.eclipse.jst.ws.axis2.consumption.core/src/org/eclipse/jst/ws/axis2/consumption/core/command/Axis2ClientCodegenCommand.java
index f712c69..8eae6d6 100644
--- a/bundles/org.eclipse.jst.ws.axis2.consumption.core/src/org/eclipse/jst/ws/axis2/consumption/core/command/Axis2ClientCodegenCommand.java
+++ b/bundles/org.eclipse.jst.ws.axis2.consumption.core/src/org/eclipse/jst/ws/axis2/consumption/core/command/Axis2ClientCodegenCommand.java
@@ -12,6 +12,7 @@
  * 20070205   168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2 
  * 										  runtime to the framework for 168762
  * 20070206   172186 sandakith@wso2.com	- Fix for 172186, Added a check to overcome the issue.
+ * 20070426   183046 sandakith@wso2.com - Lahiru Sandakith
  *******************************************************************************/
 package org.eclipse.jst.ws.axis2.consumption.core.command;
 
@@ -48,7 +49,6 @@
 
 	public IStatus execute(IProgressMonitor monitor, IAdaptable info)
 													 throws ExecutionException {
-		
 		IStatus status = Status.OK_STATUS;  
 		IEnvironment environment = getEnvironment();
 		IStatusHandler statusHandler = environment.getStatusHandler();	
@@ -81,6 +81,8 @@
 		Object axisServiceInstance;
 	try {
 		//service = generator.getAxisService(model.getWsdlURI());
+		ClassLoadingUtil.setInitByClient(true);
+		ClassLoadingUtil.cleanAntClassLoader();
 		ClassLoadingUtil.init(model.getWebProjectName());
 		axisServiceInstance = generator.getAxisService(model.getWsdlURI());
 		Map optionsMap = generator.fillOptionMap(	
@@ -88,11 +90,13 @@
             model.isSync(), //sync
             false,  //servirside false always
             false,  //services.xml false always
-            false, //model.isTestCaseCheck(),
+            model.isTestCaseCheck(),
             model.isGenerateAllCheck(),
             (model.getServiceName()!=null)?model.getServiceName():null,
             (model.getPortName()!=null)?model.getPortName():null,
-            (model.getDatabindingType().toLowerCase()!=null)?model.getDatabindingType().toLowerCase():null,
+            (model.getDatabindingType().toLowerCase()!=null)
+            			?model.getDatabindingType().toLowerCase()
+            			:null,
             (model.getWsdlURI()!=null)?model.getWsdlURI():null,
             (model.getPackageText()!=null)?model.getPackageText():null,
             "java",
@@ -102,65 +106,49 @@
            ); 
       
         //CodeGenConfiguration codegenConfig = new CodeGenConfiguration(service, optionsMap);
-		Class CodeGenConfigurationClass = ClassLoadingUtil.loadClassFromAntClassLoader("org.apache.axis2.wsdl.codegen.CodeGenConfiguration");
+		Class CodeGenConfigurationClass = ClassLoadingUtil
+				.loadClassFromAntClassLoader("org.apache.axis2.wsdl.codegen.CodeGenConfiguration");
 
-		Class[] parameterTypes = new Class[2];
-		parameterTypes[0] = axisServiceInstance.getClass();
-		parameterTypes[1] = Map.class;
-		Constructor CodeGenConfigurationConstructor = CodeGenConfigurationClass.getConstructor(parameterTypes);
-       
-		Object initargs[] = new Object[2];
-		initargs[0] = axisServiceInstance;
-		initargs[1] = optionsMap;
-		Object CodeGenConfigurationInstance  = CodeGenConfigurationConstructor.newInstance(initargs);
+		Constructor CodeGenConfigurationConstructor = CodeGenConfigurationClass
+				.getConstructor(new Class[]{axisServiceInstance.getClass(),Map.class});
+		Object CodeGenConfigurationInstance  = CodeGenConfigurationConstructor
+				.newInstance(new Object[]{axisServiceInstance,optionsMap});
 		
         //set the baseURI
         //codegenConfig.setBaseURI(generator.getBaseUri(model.getWsdlURI()));
 		
-		Class[] parameterTypes1 = new Class[1];
-		parameterTypes1[0] = String.class;
-		Method setBaseURIMethod = CodeGenConfigurationClass.getMethod("setBaseURI", parameterTypes1);
-
-		Object args[] = new Object[1];
-		args[0] = generator.getBaseUri(model.getWsdlURI());
-		setBaseURIMethod.invoke(CodeGenConfigurationInstance, args);
+		Method setBaseURIMethod = CodeGenConfigurationClass
+				.getMethod("setBaseURI", new Class[]{String.class});
+		setBaseURIMethod.invoke(CodeGenConfigurationInstance, 
+								new Object[]{generator.getBaseUri(model.getWsdlURI())});
 		
 		//Get the namespace from the AxisService and set it in the configuration 
-		Class AxisServiceClass = ClassLoadingUtil.loadClassFromAntClassLoader("org.apache.axis2.description.AxisService");
+		Class AxisServiceClass = ClassLoadingUtil
+					.loadClassFromAntClassLoader("org.apache.axis2.description.AxisService");
 
 		Method getTargetNamespaceMethod = AxisServiceClass.getMethod("getTargetNamespace", null);
 		Object targetNamespace = getTargetNamespaceMethod.invoke(axisServiceInstance, null);
 		
-		Class URLProcessorClass = ClassLoadingUtil.loadClassFromAntClassLoader("org.apache.axis2.util.URLProcessor");
-		Class parameterTypes4[] = new Class[1];
-		parameterTypes4[0] = String.class;
-		Method makePackageNameMethod = URLProcessorClass.getMethod("makePackageName", parameterTypes4);
-		
-		Object args4[] = new Object[1];
-		args4[0] = targetNamespace;
-		Object stringReturn = makePackageNameMethod.invoke(null, args4);
+		Class URLProcessorClass = ClassLoadingUtil
+					.loadClassFromAntClassLoader("org.apache.axis2.util.URLProcessor");
+		Method makePackageNameMethod = URLProcessorClass
+					.getMethod("makePackageName", new Class[]{String.class});
+		Object stringReturn = makePackageNameMethod.invoke(null, new Object[]{targetNamespace});
 		
 		model.setPackageText(stringReturn.toString());
 		
-		Class[] parameterTypes3 = new Class[1];
-		parameterTypes3[0] = String.class;
-		Method setPackageNameMethod = CodeGenConfigurationClass.getMethod("setPackageName", parameterTypes3);
-
-		Object args2[] = new Object[1];
-		args2[0] = stringReturn;
-		setPackageNameMethod.invoke(CodeGenConfigurationInstance, args2);
+		Method setPackageNameMethod = CodeGenConfigurationClass
+					.getMethod("setPackageName", new Class[]{String.class});
+		setPackageNameMethod.invoke(CodeGenConfigurationInstance, new Object[]{stringReturn});
 		
         //new CodeGenerationEngine(codegenConfig).generate();
 		
-		Class CodeGenerationEngineClass = ClassLoadingUtil.loadClassFromAntClassLoader("org.apache.axis2.wsdl.codegen.CodeGenerationEngine");
-
-		Class[] parameterTypes2 = new Class[1];
-		parameterTypes2[0] = CodeGenConfigurationInstance.getClass();
-		Constructor CodeGenerationEngineConstructor = CodeGenerationEngineClass.getConstructor(parameterTypes2);
-        
-		Object initargs1[] = new Object[1];
-		initargs1[0] = CodeGenConfigurationInstance;
-		Object CodeGenerationEngineInstance  = CodeGenerationEngineConstructor.newInstance(initargs1);
+		Class CodeGenerationEngineClass = ClassLoadingUtil
+				.loadClassFromAntClassLoader("org.apache.axis2.wsdl.codegen.CodeGenerationEngine");
+		Constructor CodeGenerationEngineConstructor = CodeGenerationEngineClass
+					.getConstructor(new Class[]{CodeGenConfigurationInstance.getClass()});
+		Object CodeGenerationEngineInstance  = CodeGenerationEngineConstructor
+					.newInstance(new Object[]{CodeGenConfigurationInstance});
 		
 		//Invoke Codegen Method
 		Method generateMethod = CodeGenerationEngineClass.getMethod("generate", null);
diff --git a/bundles/org.eclipse.jst.ws.axis2.consumption.core/src/org/eclipse/jst/ws/axis2/consumption/core/command/Axis2ClientDefaultingCommand.java b/bundles/org.eclipse.jst.ws.axis2.consumption.core/src/org/eclipse/jst/ws/axis2/consumption/core/command/Axis2ClientDefaultingCommand.java
index b9c895f..9122ca5 100644
--- a/bundles/org.eclipse.jst.ws.axis2.consumption.core/src/org/eclipse/jst/ws/axis2/consumption/core/command/Axis2ClientDefaultingCommand.java
+++ b/bundles/org.eclipse.jst.ws.axis2.consumption.core/src/org/eclipse/jst/ws/axis2/consumption/core/command/Axis2ClientDefaultingCommand.java
@@ -11,6 +11,7 @@
  * -------- -------- -----------------------------------------------------------
  * 20070205   168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2 
  * 										  runtime to the framework for 168762
+ * 20070426   183046 sandakith@wso2.com - Lahiru Sandakith
  *******************************************************************************/
 package org.eclipse.jst.ws.axis2.consumption.core.command;
 
@@ -49,8 +50,8 @@
 						);
 		
 		model.setDatabindingType(Axis2ConsumptionUIMessages.DATA_BINDING_ADB);
-		model.setASync(true);
-		model.setSync(true);
+		model.setASync(false);
+		model.setSync(false);
 		
 		DefaultCodegenUtil defaultCodegenUtil = new DefaultCodegenUtil(model);
 		defaultCodegenUtil.populateModelParamsFromWSDL();
diff --git a/bundles/org.eclipse.jst.ws.axis2.consumption.core/src/org/eclipse/jst/ws/axis2/consumption/core/data/DataModel.java b/bundles/org.eclipse.jst.ws.axis2.consumption.core/src/org/eclipse/jst/ws/axis2/consumption/core/data/DataModel.java
index 39e608d..bcc76db 100644
--- a/bundles/org.eclipse.jst.ws.axis2.consumption.core/src/org/eclipse/jst/ws/axis2/consumption/core/data/DataModel.java
+++ b/bundles/org.eclipse.jst.ws.axis2.consumption.core/src/org/eclipse/jst/ws/axis2/consumption/core/data/DataModel.java
@@ -11,6 +11,7 @@
  * -------- -------- -----------------------------------------------------------
  * 20070110   168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2 
  * 										  runtime to the framework for 168762
+ * 20070426   183046 sandakith@wso2.com - Lahiru Sandakith
  *******************************************************************************/
 package org.eclipse.jst.ws.axis2.consumption.core.data;
 
@@ -21,10 +22,11 @@
 	private String 	serviceClass;
 	private String 	databindingType;
 	private String 	namespaseToPackageMapping;
-	private boolean	Sync;
-	private boolean	ASync;
-	private boolean generateAllCheck;
-	private boolean testCaseCheck;
+	//Default setting is to generate both sync and async
+	private boolean	Sync = false; 
+	private boolean	ASync = false;
+	private boolean generateAllCheck = false;
+	private boolean testCaseCheck = false;
 
 	
 	public String getDatabindingType() {
@@ -88,8 +90,8 @@
 	public boolean isASync() {
 		return ASync;
 	}
-	public void setASync(boolean sync) {
-		ASync = sync;
+	public void setASync(boolean async) {
+		ASync = async;
 	}
 	public boolean isSync() {
 		return Sync;
@@ -104,4 +106,4 @@
 		this.testCaseCheck = testCaseCheck;
 	}
 
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.jst.ws.axis2.consumption.core/src/org/eclipse/jst/ws/axis2/consumption/core/messages/Axis2ConsumptionUIMessages.java b/bundles/org.eclipse.jst.ws.axis2.consumption.core/src/org/eclipse/jst/ws/axis2/consumption/core/messages/Axis2ConsumptionUIMessages.java
index ff37e4d..09c8bcf 100644
--- a/bundles/org.eclipse.jst.ws.axis2.consumption.core/src/org/eclipse/jst/ws/axis2/consumption/core/messages/Axis2ConsumptionUIMessages.java
+++ b/bundles/org.eclipse.jst.ws.axis2.consumption.core/src/org/eclipse/jst/ws/axis2/consumption/core/messages/Axis2ConsumptionUIMessages.java
@@ -10,6 +10,7 @@
  * yyyymmdd bug      Email and other contact information
  * -------- -------- -----------------------------------------------------------
  * 20070110   168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2 runtime to the framework for 168762
+ * 20070426   183046 sandakith@wso2.com - Lahiru Sandakith
  *******************************************************************************/
 package org.eclipse.jst.ws.axis2.consumption.core.messages;
 
@@ -17,7 +18,8 @@
 
 public final class Axis2ConsumptionUIMessages extends NLS {
 
-	private static final String BUNDLE_NAME = "org.eclipse.jst.ws.axis2.consumption.core.messages.Axis2ConsumptionUI";//$NON-NLS-1$
+	private static final String BUNDLE_NAME = 
+		"org.eclipse.jst.ws.axis2.consumption.core.messages.Axis2ConsumptionUI";//$NON-NLS-1$
 
 	private Axis2ConsumptionUIMessages() {
 		// Do not instantiate
diff --git a/bundles/org.eclipse.jst.ws.axis2.consumption.core/src/org/eclipse/jst/ws/axis2/consumption/core/plugin/WebServiceAxis2ConsumptionCorePlugin.java b/bundles/org.eclipse.jst.ws.axis2.consumption.core/src/org/eclipse/jst/ws/axis2/consumption/core/plugin/WebServiceAxis2ConsumptionCorePlugin.java
index 51673ba..669cbc2 100644
--- a/bundles/org.eclipse.jst.ws.axis2.consumption.core/src/org/eclipse/jst/ws/axis2/consumption/core/plugin/WebServiceAxis2ConsumptionCorePlugin.java
+++ b/bundles/org.eclipse.jst.ws.axis2.consumption.core/src/org/eclipse/jst/ws/axis2/consumption/core/plugin/WebServiceAxis2ConsumptionCorePlugin.java
@@ -1,3 +1,16 @@
+/*******************************************************************************
+ * Copyright (c) 2007 WSO2 Inc. and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * WSO2 Inc. - initial API and implementation
+ * yyyymmdd bug      Email and other contact information
+ * -------- -------- -----------------------------------------------------------
+ * 20070426   183046 sandakith@wso2.com - Lahiru Sandakith
+ *******************************************************************************/
 package org.eclipse.jst.ws.axis2.consumption.core.plugin;
 
 import org.eclipse.ui.plugin.AbstractUIPlugin;
@@ -9,7 +22,7 @@
 public class WebServiceAxis2ConsumptionCorePlugin extends AbstractUIPlugin {
 
 	// The plug-in ID
-	public static final String PLUGIN_ID = "org.eclipse.jst.ws.axis2.consumption.core.plugin";
+	public static final String PLUGIN_ID = "org.eclipse.jst.ws.axis2.consumption.core";
 
 	// The shared instance
 	private static WebServiceAxis2ConsumptionCorePlugin plugin;
diff --git a/bundles/org.eclipse.jst.ws.axis2.consumption.core/src/org/eclipse/jst/ws/axis2/consumption/core/utils/ContentCopyUtils.java b/bundles/org.eclipse.jst.ws.axis2.consumption.core/src/org/eclipse/jst/ws/axis2/consumption/core/utils/ContentCopyUtils.java
index daed5ca..b026b93 100644
--- a/bundles/org.eclipse.jst.ws.axis2.consumption.core/src/org/eclipse/jst/ws/axis2/consumption/core/utils/ContentCopyUtils.java
+++ b/bundles/org.eclipse.jst.ws.axis2.consumption.core/src/org/eclipse/jst/ws/axis2/consumption/core/utils/ContentCopyUtils.java
@@ -10,6 +10,7 @@
  * yyyymmdd bug      Email and other contact information
  * -------- -------- -----------------------------------------------------------
  * 20070118   168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2 runtime to the framework for 168762
+ * 20070426   183046 sandakith@wso2.com - Lahiru Sandakith
  *******************************************************************************/
 package org.eclipse.jst.ws.axis2.consumption.core.utils;
 
@@ -39,14 +40,18 @@
 	FileInputStream finStream = null;		
 
 	/**
-	 * This method will copy the source directory into the eclipse workspace according to the Eclipse Framework API
+	 * This method will copy the source directory into the eclipse workspace according 
+	 * to the Eclipse Framework API
 	 * @param sourceDir
 	 * @param destinationDir
 	 * @param monitor
 	 * @param statusHandler
 	 * @return
 	 */
-	public IStatus copyDirectoryRecursivelyIntoWorkspace(String sourceDir, String destinationDir,IProgressMonitor monitor,IStatusHandler statusHandler) {
+	public IStatus copyDirectoryRecursivelyIntoWorkspace(String sourceDir, 
+				String destinationDir,
+				IProgressMonitor monitor,
+				IStatusHandler statusHandler) {
 		IStatus status = Status.OK_STATUS;
 		fileAndDirectoriesList.clear();
 		File axis2WebappFolder = new File(sourceDir);
@@ -84,13 +89,15 @@
 					fileName = deployFile.substring(tempOutputDir.length());
 					targetPath = outputPath.append(fileName).makeAbsolute();
 					if (isDirectory){
-						org.eclipse.wst.command.internal.env.common.FileResourceUtils.makeFolderPathAtLocation(context,  
+						org.eclipse.wst.command.internal.env.common.FileResourceUtils
+						.makeFolderPathAtLocation(context,  
 								targetPath,
 								monitor,
 								statusHandler);
 					}else{
 						if (finStream != null) {
-							org.eclipse.wst.command.internal.env.common.FileResourceUtils.createFileAtLocation(context,  
+							org.eclipse.wst.command.internal.env.common.FileResourceUtils
+							.createFileAtLocation(context,  
 									targetPath,
 									finStream,
 									monitor,
@@ -101,9 +108,13 @@
 				}
 			}
 		} catch (IOException e) {
-			status = StatusUtils.errorStatus(NLS.bind(Axis2ConsumptionUIMessages.ERROR_INVALID_FILE_READ_WRITEL,new String[]{e.getLocalizedMessage()}), e);
+			status = StatusUtils.errorStatus(
+					NLS.bind(Axis2ConsumptionUIMessages.ERROR_INVALID_FILE_READ_WRITEL,
+							new String[]{e.getLocalizedMessage()}), e);
 		} catch (CoreException e) {
-			status = StatusUtils.errorStatus(NLS.bind(Axis2ConsumptionUIMessages.ERROR_INVALID_FILE_READ_WRITEL,new String[]{e.getLocalizedMessage()}), e);
+			status = StatusUtils.errorStatus(
+					NLS.bind(Axis2ConsumptionUIMessages.ERROR_INVALID_FILE_READ_WRITEL,
+							new String[]{e.getLocalizedMessage()}), e);
 		}
 
 		return status;
diff --git a/bundles/org.eclipse.jst.ws.axis2.consumption.core/src/org/eclipse/jst/ws/axis2/consumption/core/utils/DefaultCodegenUtil.java b/bundles/org.eclipse.jst.ws.axis2.consumption.core/src/org/eclipse/jst/ws/axis2/consumption/core/utils/DefaultCodegenUtil.java
index 1f68b2b..79054a3 100644
--- a/bundles/org.eclipse.jst.ws.axis2.consumption.core/src/org/eclipse/jst/ws/axis2/consumption/core/utils/DefaultCodegenUtil.java
+++ b/bundles/org.eclipse.jst.ws.axis2.consumption.core/src/org/eclipse/jst/ws/axis2/consumption/core/utils/DefaultCodegenUtil.java
@@ -11,6 +11,7 @@
  * -------- -------- -----------------------------------------------------------
  * 20070206   168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2 
  * 										  runtime to the framework for 168762
+ * 20070426   183046 sandakith@wso2.com - Lahiru Sandakith
  *******************************************************************************/
 package org.eclipse.jst.ws.axis2.consumption.core.utils;
 
@@ -57,7 +58,8 @@
 				if (!serviceQNameList.isEmpty()) {
 					// add the local part of the
 					Object serviceQnameInstance = serviceQNameList.get(0);
-					Class QNameClass = ClassLoadingUtil.loadClassFromAntClassLoader("javax.xml.namespace.QName");
+					Class QNameClass = ClassLoadingUtil
+							.loadClassFromAntClassLoader("javax.xml.namespace.QName");
 					Method GetLocalPartMethod  = QNameClass.getMethod("getLocalPart", null);
 					Object resultLocalPart = GetLocalPartMethod.invoke(serviceQnameInstance, null);
 					model.setServiceName(resultLocalPart.toString());
diff --git a/bundles/org.eclipse.jst.ws.axis2.consumption.core/src/org/eclipse/jst/ws/axis2/consumption/core/utils/WSDL2JavaGenerator.java b/bundles/org.eclipse.jst.ws.axis2.consumption.core/src/org/eclipse/jst/ws/axis2/consumption/core/utils/WSDL2JavaGenerator.java
index 93c94d7..7e3f163 100644
--- a/bundles/org.eclipse.jst.ws.axis2.consumption.core/src/org/eclipse/jst/ws/axis2/consumption/core/utils/WSDL2JavaGenerator.java
+++ b/bundles/org.eclipse.jst.ws.axis2.consumption.core/src/org/eclipse/jst/ws/axis2/consumption/core/utils/WSDL2JavaGenerator.java
@@ -11,6 +11,7 @@
  * -------- -------- -----------------------------------------------------------
  * 20070118   168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2 
  * 										  runtime to the framework for 168762
+ * 20070426   183046 sandakith@wso2.com - Lahiru Sandakith
  *******************************************************************************/
 package org.eclipse.jst.ws.axis2.consumption.core.utils;
 
@@ -64,14 +65,12 @@
        
      try{  
         //Reflection invocatin resources
-		Class CommandLineOptionConstantsClass = ClassLoadingUtil.loadClassFromAntClassLoader("org.apache.axis2.util.CommandLineOptionConstants$WSDL2JavaConstants");
-		Object stringDummyObj = String.class;
-		Class CommandLineOptionClass = ClassLoadingUtil.loadClassFromAntClassLoader("org.apache.axis2.util.CommandLineOption");
-		Class[] parameterTypes = new Class[2];
-		parameterTypes[0] = String.class;
-		parameterTypes[1] = String[].class;
-		Constructor CommandLineOptionConstructor = CommandLineOptionClass.getConstructor(parameterTypes);
-		Object[] initargs;
+		Class CommandLineOptionConstantsClass = ClassLoadingUtil.loadClassFromAntClassLoader(
+							"org.apache.axis2.util.CommandLineOptionConstants$WSDL2JavaConstants");
+		Class CommandLineOptionClass = ClassLoadingUtil.loadClassFromAntClassLoader(
+														"org.apache.axis2.util.CommandLineOption");
+		Constructor CommandLineOptionConstructor = CommandLineOptionClass.getConstructor(
+														new Class[]{String.class,String[].class});
         //WSDL file name
        
 							//       optionMap.put(CommandLineOptionConstants.WSDL2JavaConstants.WSDL_LOCATION_URI_OPTION, 
@@ -80,13 +79,12 @@
 							//    		   				 getStringArray(WSDLURI)));
 		
         //Reflection Invocation 
-		Field WSDL_LOCATION_URI_OPTION_FIELD = CommandLineOptionConstantsClass.getField("WSDL_LOCATION_URI_OPTION");
-		initargs = new Object[2];
-		initargs[0] = (String)WSDL_LOCATION_URI_OPTION_FIELD.get(stringDummyObj);
-		initargs[1] = 	getStringArray(WSDLURI);
-		
-		optionMap.put((String)WSDL_LOCATION_URI_OPTION_FIELD.get(stringDummyObj),
-							CommandLineOptionConstructor.newInstance(initargs));
+		Field WSDL_LOCATION_URI_OPTION_FIELD = CommandLineOptionConstantsClass.getField(
+																		"WSDL_LOCATION_URI_OPTION");
+		optionMap.put((String)WSDL_LOCATION_URI_OPTION_FIELD.get(String.class),
+						CommandLineOptionConstructor.newInstance(
+							new Object[]{(String)WSDL_LOCATION_URI_OPTION_FIELD.get(String.class),
+							getStringArray(WSDLURI)}));
        
        //Async only
        if (isAyncOnly)
@@ -97,13 +95,13 @@
 							//        		  			new String[0]));
         
     	//Reflection Invocation     	   
-   		Field CODEGEN_ASYNC_ONLY_OPTION_FIELD = CommandLineOptionConstantsClass.getField("CODEGEN_ASYNC_ONLY_OPTION");
-		initargs = new Object[2];
-		initargs[0] = (String)CODEGEN_ASYNC_ONLY_OPTION_FIELD.get(stringDummyObj);
-		initargs[1] = 	new String[0];
-		
-		optionMap.put((String)CODEGEN_ASYNC_ONLY_OPTION_FIELD.get(stringDummyObj),
-							CommandLineOptionConstructor.newInstance(initargs));
+   		Field CODEGEN_ASYNC_ONLY_OPTION_FIELD = CommandLineOptionConstantsClass
+   												.getField("CODEGEN_ASYNC_ONLY_OPTION");
+		optionMap.put((String)CODEGEN_ASYNC_ONLY_OPTION_FIELD.get(
+						String.class),
+						CommandLineOptionConstructor.newInstance(
+							new Object[]{(String)CODEGEN_ASYNC_ONLY_OPTION_FIELD.get(String.class),
+							new String[0]}));
        }
        
        //sync only
@@ -113,13 +111,13 @@
 							//        		  new CommandLineOption(
 							//        		  CommandLineOptionConstants.WSDL2JavaConstants.CODEGEN_SYNC_ONLY_OPTION,
 							//        		  new String[0]));
-      		Field CODEGEN_SYNC_ONLY_OPTION_FIELD = CommandLineOptionConstantsClass.getField("CODEGEN_SYNC_ONLY_OPTION");
-    		initargs = new Object[2];
-    		initargs[0] = (String)CODEGEN_SYNC_ONLY_OPTION_FIELD.get(stringDummyObj);
-    		initargs[1] = 	new String[0];
-    		
-    		optionMap.put((String)CODEGEN_SYNC_ONLY_OPTION_FIELD.get(stringDummyObj),
-					CommandLineOptionConstructor.newInstance(initargs));
+       //Reflection Invocation
+      		Field CODEGEN_SYNC_ONLY_OPTION_FIELD = CommandLineOptionConstantsClass
+      												.getField("CODEGEN_SYNC_ONLY_OPTION");
+    		optionMap.put((String)CODEGEN_SYNC_ONLY_OPTION_FIELD.get(String.class),
+					CommandLineOptionConstructor.newInstance(
+							new Object[]{(String)CODEGEN_SYNC_ONLY_OPTION_FIELD.get(String.class),
+							new String[0]}));
        }
        //serverside
        if (isServerSide)
@@ -128,40 +126,39 @@
 							//        		  new CommandLineOption(
 							//        		  CommandLineOptionConstants.WSDL2JavaConstants.SERVER_SIDE_CODE_OPTION,
 							//        		  new String[0]));
-     		Field SERVER_SIDE_CODE_OPTION_FIELD = CommandLineOptionConstantsClass.getField("SERVER_SIDE_CODE_OPTION");
-    		initargs = new Object[2];
-    		initargs[0] = (String)SERVER_SIDE_CODE_OPTION_FIELD.get(stringDummyObj);
-    		initargs[1] = 	new String[0];
-    		
-    		optionMap.put((String)SERVER_SIDE_CODE_OPTION_FIELD.get(stringDummyObj),
-					CommandLineOptionConstructor.newInstance(initargs));
+	    //Reflection Invocation
+		Field SERVER_SIDE_CODE_OPTION_FIELD = CommandLineOptionConstantsClass
+												.getField("SERVER_SIDE_CODE_OPTION");
+		optionMap.put((String)SERVER_SIDE_CODE_OPTION_FIELD.get(String.class),
+				CommandLineOptionConstructor.newInstance(
+						new Object[]{(String)SERVER_SIDE_CODE_OPTION_FIELD.get(String.class),
+						new String[0]}));
           //server xml
           if (isServerXML)
           {
-							//             optionMap.put(CommandLineOptionConstants.WSDL2JavaConstants.GENERATE_SERVICE_DESCRIPTION_OPTION,
-							//            		 new CommandLineOption(
+          //optionMap.put(
 							//            		 CommandLineOptionConstants.WSDL2JavaConstants.GENERATE_SERVICE_DESCRIPTION_OPTION,
+          // 	new CommandLineOption(
+          // 	CommandLineOptionConstants.WSDL2JavaConstants.GENERATE_SERVICE_DESCRIPTION_OPTION,
 							//            		 new String[0]));
-       		Field GENERATE_SERVICE_DESCRIPTION_OPTION_FIELD = CommandLineOptionConstantsClass.getField("GENERATE_SERVICE_DESCRIPTION_OPTION");
-    		initargs = new Object[2];
-    		initargs[0] = (String)GENERATE_SERVICE_DESCRIPTION_OPTION_FIELD.get(stringDummyObj);
-    		initargs[1] = 	new String[0];
-    		
-    		optionMap.put((String)GENERATE_SERVICE_DESCRIPTION_OPTION_FIELD.get(stringDummyObj),
-					CommandLineOptionConstructor.newInstance(initargs));
+       		Field GENERATE_SERVICE_DESCRIPTION_OPTION_FIELD = CommandLineOptionConstantsClass
+   												.getField("GENERATE_SERVICE_DESCRIPTION_OPTION");
+    		optionMap.put((String)GENERATE_SERVICE_DESCRIPTION_OPTION_FIELD.get(String.class),
+				CommandLineOptionConstructor.newInstance(
+				   new Object[]{(String)GENERATE_SERVICE_DESCRIPTION_OPTION_FIELD.get(String.class),
+				   new String[0]}));
           }
           if (isGenerateAll){
 							//              optionMap.put(CommandLineOptionConstants.WSDL2JavaConstants.GENERATE_ALL_OPTION, 
 							//            		  new CommandLineOption(
 							//            		  CommandLineOptionConstants.WSDL2JavaConstants.GENERATE_ALL_OPTION,
 							//            		  new String[0]));
-        		Field GENERATE_ALL_OPTION_FIELD = CommandLineOptionConstantsClass.getField("GENERATE_ALL_OPTION");
-        		initargs = new Object[2];
-        		initargs[0] = (String)GENERATE_ALL_OPTION_FIELD.get(stringDummyObj);
-        		initargs[1] = 	new String[0];
-        		
-        		optionMap.put((String)GENERATE_ALL_OPTION_FIELD.get(stringDummyObj),
-    					CommandLineOptionConstructor.newInstance(initargs));
+			Field GENERATE_ALL_OPTION_FIELD = CommandLineOptionConstantsClass
+														.getField("GENERATE_ALL_OPTION");
+			optionMap.put((String)GENERATE_ALL_OPTION_FIELD.get(String.class),
+					CommandLineOptionConstructor.newInstance(
+							new Object[]{(String)GENERATE_ALL_OPTION_FIELD.get(String.class),
+							new String[0]}));
           }
        }
        //test case
@@ -171,13 +168,12 @@
 							//        		  new CommandLineOption(
 							//        		  CommandLineOptionConstants.WSDL2JavaConstants.GENERATE_TEST_CASE_OPTION,
 							//        		  new String[0]));
-    		Field GENERATE_TEST_CASE_OPTION_FIELD = CommandLineOptionConstantsClass.getField("GENERATE_TEST_CASE_OPTION");
-    		initargs = new Object[2];
-    		initargs[0] = (String)GENERATE_TEST_CASE_OPTION_FIELD.get(stringDummyObj);
-    		initargs[1] = 	new String[0];
-    		
-    		optionMap.put((String)GENERATE_TEST_CASE_OPTION_FIELD.get(stringDummyObj),
-					CommandLineOptionConstructor.newInstance(initargs));
+		Field GENERATE_TEST_CASE_OPTION_FIELD = CommandLineOptionConstantsClass
+													.getField("GENERATE_TEST_CASE_OPTION");
+		optionMap.put((String)GENERATE_TEST_CASE_OPTION_FIELD.get(String.class),
+				CommandLineOptionConstructor.newInstance(
+						new Object[]{(String)GENERATE_TEST_CASE_OPTION_FIELD.get(String.class),
+						new String[0]}));
        }
        //package name
 							//       optionMap.put(CommandLineOptionConstants.WSDL2JavaConstants.PACKAGE_OPTION,
@@ -185,47 +181,46 @@
 							//    		   CommandLineOptionConstants.WSDL2JavaConstants.PACKAGE_OPTION,
 							//    		   getStringArray(packageName)));
  		Field PACKAGE_OPTION_FIELD = CommandLineOptionConstantsClass.getField("PACKAGE_OPTION");
-		initargs = new Object[2];
-		initargs[0] = (String)PACKAGE_OPTION_FIELD.get(stringDummyObj);
-		initargs[1] = 	getStringArray(packageName);
-		optionMap.put((String)PACKAGE_OPTION_FIELD.get(stringDummyObj),
-							CommandLineOptionConstructor.newInstance(initargs));
+		optionMap.put((String)PACKAGE_OPTION_FIELD.get(String.class),
+							CommandLineOptionConstructor.newInstance(
+									new Object[]{(String)PACKAGE_OPTION_FIELD.get(String.class),
+									getStringArray(packageName)}));
 		
        //selected language
 							//       optionMap.put(CommandLineOptionConstants.WSDL2JavaConstants.STUB_LANGUAGE_OPTION,
 							//    		   new CommandLineOption(
 							//    		   CommandLineOptionConstants.WSDL2JavaConstants.STUB_LANGUAGE_OPTION,
 							//    		   getStringArray(mapLanguagesWithCombo(selectedLanguage))));
- 		Field STUB_LANGUAGE_OPTION_FIELD = CommandLineOptionConstantsClass.getField("STUB_LANGUAGE_OPTION");
-		initargs = new Object[2];
-		initargs[0] = (String)STUB_LANGUAGE_OPTION_FIELD.get(stringDummyObj);
-		initargs[1] = 	getStringArray(mapLanguagesWithCombo(selectedLanguage));
-		optionMap.put((String)STUB_LANGUAGE_OPTION_FIELD.get(stringDummyObj),
-							CommandLineOptionConstructor.newInstance(initargs));
+ 		Field STUB_LANGUAGE_OPTION_FIELD = CommandLineOptionConstantsClass
+ 															.getField("STUB_LANGUAGE_OPTION");
+		optionMap.put((String)STUB_LANGUAGE_OPTION_FIELD.get(String.class),
+							CommandLineOptionConstructor.newInstance(
+								new Object[]{(String)STUB_LANGUAGE_OPTION_FIELD.get(String.class),
+								getStringArray(mapLanguagesWithCombo(selectedLanguage))}));
 		
        //output location
 							//       optionMap.put(CommandLineOptionConstants.WSDL2JavaConstants.OUTPUT_LOCATION_OPTION,
 							//    		   new CommandLineOption(
 							//    		   CommandLineOptionConstants.WSDL2JavaConstants.OUTPUT_LOCATION_OPTION,
 							//    		   getStringArray(outputLocation)));
- 		Field OUTPUT_LOCATION_OPTION_FIELD = CommandLineOptionConstantsClass.getField("OUTPUT_LOCATION_OPTION");
-		initargs = new Object[2];
-		initargs[0] = (String)OUTPUT_LOCATION_OPTION_FIELD.get(stringDummyObj);
-		initargs[1] = 	 getStringArray(outputLocation);
-		optionMap.put((String)OUTPUT_LOCATION_OPTION_FIELD.get(stringDummyObj),
-							CommandLineOptionConstructor.newInstance(initargs));
+ 		Field OUTPUT_LOCATION_OPTION_FIELD = CommandLineOptionConstantsClass
+ 														.getField("OUTPUT_LOCATION_OPTION");
+		optionMap.put((String)OUTPUT_LOCATION_OPTION_FIELD.get(String.class),
+							CommandLineOptionConstructor.newInstance(
+								new Object[]{(String)OUTPUT_LOCATION_OPTION_FIELD.get(String.class),
+								getStringArray(outputLocation)}));
        
       //databinding
 							//       optionMap.put(CommandLineOptionConstants.WSDL2JavaConstants.DATA_BINDING_TYPE_OPTION,
 							//    		   new CommandLineOption(
 							//    		   CommandLineOptionConstants.WSDL2JavaConstants.DATA_BINDING_TYPE_OPTION,
 							//    		   getStringArray(databindingName)));
- 		Field DATA_BINDING_TYPE_OPTION_FIELD = CommandLineOptionConstantsClass.getField("DATA_BINDING_TYPE_OPTION");
-		initargs = new Object[2];
-		initargs[0] = (String)DATA_BINDING_TYPE_OPTION_FIELD.get(stringDummyObj);
-		initargs[1] = 	 getStringArray(databindingName);
-		optionMap.put((String)DATA_BINDING_TYPE_OPTION_FIELD.get(stringDummyObj),
-							CommandLineOptionConstructor.newInstance(initargs));
+ 		Field DATA_BINDING_TYPE_OPTION_FIELD = CommandLineOptionConstantsClass
+ 													.getField("DATA_BINDING_TYPE_OPTION");
+		optionMap.put((String)DATA_BINDING_TYPE_OPTION_FIELD.get(String.class),
+							CommandLineOptionConstructor.newInstance(
+							  new Object[]{(String)DATA_BINDING_TYPE_OPTION_FIELD.get(String.class),
+							  getStringArray(databindingName)}));
        
        //port name
        if (portName!=null){
@@ -233,12 +228,12 @@
 							//	    		   new CommandLineOption(
 							//	    		   CommandLineOptionConstants.WSDL2JavaConstants.PORT_NAME_OPTION,
 							//	    		   getStringArray(portName)));
-     		Field PORT_NAME_OPTION_FIELD = CommandLineOptionConstantsClass.getField("PORT_NAME_OPTION");
-    		initargs = new Object[2];
-    		initargs[0] = (String)PORT_NAME_OPTION_FIELD.get(stringDummyObj);
-    		initargs[1] = 	getStringArray(portName);
-    		optionMap.put((String)PORT_NAME_OPTION_FIELD.get(stringDummyObj),
-    							CommandLineOptionConstructor.newInstance(initargs));
+     		Field PORT_NAME_OPTION_FIELD = CommandLineOptionConstantsClass
+     														.getField("PORT_NAME_OPTION");
+    		optionMap.put((String)PORT_NAME_OPTION_FIELD.get(String.class),
+    						CommandLineOptionConstructor.newInstance(
+    								new Object[]{(String)PORT_NAME_OPTION_FIELD.get(String.class),
+    								getStringArray(portName)}));
        }
        //service name
        if (serviceName!= null){
@@ -246,12 +241,12 @@
 							//	    		   new CommandLineOption(
 							//	    		   CommandLineOptionConstants.WSDL2JavaConstants.SERVICE_NAME_OPTION,
 							//	    		   getStringArray(serviceName)));
-     		Field SERVICE_NAME_OPTION_FIELD = CommandLineOptionConstantsClass.getField("SERVICE_NAME_OPTION");
-    		initargs = new Object[2];
-    		initargs[0] = (String)SERVICE_NAME_OPTION_FIELD.get(stringDummyObj);
-    		initargs[1] = 	getStringArray(serviceName);
-    		optionMap.put((String)SERVICE_NAME_OPTION_FIELD.get(stringDummyObj),
-    							CommandLineOptionConstructor.newInstance(initargs));
+     		Field SERVICE_NAME_OPTION_FIELD = CommandLineOptionConstantsClass
+     													.getField("SERVICE_NAME_OPTION");
+    		optionMap.put((String)SERVICE_NAME_OPTION_FIELD.get(String.class),
+    					CommandLineOptionConstructor.newInstance(
+    							new Object[]{(String)SERVICE_NAME_OPTION_FIELD.get(String.class),
+    									getStringArray(serviceName)}));
        }
        //ns2pkg mapping
        if (namespace2packageList!= null){
@@ -259,12 +254,12 @@
 							//	    		   new CommandLineOption(
 							//	    		   CommandLineOptionConstants.WSDL2JavaConstants.NAME_SPACE_TO_PACKAGE_OPTION
 							//	    		   , getStringArray(namespace2packageList)));
-     		Field NAME_SPACE_TO_PACKAGE_OPTION_FIELD = CommandLineOptionConstantsClass.getField("NAME_SPACE_TO_PACKAGE_OPTION");
-    		initargs = new Object[2];
-    		initargs[0] = (String)NAME_SPACE_TO_PACKAGE_OPTION_FIELD.get(stringDummyObj);
-    		initargs[1] = 	getStringArray(namespace2packageList);
-    		optionMap.put((String)NAME_SPACE_TO_PACKAGE_OPTION_FIELD.get(stringDummyObj),
-    							CommandLineOptionConstructor.newInstance(initargs));
+     		Field NAME_SPACE_TO_PACKAGE_OPTION_FIELD = CommandLineOptionConstantsClass
+     											.getField("NAME_SPACE_TO_PACKAGE_OPTION");
+    		optionMap.put((String)NAME_SPACE_TO_PACKAGE_OPTION_FIELD.get(String.class),
+    				CommandLineOptionConstructor.newInstance(
+    					new Object[]{(String)NAME_SPACE_TO_PACKAGE_OPTION_FIELD.get(String.class),
+    					getStringArray(namespace2packageList)}));
        }
        
        //server side interface  mapping
@@ -273,12 +268,12 @@
 							//	    		   new CommandLineOption(
 							//	    		   CommandLineOptionConstants.WSDL2JavaConstants.SERVER_SIDE_INTERFACE_OPTION,
 							//	    		   new String[0]));
-     		Field SERVER_SIDE_INTERFACE_OPTION_FIELD = CommandLineOptionConstantsClass.getField("SERVER_SIDE_INTERFACE_OPTION");
-    		initargs = new Object[2];
-    		initargs[0] = (String)SERVER_SIDE_INTERFACE_OPTION_FIELD.get(stringDummyObj);
-    		initargs[1] = 	new String[0];
-    		optionMap.put((String)SERVER_SIDE_INTERFACE_OPTION_FIELD.get(stringDummyObj),
-    							CommandLineOptionConstructor.newInstance(initargs));
+     		Field SERVER_SIDE_INTERFACE_OPTION_FIELD = CommandLineOptionConstantsClass
+     											.getField("SERVER_SIDE_INTERFACE_OPTION");
+    		optionMap.put((String)SERVER_SIDE_INTERFACE_OPTION_FIELD.get(String.class),
+    				CommandLineOptionConstructor.newInstance(
+    					new Object[]{(String)SERVER_SIDE_INTERFACE_OPTION_FIELD.get(String.class),
+    					new String[0]}));
        }
        
      }catch(Exception e){
@@ -345,36 +340,32 @@
 			//builder class or through a builder Abstract Factor or Abstract factory methods.
 			
 			
-							//			WSDL11ToAxisServiceBuilder builder = new WSDL11ToAxisServiceBuilder(url.openConnection()
-							//																				.getInputStream());
+			//WSDL11ToAxisServiceBuilder builder = new WSDL11ToAxisServiceBuilder(
+			//											url.openConnection().getInputStream());
 							//			builder.setBaseUri(getBaseUri(wsdlURI));
 							//			return builder.populateService();
 			
 			//Reflection invocation
-			//Class WSDL11ToAxisServiceBuilderClass = ClassLoadingUtil.loadClassFromAxis2LibPath(projectName,"org.apache.axis2.description.WSDL11ToAxisServiceBuilder");
-			Class WSDL11ToAxisServiceBuilderClass = ClassLoadingUtil.loadClassFromAntClassLoader("org.apache.axis2.description.WSDL11ToAxisServiceBuilder");
+			//Class WSDL11ToAxisServiceBuilderClass = ClassLoadingUtil.loadClassFromAxis2LibPath(
+			//                projectName,
+			//                "org.apache.axis2.description.WSDL11ToAxisServiceBuilder");
 			
-			Class[] parameterTypes = new Class[1];
-			//parameterTypes[0] = url.openConnection().getInputStream().getClass();
-			parameterTypes[0] =InputStream.class;
-			//Constructor WSDL11ToAxisServiceBuilderConstructor = WSDL11ToAxisServiceBuilderClass.getConstructor(parameterTypes);
-			Object[] initargs = new Object[1];
-			initargs[0] = url.openConnection().getInputStream();
-			//Object WSDL11ToAxisServiceBuilderInstance = WSDL11ToAxisServiceBuilderConstructor.newInstance(initargs);
-			//Object WSDL11ToAxisServiceBuilderInstance = ClassLoadingUtil.getInstanceFromAxis2LibPath("t/TestThis","org.apache.axis2.description.WSDL11ToAxisServiceBuilder",parameterTypes,initargs);
+			Class WSDL11ToAxisServiceBuilderClass = ClassLoadingUtil.loadClassFromAntClassLoader(
+					"org.apache.axis2.description.WSDL11ToAxisServiceBuilder");
+			Constructor constructor = WSDL11ToAxisServiceBuilderClass.getConstructor(
+					new Class[]{InputStream.class});
+			Object WSDL11ToAxisServiceBuilderInstance = constructor.newInstance(
+					new Object[]{url.openConnection().getInputStream()});
+			Method setBaseUriMethod = WSDL11ToAxisServiceBuilderClass.getMethod(
+					"setBaseUri", 
+					new Class[]{String.class});
+			setBaseUriMethod.invoke(
+					WSDL11ToAxisServiceBuilderInstance, 
+					new Object[]{wsdlURI});
 			
-			Constructor constructor = WSDL11ToAxisServiceBuilderClass.getConstructor(parameterTypes);
-			Object WSDL11ToAxisServiceBuilderInstance = constructor.newInstance(initargs);
-			
-			Class[] parameterTypes1 = new Class[1];
-			parameterTypes1[0] = String.class;
-			Method setBaseUriMethod = WSDL11ToAxisServiceBuilderClass.getMethod("setBaseUri", parameterTypes1);
-			
-			Object[] args = new Object[1];
-			args[0]= wsdlURI;
-			setBaseUriMethod.invoke(WSDL11ToAxisServiceBuilderInstance, args);
-			
-			Method populateServiceMethod = WSDL11ToAxisServiceBuilderClass.getMethod("populateService", null);
+			Method populateServiceMethod = WSDL11ToAxisServiceBuilderClass.getMethod(
+					"populateService", 
+					null);
 			return populateServiceMethod.invoke(WSDL11ToAxisServiceBuilderInstance, null);
 			
 			//return this import org.apache.axis2.description.AxisService;
diff --git a/bundles/org.eclipse.jst.ws.axis2.consumption.core/src/org/eclipse/jst/ws/axis2/consumption/core/utils/WSDLPropertyReader.java b/bundles/org.eclipse.jst.ws.axis2.consumption.core/src/org/eclipse/jst/ws/axis2/consumption/core/utils/WSDLPropertyReader.java
index 60b12da..1735194 100644
--- a/bundles/org.eclipse.jst.ws.axis2.consumption.core/src/org/eclipse/jst/ws/axis2/consumption/core/utils/WSDLPropertyReader.java
+++ b/bundles/org.eclipse.jst.ws.axis2.consumption.core/src/org/eclipse/jst/ws/axis2/consumption/core/utils/WSDLPropertyReader.java
@@ -11,6 +11,7 @@
  * -------- -------- -----------------------------------------------------------
  * 20070118   168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2 
  * 										  runtime to the framework for 168762
+ * 20070426   183046 sandakith@wso2.com - Lahiru Sandakith
  *******************************************************************************/
 
 package org.eclipse.jst.ws.axis2.consumption.core.utils;
@@ -50,19 +51,18 @@
 		//		WSDLReader reader = WSDLFactory.newInstance().newWSDLReader();
 		//		wsdlDefinition = reader.readWSDL(filepath); 
 
-		Class WSDLFactoryClass = ClassLoadingUtil.loadClassFromAntClassLoader("javax.wsdl.factory.WSDLFactory");
+		Class WSDLFactoryClass = ClassLoadingUtil
+				.loadClassFromAntClassLoader("javax.wsdl.factory.WSDLFactory");
 		Method newInstanceMethod = WSDLFactoryClass.getMethod("newInstance", null);
 		Object WSDLFactoryObject = newInstanceMethod.invoke(null, null);
-		Class WSDLFactoryImplClass = ClassLoadingUtil.loadClassFromAntClassLoader(WSDLFactoryObject.getClass().getName());
+		Class WSDLFactoryImplClass = ClassLoadingUtil
+				.loadClassFromAntClassLoader(WSDLFactoryObject.getClass().getName());
 		Method newWSDLReaderMethod = WSDLFactoryImplClass.getMethod("newWSDLReader", null);
 		Object WSDLReaderObject = newWSDLReaderMethod.invoke(WSDLFactoryObject, null);
-		Class WSDLReaderClass = ClassLoadingUtil.loadClassFromAntClassLoader(WSDLReaderObject.getClass().getName());
-		Class[] parameterTypes1 = new Class[1];
-		parameterTypes1[0] = String.class;
-		Method readWSDLMethod = WSDLReaderClass.getMethod("readWSDL", parameterTypes1);
-		Object[] args = new Object[1];
-		args[0]= filepath;
-		DefinitionInstance = readWSDLMethod.invoke(WSDLReaderObject, args);
+		Class WSDLReaderClass = ClassLoadingUtil
+				.loadClassFromAntClassLoader(WSDLReaderObject.getClass().getName());
+		Method readWSDLMethod = WSDLReaderClass.getMethod("readWSDL", new Class[]{String.class});
+		DefinitionInstance = readWSDLMethod.invoke(WSDLReaderObject, new Object[]{filepath});
 
 	}
 
@@ -99,13 +99,11 @@
 		try{
 			Method getTargetNamespaceMethod = DefinitionClass.getMethod("getTargetNamespace", null);
 			String packageName = (String)getTargetNamespaceMethod.invoke(DefinitionInstance, null);
-			Class URLProcessorClass = ClassLoadingUtil.loadClassFromAntClassLoader("org.apache.axis2.util.URLProcessor");
-			Class[] parameterTypes1 = new Class[1];
-			parameterTypes1[0] = String.class;
-			Method makePackageNameMethod = URLProcessorClass.getMethod("makePackageName", parameterTypes1);
-			Object[] args = new Object[1];
-			args[0]= packageName;
-			returnString = (String)makePackageNameMethod.invoke(null, args);
+			Class URLProcessorClass = ClassLoadingUtil
+					.loadClassFromAntClassLoader("org.apache.axis2.util.URLProcessor");
+			Method makePackageNameMethod = URLProcessorClass
+					.getMethod("makePackageName", new Class[]{String.class});
+			returnString = (String)makePackageNameMethod.invoke(null, new Object[]{packageName});
 		} catch (SecurityException e) {
 			e.printStackTrace();
 		} catch (NoSuchMethodException e) {
@@ -141,7 +139,8 @@
 			if(serviceMap!=null && !serviceMap.isEmpty()){
 				Iterator serviceIterator = serviceMap.values().iterator();
 				while(serviceIterator.hasNext()){
-					ServiceClass = ClassLoadingUtil.loadClassFromAntClassLoader("javax.wsdl.Service");
+					ServiceClass = ClassLoadingUtil
+							.loadClassFromAntClassLoader("javax.wsdl.Service");
 					Method getQNameMethod = ServiceClass.getMethod("getQName", null);
 					serviceInstance = (Object)serviceIterator.next();
 					returnList.add(getQNameMethod.invoke(serviceInstance, null));   
@@ -184,12 +183,10 @@
 
 		List returnList = new ArrayList();
 		try{	
-			Class[] parameterTypes = new Class[1];
-			parameterTypes[0] = serviceName.getClass();
-			Method getServiceMethod = DefinitionClass.getMethod("getService", parameterTypes);
-			Object[] args = new Object[1];
-			args[0]= serviceName;
-			Object serviceInstance = getServiceMethod.invoke(DefinitionInstance, args);
+			Method getServiceMethod = DefinitionClass
+						.getMethod("getService", new Class[]{serviceName.getClass()});
+			Object serviceInstance = getServiceMethod
+						.invoke(DefinitionInstance, new Object[]{serviceName});
 			Object portInstance = null;
 			if(serviceInstance!=null){
 				Method getPortsMethod = ServiceClass.getMethod("getPorts", null);
@@ -198,7 +195,8 @@
 					Iterator portIterator = portMap.values().iterator();
 					while(portIterator.hasNext()){
 						portInstance = (Object)portIterator.next();
-						Class PortClass = ClassLoadingUtil.loadClassFromAntClassLoader("javax.wsdl.Port");
+						Class PortClass = ClassLoadingUtil
+								.loadClassFromAntClassLoader("javax.wsdl.Port");
 						Method getNameMethod = PortClass.getMethod("getName", null);
 						returnList.add(getNameMethod.invoke(portInstance,null)); 
 					}
diff --git a/bundles/org.eclipse.jst.ws.axis2.consumption.ui/src/org/eclipse/jst/ws/internal/axis2/consumption/ui/widgets/Axis2ProxyWidget.java b/bundles/org.eclipse.jst.ws.axis2.consumption.ui/src/org/eclipse/jst/ws/internal/axis2/consumption/ui/widgets/Axis2ProxyWidget.java
index 636c518..8d4c9bc 100644
--- a/bundles/org.eclipse.jst.ws.axis2.consumption.ui/src/org/eclipse/jst/ws/internal/axis2/consumption/ui/widgets/Axis2ProxyWidget.java
+++ b/bundles/org.eclipse.jst.ws.axis2.consumption.ui/src/org/eclipse/jst/ws/internal/axis2/consumption/ui/widgets/Axis2ProxyWidget.java
@@ -11,6 +11,7 @@
  * -------- -------- -----------------------------------------------------------
  * 20070130   168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2 
  * 										  runtime to the framework for 168762
+ * 20070426   183046 sandakith@wso2.com - Lahiru Sandakith
  *******************************************************************************/
 package org.eclipse.jst.ws.internal.axis2.consumption.ui.widgets;
 
@@ -22,6 +23,7 @@
 
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
+import org.eclipse.jst.ws.axis2.core.plugin.data.ServerModel;
 import org.eclipse.jst.ws.axis2.consumption.core.data.DataModel;
 import org.eclipse.jst.ws.axis2.consumption.core.messages.Axis2ConsumptionUIMessages;
 import org.eclipse.jst.ws.axis2.consumption.core.utils.WSDLPropertyReader;
@@ -180,11 +182,16 @@
 		syncAndAsyncRadioButton.setLayoutData(gd);
 		syncAndAsyncRadioButton.setText(Axis2ConsumptionUIMessages.LABEL_SYNC_AND_ASYNC);
 		syncAndAsyncRadioButton.setVisible(true);
-		syncAndAsyncRadioButton.setSelection(true);
+		syncAndAsyncRadioButton.setSelection(
+				((ServerModel.isAsync() || ServerModel.isSync())==false)
+				?true
+				:(ServerModel.isAsync() && ServerModel.isSync()));
 		syncAndAsyncRadioButton.addSelectionListener(new SelectionListener() {
 			public void widgetSelected(SelectionEvent e) {
-				model.setSync(syncOnlyRadioButton.getSelection());
-				model.setSync(asyncOnlyRadioButton.getSelection());
+				//Because default setting in axis2 to be both false in thie case
+				//File a JIRA to fix this.
+				model.setSync(!syncAndAsyncRadioButton.getSelection());
+				model.setASync(!syncAndAsyncRadioButton.getSelection());
 			}
 			public void widgetDefaultSelected(SelectionEvent e) {
 			}
@@ -196,10 +203,11 @@
 		syncOnlyRadioButton = new Button(mainComp, SWT.RADIO);
 		syncOnlyRadioButton.setLayoutData(gd);
 		syncOnlyRadioButton.setText(Axis2ConsumptionUIMessages.LABEL_SYNC);
-		syncOnlyRadioButton.setSelection(false);
+		syncOnlyRadioButton.setSelection(ServerModel.isSync() && !ServerModel.isAsync());
 		syncOnlyRadioButton.addSelectionListener(new SelectionListener() {
 			public void widgetSelected(SelectionEvent e) {
 				model.setSync(syncOnlyRadioButton.getSelection());
+				model.setASync(!syncOnlyRadioButton.getSelection());
 			}
 			public void widgetDefaultSelected(SelectionEvent e) {
 			}
@@ -211,15 +219,19 @@
 		asyncOnlyRadioButton.setLayoutData(gd);
 		asyncOnlyRadioButton
 				.setText(Axis2ConsumptionUIMessages.LABEL_ASYNC);
-		asyncOnlyRadioButton.setSelection(false);
+		asyncOnlyRadioButton.setSelection(ServerModel.isAsync() && !ServerModel.isSync());
 		asyncOnlyRadioButton.addSelectionListener(new SelectionListener() {
 			public void widgetSelected(SelectionEvent e) {
-				model.setSync(asyncOnlyRadioButton.getSelection());
+				model.setASync(asyncOnlyRadioButton.getSelection());
+				model.setSync(!asyncOnlyRadioButton.getSelection());
 			}
 			public void widgetDefaultSelected(SelectionEvent e) {
 			}
 		});
 		
+		//Set the sync async to default 
+		model.setSync(ServerModel.isSync());
+		model.setASync(ServerModel.isAsync());
 		
 		//filling label 
 		gd = new GridData(GridData.FILL_HORIZONTAL);
@@ -232,14 +244,13 @@
 		gd.horizontalSpan = 3;
 		testCaseCheckBoxButton = new Button(mainComp, SWT.CHECK);
 		testCaseCheckBoxButton.setLayoutData(gd);
-		testCaseCheckBoxButton
-		.setText(Axis2ConsumptionUIMessages.LABEL_GENERATE_TESTCASE_CAPTION);
-		model.setTestCaseCheck(false);
+		testCaseCheckBoxButton.setText(Axis2ConsumptionUIMessages.LABEL_GENERATE_TESTCASE_CAPTION);
+		testCaseCheckBoxButton.setSelection(ServerModel.isClientTestcase());
+		model.setTestCaseCheck(ServerModel.isClientTestcase());
 		testCaseCheckBoxButton.addSelectionListener(new SelectionListener() {
 			public void widgetSelected(SelectionEvent e) {
-				model.setTestCaseCheck(true);
+				model.setTestCaseCheck(testCaseCheckBoxButton.getSelection());
 			}
-
 			public void widgetDefaultSelected(SelectionEvent e) {
 			}
 		});
@@ -250,11 +261,11 @@
 		gd = new GridData(GridData.FILL_HORIZONTAL);
 		gd.horizontalSpan = 3;
 		generateAllCheckBoxButton.setLayoutData(gd);
-		generateAllCheckBoxButton.setSelection(false);
+		generateAllCheckBoxButton.setSelection(ServerModel.isClientGenerateAll());
 		generateAllCheckBoxButton.setText(Axis2ConsumptionUIMessages.LABEL_GENERATE_ALL);
 		generateAllCheckBoxButton.addSelectionListener(new SelectionListener() {
 			public void widgetSelected(SelectionEvent e) {
-				model.setGenerateAllCheck(true);
+				model.setGenerateAllCheck(generateAllCheckBoxButton.getSelection());
 			}
 			public void widgetDefaultSelected(SelectionEvent e) {
 			}
@@ -419,11 +430,11 @@
 		model.setPortName(portNameCombo.getText());
 		model.setPackageText(packageText.getText());
 		model.setDatabindingType(databindingTypeCombo.getText());
-		model.setASync(asyncOnlyRadioButton.getSelection());
-		model.setSync(syncOnlyRadioButton.getSelection());
+		//model.setASync(asyncOnlyRadioButton.getSelection());
+		//model.setSync(syncOnlyRadioButton.getSelection());
 		if (syncAndAsyncRadioButton.getSelection()){
-			model.setASync(true);
-			model.setSync(true);
+			model.setASync(!syncAndAsyncRadioButton.getSelection());
+			model.setSync(!syncAndAsyncRadioButton.getSelection());
 		}
 		model.setGenerateAllCheck(generateAllCheckBoxButton.getSelection());
 		model.setTestCaseCheck(testCaseCheckBoxButton.getSelection());
@@ -462,11 +473,11 @@
 					for (int i = 0; i < serviceQNameList.size(); i++) {
 						// add the local part of the
 						Object serviceQnameInstance = serviceQNameList.get(0);
-						Class QNameClass = ClassLoadingUtil.loadClassFromAntClassLoader("javax.xml.namespace.QName");
-						
+						Class QNameClass = ClassLoadingUtil
+								.loadClassFromAntClassLoader("javax.xml.namespace.QName");
 						Method GetLocalPartMethod  = QNameClass.getMethod("getLocalPart", null);
-						
-						Object resultLocalPart = GetLocalPartMethod.invoke(serviceQnameInstance, null);
+						Object resultLocalPart = GetLocalPartMethod
+										.invoke(serviceQnameInstance, null);
 						serviceNameCombo.add(resultLocalPart.toString());
 					}
 					;
@@ -541,18 +552,15 @@
 	 * get the package derived by  Namespace
 	 */
 	public String getPackageFromNamespace(String namespace){
-		// Use reflection to invoke org.apache.axis2.util.URLProcessor makePackageName(namespace) statically
+		// Use reflection to invoke org.apache.axis2.util.URLProcessor 
+		// makePackageName(namespace) statically
 		Object stringReturn = null;
 		try {
-			Class URLProcessorClass = ClassLoadingUtil.loadClassFromAntClassLoader("org.apache.axis2.util.URLProcessor");
-
-			Class parameterTypes[] = new Class[1];
-			parameterTypes[0] = String.class;
-			Method makePackageNameMethod = URLProcessorClass.getMethod("makePackageName", parameterTypes);
-			
-			Object args[] = new Object[1];
-			args[0] = namespace;
-			stringReturn = makePackageNameMethod.invoke(null, args);
+			Class URLProcessorClass = ClassLoadingUtil
+					.loadClassFromAntClassLoader("org.apache.axis2.util.URLProcessor");
+			Method makePackageNameMethod = URLProcessorClass
+					.getMethod("makePackageName", new Class[]{String.class});
+			stringReturn = makePackageNameMethod.invoke(null, new Object[]{namespace});
 		} catch (SecurityException e) {
 			e.printStackTrace();
 		} catch (NoSuchMethodException e) {
diff --git a/bundles/org.eclipse.jst.ws.axis2.consumption.ui/src/org/eclipse/jst/ws/internal/axis2/consumption/ui/wizard/client/WebServiceClientAxis2Type.java b/bundles/org.eclipse.jst.ws.axis2.consumption.ui/src/org/eclipse/jst/ws/internal/axis2/consumption/ui/wizard/client/WebServiceClientAxis2Type.java
index d3e2927..f0cff69 100644
--- a/bundles/org.eclipse.jst.ws.axis2.consumption.ui/src/org/eclipse/jst/ws/internal/axis2/consumption/ui/wizard/client/WebServiceClientAxis2Type.java
+++ b/bundles/org.eclipse.jst.ws.axis2.consumption.ui/src/org/eclipse/jst/ws/internal/axis2/consumption/ui/wizard/client/WebServiceClientAxis2Type.java
@@ -11,6 +11,7 @@
  * -------- -------- -----------------------------------------------------------
  * 20070130   168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2 
  * 										  runtime to the framework for 168762
+ * 20070426   183046 sandakith@wso2.com - Lahiru Sandakith
  *******************************************************************************/
 package org.eclipse.jst.ws.internal.axis2.consumption.ui.wizard.client;
 
@@ -37,16 +38,19 @@
 
 	
 	  /* (non-Javadoc)
-	   * @see org.eclipse.wst.command.env.ui.widgets.CommandWidgetBinding#registerDataMappings(org.eclipse.wst.command.internal.env.core.data.DataMappingRegistry)
+	   * @see org.eclipse.wst.command.env.ui.widgets.CommandWidgetBinding#registerDataMappings
+	   * (org.eclipse.wst.command.internal.env.core.data.DataMappingRegistry)
 	   */
 	  public void registerDataMappings(DataMappingRegistry dataRegistry) {
 	  	// AxisClientDefaultingCommand  	
-	    // dataRegistry.addMapping( Axis2ClientDefaultingCommand.class, "CustomizeClientMappings", Axis2ProxyWidget.class );
+	    // dataRegistry.addMapping( Axis2ClientDefaultingCommand.class, 
+		// "CustomizeClientMappings", Axis2ProxyWidget.class );
 	    
 	  }
 	  
 	  /* (non-Javadoc)
-	   * @see org.eclipse.wst.command.env.ui.widgets.CommandWidgetBinding#registerWidgetMappings(org.eclipse.wst.command.env.ui.widgets.WidgetRegistry)
+	   * @see org.eclipse.wst.command.env.ui.widgets.CommandWidgetBinding#registerWidgetMappings
+	   * (org.eclipse.wst.command.env.ui.widgets.WidgetRegistry)
 	   */
 	  public void registerWidgetMappings(WidgetRegistry widgetRegistry) {
 	   
@@ -74,7 +78,8 @@
 	  }
 	  
 	  /* (non-Javadoc)
-	   * @see org.eclipse.wst.command.internal.env.core.fragment.CommandFragmentFactoryFactory#create()
+	   * @see org.eclipse.wst.command.internal.env.core.fragment
+	   * .CommandFragmentFactoryFactory#create()
 	   */
 	  public CommandFragmentFactory create() 
 	  {
@@ -88,7 +93,8 @@
 	           };
 	  }
 	  /* (non-Javadoc)
-	   * @see org.eclipse.wst.command.env.ui.widgets.CommandWidgetBinding#registerCanFinish(org.eclipse.wst.command.env.ui.widgets.CanFinishRegistry)
+	   * @see org.eclipse.wst.command.env.ui.widgets.CommandWidgetBinding#registerCanFinish
+	   * (org.eclipse.wst.command.env.ui.widgets.CanFinishRegistry)
 	   */
 	  public void registerCanFinish(CanFinishRegistry canFinishRegistry){
 	  }
diff --git a/bundles/org.eclipse.jst.ws.axis2.consumption.ui/src/org/eclipse/jst/ws/internal/axis2/consumption/ui/wsrt/Axis2ClientConfigWidgetFactory.java b/bundles/org.eclipse.jst.ws.axis2.consumption.ui/src/org/eclipse/jst/ws/internal/axis2/consumption/ui/wsrt/Axis2ClientConfigWidgetFactory.java
index 326e941..223497b 100644
--- a/bundles/org.eclipse.jst.ws.axis2.consumption.ui/src/org/eclipse/jst/ws/internal/axis2/consumption/ui/wsrt/Axis2ClientConfigWidgetFactory.java
+++ b/bundles/org.eclipse.jst.ws.axis2.consumption.ui/src/org/eclipse/jst/ws/internal/axis2/consumption/ui/wsrt/Axis2ClientConfigWidgetFactory.java
@@ -11,6 +11,7 @@
  * -------- -------- -----------------------------------------------------------
  * 20070230   168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2 
  * 										  runtime to the framework for 168762
+ * 20070426   183046 sandakith@wso2.com - Lahiru Sandakith
  *******************************************************************************/
 package org.eclipse.jst.ws.internal.axis2.consumption.ui.wsrt;
 
@@ -43,7 +44,9 @@
 	}
 
 	public INamedWidgetContributor getNextNamedWidget( INamedWidgetContributor widgetContributor) {
-	  return widgetContributor == proxyConfigWidget && proxyWidget.isGenProxy() ? mappingsWidget : null;
+	  return widgetContributor == proxyConfigWidget && proxyWidget.isGenProxy() 
+	  								? mappingsWidget 
+	  								: null;
 	}
 	
 	public void registerDataMappings(DataMappingRegistry dataRegistry) {
@@ -65,7 +68,8 @@
 		  wsClientAxis2Type = new WebServiceClientAxis2Type(model);
 		  adapter = new WidgetBindingToWidgetFactoryAdapter(wsClientAxis2Type );
 		  proxyConfigWidget = adapter.getWidget( "AxisClientStart" );
-		  proxyWidget       = (Axis2ProxyWidget)proxyConfigWidget.getWidgetContributorFactory().create();
+		  proxyWidget       = (Axis2ProxyWidget)proxyConfigWidget
+		  				.getWidgetContributorFactory().create();
 		  mappingsWidget   = adapter.getWidget( "AxisClientBeanMapping" );
 		  adapter.registerDataMappings( dataRegistry );
 
diff --git a/bundles/org.eclipse.jst.ws.axis2.core/build.properties b/bundles/org.eclipse.jst.ws.axis2.core/build.properties
index 0dc34f7..21048dc 100644
--- a/bundles/org.eclipse.jst.ws.axis2.core/build.properties
+++ b/bundles/org.eclipse.jst.ws.axis2.core/build.properties
@@ -1,6 +1,20 @@
+###############################################################################
+# Copyright (c) 2007 WSO2 Inc. and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# WSO2 Inc. - initial API and implementation
+# yyyymmdd bug      Email and other contact information
+# -------- -------- -----------------------------------------------------------
+# 20070426   183046 sandakith@wso2.com - Lahiru Sandakith
+###############################################################################
 source.. = src/
 output.. = bin/
 bin.includes = META-INF/,\
                .,\
                plugin.xml,\
-               plugin.properties
+               plugin.properties,\
+               icons/
diff --git a/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/core/plugin/WebServiceAxis2CorePlugin.java b/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/core/plugin/WebServiceAxis2CorePlugin.java
index 5928a6a..5c77ed7 100644
--- a/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/core/plugin/WebServiceAxis2CorePlugin.java
+++ b/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/core/plugin/WebServiceAxis2CorePlugin.java
@@ -11,6 +11,7 @@
  * -------- -------- -----------------------------------------------------------
  * 20070130   168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2 
  * 										  runtime to the framework for 168762
+ * 20070426   183046 sandakith@wso2.com - Lahiru Sandakith
  *******************************************************************************/
 package org.eclipse.jst.ws.axis2.core.plugin;
 
@@ -23,7 +24,7 @@
 public class WebServiceAxis2CorePlugin extends Plugin {
 
 	// The plug-in ID
-	public static final String PLUGIN_ID = "org.eclipse.jst.ws.axis2.core.plugin";
+	public static final String PLUGIN_ID = "org.eclipse.jst.ws.axis2.core";
 
 	// The shared instance
 	private static WebServiceAxis2CorePlugin plugin;
diff --git a/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/core/plugin/data/ServerModel.java b/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/core/plugin/data/ServerModel.java
index f69c821..81e2e4c 100644
--- a/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/core/plugin/data/ServerModel.java
+++ b/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/core/plugin/data/ServerModel.java
@@ -11,12 +11,36 @@
  * -------- -------- -----------------------------------------------------------
  * 20070213   168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse 
  * 										the Axis2 runtime to the framework for 168762
+ * 20070420   168762 sandakith@wso2.com - Lahiru Sandakith, Include the preference 
+ * 										persist model parameters
+ * 20070426   183046 sandakith@wso2.com - Lahiru Sandakith
  *******************************************************************************/
 package org.eclipse.jst.ws.axis2.core.plugin.data;
 
+import org.eclipse.jst.ws.axis2.core.plugin.messages.Axis2CoreUIMessages;
+
 public class ServerModel {
 	
+	//Axis2 Runtime
 	private static String axis2ServerPath;
+	private static boolean axis2ServerPathRepresentsWar;
+	
+	//Axis2 Preferences
+	//Service Codegen Options
+	private static String serviceDatabinding = Axis2CoreUIMessages.ADB;
+	private static boolean serviceTestcase = false;
+	private static boolean serviceInterfaceSkeleton = false;
+	private static boolean serviceGenerateAll = false;
+	
+	//Client Codegen Options
+	private static boolean sync = false;
+	private static boolean async = false;
+	private static String cleintDatabinding = Axis2CoreUIMessages.ADB;
+	private static boolean clientTestcase = false;
+	private static boolean clientGenerateAll = false;
+	
+	//Service Archive Options
+	private static String aarExtention = Axis2CoreUIMessages.AAR;
 
 	public static String getAxis2ServerPath() {
 		return axis2ServerPath;
@@ -26,4 +50,92 @@
 		axis2ServerPath = axis2ServerPathParam;
 	}
 
+	public static boolean isAxis2ServerPathRepresentsWar() {
+		return axis2ServerPathRepresentsWar;
+}
+	public static void setAxis2ServerPathRepresentsWar(
+			boolean axis2ServerPathRepresentsWar) {
+		ServerModel.axis2ServerPathRepresentsWar = axis2ServerPathRepresentsWar;
+	}
+
+	public static String getAarExtention() {
+		return aarExtention;
+	}
+
+	public static void setAarExtention(String aarExtention) {
+		ServerModel.aarExtention = aarExtention;
+	}
+
+	public static boolean isAsync() {
+		return async;
+	}
+
+	public static void setAsync(boolean async) {
+		ServerModel.async = async;
+	}
+
+	public static String getCleintDatabinding() {
+		return cleintDatabinding;
+	}
+
+	public static void setCleintDatabinding(String cleintDatabinding) {
+		ServerModel.cleintDatabinding = cleintDatabinding;
+	}
+
+	public static boolean isClientGenerateAll() {
+		return clientGenerateAll;
+	}
+
+	public static void setClientGenerateAll(boolean clientGenerateAll) {
+		ServerModel.clientGenerateAll = clientGenerateAll;
+	}
+
+	public static boolean isClientTestcase() {
+		return clientTestcase;
+	}
+
+	public static void setClientTestcase(boolean clientTestcase) {
+		ServerModel.clientTestcase = clientTestcase;
+	}
+
+	public static String getServiceDatabinding() {
+		return serviceDatabinding;
+	}
+
+	public static void setServiceDatabinding(String serviceDatabinding) {
+		ServerModel.serviceDatabinding = serviceDatabinding;
+	}
+
+	public static boolean isServiceGenerateAll() {
+		return serviceGenerateAll;
+	}
+
+	public static void setServiceGenerateAll(boolean serviceGenerateAll) {
+		ServerModel.serviceGenerateAll = serviceGenerateAll;
+	}
+
+	public static boolean isServiceInterfaceSkeleton() {
+		return serviceInterfaceSkeleton;
+	}
+
+	public static void setServiceInterfaceSkeleton(boolean serviceInterfaceSkeleton) {
+		ServerModel.serviceInterfaceSkeleton = serviceInterfaceSkeleton;
+	}
+
+	public static boolean isServiceTestcase() {
+		return serviceTestcase;
+	}
+
+	public static void setServiceTestcase(boolean serviceTestcase) {
+		ServerModel.serviceTestcase = serviceTestcase;
+	}
+
+	public static boolean isSync() {
+		return sync;
+	}
+
+	public static void setSync(boolean sync) {
+		ServerModel.sync = sync;
+	}
+
 }
diff --git a/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/core/plugin/messages/Axis2CoreUI.properties b/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/core/plugin/messages/Axis2CoreUI.properties
index 885221b..d88bea1 100644
--- a/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/core/plugin/messages/Axis2CoreUI.properties
+++ b/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/core/plugin/messages/Axis2CoreUI.properties
@@ -11,6 +11,7 @@
 # -------- -------- -----------------------------------------------------------
 # 20070110   168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2 
 #										 runtime to the framework for 168762
+# 20070426   183046 sandakith@wso2.com - Lahiru Sandakith
 ###############################################################################
 
 LABEL_BROUSE=Browse
@@ -32,6 +33,7 @@
 
 DIR_WEBCONTENT=WebContent
 DIR_TEMPWAR=tempwar
+DIR_EXPLOADED_TEMPWAR=exploadedwar
 DIR_DIST=dist
 DIR_WEB_INF=WEB-INF
 DIR_LIB=lib
@@ -45,6 +47,9 @@
 AXIS2_LOCATION=Axis2 Runtime
 AXIS2_RUNTIME=Axis2 Runtime
 AXIS2_PREFERENCES=Axis2 Preferences
+AXIS2_RUNTIME_TOOLTIP=Browse and select Axis2 Binary distribution folder or folder contains Axis2 war distribution
+AXIS2_PREFERENCES_TOOLTIP=Please select the default preferences for Axis2 Runtime
+LABEL_AXIS2_RUNTIME_NOT_EXIT=Browse and select location of the Axis2 binary distribution or\n the folder which contains the Axis2 war distribution. 
 ERROR_INVALID_AXIS2_SERVER_LOCATION=Invalid Axis2 Webapp location
 TEMP_AXIS2_FACET_DIR=org.apache.axis2.facet
 DIR_DOT_METADATA=.metadata
diff --git a/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/core/plugin/messages/Axis2CoreUIMessages.java b/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/core/plugin/messages/Axis2CoreUIMessages.java
index 5b23a86..06dbba6 100644
--- a/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/core/plugin/messages/Axis2CoreUIMessages.java
+++ b/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/core/plugin/messages/Axis2CoreUIMessages.java
@@ -11,6 +11,7 @@
  * -------- -------- -----------------------------------------------------------
  * 20070110   168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse 
  * 										the Axis2 runtime to the framework for 168762
+ * 20070426   183046 sandakith@wso2.com - Lahiru Sandakith
  *******************************************************************************/
 package org.eclipse.jst.ws.axis2.core.plugin.messages;
 
@@ -18,7 +19,8 @@
 
 public final class Axis2CoreUIMessages extends NLS {
 
-	private static final String BUNDLE_NAME = "org.eclipse.jst.ws.axis2.core.plugin.messages.Axis2CoreUI";//$NON-NLS-1$
+	private static final String BUNDLE_NAME = 
+			"org.eclipse.jst.ws.axis2.core.plugin.messages.Axis2CoreUI";//$NON-NLS-1$
 
 	private Axis2CoreUIMessages() {
 		// Do not instantiate
@@ -32,6 +34,7 @@
 	public static String LABEL_DATABINDING;
 	public static String LABEL_AXIS2_RUNTIME_LOAD;
 	public static String LABEL_AXIS2_RUNTIME_LOAD_ERROR;
+	public static String LABEL_AXIS2_RUNTIME_NOT_EXIT;
 	public static String LABEL_GENERATE_TESTCASE_CAPTION;
 	public static String LABEL_GENERATE_SERVERSIDE_INTERFACE;
 	public static String LABEL_GENERATE_ALL;
@@ -42,6 +45,7 @@
 	
 	public static String DIR_WEBCONTENT;
 	public static String DIR_TEMPWAR;
+	public static String DIR_EXPLOADED_TEMPWAR;
 	public static String DIR_DIST;
 	public static String DIR_DOT_METADATA;
 	public static String DIR_WEB_INF;
@@ -54,6 +58,8 @@
 	public static String AXIS2_LOCATION;
 	public static String AXIS2_RUNTIME;
 	public static String AXIS2_PREFERENCES;
+	public static String AXIS2_RUNTIME_TOOLTIP;
+	public static String AXIS2_PREFERENCES_TOOLTIP;
 	public static String TEMP_AXIS2_FACET_DIR;
 	public static String WEBAPP_EXPLODED_SERVER_LOCATION_FILE;
 	public static String SERVER_STATUS_LOCATION_FILE;
diff --git a/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/core/utils/Axis2CoreUtils.java b/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/core/utils/Axis2CoreUtils.java
index 7d5b3a9..e997db6 100644
--- a/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/core/utils/Axis2CoreUtils.java
+++ b/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/core/utils/Axis2CoreUtils.java
@@ -11,26 +11,34 @@
  * -------- -------- -----------------------------------------------------------
  * 20070130   168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2 
  * 										  runtime to the framework for 168762
+ * 20070426   183046 sandakith@wso2.com - Lahiru Sandakith
  *******************************************************************************/
 package org.eclipse.jst.ws.axis2.core.utils;
 
 import java.io.BufferedWriter;
 import java.io.File;
-import java.io.FileWriter;
+import java.io.FileOutputStream;
 import java.io.IOException;
+import java.io.OutputStreamWriter;
+import java.io.Writer;
 
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.jst.ws.axis2.core.plugin.messages.Axis2CoreUIMessages;
 
 public class Axis2CoreUtils {
 	
+	private static boolean alreadyComputedTempAxis2Directory = false;
+	private static String tempAxis2Dir = null;
+	
 	public static String tempAxis2Directory() {
-		String projectDirDotMetadata = addAnotherNodeToPath(ResourcesPlugin.getWorkspace().getRoot().getLocation().toOSString(), 
-				 Axis2CoreUIMessages.DIR_DOT_METADATA);
-		String projectDirDotPlugins= addAnotherNodeToPath(projectDirDotMetadata,
-												Axis2CoreUIMessages.DIR_DOT_PLUGINS);
-		String tempAxis2Dir =addAnotherNodeToPath(projectDirDotPlugins, 
-							 Axis2CoreUIMessages.TEMP_AXIS2_FACET_DIR);
+		if (!alreadyComputedTempAxis2Directory){
+			String[] nodes = {Axis2CoreUIMessages.DIR_DOT_METADATA,
+								Axis2CoreUIMessages.DIR_DOT_PLUGINS,
+								Axis2CoreUIMessages.TEMP_AXIS2_FACET_DIR};
+			tempAxis2Dir =FileUtils.addNodesToPath(
+					ResourcesPlugin.getWorkspace().getRoot().getLocation().toOSString(), nodes); 
+			alreadyComputedTempAxis2Directory= true;
+		}
 		return tempAxis2Dir;
 	}
 	
@@ -52,7 +60,8 @@
 	}
 	
 	public static void  writePropertyToFile(File file,String key, String value) throws IOException {
-	       BufferedWriter out = new BufferedWriter(new FileWriter(file));
+		Writer out = new BufferedWriter(new OutputStreamWriter(
+						new FileOutputStream(file), "8859_1"));
 	       out.write(key+"="+value+"\n");
 	       out.close();
 	}
diff --git a/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/core/utils/ClassLoadingUtil.java b/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/core/utils/ClassLoadingUtil.java
index b3f49ef..b735d1f 100644
--- a/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/core/utils/ClassLoadingUtil.java
+++ b/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/core/utils/ClassLoadingUtil.java
@@ -11,15 +11,13 @@
  * -------- -------- -----------------------------------------------------------
  * 20070130   168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2 
  * 										  runtime to the framework for 168762
+ * 20070426   183046 sandakith@wso2.com - Lahiru Sandakith
  *******************************************************************************/
 package org.eclipse.jst.ws.axis2.core.utils;
 
 import java.io.File;
-import java.lang.reflect.Constructor;
-import java.lang.reflect.InvocationTargetException;
 import java.net.MalformedURLException;
 import java.net.URL;
-import java.net.URLClassLoader;
 
 import org.apache.tools.ant.AntClassLoader;
 import org.apache.tools.ant.Project;
@@ -28,19 +26,32 @@
 public class ClassLoadingUtil {
 
 	private static String[] axis2ClassPath = null;
+	private static String[] classLoadPath = null;
 	private static int libCount = 0;
 	private static AntClassLoader antClassLoader;
+	private static boolean libsLoaded = false;
+	private static URL[] urls = null;
+	private static boolean alreadyInit = false;
+	private static boolean initByClient = false;
 	
 	public static void init(String project) {
+		if (!alreadyInit) {
 
 		//Obtain a ant class loader instance
+			if(antClassLoader==null){
 		antClassLoader =  new AntClassLoader();
+			}
 		
 		// Set the class loader to child first
 		antClassLoader.setParentFirst(false);
 		
-		String[] classLoadPath = getAxis2Libs(project);
-		URL[] urls = new URL[classLoadPath.length];
+			if (!(axis2ClassPath ==null) || !libsLoaded){
+				classLoadPath = getAxis2Libs(project);
+			}
+			
+			if(urls == null){
+				urls= new URL[classLoadPath.length];
+			}
 
 		Path classpath = new Path(new Project());
 		
@@ -60,116 +71,10 @@
 			e.printStackTrace();
 		}
 			antClassLoader.setClassPath(classpath);
-	}
-	
-	
-	
-
-	/**
-	 * Load the class from the class loader 
-	 * @param project
-	 * @param fillyQualifiedClassName
-	 * @return Class loaded through class loader
-	 */
-	public static Class loadClassFromAxis2LibPath(String project, String fillyQualifiedClassName){
-
-		String[] classLoadPath = getAxis2Libs(project);
-		Class cls = null;
-		URL[] urls = new URL[classLoadPath.length];
-
-
-		try {	
-			for (int i = 0; i < classLoadPath.length; i++) {
-				//Create a File object on the root of the directory containing the class file
-				if(classLoadPath[i]!=null){
-					File file = new File(classLoadPath[i]);
-					// Convert File to a URL
-					URL url = file.toURL();          
-					urls[i]= url;
+			alreadyInit = true;
 				}
 			}
 
-			// Create a new class loader with the directory
-			ClassLoader cl = new URLClassLoader(urls,Thread.currentThread().getContextClassLoader());
-//			ClassLoader cl = new URLClassLoader(urls,null); //Set no parent class loader and give me from local jars only
-
-			// Load in the class
-			cls = cl.loadClass(fillyQualifiedClassName);
-			
-		} catch (MalformedURLException e) {
-			e.printStackTrace();
-		} catch (ClassNotFoundException e) {
-			e.printStackTrace();
-		}
-
-		return cls;
-	}
-
-	/**
-	 * load the instance from the class loader
-	 * @param project
-	 * @param fillyQualifiedClassName
-	 * @param parameterTypes
-	 * @param initargs
-	 * @deprecated 
-	 * @return instance from the class loader
-	 */
-	public static Object getInstanceFromAxis2LibPath(String project, String fillyQualifiedClassName,Class[] parameterTypes,Object[] initargs){
-
-		String[] classLoadPath = getAxis2Libs(project);
-		Class cls = null;
-		Object instance = null;
-		URL[] urls = new URL[classLoadPath.length];
-
-
-		try {	
-			for (int i = 0; i < classLoadPath.length; i++) {
-				//Create a File object on the root of the directory containing the class file
-				if(classLoadPath[i]!=null){
-					File file = new File(classLoadPath[i]);
-					// Convert File to a URL
-					URL url = file.toURL();          
-					urls[i]= url;
-				}
-			}
-
-			// Create a new class loader with the directory
-			URLClassLoader cl = new URLClassLoader(urls, Thread.currentThread().getContextClassLoader());
-			//cl.
-
-			// Load in the class
-			cls = cl.loadClass(fillyQualifiedClassName);
-			
-			Constructor constructor = cls.getConstructor(parameterTypes);
-			instance = constructor.newInstance(initargs);
-			
-			
-		} catch (MalformedURLException e) {
-			e.printStackTrace();
-		} catch (ClassNotFoundException e) {
-			e.printStackTrace();
-		} catch (SecurityException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		} catch (NoSuchMethodException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		} catch (IllegalArgumentException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		} catch (InstantiationException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		} catch (IllegalAccessException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		} catch (InvocationTargetException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-
-		return instance;
-	}
 	
 	
 	public static Class loadClassFromAntClassLoader(String fillyQualifiedClassName){
@@ -184,7 +89,6 @@
 	}
 	
 	
-	
 	private static String[] getAxis2Libs(String project){
 		File webContainerPath = new File(FacetContainerUtils.pathToWebProjectContainerLib(project));
 		axis2ClassPath = new String[webContainerPath.list().length];
@@ -209,8 +113,16 @@
 			}
 
 		}
-
+		libsLoaded = true;
 	}
 
-
+	public static void cleanAntClassLoader(){
+		if(initByClient){
+			antClassLoader.cleanup();
+			alreadyInit = false;
+		}
+}
+	public static void setInitByClient(boolean status){
+		initByClient = status;
+	}
 }
diff --git a/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/core/utils/FacetContainerUtils.java b/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/core/utils/FacetContainerUtils.java
index 4d4c169..2f46efb 100644
--- a/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/core/utils/FacetContainerUtils.java
+++ b/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/core/utils/FacetContainerUtils.java
@@ -11,6 +11,7 @@
  * -------- -------- -----------------------------------------------------------
  * 20070222  168766 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2 
  * 										  facet to the framework for 168766
+ * 20070426   183046 sandakith@wso2.com - Lahiru Sandakith
  *******************************************************************************/
 package org.eclipse.jst.ws.axis2.core.utils;
 
@@ -99,6 +100,7 @@
 										 Axis2CoreUIMessages.SERVICES,
 										 serviceName
 										 };
-		return FileUtils.addNodesToURL(Axis2CoreUIMessages.LOCAL_SERVER_PORT, deployedWSDLURLParts)+"?wsdl";
+		return FileUtils.addNodesToURL(Axis2CoreUIMessages.LOCAL_SERVER_PORT, 
+										deployedWSDLURLParts)+"?wsdl";
 	}
 }
diff --git a/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/core/utils/FileUtils.java b/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/core/utils/FileUtils.java
index 3a40df8..6154ee8 100644
--- a/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/core/utils/FileUtils.java
+++ b/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/core/utils/FileUtils.java
@@ -1,17 +1,18 @@
 /*******************************************************************************
- * Copyright (c) 2007 IBM and WSO2 Inc. and others.
+ * Copyright (c) 2007 WSO2 Inc. and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
  * Contributors:
- * IBM Corporation - Initial API and implementation
  * WSO2 Inc. - initial API and implementation
  * yyyymmdd bug      Email and other contact information
  * -------- -------- -----------------------------------------------------------
+ * IBM Corporation - Initial API and implementation
  * 20070110   168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the 
  * 										  Axis2 runtime to the framework for 168762
+ * 20070426   183046 sandakith@wso2.com - Lahiru Sandakith
  *******************************************************************************/
 package org.eclipse.jst.ws.axis2.core.utils;
 
@@ -97,11 +98,13 @@
 		deleteDirectories(directory);
 	}
 
-	public static void createTargetFile(String sourceFileName, String targetFileName) throws Exception {
+	public static void createTargetFile(String sourceFileName, String targetFileName) 
+							throws Exception {
 		createTargetFile(sourceFileName, targetFileName, false);
 	}
 
-	public static void createTargetFile(String sourceFileName, String targetFileName, boolean overwrite) throws Exception{
+	public static void createTargetFile(String sourceFileName, String targetFileName, 
+						boolean overwrite) throws Exception{
 		File idealResultFile = new File(targetFileName);
 		if (overwrite || !idealResultFile.exists())
 		{
diff --git a/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/core/utils/RuntimePropertyUtils.java b/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/core/utils/RuntimePropertyUtils.java
index aa8068e..f14736e 100644
--- a/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/core/utils/RuntimePropertyUtils.java
+++ b/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/core/utils/RuntimePropertyUtils.java
@@ -11,6 +11,7 @@
  * -------- -------- -----------------------------------------------------------
  * 20070130   168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2 
  * 										  runtime to the framework for 168762
+ * 20070426   183046 sandakith@wso2.com - Lahiru Sandakith
  *******************************************************************************/
 package org.eclipse.jst.ws.axis2.core.utils;
 
@@ -54,7 +55,8 @@
 	}
 	
 	public static IStatus writeServerPathToPropertiesFile(String axis2Path) {
-		//Fix for properties file skipping the File seperator charactor on windows when loading again
+		//Fix for properties file skipping the File seperator charactor 
+		// on windows when loading again
 		String axis2PathNew = null;
 		if ((axis2Path.indexOf("\\")) != -1) {
 			axis2PathNew = axis2Path.replace(File.separator, File.separator+File.separator);;
diff --git a/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/facet/commands/Axis2WebservicesServerCommand.java b/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/facet/commands/Axis2WebservicesServerCommand.java
index e9b5f92..b12f15c 100644
--- a/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/facet/commands/Axis2WebservicesServerCommand.java
+++ b/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/facet/commands/Axis2WebservicesServerCommand.java
@@ -11,6 +11,7 @@
  * -------- -------- -----------------------------------------------------------
  * 20070213  168766 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2 
  * 										  facet to the framework for 168766
+ * 20070426   183046 sandakith@wso2.com - Lahiru Sandakith
  *******************************************************************************/
 package org.eclipse.jst.ws.axis2.facet.commands;
 
@@ -21,10 +22,12 @@
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
+import org.eclipse.jst.ws.axis2.core.plugin.data.ServerModel;
 import org.eclipse.jst.ws.axis2.core.plugin.messages.Axis2CoreUIMessages;
 import org.eclipse.jst.ws.axis2.core.utils.FacetContainerUtils;
 import org.eclipse.jst.ws.axis2.core.utils.FileUtils;
 import org.eclipse.jst.ws.axis2.facet.utils.Axis2RuntimeUtils;
+import org.eclipse.jst.ws.axis2.facet.utils.Axis2WebappUtils;
 import org.eclipse.jst.ws.axis2.facet.utils.ContentCopyUtils;
 import org.eclipse.wst.common.frameworks.datamodel.AbstractDataModelOperation;
 
@@ -44,11 +47,18 @@
 	public IStatus exexuteOverrride(IProgressMonitor monitor) throws ExecutionException {
 		//Copy the axis2 libs in to this client project
 		IStatus status = Status.OK_STATUS;
-		
+		String runtimeLocation = null;
 		ContentCopyUtils contentCopyUtils = new ContentCopyUtils();
-				String runtimeLocation = Axis2RuntimeUtils.copyAxis2War(
+		
+		if(ServerModel.isAxis2ServerPathRepresentsWar()){
+			runtimeLocation = Axis2RuntimeUtils.copyAxis2War(
 															monitor,
 															Axis2CoreUIMessages.PROPERTY_KEY_PATH);
+		}else{
+			runtimeLocation = Axis2WebappUtils.copyAxis2War(
+					monitor,
+					Axis2CoreUIMessages.PROPERTY_KEY_PATH);
+		}
 				status = contentCopyUtils.copyDirectoryRecursivelyIntoWorkspace(
 						runtimeLocation, 
 						FacetContainerUtils.pathToWebProjectContainer(project), 
@@ -57,7 +67,7 @@
 				
 				//clean up tempory files
 				File tempFacetDirectory = new File(runtimeLocation);
-				if (tempFacetDirectory.exists()) {
+				if (tempFacetDirectory.exists() && ServerModel.isAxis2ServerPathRepresentsWar()) {
 					FileUtils.deleteDir(tempFacetDirectory);
 				}
 		return status;
diff --git a/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/facet/messages/Axis2FacetUIMessages.java b/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/facet/messages/Axis2FacetUIMessages.java
index 439d9b1..5f04b7e 100644
--- a/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/facet/messages/Axis2FacetUIMessages.java
+++ b/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/facet/messages/Axis2FacetUIMessages.java
@@ -11,6 +11,7 @@
  * -------- -------- -----------------------------------------------------------
  * 20070213  168766 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2 
  * 										  facet to the framework for 168766
+ * 20070426   183046 sandakith@wso2.com - Lahiru Sandakith
  *******************************************************************************/
 package org.eclipse.jst.ws.axis2.facet.messages;
 
@@ -18,7 +19,8 @@
 
 public final class Axis2FacetUIMessages extends NLS {
 
-	private static final String BUNDLE_NAME = "org.eclipse.jst.ws.axis2.facet.messages.Axis2FacetUI";//$NON-NLS-1$
+	private static final String BUNDLE_NAME = 
+				"org.eclipse.jst.ws.axis2.facet.messages.Axis2FacetUI";//$NON-NLS-1$
 
 	private Axis2FacetUIMessages() {
 		// Do not instantiate
diff --git a/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/facet/utils/Axis2RuntimeUtils.java b/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/facet/utils/Axis2RuntimeUtils.java
index 2b1024d..f6d0f2e 100644
--- a/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/facet/utils/Axis2RuntimeUtils.java
+++ b/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/facet/utils/Axis2RuntimeUtils.java
@@ -11,6 +11,7 @@
  * -------- -------- -----------------------------------------------------------
  * 20070213  168766 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2 
  * 										  facet to the framework for 168766
+ * 20070426   183046 sandakith@wso2.com - Lahiru Sandakith
  *******************************************************************************/
 package org.eclipse.jst.ws.axis2.facet.utils;
 
@@ -64,14 +65,12 @@
 			Properties properties = new Properties();
 			properties.load(new FileInputStream(Axis2CoreUtils.tempAxis2WebappFileLocation()));
 				if (properties.containsKey(Axis2CoreUIMessages.PROPERTY_KEY_PATH)){
-					String axis2WarLocation = Axis2CoreUtils.addAnotherNodeToPath(
-													(ServerModel.getAxis2ServerPath()!=null)?ServerModel.getAxis2ServerPath():		
-															properties.getProperty(Axis2CoreUIMessages.PROPERTY_KEY_PATH),
-													Axis2CoreUIMessages.DIR_DIST);
 					String axis2WarFile = Axis2CoreUtils.addAnotherNodeToPath(
-																axis2WarLocation,
+													(ServerModel.getAxis2ServerPath()!=null)
+													?ServerModel.getAxis2ServerPath()
+													:properties.getProperty(
+															Axis2CoreUIMessages.PROPERTY_KEY_PATH),
 																Axis2CoreUIMessages.FILE_AXIS2_WAR);
-					
 					FileChannel srcChannel = new FileInputStream(axis2WarFile).getChannel();
 					FileChannel dstChannel = new FileOutputStream(tempWarFile).getChannel();
 					// Copy file contents from source to destination
@@ -81,7 +80,8 @@
 					dstChannel.close();
 				
 				//unzip this into another foulder
-				tempUnzipLocation = FileUtils.addAnotherNodeToPath(tempWarLocation, Axis2CoreUIMessages.DIR_UNZIP);
+				tempUnzipLocation = FileUtils.addAnotherNodeToPath(tempWarLocation, 
+											Axis2CoreUIMessages.DIR_UNZIP);
 				File tempUnzipLocationFile= new File(tempUnzipLocation);
 				if (!tempUnzipLocationFile.exists()) {
 					tempUnzipLocationFile.mkdirs();
diff --git a/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/facet/utils/Axis2WebappUtils.java b/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/facet/utils/Axis2WebappUtils.java
new file mode 100644
index 0000000..972c6dc
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/facet/utils/Axis2WebappUtils.java
@@ -0,0 +1,114 @@
+/*******************************************************************************
+ * Copyright (c) 2007 WSO2 Inc. and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * WSO2 Inc. - initial API and implementation
+ * yyyymmdd bug      Email and other contact information
+ * -------- -------- -----------------------------------------------------------
+ * 20070410 168766 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2 
+ * 										  facet to the framework for 168766
+ * 20070426   183046 sandakith@wso2.com - Lahiru Sandakith
+ *******************************************************************************/
+package org.eclipse.jst.ws.axis2.facet.utils;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.util.Properties;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jst.ws.axis2.core.plugin.data.ServerModel;
+import org.eclipse.jst.ws.axis2.core.plugin.messages.Axis2CoreUIMessages;
+import org.eclipse.jst.ws.axis2.core.utils.Axis2CoreUtils;
+import org.eclipse.jst.ws.axis2.core.utils.FileUtils;
+
+public class Axis2WebappUtils {
+
+	private static String tempWarLocation = null;
+	private static boolean alreadyWarExist = false;
+
+	public static String  copyAxis2War(IProgressMonitor monitor, String Axis2Home) {
+		if(!alreadyWarExist){
+		try {
+			File tempAxis2Directory = new File (Axis2CoreUtils.tempAxis2Directory());
+			if(!tempAxis2Directory.exists()){
+				tempAxis2Directory.mkdirs();
+			}
+			if (tempAxis2Directory.isDirectory()) {
+				tempWarLocation = Axis2CoreUtils.addAnotherNodeToPath(
+						Axis2CoreUtils.tempAxis2Directory(),
+						Axis2CoreUIMessages.DIR_EXPLOADED_TEMPWAR);
+				File tempWarLocationFile= new File(tempWarLocation);
+				if (tempWarLocationFile.exists()) {
+					FileUtils.deleteDirectories(tempWarLocationFile);
+				}
+				tempWarLocationFile.mkdirs();
+				Properties properties = new Properties();
+				properties.load(new FileInputStream(Axis2CoreUtils.tempAxis2WebappFileLocation()));
+				if (properties.containsKey(Axis2CoreUIMessages.PROPERTY_KEY_PATH)){
+					String axis2HomeLocation = (ServerModel.getAxis2ServerPath()!=null)
+									?ServerModel.getAxis2ServerPath()
+									:properties.getProperty(Axis2CoreUIMessages.PROPERTY_KEY_PATH);
+					String axis2WebappLocation = Axis2CoreUtils.addAnotherNodeToPath(
+							axis2HomeLocation,
+							"webapp");
+					String axis2WEBINFDir = Axis2CoreUtils.addAnotherNodeToPath(
+							axis2HomeLocation,
+					"WEB-INF");
+					String axis2LibFile = Axis2CoreUtils.addAnotherNodeToPath(
+							axis2HomeLocation,
+					"lib");
+					String axis2ConfFile = Axis2CoreUtils.addAnotherNodeToPath(
+							axis2HomeLocation,
+					"conf");
+					String axis2RepositoryFile = Axis2CoreUtils.addAnotherNodeToPath(
+							axis2HomeLocation,
+					"repository");
+					String axis2TempWebInfFile = Axis2CoreUtils.addAnotherNodeToPath(
+							tempWarLocation,
+					"WEB-INF");
+					String axis2TempWebInfLibFile = Axis2CoreUtils.addAnotherNodeToPath(
+							axis2TempWebInfFile,
+					"lib");
+					String axis2TempWebInfConfFile = Axis2CoreUtils.addAnotherNodeToPath(
+							axis2TempWebInfFile,
+					"conf");
+					String axis2TempWebBuildFile = Axis2CoreUtils.addAnotherNodeToPath(
+							tempWarLocation,
+					"build.xml");
+
+					//Copy the webapp content 
+					FileUtils.copyDirectory(new File(axis2WebappLocation), tempWarLocationFile);
+					//delete the build.xml File
+					new File(axis2TempWebBuildFile).delete();
+					//Copy libs 
+					FileUtils.copyDirectory(new File(axis2LibFile),
+											new File(axis2TempWebInfLibFile));
+					//copy conf/axis2.xml
+					FileUtils.copyDirectory(new File(axis2ConfFile), 
+											new File(axis2TempWebInfConfFile));
+					//Copy modules and services 					
+					FileUtils.copyDirectory(new File(axis2RepositoryFile), 
+											new File(axis2TempWebInfFile));
+					alreadyWarExist= true;
+				}
+
+			} else {
+				alreadyWarExist = false;
+				//Throws an error message
+			}
+		} catch (FileNotFoundException e) {
+			e.printStackTrace();	
+		} catch (IOException e) {
+			e.printStackTrace();
+		}
+		}	
+		return tempWarLocation;
+	}
+
+}
diff --git a/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/facet/utils/ContentCopyUtils.java b/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/facet/utils/ContentCopyUtils.java
index 03993d0..efaf2a5 100644
--- a/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/facet/utils/ContentCopyUtils.java
+++ b/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/facet/utils/ContentCopyUtils.java
@@ -1,17 +1,19 @@
 /*******************************************************************************
- * Copyright (c) 2007 IBM Corporation, WSO2 Inc. and others.
+ * Copyright (c) 2007 WSO2 Inc. and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
  * Contributors:
- * IBM Corporation - initial API and implementation
- * WSO2 Inc. - initial extended API and implementation
+ * WSO2 Inc. - initial API and implementation
  * yyyymmdd bug      Email and other contact information
  * -------- -------- -----------------------------------------------------------
+ * IBM Corporation - initial API and implementation
+ * WSO2 Inc. - initial extended API and implementation
  * 20070213  168766 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2 
  * 										  facet to the framework for 168766
+ * 20070426   183046 sandakith@wso2.com - Lahiru Sandakith
  *******************************************************************************/
 package org.eclipse.jst.ws.axis2.facet.utils;
 
@@ -50,14 +52,16 @@
 	FileInputStream finStream = null;		
 
 	/**
-	 * This method will copy the source directory into the eclipse workspace according to the Eclipse Framework API
+	 * This method will copy the source directory into the eclipse workspace 
+	 * according to the Eclipse Framework API
 	 * @param sourceDir
 	 * @param destinationDir
 	 * @param monitor
 	 * @param statusHandler
 	 * @return
 	 */
-	public IStatus copyDirectoryRecursivelyIntoWorkspace(String sourceDir, String destinationDir,IProgressMonitor monitor) {
+	public IStatus copyDirectoryRecursivelyIntoWorkspace(String sourceDir, 
+									String destinationDir,IProgressMonitor monitor) {
 		IStatus status = Status.OK_STATUS;
 		fileAndDirectoriesList.clear();
 		File axis2WebappFolder = new File(sourceDir);
@@ -110,9 +114,13 @@
 				}
 			}
 		} catch (IOException e) {
-			status = StatusUtils.errorStatus(NLS.bind(Axis2CoreUIMessages.ERROR_INVALID_FILE_READ_WRITEL,new String[]{e.getLocalizedMessage()}), e);
+			status = StatusUtils.errorStatus(
+					NLS.bind(Axis2CoreUIMessages.ERROR_INVALID_FILE_READ_WRITEL,
+							 new String[]{e.getLocalizedMessage()}), e);
 		} catch (CoreException e) {
-			status = StatusUtils.errorStatus(NLS.bind(Axis2CoreUIMessages.ERROR_INVALID_FILE_READ_WRITEL,new String[]{e.getLocalizedMessage()}), e);
+			status = StatusUtils.errorStatus(
+					NLS.bind(Axis2CoreUIMessages.ERROR_INVALID_FILE_READ_WRITEL,
+							 new String[]{e.getLocalizedMessage()}), e);
 		}
 
 		return status;
@@ -185,14 +193,16 @@
 								 new Status( IStatus.ERROR, 
 										 "ResourceUtils",
 										 0, 
-										 NLS.bind("ERROR",//EnvironmentMessages.MSG_ERROR_RESOURCE_NOT_FOLDER,
+										 NLS.bind("ERROR",
 												 new Object[]{ resource.getFullPath().toString() }),
 												 null ) );
 					 }
 				 }
 				 else
 				 {
-					 IContainer parent = makeFolderPathAtLocation(resourceContext, resource.getParent(), progressMonitor );
+					 IContainer parent = makeFolderPathAtLocation(resourceContext, 
+							 			resource.getParent(), 
+							 			progressMonitor );
 					 String folderName = resource.getName();
 					 
 					 return makeFolder(resourceContext, parent, folderName, progressMonitor  );
@@ -241,20 +251,24 @@
 			   {    
 			     if (!absolutePath.isAbsolute())
 			     {
-			       throw new CoreException(new Status(IStatus.ERROR, "ResourceUtils",0,NLS.bind("ERROR",//EnvironmentMessages.MSG_ERROR_PATH_NOT_ABSOLUTE,
+			       throw new CoreException(new Status(IStatus.ERROR, "ResourceUtils",0,
+			    		   NLS.bind("ERROR",//EnvironmentMessages.MSG_ERROR_PATH_NOT_ABSOLUTE,
 			    		   new Object[] {absolutePath.toString()}),null));
 			     }
 			     if (absolutePath.segmentCount() < 1)
 			     {
-			       throw new CoreException(new Status(IStatus.ERROR,"ResourceUtils",0,NLS.bind("ERROR",//EnvironmentMessages.MSG_ERROR_PATH_EMPTY,
+			       throw new CoreException(new Status(IStatus.ERROR,"ResourceUtils",0,
+			    		   NLS.bind("ERROR",//EnvironmentMessages.MSG_ERROR_PATH_EMPTY,
 			    		   new Object[] {absolutePath.toString()}),null));
 			     }
 			     if (absolutePath.segmentCount() < 2)
 			     {
-			       throw new CoreException(new Status(IStatus.ERROR,"ResourceUtils",0,NLS.bind("ERROR",//EnvironmentMessages.MSG_ERROR_PATH_NOT_FOLDER,
+			       throw new CoreException(new Status(IStatus.ERROR,"ResourceUtils",0,
+			    		   NLS.bind("ERROR",//EnvironmentMessages.MSG_ERROR_PATH_NOT_FOLDER,
 			    		   new Object[] {absolutePath.toString()}),null));
 			     }
-			     IContainer parent   = makeFolderPathAtLocation(resourceContext, absolutePath.removeLastSegments(1), progressMonitor);
+			     IContainer parent   = makeFolderPathAtLocation(resourceContext, 
+			    		 				absolutePath.removeLastSegments(1), progressMonitor);
 			     String     fileName = absolutePath.lastSegment();
 			     
 			     return makeFile(resourceContext, parent, fileName, inputStream, progressMonitor);
@@ -296,7 +310,7 @@
 			          new Status( IStatus.ERROR,
 			                      "ResourceUtils",
 			                      0, 
-			                      NLS.bind("ERROR",//EnvironmentMessages.MSG_ERROR_RESOURCE_NOT_FILE,
+			                      NLS.bind("ERROR",
 							                       new Object[] {parent.getFullPath().append(fileName)}),
 								  null ) );
 			      }
diff --git a/bundles/org.eclipse.jst.ws.axis2.creation.core/META-INF/MANIFEST.MF b/bundles/org.eclipse.jst.ws.axis2.creation.core/META-INF/MANIFEST.MF
index 3d5e7e7..c771e18 100644
--- a/bundles/org.eclipse.jst.ws.axis2.creation.core/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.jst.ws.axis2.creation.core/META-INF/MANIFEST.MF
@@ -1,10 +1,9 @@
 Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
-Bundle-Name: Core Plug-in
+Bundle-Name: Axis2 Creation Core Plug-in
 Bundle-SymbolicName: org.eclipse.jst.ws.axis2.creation.core
 Bundle-Version: 1.0.0
 Bundle-Activator: org.eclipse.jst.ws.axis2.creation.core.plugin.WebServiceAxis2CreationCorePlugin
-Bundle-Localization: plugin
 Require-Bundle: org.eclipse.core.runtime,
  org.eclipse.core.resources,
  org.eclipse.wst.command.env,
diff --git a/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/command/Axis2BUServiceCreationCommand.java b/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/command/Axis2BUServiceCreationCommand.java
index 5dbf2ca..59de544 100644
--- a/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/command/Axis2BUServiceCreationCommand.java
+++ b/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/command/Axis2BUServiceCreationCommand.java
@@ -10,6 +10,7 @@
  * yyyymmdd bug      Email and other contact information
  * -------- -------- -----------------------------------------------------------
  * 20070110   168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2 runtime to the framework for 168762
+ * 20070426   183046 sandakith@wso2.com - Lahiru Sandakith
  *******************************************************************************/
 package org.eclipse.jst.ws.axis2.creation.core.command;
 
@@ -56,11 +57,16 @@
 		try {
 			
 //			String workspaceDirectory = ResourceUtils.getWorkspaceRoot().getLocation().toOSString();
-			String workspaceDirectory = ResourcesPlugin.getWorkspace().getRoot().getLocation().toOSString();
-			String currentDynamicWebProjectDir = FileUtils.addAnotherNodeToPath(workspaceDirectory, model.getWebProjectName());
-			String matadataDir = FileUtils.addAnotherNodeToPath(workspaceDirectory,Axis2CreationUIMessages.DIR_DOT_METADATA);
-		    String matadataPluginsDir = FileUtils.addAnotherNodeToPath(matadataDir,Axis2CreationUIMessages.DIR_DOT_PLUGINS);
-		    String matadataAxis2Dir = FileUtils.addAnotherNodeToPath(matadataPluginsDir, Axis2CreationUIMessages.AXIS2_PROJECT);
+			String workspaceDirectory = ResourcesPlugin.getWorkspace()
+														.getRoot().getLocation().toOSString();
+			String currentDynamicWebProjectDir = FileUtils.addAnotherNodeToPath(workspaceDirectory, 
+														model.getWebProjectName());
+			String matadataDir = FileUtils.addAnotherNodeToPath(workspaceDirectory,
+														Axis2CreationUIMessages.DIR_DOT_METADATA);
+		    String matadataPluginsDir = FileUtils.addAnotherNodeToPath(matadataDir,
+		    											Axis2CreationUIMessages.DIR_DOT_PLUGINS);
+		    String matadataAxis2Dir = FileUtils.addAnotherNodeToPath(matadataPluginsDir, 
+		    											Axis2CreationUIMessages.AXIS2_PROJECT);
 		    String webservicesDir = FileUtils.addAnotherNodeToPath(matadataAxis2Dir,
 		    													   Axis2CreationUIMessages.DIR_WEBSERVICES);
 		    model.setPathToWebServicesTempDir(webservicesDir);
@@ -70,9 +76,8 @@
 		    //String servicePackage = CommonUtils.packageNameFromQualifiedName(serviceClass); 
 			
 			String servicesDirectory = FileUtils.addAnotherNodeToPath(webservicesDir, serviceName);
-			//String servicePackagePath = CommonUtils.packgeName2PathName(servicePackage); 
-			//String serviceClassImplDirectory = servicesDirectory + File.separator + servicePackagePath;
-			String serviceXMLDirectory = FileUtils.addAnotherNodeToPath(servicesDirectory, Axis2CreationUIMessages.DIR_META_INF);
+			String serviceXMLDirectory = FileUtils.addAnotherNodeToPath(servicesDirectory, 
+														Axis2CreationUIMessages.DIR_META_INF);
 			
 			//Create the directories
 			//Create the Webservices stuff on the workspace .matadata directory  
@@ -82,8 +87,11 @@
 		    //create the services.xml file
 		    File serviceXMLFile;
             if (model.isGenerateServicesXML()){
-			    ServiceXMLCreator serviceXMLCreator = new ServiceXMLCreator(serviceName, serviceClass, null);
-			    serviceXMLFile = new File(serviceXMLDirectory + File.separator + Axis2CreationUIMessages.FILE_SERVICES_XML);
+			    ServiceXMLCreator serviceXMLCreator = new ServiceXMLCreator(serviceName, 
+			    															serviceClass, 	
+			    															null);
+			    serviceXMLFile = new File(serviceXMLDirectory + File.separator + 
+			    						  Axis2CreationUIMessages.FILE_SERVICES_XML);
 			    FileWriter serviceXMLFileWriter;
 	
 				serviceXMLFileWriter = new FileWriter(serviceXMLFile, false);
@@ -93,37 +101,47 @@
             }else {
             	String pathToServicesXML = model.getPathToServicesXML();
             	if (pathToServicesXML == null){
-    				status = StatusUtils.errorStatus(Axis2CreationUIMessages.ERROR_INVALID_SERVICES_XML);
+    				status = StatusUtils
+    					.errorStatus(Axis2CreationUIMessages.ERROR_INVALID_SERVICES_XML);
     				environment.getStatusHandler().reportError(status); 
             	}else{
             		serviceXMLFile = new File(pathToServicesXML);
-            		File targetServicesXMLFile = new File(serviceXMLDirectory + File.separator + Axis2CreationUIMessages.FILE_SERVICES_XML);
+            		File targetServicesXMLFile = new File(serviceXMLDirectory + File.separator + 
+            										Axis2CreationUIMessages.FILE_SERVICES_XML);
             		FileUtils.copy(serviceXMLFile, targetServicesXMLFile);
             	}
             	
             }
 	        
             // Copy the classes directory to the sevices directory
-			String defaultClassesSubDirectory = Axis2CreationUIMessages.DIR_BUILD + File.separator + Axis2CreationUIMessages.DIR_CLASSES;
+			String defaultClassesSubDirectory = Axis2CreationUIMessages.DIR_BUILD +File.separator+ 
+													Axis2CreationUIMessages.DIR_CLASSES;
 			//TODO copy only the relevent .classes to the aar
-			String classesDirectory = currentDynamicWebProjectDir + File.separator + defaultClassesSubDirectory;
+			String classesDirectory = currentDynamicWebProjectDir + File.separator + 
+									  defaultClassesSubDirectory;
 			
 			FileUtils.copyDirectory(new File(classesDirectory), new File(servicesDirectory));
 			
 //			//Create the .aar file 
-//			String aarDirString =  FileUtils.addAnotherNodeToPath(webservicesDir, Axis2CreationUIMessages.DIR_AAR);
+//			String aarDirString =  FileUtils.addAnotherNodeToPath(webservicesDir, 
+//			Axis2CreationUIMessages.DIR_AAR);
 //			File aarDir = new File(aarDirString);
 //			FileUtils.createDirectorys(aarDirString);
 //			AARFileWriter aarFileWriter = new AARFileWriter();
 //			File serviseDir = new File(servicesDirectory);
-//			aarFileWriter.writeAARFile(aarDir, serviceName + Axis2CreationUIMessages.FILE_AAR, serviseDir);
+//			aarFileWriter.writeAARFile(aarDir, serviceName + 
+//			Axis2CreationUIMessages.FILE_AAR, serviseDir);
 			
 			//Import all the stuff form the .matadata directory to inside the current web project
 			} catch (IOException e) {
-				status = StatusUtils.errorStatus(NLS.bind(Axis2CreationUIMessages.ERROR_INVALID_FILE_READ_WRITEL,new String[]{e.getLocalizedMessage()}), e);
+				status = StatusUtils.errorStatus(
+						NLS.bind(Axis2CreationUIMessages.ERROR_INVALID_FILE_READ_WRITEL,
+								new String[]{e.getLocalizedMessage()}), e);
 				environment.getStatusHandler().reportError(status); 
 			} catch (Exception e) {
-				status = StatusUtils.errorStatus(NLS.bind(Axis2CreationUIMessages.ERROR_INVALID_SERVICE_CREATION,new String[]{e.getLocalizedMessage()}), e);
+				status = StatusUtils.errorStatus(
+						NLS.bind(Axis2CreationUIMessages.ERROR_INVALID_SERVICE_CREATION,
+								new String[]{e.getLocalizedMessage()}), e);
 				environment.getStatusHandler().reportError(status); 
 			}
 		    
diff --git a/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/command/Axis2BuildProjectCommand.java b/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/command/Axis2BuildProjectCommand.java
index 6b86541..59f3ede 100644
--- a/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/command/Axis2BuildProjectCommand.java
+++ b/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/command/Axis2BuildProjectCommand.java
@@ -10,6 +10,7 @@
  * yyyymmdd bug      Email and other contact information
  * -------- -------- -----------------------------------------------------------
  * 20070110   168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2 runtime to the framework for 168762
+ * 20070426   183046 sandakith@wso2.com - Lahiru Sandakith
  *******************************************************************************/
 package org.eclipse.jst.ws.axis2.creation.core.command;
 
@@ -66,7 +67,8 @@
 	    }
 	    
 	    try{
-	      Platform.getJobManager().join(ResourcesPlugin.FAMILY_AUTO_BUILD, new NullProgressMonitor());   
+	      Platform.getJobManager().join(ResourcesPlugin.FAMILY_AUTO_BUILD,
+	    		  		new NullProgressMonitor());   
 	    }
 	    catch (InterruptedException ie){
 	      // continue execution
diff --git a/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/command/Axis2SkelImplCommand.java b/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/command/Axis2SkelImplCommand.java
index ed0c772..6d1b04d 100644
--- a/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/command/Axis2SkelImplCommand.java
+++ b/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/command/Axis2SkelImplCommand.java
@@ -11,6 +11,7 @@
  * -------- -------- -----------------------------------------------------------
  * 20070123   168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2 
  * 										  runtime to the framework for 168762
+ * 20070426   183046 sandakith@wso2.com - Lahiru Sandakith
  *******************************************************************************/
 package org.eclipse.jst.ws.axis2.creation.core.command;
 
@@ -80,7 +81,9 @@
 
 			
 		} catch (MalformedURLException e) {
-			status = StatusUtils.errorStatus(NLS.bind(Axis2CreationUIMessages.ERROR_INVALID_FILE_READ_WRITEL,new String[]{e.getLocalizedMessage()}), e);
+			status = StatusUtils.errorStatus(
+					NLS.bind(Axis2CreationUIMessages.ERROR_INVALID_FILE_READ_WRITEL,
+							new String[]{e.getLocalizedMessage()}), e);
 			environment.getStatusHandler().reportError(status); 
 		}
 
diff --git a/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/command/Axis2TDServiceCreationCommand.java b/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/command/Axis2TDServiceCreationCommand.java
index 4029c24..87378e8 100644
--- a/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/command/Axis2TDServiceCreationCommand.java
+++ b/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/command/Axis2TDServiceCreationCommand.java
@@ -1,3 +1,16 @@
+/*******************************************************************************
+ * Copyright (c) 2007 WSO2 Inc. and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * WSO2 Inc. - initial API and implementation
+ * yyyymmdd bug      Email and other contact information
+ * -------- -------- -----------------------------------------------------------
+ * 20070426   183046 sandakith@wso2.com - Lahiru Sandakith
+ *******************************************************************************/
 package org.eclipse.jst.ws.axis2.creation.core.command;
 
 import java.io.File;
@@ -37,19 +50,26 @@
 	try {
 		
 //		String workspaceDirectory = ResourceUtils.getWorkspaceRoot().getLocation().toOSString();
-		String workspaceDirectory = ResourcesPlugin.getWorkspace().getRoot().getLocation().toOSString();
-		String currentDynamicWebProjectDir = FileUtils.addAnotherNodeToPath(workspaceDirectory, model.getWebProjectName());
-		String matadataDir = FileUtils.addAnotherNodeToPath(workspaceDirectory,Axis2CreationUIMessages.DIR_DOT_METADATA);
-	    String matadataPluginsDir = FileUtils.addAnotherNodeToPath(matadataDir,Axis2CreationUIMessages.DIR_DOT_PLUGINS);
-	    String matadataAxis2Dir = FileUtils.addAnotherNodeToPath(matadataPluginsDir, Axis2CreationUIMessages.AXIS2_PROJECT);
+		String workspaceDirectory = ResourcesPlugin.getWorkspace()
+														.getRoot().getLocation().toOSString();
+		String currentDynamicWebProjectDir = FileUtils.addAnotherNodeToPath(workspaceDirectory, 
+														model.getWebProjectName());
+		String matadataDir = FileUtils.addAnotherNodeToPath(workspaceDirectory,
+														Axis2CreationUIMessages.DIR_DOT_METADATA);
+	    String matadataPluginsDir = FileUtils.addAnotherNodeToPath(matadataDir,
+	    												Axis2CreationUIMessages.DIR_DOT_PLUGINS);
+	    String matadataAxis2Dir = FileUtils.addAnotherNodeToPath(matadataPluginsDir, 
+	    												Axis2CreationUIMessages.AXIS2_PROJECT);
 	    String tempServicesDir = FileUtils.addAnotherNodeToPath(matadataAxis2Dir,
 	    													   Axis2CreationUIMessages.DIR_SERVICES);
 	    
 	    model.setPathToWebServicesTempDir(tempServicesDir);
 		
 	    //Exploded temperory services directory
-		String currentservicesDirectory = FileUtils.addAnotherNodeToPath(tempServicesDir, model.getServiceName());
-		String metaInfDirectory = FileUtils.addAnotherNodeToPath(currentservicesDirectory, Axis2CreationUIMessages.DIR_META_INF);
+		String currentservicesDirectory = FileUtils.addAnotherNodeToPath(tempServicesDir, 
+														model.getServiceName());
+		String metaInfDirectory = FileUtils.addAnotherNodeToPath(currentservicesDirectory, 
+														Axis2CreationUIMessages.DIR_META_INF);
 		
 		//Create the directories
 		//Create the Webservices stuff on the workspace .matadata directory  
@@ -59,32 +79,42 @@
 	    
 	    //copy the generated resources (services.xml .wsdl ) files
 	    //at resources/service.xml
-	    String currentProjectResourcesDirString = FileUtils.addAnotherNodeToPath(currentDynamicWebProjectDir, Axis2CreationUIMessages.DIR_RESOURCES);
+	    String currentProjectResourcesDirString = FileUtils
+	    		.addAnotherNodeToPath(currentDynamicWebProjectDir, 
+	    							  Axis2CreationUIMessages.DIR_RESOURCES);
 	    File currentProjectResourcesDir = new File(currentProjectResourcesDirString);
 	    FileUtils.copyDirectory(currentProjectResourcesDir, new File(metaInfDirectory));
         
         // Copy the classes directory to the sevices directory
-		String defaultClassesSubDirectory = Axis2CreationUIMessages.DIR_BUILD + File.separator + Axis2CreationUIMessages.DIR_CLASSES;
+		String defaultClassesSubDirectory = Axis2CreationUIMessages.DIR_BUILD + File.separator + 
+											Axis2CreationUIMessages.DIR_CLASSES;
 		//TODO copy only the relevent .classes to the aar
-		String classesDirectory = currentDynamicWebProjectDir + File.separator + defaultClassesSubDirectory;
+		String classesDirectory = currentDynamicWebProjectDir + File.separator + 
+											defaultClassesSubDirectory;
 		
 		FileUtils.copyDirectory(new File(classesDirectory), new File(currentservicesDirectory));
 		
 //		//Create the .aar file 
-//		String aarDirString =  FileUtils.addAnotherNodeToPath(webservicesDir, Axis2CreationUIMessages.DIR_AAR);
+//		String aarDirString =  FileUtils.addAnotherNodeToPath(webservicesDir, 
+// 		Axis2CreationUIMessages.DIR_AAR);
 //		File aarDir = new File(aarDirString);
 //		FileUtils.createDirectorys(aarDirString);
 //		AARFileWriter aarFileWriter = new AARFileWriter();
 //		File serviseDir = new File(servicesDirectory);
-//		aarFileWriter.writeAARFile(aarDir, serviceName + Axis2CreationUIMessages.FILE_AAR, serviseDir);
+//		aarFileWriter.writeAARFile(aarDir, serviceName + 
+//		Axis2CreationUIMessages.FILE_AAR, serviseDir);
 		
 		
 		//Import all the stuff form the .matadata directory to inside the current web project
 		} catch (IOException e) {
-			status = StatusUtils.errorStatus(NLS.bind(Axis2CreationUIMessages.ERROR_INVALID_FILE_READ_WRITEL,new String[]{e.getLocalizedMessage()}), e);
+			status = StatusUtils.errorStatus(
+					NLS.bind(Axis2CreationUIMessages.ERROR_INVALID_FILE_READ_WRITEL,
+							new String[]{e.getLocalizedMessage()}), e);
 			environment.getStatusHandler().reportError(status); 
 		} catch (Exception e) {
-			status = StatusUtils.errorStatus(NLS.bind(Axis2CreationUIMessages.ERROR_INVALID_SERVICE_CREATION,new String[]{e.getLocalizedMessage()}), e);
+			status = StatusUtils.errorStatus(
+					NLS.bind(Axis2CreationUIMessages.ERROR_INVALID_SERVICE_CREATION,
+							new String[]{e.getLocalizedMessage()}), e);
 			environment.getStatusHandler().reportError(status); 
 		}
 	    
diff --git a/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/command/Axis2WSDL2JavaCommand.java b/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/command/Axis2WSDL2JavaCommand.java
index b7ac20f..6c5852f 100644
--- a/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/command/Axis2WSDL2JavaCommand.java
+++ b/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/command/Axis2WSDL2JavaCommand.java
@@ -11,6 +11,7 @@
  * -------- -------- -----------------------------------------------------------
  * 20070118   168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2 
  * 										  runtime to the framework for 168762
+ * 20070426   183046 sandakith@wso2.com - Lahiru Sandakith
  *******************************************************************************/
 package org.eclipse.jst.ws.axis2.creation.core.command;
 
@@ -20,7 +21,6 @@
 import java.util.Map;
 
 import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.IAdaptable;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
@@ -31,6 +31,7 @@
 import org.eclipse.jst.ws.axis2.core.utils.FileUtils;
 import org.eclipse.jst.ws.axis2.creation.core.data.DataModel;
 import org.eclipse.jst.ws.axis2.creation.core.messages.Axis2CreationUIMessages;
+import org.eclipse.jst.ws.axis2.creation.core.utils.PathLoadingUtil;
 import org.eclipse.osgi.util.NLS;
 import org.eclipse.wst.command.internal.env.core.common.StatusUtils;
 import org.eclipse.wst.common.environment.IEnvironment;
@@ -53,23 +54,10 @@
 		IEnvironment environment = getEnvironment();
 		IStatusHandler statusHandler = environment.getStatusHandler();	
 		
-		String workspaceDirectory = ResourcesPlugin.getWorkspace().getRoot().
-													getLocation().toOSString();
-		String currentDynamicWebProjectDir = FileUtils.addAnotherNodeToPath(
-														workspaceDirectory,
-														model.getWebProjectName());
-		String matadataDir = FileUtils.addAnotherNodeToPath(
-										workspaceDirectory,
-										Axis2CreationUIMessages.DIR_DOT_METADATA);
-	    String matadataPluginsDir = FileUtils.addAnotherNodeToPath(
-	    								matadataDir,
-	    								Axis2CreationUIMessages.DIR_DOT_PLUGINS);
-	    String matadataAxis2Dir = FileUtils.addAnotherNodeToPath(
-	    									matadataPluginsDir, 
-	    									Axis2CreationUIMessages.AXIS2_PROJECT);
-		String tempCodegenOutputLocation = FileUtils.addAnotherNodeToPath(
-											matadataAxis2Dir, 
-											Axis2CreationUIMessages.CODEGEN_RESULTS);
+		PathLoadingUtil.init(model);
+		String tempCodegenOutputLocation =PathLoadingUtil.getTempCodegenOutputLocation();
+		String currentDynamicWebProjectDir = PathLoadingUtil.getCurrentDynamicWebProjectDir();
+		
 		File tempCodegenLocationFile = new File(tempCodegenOutputLocation);
 		if (tempCodegenLocationFile.exists())FileUtils.deleteDirectories(tempCodegenOutputLocation);
 		FileUtils.createDirectorys(tempCodegenOutputLocation);
@@ -91,7 +79,9 @@
             model.isGenerateAllCheck(),
             (model.getServiceName()!=null)?model.getServiceName():null,
             (model.getPortName()!=null)?model.getPortName():null,
-            (model.getDatabindingType().toLowerCase()!=null)?model.getDatabindingType().toLowerCase():null,
+            (model.getDatabindingType().toLowerCase()!=null)?
+            		model.getDatabindingType().toLowerCase():
+            		null,
             (model.getWsdlURI()!=null)?model.getWsdlURI():null,
             (model.getPackageText()!=null)?model.getPackageText():null,
             "java",
@@ -102,67 +92,49 @@
         
         
         //CodeGenConfiguration codegenConfig = new CodeGenConfiguration(service, optionsMap);
-		Class CodeGenConfigurationClass = ClassLoadingUtil.loadClassFromAntClassLoader("org.apache.axis2.wsdl.codegen.CodeGenConfiguration");
+		Class CodeGenConfigurationClass = ClassLoadingUtil
+				.loadClassFromAntClassLoader("org.apache.axis2.wsdl.codegen.CodeGenConfiguration");
 
-		Class[] parameterTypes = new Class[2];
-		parameterTypes[0] = axisServiceInstance.getClass();
-		parameterTypes[1] = Map.class;
-		Constructor CodeGenConfigurationConstructor = CodeGenConfigurationClass.getConstructor(parameterTypes);
+		Constructor CodeGenConfigurationConstructor = CodeGenConfigurationClass
+				.getConstructor(new Class[]{axisServiceInstance.getClass(),Map.class});
        
-		Object initargs[] = new Object[2];
-		initargs[0] = axisServiceInstance;
-		initargs[1] = optionsMap;
-		Object CodeGenConfigurationInstance  = CodeGenConfigurationConstructor.newInstance(initargs);
+		Object CodeGenConfigurationInstance = CodeGenConfigurationConstructor
+			.newInstance(new Object[]{axisServiceInstance,optionsMap});
 		
         //set the baseURI
         //codegenConfig.setBaseURI(generator.getBaseUri(model.getWsdlURI()));
 		
-		Class[] parameterTypes1 = new Class[1];
-		parameterTypes1[0] = String.class;
-		Method setBaseURIMethod = CodeGenConfigurationClass.getMethod("setBaseURI", parameterTypes1);
-
-		Object args[] = new Object[1];
-		args[0] = generator.getBaseUri(model.getWsdlURI());
-		setBaseURIMethod.invoke(CodeGenConfigurationInstance, args);
+		Method setBaseURIMethod = CodeGenConfigurationClass
+			.getMethod("setBaseURI", new Class[]{ String.class});
+		setBaseURIMethod.invoke(CodeGenConfigurationInstance, 
+								new Object[]{generator.getBaseUri(model.getWsdlURI())});
 		
 		//Get the namespace from the AxisService and set it in the configuration 
-		Class AxisServiceClass = ClassLoadingUtil.loadClassFromAntClassLoader("org.apache.axis2.description.AxisService");
-
+		Class AxisServiceClass = ClassLoadingUtil
+				.loadClassFromAntClassLoader("org.apache.axis2.description.AxisService");
 		Method getTargetNamespaceMethod = AxisServiceClass.getMethod("getTargetNamespace", null);
 		Object targetNamespace = getTargetNamespaceMethod.invoke(axisServiceInstance, null);
 		
 		
-		Class URLProcessorClass = ClassLoadingUtil.loadClassFromAntClassLoader("org.apache.axis2.util.URLProcessor");
-		Class parameterTypes4[] = new Class[1];
-		parameterTypes4[0] = String.class;
-		Method makePackageNameMethod = URLProcessorClass.getMethod("makePackageName", parameterTypes4);
-		
-		Object args4[] = new Object[1];
-		args4[0] = targetNamespace;
-		Object stringReturn = makePackageNameMethod.invoke(null, args4);
+		Class URLProcessorClass = ClassLoadingUtil
+				.loadClassFromAntClassLoader("org.apache.axis2.util.URLProcessor");
+		Method makePackageNameMethod = URLProcessorClass
+				.getMethod("makePackageName", new Class[]{String.class});
+		Object stringReturn = makePackageNameMethod.invoke(null, new Object[]{targetNamespace});
 		
 		model.setPackageText(stringReturn.toString());
 		
-		Class[] parameterTypes3 = new Class[1];
-		parameterTypes3[0] = String.class;
-		Method setPackageNameMethod = CodeGenConfigurationClass.getMethod("setPackageName", parameterTypes3);
-
-		Object args2[] = new Object[1];
-		args2[0] = stringReturn;
-		setPackageNameMethod.invoke(CodeGenConfigurationInstance, args2);
+		Method setPackageNameMethod = CodeGenConfigurationClass
+					.getMethod("setPackageName", new Class[]{String.class});
+		setPackageNameMethod.invoke(CodeGenConfigurationInstance, new Object[]{stringReturn});
 		
         //new CodeGenerationEngine(codegenConfig).generate();
-		
-        //Class CodeGenerationEngineClass = Class.forName("org.apache.axis2.wsdl.codegen.CodeGenerationEngine");
-		Class CodeGenerationEngineClass = ClassLoadingUtil.loadClassFromAntClassLoader("org.apache.axis2.wsdl.codegen.CodeGenerationEngine");
-
-		Class[] parameterTypes2 = new Class[1];
-		parameterTypes2[0] = CodeGenConfigurationInstance.getClass();
-		Constructor CodeGenerationEngineConstructor = CodeGenerationEngineClass.getConstructor(parameterTypes2);
-        
-		Object initargs1[] = new Object[1];
-		initargs1[0] = CodeGenConfigurationInstance;
-		Object CodeGenerationEngineInstance  = CodeGenerationEngineConstructor.newInstance(initargs1);
+		Class CodeGenerationEngineClass = ClassLoadingUtil
+				.loadClassFromAntClassLoader("org.apache.axis2.wsdl.codegen.CodeGenerationEngine");
+		Constructor CodeGenerationEngineConstructor = CodeGenerationEngineClass
+						.getConstructor(new Class[]{CodeGenConfigurationInstance.getClass()});
+		Object CodeGenerationEngineInstance  = CodeGenerationEngineConstructor
+						.newInstance(new Object[]{CodeGenConfigurationInstance});
 		
 		//Invoke Codegen Method
 		Method generateMethod = CodeGenerationEngineClass.getMethod("generate", null);
diff --git a/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/messages/Axis2CreationUIMessages.java b/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/messages/Axis2CreationUIMessages.java
index c86679e..0f5afa8 100644
--- a/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/messages/Axis2CreationUIMessages.java
+++ b/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/messages/Axis2CreationUIMessages.java
@@ -10,6 +10,7 @@
  * yyyymmdd bug      Email and other contact information
  * -------- -------- -----------------------------------------------------------
  * 20070110   168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2 runtime to the framework for 168762
+ * 20070426   183046 sandakith@wso2.com - Lahiru Sandakith
  *******************************************************************************/
 package org.eclipse.jst.ws.axis2.creation.core.messages;
 
@@ -18,7 +19,8 @@
 public class Axis2CreationUIMessages extends NLS {
 
 	//get the lables from this massages to the properties file
-	private static final String BUNDLE_NAME = "org.eclipse.jst.ws.axis2.creation.core.messages.Axis2CreationUI";//$NON-NLS-1$
+	private static final String BUNDLE_NAME = 
+			"org.eclipse.jst.ws.axis2.creation.core.messages.Axis2CreationUI";//$NON-NLS-1$
 
 	private Axis2CreationUIMessages() {
 		// Do not instantiate
diff --git a/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/plugin/WebServiceAxis2CreationCorePlugin.java b/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/plugin/WebServiceAxis2CreationCorePlugin.java
index 56c9fb3..f19af8e 100644
--- a/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/plugin/WebServiceAxis2CreationCorePlugin.java
+++ b/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/plugin/WebServiceAxis2CreationCorePlugin.java
@@ -11,6 +11,7 @@
  * -------- -------- -----------------------------------------------------------
  * 20070130   168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2 
  * 										  runtime to the framework for 168762
+ * 20070426   183046 sandakith@wso2.com - Lahiru Sandakith
  *******************************************************************************/
 package org.eclipse.jst.ws.axis2.creation.core.plugin;
 
@@ -23,7 +24,7 @@
 public class WebServiceAxis2CreationCorePlugin extends Plugin {
 
 	// The plug-in ID
-	public static final String PLUGIN_ID = "org.eclipse.jst.ws.axis2.creation.core.plugin";
+	public static final String PLUGIN_ID = "org.eclipse.jst.ws.axis2.creation.core";
 
 	// The shared instance
 	private static WebServiceAxis2CreationCorePlugin plugin;
diff --git a/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/utils/PathLoadingUtil.java b/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/utils/PathLoadingUtil.java
new file mode 100644
index 0000000..cdbe566
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/utils/PathLoadingUtil.java
@@ -0,0 +1,76 @@
+/*******************************************************************************
+ * Copyright (c) 2007 WSO2 Inc. and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * WSO2 Inc. - initial API and implementation
+ * yyyymmdd bug      Email and other contact information
+ * -------- -------- -----------------------------------------------------------
+ * 20070330   168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2 
+ * 										  runtime to the framework for 168762
+ * 20070426   183046 sandakith@wso2.com - Lahiru Sandakith
+ *******************************************************************************/
+package org.eclipse.jst.ws.axis2.creation.core.utils;
+
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.jst.ws.axis2.core.utils.FileUtils;
+import org.eclipse.jst.ws.axis2.creation.core.data.DataModel;
+import org.eclipse.jst.ws.axis2.creation.core.messages.Axis2CreationUIMessages;
+
+public class PathLoadingUtil {
+	
+	//Model
+	private static  DataModel model = null;
+
+	//Paths
+	private static String tempCodegenOutputLocation = null;
+	private static String currentDynamicWebProjectDir = null;
+	private static String workspaceDirectory = null;
+	
+	//Already Computed
+	private static boolean alreadyInit = false;
+	private static boolean alreadyComputeTempCodegenOutputLocation = false;
+	private static boolean alreadyComputeCurrentDynamicWebProjectDir = false;
+	private static boolean alreadyComputeWorkspaceDirectory = false;
+	
+	public static void init(DataModel inputModel){
+		if(!alreadyInit){
+			model = inputModel;
+		}
+	}
+
+	public	static String getWorkspaceDirectory() {
+		if (!alreadyComputeWorkspaceDirectory){
+			workspaceDirectory = ResourcesPlugin.getWorkspace().getRoot()
+			.getLocation().toOSString();
+			alreadyComputeWorkspaceDirectory = true;
+		}
+		return workspaceDirectory;
+	}
+	
+	public static String getCurrentDynamicWebProjectDir(){
+		if (!alreadyComputeCurrentDynamicWebProjectDir){
+			currentDynamicWebProjectDir = FileUtils.addAnotherNodeToPath(
+			getWorkspaceDirectory(), model.getWebProjectName());
+			alreadyComputeCurrentDynamicWebProjectDir = true;
+		}
+		return currentDynamicWebProjectDir;
+	}
+	
+	
+	public static String getTempCodegenOutputLocation() {
+		if (!alreadyComputeTempCodegenOutputLocation){
+			String[] nodes = {	Axis2CreationUIMessages.DIR_DOT_METADATA,
+								Axis2CreationUIMessages.DIR_DOT_PLUGINS,
+								Axis2CreationUIMessages.AXIS2_PROJECT,
+								Axis2CreationUIMessages.CODEGEN_RESULTS};
+			tempCodegenOutputLocation = FileUtils.addNodesToPath(getWorkspaceDirectory(), nodes);
+			alreadyComputeTempCodegenOutputLocation = true;
+		}
+		return tempCodegenOutputLocation;
+	}
+
+}
diff --git a/bundles/org.eclipse.jst.ws.axis2.creation.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.jst.ws.axis2.creation.ui/META-INF/MANIFEST.MF
index 32fdb01..381d084 100644
--- a/bundles/org.eclipse.jst.ws.axis2.creation.ui/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.jst.ws.axis2.creation.ui/META-INF/MANIFEST.MF
@@ -1,6 +1,6 @@
 Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
-Bundle-Name: Ui Plug-in
+Bundle-Name: Axis2 Creation Ui Plug-in
 Bundle-SymbolicName: org.eclipse.jst.ws.axis2.creation.ui;singleton:=true
 Bundle-Version: 1.0.0
 Bundle-Activator: org.eclipse.jst.ws.internal.axis2.creation.ui.plugin.WebServiceAxis2CreationUIPlugin
diff --git a/bundles/org.eclipse.jst.ws.axis2.creation.ui/src/org/eclipse/jst/ws/internal/axis2/creation/ui/widgets/skeleton/WSDL2JAVASkelConfigWidget.java b/bundles/org.eclipse.jst.ws.axis2.creation.ui/src/org/eclipse/jst/ws/internal/axis2/creation/ui/widgets/skeleton/WSDL2JAVASkelConfigWidget.java
index a5fa29b..52fd5b4 100644
--- a/bundles/org.eclipse.jst.ws.axis2.creation.ui/src/org/eclipse/jst/ws/internal/axis2/creation/ui/widgets/skeleton/WSDL2JAVASkelConfigWidget.java
+++ b/bundles/org.eclipse.jst.ws.axis2.creation.ui/src/org/eclipse/jst/ws/internal/axis2/creation/ui/widgets/skeleton/WSDL2JAVASkelConfigWidget.java
@@ -11,6 +11,7 @@
  * -------- -------- -----------------------------------------------------------
  * 20070110   168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2 
  * 										  runtime to the framework for 168762
+ * 20070425   183046 sandakith@wso2.com - Lahiru Sandakith
  *******************************************************************************/
 package org.eclipse.jst.ws.internal.axis2.creation.ui.widgets.skeleton;
 
@@ -22,6 +23,7 @@
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.jst.ws.axis2.consumption.core.utils.WSDLPropertyReader;
+import org.eclipse.jst.ws.axis2.core.plugin.data.ServerModel;
 import org.eclipse.jst.ws.axis2.core.utils.ClassLoadingUtil;
 import org.eclipse.jst.ws.axis2.creation.core.data.DataModel;
 import org.eclipse.jst.ws.axis2.creation.core.messages.Axis2CreationUIMessages;
@@ -71,7 +73,8 @@
 	private Table namespace2packageTable = null;
 	//Label holding the full qualified package name for generated code
 	private Text packageText;
-	//Checkbox to enable the generation of test case classes for the generated implementation of the webservice.
+	//Checkbox to enable the generation of test case classes 
+	// for the generated implementation of the webservice.
 	Label      label, fillLabel, fillLabel1, fillLabel2, fillLabel3, fillLabel4, fillLabel5, fillLabel6;
 
 	public WSDL2JAVASkelConfigWidget( DataModel model )	{
@@ -179,10 +182,11 @@
 		testCaseCheckBoxButton.setLayoutData(gd);
 		testCaseCheckBoxButton
 		.setText(Axis2CreationUIMessages.LABEL_GENERATE_TESTCASE_CAPTION);
-		model.setTestCaseCheck(false);
+		testCaseCheckBoxButton.setSelection(ServerModel.isServiceTestcase());
+		model.setTestCaseCheck(ServerModel.isServiceTestcase());
 		testCaseCheckBoxButton.addSelectionListener(new SelectionListener() {
 			public void widgetSelected(SelectionEvent e) {
-				model.setTestCaseCheck(true);
+				model.setTestCaseCheck(testCaseCheckBoxButton.getSelection());
 			}
 
 			public void widgetDefaultSelected(SelectionEvent e) {
@@ -196,13 +200,15 @@
 		gd = new GridData(GridData.FILL_HORIZONTAL);
 		gd.horizontalSpan = 3;
 		generateServerSideInterfaceCheckBoxButton.setLayoutData(gd);
-		generateServerSideInterfaceCheckBoxButton.setSelection(false);
+		generateServerSideInterfaceCheckBoxButton
+							.setSelection(ServerModel.isServiceInterfaceSkeleton());
 		generateServerSideInterfaceCheckBoxButton.setText(Axis2CreationUIMessages.
 														  LABEL_GENERATE_SERVERSIDE_INTERFACE);
-		model.setGenerateAllCheck(false);
+		model.setGenerateAllCheck(ServerModel.isServiceInterfaceSkeleton());
 		generateServerSideInterfaceCheckBoxButton.addSelectionListener(new SelectionListener() {
 			public void widgetSelected(SelectionEvent e) {
-				model.setGenerateServerSideInterface(true);
+				model.setGenerateServerSideInterface(
+						generateServerSideInterfaceCheckBoxButton.getSelection());
 			}
 			public void widgetDefaultSelected(SelectionEvent e) {
 			}
@@ -213,11 +219,11 @@
 		gd = new GridData(GridData.FILL_HORIZONTAL);
 		gd.horizontalSpan = 3;
 		generateAllCheckBoxButton.setLayoutData(gd);
-		generateAllCheckBoxButton.setSelection(false);
+		generateAllCheckBoxButton.setSelection(ServerModel.isServiceGenerateAll());
 		generateAllCheckBoxButton.setText(Axis2CreationUIMessages.LABEL_GENERATE_ALL);
 		generateAllCheckBoxButton.addSelectionListener(new SelectionListener() {
 			public void widgetSelected(SelectionEvent e) {
-				model.setGenerateAllCheck(true);
+				model.setGenerateAllCheck(generateAllCheckBoxButton.getSelection());
 			}
 			public void widgetDefaultSelected(SelectionEvent e) {
 			}
@@ -325,7 +331,8 @@
 		model.setPackageText(packageText.getText());
 		model.setDatabindingType(databindingTypeCombo.getText());
 		model.setGenerateAllCheck(generateAllCheckBoxButton.getSelection());
-		model.setGenerateServerSideInterface(generateServerSideInterfaceCheckBoxButton.getSelection());
+		model.setGenerateServerSideInterface(
+				generateServerSideInterfaceCheckBoxButton.getSelection());
 		model.setTestCaseCheck(testCaseCheckBoxButton.getSelection());
 		model.setNamespaseToPackageMapping(getNs2PkgMapping());
 	}
@@ -362,9 +369,11 @@
 					for (int i = 0; i < serviceQNameList.size(); i++) {
 						// add the local part of the
 						Object serviceQnameInstance = serviceQNameList.get(0);
-						Class QNameClass = ClassLoadingUtil.loadClassFromAntClassLoader("javax.xml.namespace.QName");
+						Class QNameClass = ClassLoadingUtil
+										.loadClassFromAntClassLoader("javax.xml.namespace.QName");
 						Method GetLocalPartMethod  = QNameClass.getMethod("getLocalPart", null);
-						Object resultLocalPart = GetLocalPartMethod.invoke(serviceQnameInstance, null);
+						Object resultLocalPart = GetLocalPartMethod
+													.invoke(serviceQnameInstance, null);
 						serviceNameCombo.add(resultLocalPart.toString());
 					}
 					;
@@ -389,7 +398,9 @@
 			}
 		} catch (Exception e) {
 			if (e.getClass().getName().equals("javax.wsdl.WSDLException"))
-			status = StatusUtils.errorStatus(NLS.bind(Axis2CreationUIMessages.ERROR_INVALID_WSDL_FILE_READ_WRITEL,new String[]{e.getLocalizedMessage()}), e);
+			status = StatusUtils.errorStatus(
+					NLS.bind(Axis2CreationUIMessages.ERROR_INVALID_WSDL_FILE_READ_WRITEL,
+							 new String[]{e.getLocalizedMessage()}), e);
 		}
 	}
 
@@ -482,10 +493,12 @@
 		Object result = null;
 		try {
 			//Class URLProcessor = Class.forName("org.apache.axis2.util.URLProcessor");
-			Class URLProcessor = ClassLoadingUtil.loadClassFromAntClassLoader("org.apache.axis2.util.URLProcessor");
+			Class URLProcessor = ClassLoadingUtil
+						.loadClassFromAntClassLoader("org.apache.axis2.util.URLProcessor");
 			Class parameterTypes[] = new Class[1];
 			parameterTypes[0] = String.class;
-			Method makePackageNameMethod = URLProcessor.getMethod("makePackageName", parameterTypes);
+			Method makePackageNameMethod = URLProcessor
+									.getMethod("makePackageName", parameterTypes);
 			Object args[] = new Object[1];
 			args[0] = namespace;
 			result = makePackageNameMethod.invoke(makePackageNameMethod, args);
diff --git a/bundles/org.eclipse.jst.ws.axis2.creation.ui/src/org/eclipse/jst/ws/internal/axis2/creation/ui/wsrt/Axis2BeanConfigWidgetFactory.java b/bundles/org.eclipse.jst.ws.axis2.creation.ui/src/org/eclipse/jst/ws/internal/axis2/creation/ui/wsrt/Axis2BeanConfigWidgetFactory.java
index 05721c1..e60f938 100644
--- a/bundles/org.eclipse.jst.ws.axis2.creation.ui/src/org/eclipse/jst/ws/internal/axis2/creation/ui/wsrt/Axis2BeanConfigWidgetFactory.java
+++ b/bundles/org.eclipse.jst.ws.axis2.creation.ui/src/org/eclipse/jst/ws/internal/axis2/creation/ui/wsrt/Axis2BeanConfigWidgetFactory.java
@@ -11,6 +11,7 @@
  * -------- -------- -----------------------------------------------------------
  * 20070110   168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2 
  * 										  runtime to the framework for 168762
+ * 20070425   183046 sandakith@wso2.com - Lahiru Sandakith
  *******************************************************************************/
 
 package org.eclipse.jst.ws.internal.axis2.creation.ui.wsrt;
@@ -63,7 +64,8 @@
 
 	private void init(){
 		//Pages of Axis2 Web Services Java Bean Scenario
-		ServicesXMLSelectBeanWidget servicesXMLSelectWidget = new ServicesXMLSelectBeanWidget(model);
+		ServicesXMLSelectBeanWidget servicesXMLSelectWidget = 
+								new ServicesXMLSelectBeanWidget(model);
 		servicesXMLSelectWidgetContrib  = createWidgetContributor( 
 				Axis2CreationUIMessages.LABEL_AXIS2_PREFERENCE_PAGE_HEADING,
 				Axis2CreationUIMessages.LABEL_AXIS2_PREFERENCE_PAGE_SUB_HEADING, 
diff --git a/bundles/org.eclipse.jst.ws.axis2.creation.ui/src/org/eclipse/jst/ws/internal/axis2/creation/ui/wsrt/Axis2WebService.java b/bundles/org.eclipse.jst.ws.axis2.creation.ui/src/org/eclipse/jst/ws/internal/axis2/creation/ui/wsrt/Axis2WebService.java
index 11e6e5d..0f6abe4 100644
--- a/bundles/org.eclipse.jst.ws.axis2.creation.ui/src/org/eclipse/jst/ws/internal/axis2/creation/ui/wsrt/Axis2WebService.java
+++ b/bundles/org.eclipse.jst.ws.axis2.creation.ui/src/org/eclipse/jst/ws/internal/axis2/creation/ui/wsrt/Axis2WebService.java
@@ -10,6 +10,7 @@
  * yyyymmdd bug      Email and other contact information
  * -------- -------- -----------------------------------------------------------
  * 20070110   168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2 runtime to the framework for 168762
+ * 20070425   183046 sandakith@wso2.com - Lahiru Sandakith
  *******************************************************************************/
 package org.eclipse.jst.ws.internal.axis2.creation.ui.wsrt;
 
@@ -80,11 +81,13 @@
 			commands.add(new Axis2DefaultingCommand( model,this, ctx.getScenario().getValue()  ) );
 			commands.add(new Axis2TDCommand( model) );
 			commands.add(new Axis2WSDL2JavaCommand( model) );
-			commands.add( new Axis2BuildProjectCommand(ResourcesPlugin.getWorkspace().getRoot().getProject(project),true));
+			commands.add( new Axis2BuildProjectCommand(
+						ResourcesPlugin.getWorkspace().getRoot().getProject(project),true));
 			commands.add(new Axis2TDServiceCreationCommand(model,this,project));
 			commands.add(new Axis2WebservicesServerCommand(model, ctx.getScenario().getValue()));
 			//yes, again invoke the build command to redeploy the service after complete full build
-			commands.add( new Axis2BuildProjectCommand(ResourcesPlugin.getWorkspace().getRoot().getProject(project),true));
+			commands.add( new Axis2BuildProjectCommand(
+						ResourcesPlugin.getWorkspace().getRoot().getProject(project),true));
 			commands.add(new Axis2SkelImplCommand(this.getWebServiceInfo(),model));
 			commands.add(new Axis2CleanupCommand());
 		} 
diff --git a/bundles/org.eclipse.jst.ws.axis2.ui/src/org/eclipse/jst/ws/axis2/ui/plugin/WebServiceAxis2UIPlugin.java b/bundles/org.eclipse.jst.ws.axis2.ui/src/org/eclipse/jst/ws/axis2/ui/plugin/WebServiceAxis2UIPlugin.java
index 66cb17e..adba846 100644
--- a/bundles/org.eclipse.jst.ws.axis2.ui/src/org/eclipse/jst/ws/axis2/ui/plugin/WebServiceAxis2UIPlugin.java
+++ b/bundles/org.eclipse.jst.ws.axis2.ui/src/org/eclipse/jst/ws/axis2/ui/plugin/WebServiceAxis2UIPlugin.java
@@ -11,6 +11,7 @@
  * -------- -------- -----------------------------------------------------------
  * 20070130   168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2 
  * 										  runtime to the framework for 168762
+ * 20070425   183046 sandakith@wso2.com - Lahiru Sandakith
  *******************************************************************************/
 package org.eclipse.jst.ws.axis2.ui.plugin;
 
@@ -23,7 +24,7 @@
 public class WebServiceAxis2UIPlugin extends AbstractUIPlugin {
 
 	// The plug-in ID
-	public static final String PLUGIN_ID = "org.eclipse.jst.ws.axis2.ui.plugin";
+	public static final String PLUGIN_ID = "org.eclipse.jst.ws.axis2.ui";
 
 	// The shared instance
 	private static WebServiceAxis2UIPlugin plugin;
diff --git a/bundles/org.eclipse.jst.ws.axis2.ui/src/org/eclipse/jst/ws/internal/axis2/consumption/ui/preferences/Axis2RuntimePreferencePage.java b/bundles/org.eclipse.jst.ws.axis2.ui/src/org/eclipse/jst/ws/internal/axis2/consumption/ui/preferences/Axis2RuntimePreferencePage.java
index db3a06d..a5e7dbb 100644
--- a/bundles/org.eclipse.jst.ws.axis2.ui/src/org/eclipse/jst/ws/internal/axis2/consumption/ui/preferences/Axis2RuntimePreferencePage.java
+++ b/bundles/org.eclipse.jst.ws.axis2.ui/src/org/eclipse/jst/ws/internal/axis2/consumption/ui/preferences/Axis2RuntimePreferencePage.java
@@ -11,6 +11,7 @@
  * -------- -------- -----------------------------------------------------------
  * 20070130   168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2 
  * 										  runtime to the framework for 168762
+ * 20070425   183046 sandakith@wso2.com - Lahiru Sandakith
  *******************************************************************************/
 package org.eclipse.jst.ws.internal.axis2.consumption.ui.preferences;
 
@@ -50,7 +51,10 @@
 	private Label statusLabel;
 	@SuppressWarnings("unused")
 	private IStatus status = Status.OK_STATUS;
-	private boolean warExist = false;
+	private boolean webappExist = false;
+	private boolean isWar = false;
+	private String statusBanner = null;
+	
 
 	  
 	protected Control createContents(Composite superparent) {
@@ -61,11 +65,13 @@
 		TabFolder axis2PreferenceTab = new TabFolder(mainComp, SWT.NONE);
 		TabItem runtimeInstalLocationItem = new TabItem(axis2PreferenceTab, SWT.NONE);
 		runtimeInstalLocationItem.setText(Axis2CoreUIMessages.AXIS2_RUNTIME);
+		runtimeInstalLocationItem.setToolTipText(Axis2CoreUIMessages.AXIS2_RUNTIME_TOOLTIP);
 		
-		//---------------------------------------------------Axis2 Rintume Location Group------------------------------//
+		//-----------------------------Axis2 Rintume Location Group------------------------------//
 		Group runtimeGroup = new Group(axis2PreferenceTab, SWT.NONE);
 		runtimeGroup.setText("Axis2 Rintume Location");
 		runtimeInstalLocationItem.setControl(runtimeGroup);
+		runtimeGroup.setToolTipText(Axis2CoreUIMessages.AXIS2_RUNTIME_TOOLTIP);
 		
 		Label label = new Label( runtimeGroup, SWT.NONE );
 		label.setText( Axis2CoreUIMessages.AXIS2_LOCATION );
@@ -73,17 +79,23 @@
 		label.setSize(100,20);
 		
 		axis2Path = new Text( runtimeGroup, SWT.BORDER );
-		axis2Path.setText(
-					(RuntimePropertyUtils.getServerPathFromPropertiesFile() == null) ? "" 
-					: RuntimePropertyUtils.getServerPathFromPropertiesFile()
-				);
+		String serverPath = (RuntimePropertyUtils.getServerPathFromPropertiesFile() == null) ? "" 
+							: RuntimePropertyUtils.getServerPathFromPropertiesFile();
+		axis2Path.setText(serverPath);
+		ServerModel.setAxis2ServerPath( serverPath );
+		webappExist =runtimeExist(serverPath);
+		if(isWar){
+			ServerModel.setAxis2ServerPathRepresentsWar(true);
+		}else{
+			ServerModel.setAxis2ServerPathRepresentsWar(false);
+		}
 		axis2Path.setLocation(110,30);
 		axis2Path.setSize(400, 20);
 		axis2Path.addModifyListener( new ModifyListener(){
 			public void modifyText(ModifyEvent e){
 				ServerModel.setAxis2ServerPath( axis2Path.getText() );
-				warExist =runtimeExist(axis2Path.getText());
-				if (warExist) {
+				webappExist =runtimeExist(axis2Path.getText());
+				if (webappExist) {
 					status = RuntimePropertyUtils.writeServerPathToPropertiesFile(
 																axis2Path.getText());
 				}
@@ -114,21 +126,28 @@
 		statusLabel.setLocation(20,100);
 		statusLabel.setSize(560,40);
 		statusLabel.setAlignment(SWT.CENTER);
-		statusLabel.setText(
-				(axis2Path.getText().equals("") || !warExist) ?Axis2CoreUIMessages.LABEL_AXIS2_RUNTIME_LOAD_ERROR
-						: Axis2CoreUIMessages.LABEL_AXIS2_RUNTIME_LOAD
-		);
 		
-		warExist =runtimeExist(axis2Path.getText());
+		if (axis2Path.getText().equals("")) {
+			statusBanner = Axis2CoreUIMessages.LABEL_AXIS2_RUNTIME_NOT_EXIT;
+		} else if ( !axis2Path.getText().equals("") && (!webappExist)) {
+			statusBanner = Axis2CoreUIMessages.LABEL_AXIS2_RUNTIME_LOAD_ERROR;
+		}else{
+			statusBanner = Axis2CoreUIMessages.LABEL_AXIS2_RUNTIME_LOAD;
+		}
+		statusLabel.setText(statusBanner);
+		
+		webappExist =runtimeExist(axis2Path.getText());
 		
 		TabItem codegenPreferencesItem = new TabItem(axis2PreferenceTab, SWT.NONE);
 		codegenPreferencesItem.setText(Axis2CoreUIMessages.AXIS2_PREFERENCES);
+		codegenPreferencesItem.setToolTipText(Axis2CoreUIMessages.AXIS2_PREFERENCES_TOOLTIP);
 		
-		//---------------------------------------------------Axis2 Runtime Preferences------------------------------//
+		//--------------------------------Axis2 Runtime Preferences------------------------------//
 		
 		Group codegenGroup = new Group(axis2PreferenceTab, SWT.NONE);
 		codegenGroup.setText("Axis2 Runtime Preferences");
 		codegenPreferencesItem.setControl(codegenGroup);
+		codegenGroup.setToolTipText(Axis2CoreUIMessages.AXIS2_PREFERENCES_TOOLTIP);
 		
 		//Service Codegen Options
 		Label serviceCodegenLabel = new Label( codegenGroup, SWT.NONE );
@@ -143,22 +162,22 @@
 		databindingLabel.setSize(200,20);
 		
 		final Text databindingText = new Text( codegenGroup,SWT.BORDER );
-		databindingText.setText(Axis2CoreUIMessages.ADB);
+		databindingText.setText(ServerModel.getServiceDatabinding());
 		databindingText.addModifyListener( new ModifyListener() {
 			public void modifyText(ModifyEvent e){
-				ServerModel.setAxis2ServerPath( databindingText.getText() );
+				ServerModel.setServiceDatabinding( databindingText.getText() );
 			}
 		});
 		databindingText.setLocation(220,60);
 		databindingText.setSize(100,20);
 		
 		// generate test case option
-		Button testCaseCheckBoxButton = new Button(codegenGroup, SWT.CHECK);
+		final Button testCaseCheckBoxButton = new Button(codegenGroup, SWT.CHECK);
 		testCaseCheckBoxButton.setText(Axis2CoreUIMessages.LABEL_GENERATE_TESTCASE_CAPTION);
-		//model.setTestCaseCheck(false);
+		testCaseCheckBoxButton.setSelection(ServerModel.isServiceTestcase());
 		testCaseCheckBoxButton.addSelectionListener(new SelectionListener() {
 			public void widgetSelected(SelectionEvent e) {
-				//model.setTestCaseCheck(true);
+				ServerModel.setServiceTestcase(testCaseCheckBoxButton.getSelection());
 			}
 
 			public void widgetDefaultSelected(SelectionEvent e) {
@@ -170,13 +189,16 @@
 		//model.setServerXMLCheck(true);
 
 		//the server side interface option
-		Button generateServerSideInterfaceCheckBoxButton = new Button(codegenGroup, SWT.CHECK);
-		generateServerSideInterfaceCheckBoxButton.setSelection(false);
-		generateServerSideInterfaceCheckBoxButton.setText(Axis2CoreUIMessages.LABEL_GENERATE_SERVERSIDE_INTERFACE);
-		//model.setGenerateAllCheck(false);
+		final Button generateServerSideInterfaceCheckBoxButton = 
+							new Button(codegenGroup, SWT.CHECK);
+		generateServerSideInterfaceCheckBoxButton.setText(
+				Axis2CoreUIMessages.LABEL_GENERATE_SERVERSIDE_INTERFACE);
+		generateServerSideInterfaceCheckBoxButton.setSelection(
+									ServerModel.isServiceInterfaceSkeleton());
 		generateServerSideInterfaceCheckBoxButton.addSelectionListener(new SelectionListener() {
 			public void widgetSelected(SelectionEvent e) {
-				//model.setGenerateServerSideInterface(true);
+				ServerModel.setServiceInterfaceSkeleton(
+						generateServerSideInterfaceCheckBoxButton.getSelection());
 			}
 			public void widgetDefaultSelected(SelectionEvent e) {
 			}
@@ -185,12 +207,12 @@
 		generateServerSideInterfaceCheckBoxButton.setSize(300, 15);
 
 		// generate all
-		Button generateAllCheckBoxButton = new Button(codegenGroup, SWT.CHECK);
-		generateAllCheckBoxButton.setSelection(false);
+		final Button generateAllCheckBoxButton = new Button(codegenGroup, SWT.CHECK);
+		generateAllCheckBoxButton.setSelection(ServerModel.isServiceGenerateAll());
 		generateAllCheckBoxButton.setText(Axis2CoreUIMessages.LABEL_GENERATE_ALL);
 		generateAllCheckBoxButton.addSelectionListener(new SelectionListener() {
 			public void widgetSelected(SelectionEvent e) {
-				//model.setGenerateAllCheck(true);
+				ServerModel.setServiceGenerateAll(generateAllCheckBoxButton.getSelection());
 			}
 			public void widgetDefaultSelected(SelectionEvent e) {
 			}
@@ -198,7 +220,7 @@
 		generateAllCheckBoxButton.setLocation(10, 150);
 		generateAllCheckBoxButton.setSize(350, 15);
 		
-		///////////////////////////////////////////////////////////////////////////////////////////////////
+		///////////////////////////////////////////////////////////////////////////////////////////
 		
 		//seperator
 		Label seperatorLabel0 = new Label( codegenGroup, SWT.SEPARATOR|SWT.BORDER);
@@ -218,14 +240,17 @@
 		clientLabel.setSize(70,20); 
 		
 		//client side buttons
-		Button syncAndAsyncRadioButton = new Button(codegenGroup, SWT.RADIO);
+		final Button syncAndAsyncRadioButton = new Button(codegenGroup, SWT.RADIO);
 		syncAndAsyncRadioButton.setText(Axis2CoreUIMessages.LABEL_SYNC_AND_ASYNC);
 		syncAndAsyncRadioButton.setVisible(true);
-		syncAndAsyncRadioButton.setSelection(true);
+		syncAndAsyncRadioButton.setSelection(
+				((ServerModel.isAsync() || ServerModel.isSync())==false)
+				?true
+				:(ServerModel.isAsync() && ServerModel.isSync()));
 		syncAndAsyncRadioButton.addSelectionListener(new SelectionListener() {
 			public void widgetSelected(SelectionEvent e) {
-				//model.setSync(syncOnlyRadioButton.getSelection());
-				//model.setSync(asyncOnlyRadioButton.getSelection());
+				ServerModel.setSync(syncAndAsyncRadioButton.getSelection());
+				ServerModel.setAsync(syncAndAsyncRadioButton.getSelection());
 			}
 			public void widgetDefaultSelected(SelectionEvent e) {
 			}
@@ -233,12 +258,13 @@
 		syncAndAsyncRadioButton.setLocation(80,240);
 		syncAndAsyncRadioButton.setSize(190,20); 
 		
-		Button syncOnlyRadioButton = new Button(codegenGroup, SWT.RADIO);
+		final Button syncOnlyRadioButton = new Button(codegenGroup, SWT.RADIO);
 		syncOnlyRadioButton.setText(Axis2CoreUIMessages.LABEL_SYNC);
-		syncOnlyRadioButton.setSelection(false);
+		syncOnlyRadioButton.setSelection(ServerModel.isSync() && !ServerModel.isAsync() );
 		syncOnlyRadioButton.addSelectionListener(new SelectionListener() {
 			public void widgetSelected(SelectionEvent e) {
-				//model.setSync(syncOnlyRadioButton.getSelection());
+				ServerModel.setSync(syncOnlyRadioButton.getSelection());
+				ServerModel.setAsync(!syncOnlyRadioButton.getSelection());
 			}
 			public void widgetDefaultSelected(SelectionEvent e) {
 			}
@@ -246,12 +272,13 @@
 		syncOnlyRadioButton.setLocation(280,240);
 		syncOnlyRadioButton.setSize(170,20); 
 
-		Button asyncOnlyRadioButton = new Button(codegenGroup, SWT.RADIO);
+		final Button asyncOnlyRadioButton = new Button(codegenGroup, SWT.RADIO);
 		asyncOnlyRadioButton.setText(Axis2CoreUIMessages.LABEL_ASYNC);
-		asyncOnlyRadioButton.setSelection(false);
+		asyncOnlyRadioButton.setSelection(ServerModel.isAsync() && !ServerModel.isSync());
 		asyncOnlyRadioButton.addSelectionListener(new SelectionListener() {
 			public void widgetSelected(SelectionEvent e) {
-				//model.setSync(asyncOnlyRadioButton.getSelection());
+				ServerModel.setAsync(asyncOnlyRadioButton.getSelection());
+				ServerModel.setSync(!asyncOnlyRadioButton.getSelection());
 			}
 			public void widgetDefaultSelected(SelectionEvent e) {
 			}
@@ -266,7 +293,7 @@
 		clientDatabindingLabel.setSize(200,20);
 		
 		final Text databindingText1 = new Text( codegenGroup, SWT.BORDER );
-		databindingText1.setText(Axis2CoreUIMessages.ADB);
+		databindingText1.setText(ServerModel.getCleintDatabinding());
 		databindingText1.addModifyListener( new ModifyListener() {
 			public void modifyText(ModifyEvent e){
 				ServerModel.setAxis2ServerPath( databindingText1.getText() );
@@ -277,12 +304,12 @@
 		
 		
 		// generate test case option
-		Button clientTestCaseCheckBoxButton = new Button(codegenGroup, SWT.CHECK);
+		final Button clientTestCaseCheckBoxButton = new Button(codegenGroup, SWT.CHECK);
 		clientTestCaseCheckBoxButton.setText(Axis2CoreUIMessages.LABEL_GENERATE_TESTCASE_CAPTION);
-		//model.setTestCaseCheck(false);
+		clientTestCaseCheckBoxButton.setSelection(ServerModel.isClientTestcase());
 		clientTestCaseCheckBoxButton.addSelectionListener(new SelectionListener() {
 			public void widgetSelected(SelectionEvent e) {
-				//model.setTestCaseCheck(true);
+				ServerModel.setClientTestcase(clientTestCaseCheckBoxButton.getSelection());
 			}
 
 			public void widgetDefaultSelected(SelectionEvent e) {
@@ -291,15 +318,14 @@
 		clientTestCaseCheckBoxButton.setLocation(10,300);
 		clientTestCaseCheckBoxButton.setSize(300, 15);
 
-		//model.setServerXMLCheck(true);
 
 		// generate all
-		Button clientGenerateAllCheckBoxButton = new Button(codegenGroup, SWT.CHECK);
-		clientGenerateAllCheckBoxButton.setSelection(false);
+		final Button clientGenerateAllCheckBoxButton = new Button(codegenGroup, SWT.CHECK);
+		clientGenerateAllCheckBoxButton.setSelection(ServerModel.isClientGenerateAll());
 		clientGenerateAllCheckBoxButton.setText(Axis2CoreUIMessages.LABEL_GENERATE_ALL);
 		clientGenerateAllCheckBoxButton.addSelectionListener(new SelectionListener() {
 			public void widgetSelected(SelectionEvent e) {
-				//model.setGenerateAllCheck(true);
+				ServerModel.setClientGenerateAll(clientGenerateAllCheckBoxButton.getSelection());
 			}
 			public void widgetDefaultSelected(SelectionEvent e) {
 			}
@@ -307,7 +333,7 @@
 		clientGenerateAllCheckBoxButton.setLocation(10, 330);
 		clientGenerateAllCheckBoxButton.setSize(400, 15);
 		
-		///////////////////////////////////////////////////////////////////////////////////////////////////
+		///////////////////////////////////////////////////////////////////////////////////////////
 
 		//seperator
 		Label seperatorLabel1 = new Label( codegenGroup, SWT.SEPARATOR|SWT.BORDER);
@@ -327,10 +353,10 @@
 		aarExtentionLabel.setSize(200,20);
 		
 		final Text aarExtentionText = new Text( codegenGroup, SWT.BORDER);
-		aarExtentionText.setText(Axis2CoreUIMessages.AAR);
+		aarExtentionText.setText(ServerModel.getAarExtention());
 		aarExtentionText.addModifyListener( new ModifyListener() {
 			public void modifyText(ModifyEvent e){
-				ServerModel.setAxis2ServerPath( databindingText1.getText() );
+				ServerModel.setAarExtention( aarExtentionText.getText() );
 			}
 		});
 		aarExtentionText.setLocation(220,420);
@@ -356,40 +382,55 @@
 		if (fileName != null) {
 			axis2Path.setText(fileName);
 			ServerModel.setAxis2ServerPath( axis2Path.getText() );
+			if(isWar){
+				ServerModel.setAxis2ServerPathRepresentsWar(true);
+			}else{
+				ServerModel.setAxis2ServerPathRepresentsWar(false);
+			}
 		}
 	}
 	
 	private void statusUpdate(boolean status){
+		if(statusLabel != null){
+			if(!axis2Path.getText().equals("")){
 		if (status) {
 			statusLabel.setText(Axis2CoreUIMessages.LABEL_AXIS2_RUNTIME_LOAD);
 			this.setErrorMessage(null);
 		} else {
 			statusLabel.setText(Axis2CoreUIMessages.LABEL_AXIS2_RUNTIME_LOAD_ERROR);
-			this.setErrorMessage(Axis2CoreUIMessages.LABEL_AXIS2_RUNTIME_LOAD_ERROR);
+					//this.setErrorMessage(Axis2CoreUIMessages.LABEL_AXIS2_RUNTIME_LOAD_ERROR);
 		}
-		
+			}else{
+				statusLabel.setText(Axis2CoreUIMessages.LABEL_AXIS2_RUNTIME_NOT_EXIT);
+			}
+		}
 	}
 	
 	private boolean runtimeExist(String path){
+		isWar=false;
 		File axis2HomeDir = new File(path);
 		if (axis2HomeDir.isDirectory()) {
-			String axis2DistPath = Axis2CoreUtils.addAnotherNodeToPath(
+			String axis2LibPath = Axis2CoreUtils.addAnotherNodeToPath(
 													axis2HomeDir.getAbsolutePath(),
-													"dist");
-			if (new File(axis2DistPath).isDirectory()) {
+													"lib");
+			String axis2WebappPath = Axis2CoreUtils.addAnotherNodeToPath(
+					axis2HomeDir.getAbsolutePath(),
+					"webapp");
+			if (new File(axis2LibPath).isDirectory() && new File(axis2WebappPath).isDirectory()) {
+				statusUpdate(true);
+				return true;
+			} else {
 				String axis2WarPath = Axis2CoreUtils.addAnotherNodeToPath(
-						axis2DistPath,
+						path,
 						"axis2.war");
 				if (new File(axis2WarPath).isFile()) {
+					isWar = true;
 					statusUpdate(true);
 					return true;
 				} else {
 					statusUpdate(false);
 					return false;
 				}
-			} else {
-				statusUpdate(false);
-				return false;
 			}
 		}else{
 			statusUpdate(false);