You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by aj...@apache.org on 2006/01/31 07:27:26 UTC

svn commit: r373739 - in /webservices/axis2/trunk/java/modules/tool/src/org/apache/axis2/tool/codegen: eclipse/ eclipse/ui/ eclipse/util/ resource/

Author: ajith
Date: Mon Jan 30 22:27:11 2006
New Revision: 373739

URL: http://svn.apache.org/viewcvs?rev=373739&view=rev
Log:
Updated the Java2WSDL eclipse wizard. Now the eclipse plug-in support for Java2WSDL is complete.

Added:
    webservices/axis2/trunk/java/modules/tool/src/org/apache/axis2/tool/codegen/eclipse/util/ClassFileReader.java
    webservices/axis2/trunk/java/modules/tool/src/org/apache/axis2/tool/codegen/eclipse/util/NamespaceFinder.java
Modified:
    webservices/axis2/trunk/java/modules/tool/src/org/apache/axis2/tool/codegen/eclipse/CodeGenWizard.java
    webservices/axis2/trunk/java/modules/tool/src/org/apache/axis2/tool/codegen/eclipse/ui/AbstractWizardPage.java
    webservices/axis2/trunk/java/modules/tool/src/org/apache/axis2/tool/codegen/eclipse/ui/JavaSourceSelectionPage.java
    webservices/axis2/trunk/java/modules/tool/src/org/apache/axis2/tool/codegen/eclipse/ui/JavaWSDLOptionsPage.java
    webservices/axis2/trunk/java/modules/tool/src/org/apache/axis2/tool/codegen/eclipse/ui/JavaWSDLOutputLocationPage.java
    webservices/axis2/trunk/java/modules/tool/src/org/apache/axis2/tool/codegen/eclipse/ui/WSDLFileSelectionPage.java
    webservices/axis2/trunk/java/modules/tool/src/org/apache/axis2/tool/codegen/eclipse/util/SettingsConstants.java
    webservices/axis2/trunk/java/modules/tool/src/org/apache/axis2/tool/codegen/resource/Codegen.properties

Modified: webservices/axis2/trunk/java/modules/tool/src/org/apache/axis2/tool/codegen/eclipse/CodeGenWizard.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/tool/src/org/apache/axis2/tool/codegen/eclipse/CodeGenWizard.java?rev=373739&r1=373738&r2=373739&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/tool/src/org/apache/axis2/tool/codegen/eclipse/CodeGenWizard.java (original)
+++ webservices/axis2/trunk/java/modules/tool/src/org/apache/axis2/tool/codegen/eclipse/CodeGenWizard.java Mon Jan 30 22:27:11 2006
@@ -1,10 +1,9 @@
 package org.apache.axis2.tool.codegen.eclipse;
 
 import java.lang.reflect.InvocationTargetException;
+import java.util.HashMap;
 import java.util.Map;
-import java.util.Vector;
 
-import org.apache.axis2.tool.codegen.Java2WSDLGenerator;
 import org.apache.axis2.tool.codegen.WSDL2JavaGenerator;
 import org.apache.axis2.tool.codegen.eclipse.plugin.CodegenWizardPlugin;
 import org.apache.axis2.tool.codegen.eclipse.ui.AbstractWizardPage;
@@ -18,12 +17,14 @@
 import org.apache.axis2.tool.codegen.eclipse.util.SettingsConstants;
 import org.apache.axis2.wsdl.codegen.CodeGenConfiguration;
 import org.apache.axis2.wsdl.codegen.CodeGenerationEngine;
+import org.apache.axis2.wsdl.codegen.Java2WSDLCodegenEngine;
+import org.apache.axis2.wsdl.util.CommandLineOption;
+import org.apache.axis2.wsdl.util.CommandLineOptionConstants;
 import org.apache.wsdl.WSDLDescription;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.NullProgressMonitor;
 import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.wizard.IWizardPage;
 import org.eclipse.jface.wizard.Wizard;
@@ -36,7 +37,7 @@
  * The main wizard for the codegen wizard
  */
 
-public class CodeGenWizard extends Wizard implements INewWizard {
+public class CodeGenWizard extends Wizard implements INewWizard,CommandLineOptionConstants.Java2WSDLConstants {
     private ToolSelectionPage toolSelectionPage;
 
     private WSDLFileSelectionPage wsdlSelectionPage;
@@ -55,7 +56,7 @@
                                                                         // change
                                                                         // this
 
-    private ISelection selection;
+    
 
    
 
@@ -144,7 +145,8 @@
             case SettingsConstants.UNSPECIFIED_TYPE:
                 break; //Do nothing
             default:
-                throw new RuntimeException("Invalid state!");
+                throw new RuntimeException(CodegenWizardPlugin.
+                		getResourceString("general.invalid.state"));
             }
         } catch (Exception e) {
             MessageDialog.openError(getShell(), 
@@ -259,14 +261,58 @@
                  * monitor.worked(amount)
                  */
                 monitor.beginTask(CodegenWizardPlugin
-                        .getResourceString("generator.generating"), 2);
+                        .getResourceString("generator.generating"), 3);
 
                 try {
                     monitor.worked(1);
-                    //TODO - fill here
+                    //fill the option map
+                    Map optionsMap = new HashMap();
+                    CommandLineOption option = new CommandLineOption(
+                    		CLASSNAME_OPTION,new String[]{javaSourceSelectionPage.getClassName()});
+                    optionsMap.put(CLASSNAME_OPTION,option);
+                    
+                    option = new CommandLineOption(
+                    		CLASSPATH_OPTION,javaSourceSelectionPage.getClassPathList());
+                    optionsMap.put(CLASSPATH_OPTION,option);
+                    
+                    option = new CommandLineOption(
+                    		TARGET_NAMESPACE_OPTION,
+                    		new String[]{java2wsdlOptionsPage.getTargetNamespace()});
+                    optionsMap.put(TARGET_NAMESPACE_OPTION,option);
+                    
+                    option = new CommandLineOption(
+                    		TARGET_NAMESPACE_PREFIX_OPTION,
+                    		new String[]{java2wsdlOptionsPage.getTargetNamespacePrefix()});
+                    optionsMap.put(TARGET_NAMESPACE_PREFIX_OPTION,option);
+                    
+                    option = new CommandLineOption(
+                    		SCHEMA_TARGET_NAMESPACE_OPTION,
+                    		new String[]{java2wsdlOptionsPage.getSchemaTargetNamespace()});
+                    optionsMap.put(SCHEMA_TARGET_NAMESPACE_OPTION,option);
+                    
+                    option = new CommandLineOption(
+                    		SCHEMA_TARGET_NAMESPACE_PREFIX_OPTION,
+                    		new String[]{java2wsdlOptionsPage.getSchemaTargetNamespacePrefix()});
+                    optionsMap.put(SCHEMA_TARGET_NAMESPACE_PREFIX_OPTION,option);
+                    
+                    option = new CommandLineOption(
+                    		OUTPUT_LOCATION_OPTION,new String[]{java2wsdlOutputLocationPage.getOutputLocation()});
+                    optionsMap.put(OUTPUT_LOCATION_OPTION,option);
+                    
+                    option = new CommandLineOption(
+                    		OUTPUT_FILENAME_OPTION,new String[]{java2wsdlOutputLocationPage.getOutputWSDLName()});
+                    optionsMap.put(OUTPUT_FILENAME_OPTION,option);
+                    
+                    
+                    monitor.worked(1);
+                    
+                    new Java2WSDLCodegenEngine(optionsMap).generate();
+                    
+                    monitor.worked(1);
+                    
                     
                 } catch (Throwable e) {
-                    throw new RuntimeException(e);
+                	    throw new RuntimeException(e);
                 }
 
                 monitor.done();
@@ -278,7 +324,8 @@
         } catch (InvocationTargetException e1) {
             throw new RuntimeException(e1);
         } catch (InterruptedException e1) {
-            throw new RuntimeException("User Aborted!");
+            throw new RuntimeException(CodegenWizardPlugin.
+            		getResourceString("general.useraborted.state"));
         } catch (Exception e) {
             throw new RuntimeException(e);
         }
@@ -292,7 +339,7 @@
      * @see IWorkbenchWizard#init(IWorkbench, IStructuredSelection)
      */
     public void init(IWorkbench workbench, IStructuredSelection selection) {
-        this.selection = selection;
+        //do nothing
     }
 
     /**
@@ -324,5 +371,9 @@
      */
     public void populateOptions(){
     	optionsPage.populateServiceAndPort();
+    }
+    
+    public void setDefaultNamespaces(String fullyQualifiedClassName){
+    	java2wsdlOptionsPage.setNamespaceDefaults(fullyQualifiedClassName);
     }
 }

Modified: webservices/axis2/trunk/java/modules/tool/src/org/apache/axis2/tool/codegen/eclipse/ui/AbstractWizardPage.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/tool/src/org/apache/axis2/tool/codegen/eclipse/ui/AbstractWizardPage.java?rev=373739&r1=373738&r2=373739&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/tool/src/org/apache/axis2/tool/codegen/eclipse/ui/AbstractWizardPage.java (original)
+++ webservices/axis2/trunk/java/modules/tool/src/org/apache/axis2/tool/codegen/eclipse/ui/AbstractWizardPage.java Mon Jan 30 22:27:11 2006
@@ -55,7 +55,7 @@
     }
 
     protected void updateStatus(String message) {
-        setErrorMessage(message);
+    	setErrorMessage(message);
         setPageComplete(message == null);
     }
 

Modified: webservices/axis2/trunk/java/modules/tool/src/org/apache/axis2/tool/codegen/eclipse/ui/JavaSourceSelectionPage.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/tool/src/org/apache/axis2/tool/codegen/eclipse/ui/JavaSourceSelectionPage.java?rev=373739&r1=373738&r2=373739&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/tool/src/org/apache/axis2/tool/codegen/eclipse/ui/JavaSourceSelectionPage.java (original)
+++ webservices/axis2/trunk/java/modules/tool/src/org/apache/axis2/tool/codegen/eclipse/ui/JavaSourceSelectionPage.java Mon Jan 30 22:27:11 2006
@@ -17,7 +17,11 @@
 
 
 
+import java.util.ArrayList;
+import java.util.Iterator;
+
 import org.apache.axis2.tool.codegen.eclipse.plugin.CodegenWizardPlugin;
+import org.apache.axis2.tool.codegen.eclipse.util.ClassFileReader;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.ModifyEvent;
 import org.eclipse.swt.events.ModifyListener;
@@ -38,6 +42,7 @@
    
     private Text javaClassNameBox;
     private List javaClasspathList;
+    private Label statusLabel;
 
     public JavaSourceSelectionPage() {  
         super("page4");
@@ -45,7 +50,7 @@
 
     protected void initializeDefaultSettings() {
         settings.put(JAVA_CLASS_NAME, "");
-        settings.put(JAVA_CLASS_NAME, "");
+        settings.put(JAVA_CLASS_PATH_ENTRIES, new String[]{});
     }
 
     /*
@@ -126,16 +131,49 @@
                 .getResourceString("page4.removeEntry.label"));
         removeEntryButton.addMouseListener(new MouseAdapter(){
         	public void mouseUp(MouseEvent e) {
-        		//handle the remove click here
+        		handleRemove();
         	}
         });
         
         gd = new GridData(GridData.FILL_HORIZONTAL);
         gd.horizontalSpan = 3;
-        gd.verticalSpan = 4;
+        gd.verticalSpan = 7;
         javaClasspathList = new List(container,SWT.READ_ONLY | SWT.BORDER);
         javaClasspathList.setLayoutData(gd);
+        javaClasspathList.setItems(settings.getArray(JAVA_CLASS_PATH_ENTRIES));
         
+        gd = new GridData(GridData.FILL_HORIZONTAL);
+        Button tryLoadButton = new Button(container,SWT.PUSH);
+        tryLoadButton.setLayoutData(gd);
+        tryLoadButton.setText(CodegenWizardPlugin
+                .getResourceString("page4.tryLoad.label"));
+        tryLoadButton.addMouseListener(new MouseAdapter(){
+        	public void mouseUp(MouseEvent e) {
+        		java.util.List errorListener = new ArrayList();
+        		if (!ClassFileReader.tryLoadingClass(getClassName(),
+        				getClassPathList(),
+        				errorListener)){
+        			Iterator it = errorListener.iterator();
+        			while(it.hasNext()){
+        				Object nextObject = it.next();
+        				String errorMessage = nextObject==null?CodegenWizardPlugin
+				                .getResourceString("page4.unknownError.label"):nextObject.toString();
+						updateStatus(errorMessage);
+						updateStatusTextField(false,errorMessage);
+        			}
+        			
+        		}else{
+        			updateStatus(null);
+        			updateStatusTextField(true,CodegenWizardPlugin
+			                .getResourceString("page4.successLoading.label"));
+        		}
+        	}
+        });
+        
+        gd = new GridData(GridData.FILL_HORIZONTAL);
+        gd.horizontalSpan = 2;
+        statusLabel = new Label(container,SWT.NULL);
+        statusLabel.setLayoutData(gd);
         
         setPageComplete(false);
         
@@ -157,8 +195,23 @@
         String dirName = fileDialog.open();
         if (dirName != null) {
         	javaClasspathList.add(dirName);
+        	updateListEntries();
         }
-
+        updateStatusTextField(false,"");
+    }
+    
+    
+    /**
+     * Pops up the file browse dialog box
+     *  
+     */
+    private void handleRemove() {
+        int[] selectionIndices = javaClasspathList.getSelectionIndices();
+        for (int i=0;i<selectionIndices.length;i++){
+        	javaClasspathList.remove(selectionIndices[i]);
+        }
+        updateListEntries();
+        updateStatusTextField(false,"");
     }
     
    
@@ -172,10 +225,25 @@
         String fileName = fileDialog.open();
         if (fileName != null) {
         	javaClasspathList.add(fileName);
+        	updateListEntries();
         }
+        updateStatusTextField(false,"");
 
     }
     
+    private void updateStatusTextField(boolean success,String text){
+    	if (success){
+    		getCodegenWizard().setDefaultNamespaces(javaClassNameBox.getText());
+    	}
+    	statusLabel.setText(text);
+    }
+    private void updateListEntries(){
+    	settings.put(JAVA_CLASS_PATH_ENTRIES,javaClasspathList.getItems());
+    }
+    /**
+     * 
+     *
+     */
     private void handleClassNameTextChange(){
         String className = javaClassNameBox.getText();
         settings.put(JAVA_CLASS_NAME,className);
@@ -186,14 +254,23 @@
             updateStatus(CodegenWizardPlugin
                     .getResourceString("page4.error.ClassNameNotTerminated"));
         }else{
-            updateStatus(null);
+        	//just leave it
+            //updateStatus(null);
         }
     }
     
+    /**
+     * 
+     * @return
+     */
     public String getClassName(){
         return javaClassNameBox.getText();
     }
     
+    /**
+     * 
+     * @return
+     */
     public String[] getClassPathList(){
         return javaClasspathList.getItems();
     }

Modified: webservices/axis2/trunk/java/modules/tool/src/org/apache/axis2/tool/codegen/eclipse/ui/JavaWSDLOptionsPage.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/tool/src/org/apache/axis2/tool/codegen/eclipse/ui/JavaWSDLOptionsPage.java?rev=373739&r1=373738&r2=373739&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/tool/src/org/apache/axis2/tool/codegen/eclipse/ui/JavaWSDLOptionsPage.java (original)
+++ webservices/axis2/trunk/java/modules/tool/src/org/apache/axis2/tool/codegen/eclipse/ui/JavaWSDLOptionsPage.java Mon Jan 30 22:27:11 2006
@@ -16,6 +16,7 @@
 package org.apache.axis2.tool.codegen.eclipse.ui;
 
 import org.apache.axis2.tool.codegen.eclipse.plugin.CodegenWizardPlugin;
+import org.apache.axis2.tool.codegen.eclipse.util.NamespaceFinder;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.ModifyEvent;
 import org.eclipse.swt.events.ModifyListener;
@@ -26,172 +27,190 @@
 import org.eclipse.swt.widgets.Text;
 
 /*
-Usage java2wsdl -cn <fully qualified class name> : class file name
--o <output Location> : output file location
--cp <class path uri> : list of classpath entries - (urls)
--tn <target namespace> : target namespace
--tp <target namespace prefix> : target namespace prefix
--stn <schema target namespace> : target namespace for schema
--stp <schema target namespace prefix> : target namespace prefix for schema
--sn <service name> : service name
--of <output file name> : output file name for the WSDL
-*/
+ * Usage java2wsdl -cn <fully qualified class name> : class file name -o <output
+ * Location> : output file location -cp <class path uri> : list of classpath
+ * entries - (urls) -tn <target namespace> : target namespace -tp <target
+ * namespace prefix> : target namespace prefix -stn <schema target namespace> :
+ * target namespace for schema -stp <schema target namespace prefix> : target
+ * namespace prefix for schema -sn <service name> : service name -of <output
+ * file name> : output file name for the WSDL
+ */
 public class JavaWSDLOptionsPage extends AbstractWizardPage {
 
-    private Text targetNamespaceText;
-    private Text targetNamespacePrefixText;
-    private Text schemaTargetNamepaceText;
-    private Text schemaTargetNamespacePrefixText;
-    private Text serviceNameText;
-
-   
-    //TODO need more here
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.apache.axis2.tool.codegen.eclipse.ui.AbstractWizardPage#initializeDefaultSettings()
-     */
-    protected void initializeDefaultSettings() {
-       settings.put(PREF_JAVA_TARGET_NS,"");
-       settings.put(PREF_JAVA_TARGET_NS_PREF,"");
-       settings.put(PREF_JAVA_SCHEMA_TARGET_NS,"");
-       settings.put(PREF_JAVA_SCHEMA_TARGET_NS_PREF,"");
-       settings.put(PREF_JAVA_SERVICE_NAME,"");
-
-    }
-
-    /**
-     * @param pageName
-     */
-    public JavaWSDLOptionsPage() {
-        super("page5");
-
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.apache.axis2.tool.codegen.eclipse.ui.CodegenPage#getPageType()
-     */
-    public int getPageType() {
-        return JAVA_2_WSDL_TYPE;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
-     */
-    public void createControl(Composite parent) {
-        Composite container = new Composite(parent, SWT.NULL);
-        GridLayout layout = new GridLayout();
-        container.setLayout(layout);
-        layout.numColumns = 2;
-        layout.verticalSpacing = 9;
-
-        GridData gd = new GridData(GridData.FILL_HORIZONTAL);
-        Label label = new Label(container, SWT.NULL);
-        label.setText(CodegenWizardPlugin
-                .getResourceString("page5.targetNamespace.label"));
-
-        targetNamespaceText = new Text(container, SWT.BORDER | SWT.SINGLE);
-        targetNamespaceText.setLayoutData(gd);
-        targetNamespaceText.setText(settings.get(PREF_JAVA_TARGET_NS));
-        targetNamespaceText.addModifyListener(new ModifyListener() {
-            public void modifyText(ModifyEvent e) {
-                settings.put(PREF_JAVA_TARGET_NS, targetNamespaceText.getText());
-                //dialogChanged();
-            }
-        });
-
-        label = new Label(container, SWT.NULL);
-        label.setText(CodegenWizardPlugin
-                .getResourceString("page5.targetNamespacePrefix.label"));
-
-        gd = new GridData(GridData.FILL_HORIZONTAL);
-        targetNamespacePrefixText = new Text(container, SWT.BORDER);
-        targetNamespacePrefixText.setLayoutData(gd);
-        targetNamespacePrefixText.setText(settings.get(PREF_JAVA_TARGET_NS_PREF));
-        targetNamespacePrefixText.addModifyListener(new ModifyListener() {
-            public void modifyText(ModifyEvent e) {
-                settings.put(PREF_JAVA_TARGET_NS_PREF, targetNamespacePrefixText.getText());
-                //dialogChanged();
-            }
-        });
-        
-        label = new Label(container, SWT.NULL);
-        label.setText(CodegenWizardPlugin
-                .getResourceString("page5.schemaTargetNs.label"));
-
-        gd = new GridData(GridData.FILL_HORIZONTAL);
-        schemaTargetNamepaceText = new Text(container, SWT.BORDER);
-        schemaTargetNamepaceText.setLayoutData(gd);
-        schemaTargetNamepaceText.setText(settings.get(PREF_JAVA_SCHEMA_TARGET_NS_PREF));
-        schemaTargetNamepaceText.addModifyListener(new ModifyListener() {
-            public void modifyText(ModifyEvent e) {
-                settings.put(PREF_JAVA_SCHEMA_TARGET_NS_PREF, schemaTargetNamepaceText.getText());
-                //dialogChanged();
-            }
-        });
-        
-        label = new Label(container, SWT.NULL);
-        label.setText(CodegenWizardPlugin
-                .getResourceString("page5.schemaTargetNsPrefix.label"));
-
-        gd = new GridData(GridData.FILL_HORIZONTAL);
-        schemaTargetNamespacePrefixText = new Text(container, SWT.BORDER);
-        schemaTargetNamespacePrefixText.setLayoutData(gd);
-        schemaTargetNamespacePrefixText.setText(settings.get(PREF_JAVA_SCHEMA_TARGET_NS));
-        schemaTargetNamespacePrefixText.addModifyListener(new ModifyListener() {
-            public void modifyText(ModifyEvent e) {
-                settings.put(PREF_JAVA_SCHEMA_TARGET_NS, schemaTargetNamespacePrefixText.getText());
-                //dialogChanged();
-            }
-        });
-        
-        label = new Label(container, SWT.NULL);
-        label.setText(CodegenWizardPlugin
-                .getResourceString("page5.binding.label"));
-
-        gd = new GridData(GridData.FILL_HORIZONTAL);
-        schemaTargetNamespacePrefixText = new Text(container, SWT.BORDER);
-        schemaTargetNamespacePrefixText.setLayoutData(gd);
-        schemaTargetNamespacePrefixText.setText(settings.get(PREF_JAVA_SCHEMA_TARGET_NS));
-        schemaTargetNamespacePrefixText.addModifyListener(new ModifyListener() {
-            public void modifyText(ModifyEvent e) {
-                settings.put(PREF_JAVA_SCHEMA_TARGET_NS, schemaTargetNamespacePrefixText.getText());
-                //dialogChanged();
-            }
-        });
-        
-        setControl(container);
-
-    }
-
-    
-   
-    
-    public String getTargetNamespace() {
-        return this.targetNamespacePrefixText.getText();
-    }
-
-    public String getTargetNamespacePrefix() {
-        return this.targetNamespaceText.getText();
-    }
-
-    public String getSchemaTargetNamespace() {
-        return this.schemaTargetNamepaceText.getText();
-    }
-
-    public String getSchemaTargetNamespacePrefix() {
-        return this.schemaTargetNamespacePrefixText.getText();
-    }
-    
-   private String getServiceName(){
-       return this.serviceNameText.getText();
-   }
-    
-   
- 
+	private Text targetNamespaceText;
+
+	private Text targetNamespacePrefixText;
+
+	private Text schemaTargetNamepaceText;
+
+	private Text schemaTargetNamespacePrefixText;
+
+	private Text serviceNameText;
+
+	// TODO need more here
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.apache.axis2.tool.codegen.eclipse.ui.AbstractWizardPage#initializeDefaultSettings()
+	 */
+	protected void initializeDefaultSettings() {
+
+		
+		settings.put(PREF_JAVA_TARGET_NS,"" );
+		settings.put(PREF_JAVA_TARGET_NS_PREF, "");
+		settings.put(PREF_JAVA_SCHEMA_TARGET_NS, "");
+		settings.put(PREF_JAVA_SCHEMA_TARGET_NS_PREF, "");
+		settings.put(PREF_JAVA_SERVICE_NAME, "");
+
+	}
+
+	
+	public void setNamespaceDefaults(String fullyQualifiedClassName){
+		
+		targetNamespaceText.setText(NamespaceFinder.getTargetNamespaceFromClass(fullyQualifiedClassName));
+		schemaTargetNamepaceText.setText(NamespaceFinder.getSchemaTargetNamespaceFromClass(fullyQualifiedClassName));
+		
+		targetNamespacePrefixText.setText(NamespaceFinder.getDefaultNamespacePrefix());
+		schemaTargetNamespacePrefixText.setText(NamespaceFinder.getDefaultSchemaNamespacePrefix());
+		
+		serviceNameText.setText(fullyQualifiedClassName.replaceAll("\\.","_"));
+	}
+	/**
+	 * @param pageName
+	 */
+	public JavaWSDLOptionsPage() {
+		super("page5");
+
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.apache.axis2.tool.codegen.eclipse.ui.CodegenPage#getPageType()
+	 */
+	public int getPageType() {
+		return JAVA_2_WSDL_TYPE;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
+	 */
+	public void createControl(Composite parent) {
+		Composite container = new Composite(parent, SWT.NULL);
+		GridLayout layout = new GridLayout();
+		container.setLayout(layout);
+		layout.numColumns = 2;
+		layout.verticalSpacing = 9;
+
+		GridData gd = new GridData(GridData.FILL_HORIZONTAL);
+		Label label = new Label(container, SWT.NULL);
+		label.setText(CodegenWizardPlugin
+				.getResourceString("page5.targetNamespace.label"));
+
+		targetNamespaceText = new Text(container, SWT.BORDER | SWT.SINGLE);
+		targetNamespaceText.setLayoutData(gd);
+		targetNamespaceText.setText(settings.get(PREF_JAVA_TARGET_NS));
+		targetNamespaceText.addModifyListener(new ModifyListener() {
+			public void modifyText(ModifyEvent e) {
+				settings
+						.put(PREF_JAVA_TARGET_NS, targetNamespaceText.getText());
+				// dialogChanged();
+			}
+		});
+
+		label = new Label(container, SWT.NULL);
+		label.setText(CodegenWizardPlugin
+				.getResourceString("page5.targetNamespacePrefix.label"));
+
+		gd = new GridData(GridData.FILL_HORIZONTAL);
+		targetNamespacePrefixText = new Text(container, SWT.BORDER);
+		targetNamespacePrefixText.setLayoutData(gd);
+		targetNamespacePrefixText.setText(settings
+				.get(PREF_JAVA_TARGET_NS_PREF));
+		targetNamespacePrefixText.addModifyListener(new ModifyListener() {
+			public void modifyText(ModifyEvent e) {
+				settings.put(PREF_JAVA_TARGET_NS_PREF,
+						targetNamespacePrefixText.getText());
+				// dialogChanged();
+			}
+		});
+
+		label = new Label(container, SWT.NULL);
+		label.setText(CodegenWizardPlugin
+				.getResourceString("page5.schemaTargetNs.label"));
+
+		gd = new GridData(GridData.FILL_HORIZONTAL);
+		schemaTargetNamepaceText = new Text(container, SWT.BORDER);
+		schemaTargetNamepaceText.setLayoutData(gd);
+		schemaTargetNamepaceText.setText(settings
+				.get(PREF_JAVA_SCHEMA_TARGET_NS_PREF));
+		schemaTargetNamepaceText.addModifyListener(new ModifyListener() {
+			public void modifyText(ModifyEvent e) {
+				settings.put(PREF_JAVA_SCHEMA_TARGET_NS_PREF,
+						schemaTargetNamepaceText.getText());
+				// dialogChanged();
+			}
+		});
+
+		label = new Label(container, SWT.NULL);
+		label.setText(CodegenWizardPlugin
+				.getResourceString("page5.schemaTargetNsPrefix.label"));
+
+		gd = new GridData(GridData.FILL_HORIZONTAL);
+		schemaTargetNamespacePrefixText = new Text(container, SWT.BORDER);
+		schemaTargetNamespacePrefixText.setLayoutData(gd);
+		schemaTargetNamespacePrefixText.setText(settings
+				.get(PREF_JAVA_SCHEMA_TARGET_NS));
+		schemaTargetNamespacePrefixText.addModifyListener(new ModifyListener() {
+			public void modifyText(ModifyEvent e) {
+				settings.put(PREF_JAVA_SCHEMA_TARGET_NS,
+						schemaTargetNamespacePrefixText.getText());
+				// dialogChanged();
+			}
+		});
+
+		label = new Label(container, SWT.NULL);
+		label.setText(CodegenWizardPlugin
+				.getResourceString("page5.serviceName.label"));
+
+		gd = new GridData(GridData.FILL_HORIZONTAL);
+		serviceNameText = new Text(container, SWT.BORDER);
+		serviceNameText.setLayoutData(gd);
+		serviceNameText.setText(settings
+				.get(PREF_JAVA_SCHEMA_TARGET_NS));
+		serviceNameText.addModifyListener(new ModifyListener() {
+			public void modifyText(ModifyEvent e) {
+				settings.put(PREF_JAVA_SERVICE_NAME,
+						serviceNameText.getText());
+				// dialogChanged();
+			}
+		});
+
+		setControl(container);
+
+	}
+
+	public String getTargetNamespace() {
+		return this.targetNamespacePrefixText.getText();
+	}
+
+	public String getTargetNamespacePrefix() {
+		return this.targetNamespaceText.getText();
+	}
+
+	public String getSchemaTargetNamespace() {
+		return this.schemaTargetNamepaceText.getText();
+	}
+
+	public String getSchemaTargetNamespacePrefix() {
+		return this.schemaTargetNamespacePrefixText.getText();
+	}
+
+	public String getServiceName() {
+		return this.serviceNameText.getText();
+	}
+
 }

Modified: webservices/axis2/trunk/java/modules/tool/src/org/apache/axis2/tool/codegen/eclipse/ui/JavaWSDLOutputLocationPage.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/tool/src/org/apache/axis2/tool/codegen/eclipse/ui/JavaWSDLOutputLocationPage.java?rev=373739&r1=373738&r2=373739&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/tool/src/org/apache/axis2/tool/codegen/eclipse/ui/JavaWSDLOutputLocationPage.java (original)
+++ webservices/axis2/trunk/java/modules/tool/src/org/apache/axis2/tool/codegen/eclipse/ui/JavaWSDLOutputLocationPage.java Mon Jan 30 22:27:11 2006
@@ -18,9 +18,13 @@
 import java.io.File;
 
 import org.apache.axis2.tool.codegen.eclipse.plugin.CodegenWizardPlugin;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.Path;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.ModifyEvent;
 import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.SelectionAdapter;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.events.SelectionListener;
 import org.eclipse.swt.layout.GridData;
@@ -30,11 +34,13 @@
 import org.eclipse.swt.widgets.DirectoryDialog;
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.dialogs.ContainerSelectionDialog;
 
 public class JavaWSDLOutputLocationPage extends AbstractWizardPage {
     
     private Text outputFolderTextBox;
     private Text outputFileNameTextBox;
+    private Button locationSelectCheckBox;
 
     /**
      * @param pageName
@@ -47,7 +53,8 @@
      */
     protected void initializeDefaultSettings() {
         settings.put(PREF_JAVA_OUTPUT_WSDL_LOCATION,System.getProperty("user.dir"));
-        settings.put(JAVA_OUTPUT_WSDL_NAME,"service.wsdl");
+        settings.put(JAVA_OUTPUT_WSDL_NAME,"services.wsdl");
+        settings.put(PREF_JAVA_OUTPUT_SELECTION,false);
 
     }
 
@@ -64,15 +71,29 @@
     public void createControl(Composite parent) {
         Composite container = new Composite(parent, SWT.NULL);
         GridLayout layout = new GridLayout();
-        container.setLayout(layout);
         layout.numColumns = 3;
-        layout.verticalSpacing = 9;
+        //layout.verticalSpacing = 9;
+        container.setLayout(layout);
 
         GridData gd = new GridData(GridData.FILL_HORIZONTAL);
+        gd.horizontalSpan = 3;
+        locationSelectCheckBox = new Button(container, SWT.CHECK);
+        locationSelectCheckBox.setText(CodegenWizardPlugin
+                .getResourceString("page6.selectOption.label"));
+        locationSelectCheckBox.setLayoutData(gd);
+        locationSelectCheckBox.addSelectionListener(new SelectionAdapter(){
+        	public void widgetSelected(SelectionEvent e) {
+        		 settings.put(PREF_JAVA_OUTPUT_SELECTION,
+        				 locationSelectCheckBox.getSelection());
+        	}
+        });
+        
+        
         Label label = new Label(container, SWT.NULL);
         label.setText(CodegenWizardPlugin
                 .getResourceString("page6.output.label"));
-
+        
+        gd = new GridData(GridData.FILL_HORIZONTAL);
         outputFolderTextBox = new Text(container,SWT.BORDER);
         outputFolderTextBox.setLayoutData(gd);
         outputFolderTextBox.setText(settings.get(PREF_JAVA_OUTPUT_WSDL_LOCATION));
@@ -97,6 +118,7 @@
                 .getResourceString("page6.outputname.label"));
         
         gd = new GridData(GridData.FILL_HORIZONTAL);
+        gd.horizontalSpan = 2;
         outputFileNameTextBox = new Text(container,SWT.BORDER);
         outputFileNameTextBox.setLayoutData(gd);
         outputFileNameTextBox.setText(settings.get(JAVA_OUTPUT_WSDL_NAME));
@@ -138,11 +160,36 @@
     }
     
     private void handleBrowse(){
-        DirectoryDialog fileDialog = new DirectoryDialog(this.getShell());
-        String dirName = fileDialog.open();
-        if (dirName != null) {
-            outputFolderTextBox.setText(dirName);
-        }
+    	
+    	boolean location = locationSelectCheckBox.getSelection();
+		if (!location) {
+			DirectoryDialog dialog = new DirectoryDialog(this.getShell());
+			String returnString = dialog.open();
+			if (returnString != null) {
+				outputFolderTextBox.setText(returnString);
+			}
+		} else {
+			IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
+			
+			ContainerSelectionDialog dialog = new ContainerSelectionDialog(
+					getShell(),
+					root,
+					false,
+					CodegenWizardPlugin
+							.getResourceString("page3.containerbox.title"));
+			if (dialog.open() == ContainerSelectionDialog.OK) {
+				Object[] result = dialog.getResult();
+				if (result.length == 1) {
+					Path path = ((Path) result[0]);
+					// append to the workspace path
+					if (root.exists(path)) {
+						outputFolderTextBox.setText(root.getLocation().append(path)
+								.toFile().getAbsolutePath());
+					}
+				}
+			}
+		}
+		
 
     }
     

Modified: webservices/axis2/trunk/java/modules/tool/src/org/apache/axis2/tool/codegen/eclipse/ui/WSDLFileSelectionPage.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/tool/src/org/apache/axis2/tool/codegen/eclipse/ui/WSDLFileSelectionPage.java?rev=373739&r1=373738&r2=373739&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/tool/src/org/apache/axis2/tool/codegen/eclipse/ui/WSDLFileSelectionPage.java (original)
+++ webservices/axis2/trunk/java/modules/tool/src/org/apache/axis2/tool/codegen/eclipse/ui/WSDLFileSelectionPage.java Mon Jan 30 22:27:11 2006
@@ -2,7 +2,6 @@
 
 import org.apache.axis2.tool.codegen.eclipse.plugin.CodegenWizardPlugin;
 import org.eclipse.jface.dialogs.IDialogPage;
-import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.ModifyEvent;
 import org.eclipse.swt.events.ModifyListener;
@@ -24,7 +23,6 @@
 
     private Text fileText;
 
-    private ISelection selection;
 
    
     /**

Added: webservices/axis2/trunk/java/modules/tool/src/org/apache/axis2/tool/codegen/eclipse/util/ClassFileReader.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/tool/src/org/apache/axis2/tool/codegen/eclipse/util/ClassFileReader.java?rev=373739&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/tool/src/org/apache/axis2/tool/codegen/eclipse/util/ClassFileReader.java (added)
+++ webservices/axis2/trunk/java/modules/tool/src/org/apache/axis2/tool/codegen/eclipse/util/ClassFileReader.java Mon Jan 30 22:27:11 2006
@@ -0,0 +1,72 @@
+package org.apache.axis2.tool.codegen.eclipse.util;
+
+import java.io.File;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.util.List;
+
+/**
+ * A utility class for reading/loading classes and
+ * extracting the information.
+ *
+ */
+public class ClassFileReader {
+
+	/**
+	 * try whether a given class can be loaded from the given location
+	 * @param className
+	 * @param classPathEntries
+	 * @param errorListener
+	 * @return
+	 */
+	public static boolean tryLoadingClass(String className,
+			String[] classPathEntries, List errorListener) {
+		//make a URL class loader from the entries
+		ClassLoader classLoader;
+
+		if (classPathEntries.length > 0) {
+			URL[] urls = new URL[classPathEntries.length];
+
+			try {
+				for (int i = 0; i < classPathEntries.length; i++) {
+					String classPathEntry = classPathEntries[i];
+					//this should be a file(or a URL)
+					if (classPathEntry.startsWith("http://")) {
+						urls[i] = new URL(classPathEntry);
+					} else {
+						urls[i] = new File(classPathEntry).toURL();
+					}
+				}
+			} catch (MalformedURLException e) {
+				if (errorListener!=null){
+					errorListener.add(e);
+				}
+				return false;
+			}
+
+			classLoader = new URLClassLoader(urls);
+
+		} else {
+			classLoader = Thread.currentThread().getContextClassLoader();
+		}
+		
+		//try to load the class with the given name
+		
+		try {
+			Class clazz=classLoader.loadClass(className);
+			clazz.getMethods();
+		    
+			
+		} catch (Throwable t) {
+			if (errorListener!=null){
+				errorListener.add(t);
+			}
+			return false;
+		}
+
+		return true;
+
+	}
+
+}

Added: webservices/axis2/trunk/java/modules/tool/src/org/apache/axis2/tool/codegen/eclipse/util/NamespaceFinder.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/tool/src/org/apache/axis2/tool/codegen/eclipse/util/NamespaceFinder.java?rev=373739&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/tool/src/org/apache/axis2/tool/codegen/eclipse/util/NamespaceFinder.java (added)
+++ webservices/axis2/trunk/java/modules/tool/src/org/apache/axis2/tool/codegen/eclipse/util/NamespaceFinder.java Mon Jan 30 22:27:11 2006
@@ -0,0 +1,42 @@
+package org.apache.axis2.tool.codegen.eclipse.util;
+
+/**
+ * 
+ * @author Ajith
+ *
+ */
+public class NamespaceFinder {
+	
+	private static String NS_PREFIX = "http://";
+	private static String SCHEMA_NS_SUFFIX = "/types";
+	private static String SCHEMA_NS_DEFAULT_PREFIX = "types";
+	private static String NS_DEFAULT_PREFIX = "ns";
+	
+	
+	public static String getTargetNamespaceFromClass(String fullyQualifiedClassName){
+		//tokenize the className
+		String[] classNameParts = fullyQualifiedClassName.split("\\.");
+		//add the strings in reverse order to make
+		//the namespace
+		String nsUri = "";
+		for(int i=classNameParts.length-1;i>=0;i--){
+			nsUri = nsUri + classNameParts[i] + (i==0?"":".");
+		}
+		
+		return NS_PREFIX + nsUri;
+		
+		
+	}
+	
+	public static String getSchemaTargetNamespaceFromClass(String fullyQualifiedClassName){
+		return getTargetNamespaceFromClass(fullyQualifiedClassName) +SCHEMA_NS_SUFFIX;
+	}
+
+	public static String getDefaultSchemaNamespacePrefix(){
+		return SCHEMA_NS_DEFAULT_PREFIX;
+	}
+	
+	public static String getDefaultNamespacePrefix(){
+		return NS_DEFAULT_PREFIX;
+	}
+}

Modified: webservices/axis2/trunk/java/modules/tool/src/org/apache/axis2/tool/codegen/eclipse/util/SettingsConstants.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/tool/src/org/apache/axis2/tool/codegen/eclipse/util/SettingsConstants.java?rev=373739&r1=373738&r2=373739&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/tool/src/org/apache/axis2/tool/codegen/eclipse/util/SettingsConstants.java (original)
+++ webservices/axis2/trunk/java/modules/tool/src/org/apache/axis2/tool/codegen/eclipse/util/SettingsConstants.java Mon Jan 30 22:27:11 2006
@@ -92,23 +92,22 @@
     // ##################################################################################
     // Java source file selection page
     static final String JAVA_CLASS_NAME = "JAVA_CLASS_NAME";
-
-    static final String JAVA_CLASS_LOCATION_NAME = "JAVA_CLASS_LOCATION_NAME";
+    static final String JAVA_CLASS_PATH_ENTRIES = "JAVA_CLASS_PATH_NAME";
     
     // ##################################################################################
     // Java2wsdl options selection page
-    static final String PREF_JAVA_TARGET_NS = "INPUT_WSDL";
-    
-    static final String PREF_JAVA_TARGET_NS_PREF = "LOCATION_URL";
-    static final String PREF_JAVA_SCHEMA_TARGET_NS = "BINDING_NAME";
-    static final String PREF_JAVA_SERVICE_NAME = "MODE_INDEX";
+    static final String PREF_JAVA_TARGET_NS = "TARGET_NS";
+    static final String PREF_JAVA_TARGET_NS_PREF = "TARGET_NS_PREF";
+    static final String PREF_JAVA_SCHEMA_TARGET_NS = "SCHEMA_TARGET_NS";
+    static final String PREF_JAVA_SERVICE_NAME = "SCHEMA_SERVICE";
     static final String PREF_JAVA_STYLE_INDEX = "STYLE_INDEX";
-    static final String PREF_JAVA_SCHEMA_TARGET_NS_PREF = "PORTYPE_NAME";
+    static final String PREF_JAVA_SCHEMA_TARGET_NS_PREF = "SCHEMA_TARGET_NS_PREF";
     
     // ##################################################################################
     //output page
     static final String JAVA_OUTPUT_WSDL_NAME = "OUTPUT_WSDL";
     static final String PREF_JAVA_OUTPUT_WSDL_LOCATION = "OUTPUT_WSDL_LOCATION";
+    static final String PREF_JAVA_OUTPUT_SELECTION = "OUTPUT_WSDL_LOCATION_SELECT";
     // ##################################################################################
     // Page constants
      static final int WSDL_2_JAVA_TYPE = 1;

Modified: webservices/axis2/trunk/java/modules/tool/src/org/apache/axis2/tool/codegen/resource/Codegen.properties
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/tool/src/org/apache/axis2/tool/codegen/resource/Codegen.properties?rev=373739&r1=373738&r2=373739&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/tool/src/org/apache/axis2/tool/codegen/resource/Codegen.properties (original)
+++ webservices/axis2/trunk/java/modules/tool/src/org/apache/axis2/tool/codegen/resource/Codegen.properties Mon Jan 30 22:27:11 2006
@@ -8,6 +8,8 @@
 general.name=Axis2 Codegen Wizard
 general.browse=Browse...
 general.search=Search..
+general.invalid.state=Invalid state!
+general.useraborted.state=User aborted!
 ############################################################################
 # Initial tool selection page - Page0
 # Tool selection
@@ -73,13 +75,16 @@
 page4.title=Java source selection
 page4.desc=Set the output project for the generated code
 #labels
-page4.classpath.label=Java class file location
+page4.classpath.label=Java Class path Entries. Select either folders or jar files
 page4.classname.label=Class name
 page4.addDir.label=Add Folder
 page4.addJar.label=Add Jar
 page4.removeEntry.label=Remove
 page4.error.invalidClassName=Fully qualified class name needs to be specified!
 page4.error.ClassNameNotTerminated=Class name is not properly terminated!
+page4.tryLoad.label=Test Class Loading..
+page4.unknownError.label=Unknown error!
+page4.successLoading.label=Class file can be loaded successfully
 ###############################################################
 #java2wsdl options = page 5
 page5.name=page5
@@ -99,6 +104,7 @@
 ####
 page6.output.label=Output Location
 page6.outputname.label=Output File Name
+page6.selectOption.label=Browse Workspace projects only
 #Wizard
 generator.generating=Generating code...
 generator.readingWOM=Reading WSDL file...