[165664] Axis2: Integrate Apache Axis 2 into WTP.
diff --git a/bundles/org.eclipse.jst.ws.axis2.consumption.ui/.classpath b/bundles/org.eclipse.jst.ws.axis2.consumption.ui/.classpath
new file mode 100644
index 0000000..304e861
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.consumption.ui/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/bundles/org.eclipse.jst.ws.axis2.consumption.ui/.project b/bundles/org.eclipse.jst.ws.axis2.consumption.ui/.project
new file mode 100644
index 0000000..46d662e
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.consumption.ui/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.jst.ws.axis2.consumption.ui</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/bundles/org.eclipse.jst.ws.axis2.consumption.ui/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.jst.ws.axis2.consumption.ui/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..07f2864
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.consumption.ui/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,62 @@
+#Wed Mar 07 12:36:28 LKT 2007
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nullReference=ignore
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/bundles/org.eclipse.jst.ws.axis2.consumption.ui/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.jst.ws.axis2.consumption.ui/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000..05b7c7c
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.consumption.ui/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,4 @@
+#Wed Feb 21 10:48:27 LKT 2007
+eclipse.preferences.version=1
+internal.default.compliance=default
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?>\n<templates/>
diff --git a/bundles/org.eclipse.jst.ws.axis2.consumption.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.jst.ws.axis2.consumption.ui/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..9d012c2
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.consumption.ui/META-INF/MANIFEST.MF
@@ -0,0 +1,35 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %PLUGIN_NAME
+Bundle-SymbolicName: org.eclipse.jst.ws.axis2.consumption.ui;singleton:=true
+Bundle-Version: 1.0.0
+Bundle-Activator: org.eclipse.jst.ws.internal.axis2.consumption.ui.plugin.WebServiceAxis2ConsumptionUIPlugin
+Bundle-Localization: plugin
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.ui.ide,
+ org.eclipse.core.resources,
+ org.eclipse.jdt.core,
+ org.eclipse.wst.ws.parser,
+ org.eclipse.jst.ws,
+ org.eclipse.jst.ws.ui,
+ org.eclipse.jst.ws.consumption,
+ org.eclipse.jst.ws.consumption.ui,
+ org.eclipse.wst.ws,
+ org.eclipse.wst.command.env,
+ org.eclipse.wst.command.env.core,
+ org.eclipse.wst.command.env.ui,
+ org.eclipse.wst.server.core,
+ org.eclipse.wst.wsdl,
+ org.eclipse.wst.common.frameworks,
+ org.eclipse.wst.common.environment,
+ org.eclipse.jst.ws.axis2.consumption.core,
+ org.eclipse.jst.ws.axis2.ui,
+ org.eclipse.jst.ws.axis2.core
+Eclipse-LazyStart: true
+Bundle-Vendor: %PLUGIN_PROVIDER
+Export-Package: org.eclipse.jst.ws.internal.axis2.consumption.ui.plugin,
+ org.eclipse.jst.ws.internal.axis2.consumption.ui.widgets,
+ org.eclipse.jst.ws.internal.axis2.consumption.ui.wizard.client,
+ org.eclipse.jst.ws.internal.axis2.consumption.ui.wsrt
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/bundles/org.eclipse.jst.ws.axis2.consumption.ui/build.properties b/bundles/org.eclipse.jst.ws.axis2.consumption.ui/build.properties
new file mode 100644
index 0000000..0a9054c
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.consumption.ui/build.properties
@@ -0,0 +1,7 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ plugin.xml,\
+ META-INF/,\
+ .,\
+ plugin.properties
diff --git a/bundles/org.eclipse.jst.ws.axis2.consumption.ui/plugin.properties b/bundles/org.eclipse.jst.ws.axis2.consumption.ui/plugin.properties
new file mode 100644
index 0000000..47a8c2e
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.consumption.ui/plugin.properties
@@ -0,0 +1,29 @@
+###############################################################################
+# 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
+# -------- -------- -----------------------------------------------------------
+# 20070118 168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2 runtime to the framework for 168762
+###############################################################################
+#
+
+#
+# Messages in plugin.xml.
+#
+PLUGIN_NAME=Webservice Axis2 Consumption UI
+PLUGIN_PROVIDER=WSO2
+
+WEBSERVICECLIENTTYPE_NAME_JAVA_AXIS=Java proxy
+LABEL_RUNTIME_AXIS_11=Apache Axis2
+DESC_RUNTIME_AXIS_11=Apache Axis2
+#
+# Web Services Preferance Pages
+#
+# Categories
+PREFERENCE_CATEGORY_AXIS2_EMITTER=Axis2 Emitter
diff --git a/bundles/org.eclipse.jst.ws.axis2.consumption.ui/plugin.xml b/bundles/org.eclipse.jst.ws.axis2.consumption.ui/plugin.xml
new file mode 100644
index 0000000..fd14ae2
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.consumption.ui/plugin.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<plugin>
+
+ <extension point="org.eclipse.wst.command.env.ui.widgetRegistry">
+ <widgetFactory
+ id="Axis2ClientConfig"
+ insertBeforeCommandId="org.eclipse.jst.ws.axis2.consumption.core.command.Axis2WebservicesServerCommand"
+ class="org.eclipse.jst.ws.internal.axis2.consumption.ui.wsrt.Axis2ClientConfigWidgetFactory"/>
+ </extension>
+ <extension point="org.eclipse.wst.command.env.antDataMapping">
+ <map
+ key="ClientProjectName"
+ operation="org.eclipse.jst.ws.axis2.creation.core.command.Axis2ClientDefaultingCommand"
+ property="ClientProject"
+ transform="org.eclipse.jst.ws.internal.common.StringToIProjectTransformer"/>
+ </extension>
+
+</plugin>
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.ws.axis2.consumption.ui/src/org/eclipse/jst/ws/internal/axis2/consumption/ui/plugin/WebServiceAxis2ConsumptionUIPlugin.java b/bundles/org.eclipse.jst.ws.axis2.consumption.ui/src/org/eclipse/jst/ws/internal/axis2/consumption/ui/plugin/WebServiceAxis2ConsumptionUIPlugin.java
new file mode 100644
index 0000000..79c03f3
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.consumption.ui/src/org/eclipse/jst/ws/internal/axis2/consumption/ui/plugin/WebServiceAxis2ConsumptionUIPlugin.java
@@ -0,0 +1,50 @@
+package org.eclipse.jst.ws.internal.axis2.consumption.ui.plugin;
+
+import org.eclipse.core.runtime.Plugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class WebServiceAxis2ConsumptionUIPlugin extends Plugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.jst.ws.axis2.consumption.ui";
+
+ // The shared instance
+ private static WebServiceAxis2ConsumptionUIPlugin plugin;
+
+ /**
+ * The constructor
+ */
+ public WebServiceAxis2ConsumptionUIPlugin() {
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static WebServiceAxis2ConsumptionUIPlugin getDefault() {
+ return plugin;
+ }
+
+}
diff --git a/bundles/org.eclipse.jst.ws.axis2.consumption.ui/src/org/eclipse/jst/ws/internal/axis2/consumption/ui/task/DefaultsForHTTPBasicAuthCommand.java b/bundles/org.eclipse.jst.ws.axis2.consumption.ui/src/org/eclipse/jst/ws/internal/axis2/consumption/ui/task/DefaultsForHTTPBasicAuthCommand.java
new file mode 100644
index 0000000..bc3dd33
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.consumption.ui/src/org/eclipse/jst/ws/internal/axis2/consumption/ui/task/DefaultsForHTTPBasicAuthCommand.java
@@ -0,0 +1,18 @@
+package org.eclipse.jst.ws.internal.axis2.consumption.ui.task;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.wst.common.frameworks.datamodel.AbstractDataModelOperation;
+
+public class DefaultsForHTTPBasicAuthCommand extends AbstractDataModelOperation {
+
+ public IStatus execute(IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IStatus status = Status.OK_STATUS;
+ return status;
+ }
+
+}
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
new file mode 100644
index 0000000..636c518
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.consumption.ui/src/org/eclipse/jst/ws/internal/axis2/consumption/ui/widgets/Axis2ProxyWidget.java
@@ -0,0 +1,571 @@
+/*******************************************************************************
+ * 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
+ * -------- -------- -----------------------------------------------------------
+ * 20070130 168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2
+ * runtime to the framework for 168762
+ *******************************************************************************/
+package org.eclipse.jst.ws.internal.axis2.consumption.ui.widgets;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+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;
+import org.eclipse.jst.ws.axis2.core.utils.ClassLoadingUtil;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.TableEditor;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.widgets.TableItem;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.wst.command.internal.env.core.common.StatusUtils;
+import org.eclipse.wst.command.internal.env.ui.widgets.SimpleWidgetDataContributor;
+import org.eclipse.wst.command.internal.env.ui.widgets.WidgetDataEvents;
+
+public class Axis2ProxyWidget extends SimpleWidgetDataContributor {
+
+ DataModel model;
+ IStatus status = Status.OK_STATUS;
+
+
+ public Axis2ProxyWidget(DataModel model) {
+ this.model=model;
+ }
+
+ //private String pluginId_ = "org.eclipse.jst.ws.axis2.consumption.ui";
+
+ private Button genProxyCheckbox_;
+ private Button syncAndAsyncRadioButton;
+ private Button syncOnlyRadioButton;
+ private Button asyncOnlyRadioButton;
+ //private Button testCaseCheckBoxButton;
+ //private Button generateAllCheckBoxButton;
+ private Combo databindingTypeCombo;
+ private Combo portNameCombo;
+ private Combo serviceNameCombo;
+ private Text packageText;
+ Label label, fillLabel, fillLabel1, fillLabel2, fillLabel3, fillLabel4, fillLabel5, fillLabel6;
+ //private java.util.List serviceQNameList2 = null;
+ private Table namespace2packageTable = null;
+ private Button generateAllCheckBoxButton;
+ private Button testCaseCheckBoxButton;
+
+ private WSDLPropertyReader reader;
+ private List serviceQNameList = null;
+
+
+ public WidgetDataEvents addControls( Composite parent, Listener statusListener )
+ {
+
+ Composite mainComp = new Composite( parent, SWT.NONE );
+ GridLayout layout = new GridLayout();
+ mainComp.setLayout(layout);
+
+ layout.numColumns = 3;
+ GridData gd = new GridData(GridData.FILL_HORIZONTAL);
+ mainComp.setLayoutData( gd );
+
+ // service name
+ label = new Label(mainComp, SWT.NULL);
+ label.setText(Axis2ConsumptionUIMessages.LABEL_SERVICE_NAME_CAPTION);
+
+ serviceNameCombo = new Combo(mainComp, SWT.DROP_DOWN | SWT.BORDER
+ | SWT.READ_ONLY);
+ gd = new GridData(GridData.FILL_HORIZONTAL);
+ gd.horizontalSpan = 2;
+ serviceNameCombo.setLayoutData(gd);
+ serviceNameCombo.addSelectionListener(new SelectionListener() {
+ public void widgetSelected(SelectionEvent e) {
+ //loadPortNames();
+ model.setServiceName(serviceNameCombo.getText());
+ }
+ public void widgetDefaultSelected(SelectionEvent e) {
+ }
+ });
+
+ // port name
+ label = new Label(mainComp, SWT.NULL);
+ label.setText(Axis2ConsumptionUIMessages.LABEL_PORTNAME);
+ portNameCombo = new Combo(mainComp, SWT.DROP_DOWN | SWT.BORDER
+ | SWT.READ_ONLY);
+ gd = new GridData(GridData.FILL_HORIZONTAL);
+ gd.horizontalSpan = 2;
+ portNameCombo.setLayoutData(gd);
+ portNameCombo.addSelectionListener(new SelectionListener() {
+ public void widgetSelected(SelectionEvent e) {
+ model.setPortName(portNameCombo.getText());
+ }
+ public void widgetDefaultSelected(SelectionEvent e) {
+ }
+ });
+
+ // Databinding
+ label = new Label(mainComp, SWT.NULL);
+ label.setText(Axis2ConsumptionUIMessages.LABEL_DATABINDING_CAPTION);
+ gd = new GridData(GridData.FILL_HORIZONTAL);
+ gd.horizontalSpan = 2;
+ databindingTypeCombo = new Combo(mainComp, SWT.DROP_DOWN | SWT.BORDER | SWT.READ_ONLY);
+ databindingTypeCombo.setLayoutData(gd);
+ fillDatabinderCombo();
+ databindingTypeCombo.select(0);
+ databindingTypeCombo.addSelectionListener(new SelectionListener() {
+ public void widgetSelected(SelectionEvent e) {
+ model.setDatabindingType(databindingTypeCombo.getText());
+ };
+ public void widgetDefaultSelected(SelectionEvent e) {
+ };
+ });
+
+ // package name
+ label = new Label(mainComp, SWT.NULL);
+ label.setText(Axis2ConsumptionUIMessages.LABEL_PACKEGE_NAME);
+ packageText = new Text(mainComp, SWT.BORDER);
+ gd = new GridData(GridData.FILL_HORIZONTAL);
+ gd.horizontalSpan = 2;
+
+ packageText.setLayoutData(gd);
+ packageText.setText(""); // get this text from the
+ packageText.addModifyListener(new ModifyListener() {
+ public void modifyText(ModifyEvent e) {
+ model.setPackageText(packageText.getText());
+ }
+ });
+
+ //filling label
+ gd = new GridData(GridData.FILL_HORIZONTAL);
+ gd.horizontalSpan = 3;
+ fillLabel = new Label(mainComp, SWT.HORIZONTAL | SWT.NULL);
+ fillLabel.setLayoutData(gd);
+
+ //Client type label
+ gd = new GridData(GridData.FILL_HORIZONTAL);
+ gd.horizontalSpan = 3;
+ fillLabel2 = new Label(mainComp, SWT.HORIZONTAL | SWT.NULL);
+ fillLabel2.setText(Axis2ConsumptionUIMessages.LABEL_CLIENT_SIDE);
+ fillLabel2.setLayoutData(gd);
+
+ //client side buttons
+ gd = new GridData(GridData.FILL_HORIZONTAL);
+ gd.horizontalSpan = 1;
+ syncAndAsyncRadioButton = new Button(mainComp, SWT.RADIO);
+ syncAndAsyncRadioButton.setLayoutData(gd);
+ syncAndAsyncRadioButton.setText(Axis2ConsumptionUIMessages.LABEL_SYNC_AND_ASYNC);
+ syncAndAsyncRadioButton.setVisible(true);
+ syncAndAsyncRadioButton.setSelection(true);
+ syncAndAsyncRadioButton.addSelectionListener(new SelectionListener() {
+ public void widgetSelected(SelectionEvent e) {
+ model.setSync(syncOnlyRadioButton.getSelection());
+ model.setSync(asyncOnlyRadioButton.getSelection());
+ }
+ public void widgetDefaultSelected(SelectionEvent e) {
+ }
+ });
+
+
+ gd = new GridData(GridData.FILL_HORIZONTAL);
+ gd.horizontalSpan = 1;
+ syncOnlyRadioButton = new Button(mainComp, SWT.RADIO);
+ syncOnlyRadioButton.setLayoutData(gd);
+ syncOnlyRadioButton.setText(Axis2ConsumptionUIMessages.LABEL_SYNC);
+ syncOnlyRadioButton.setSelection(false);
+ syncOnlyRadioButton.addSelectionListener(new SelectionListener() {
+ public void widgetSelected(SelectionEvent e) {
+ model.setSync(syncOnlyRadioButton.getSelection());
+ }
+ public void widgetDefaultSelected(SelectionEvent e) {
+ }
+ });
+
+ gd = new GridData(GridData.FILL_HORIZONTAL);
+ gd.horizontalSpan = 1;
+ asyncOnlyRadioButton = new Button(mainComp, SWT.RADIO);
+ asyncOnlyRadioButton.setLayoutData(gd);
+ asyncOnlyRadioButton
+ .setText(Axis2ConsumptionUIMessages.LABEL_ASYNC);
+ asyncOnlyRadioButton.setSelection(false);
+ asyncOnlyRadioButton.addSelectionListener(new SelectionListener() {
+ public void widgetSelected(SelectionEvent e) {
+ model.setSync(asyncOnlyRadioButton.getSelection());
+ }
+ public void widgetDefaultSelected(SelectionEvent e) {
+ }
+ });
+
+
+ //filling label
+ gd = new GridData(GridData.FILL_HORIZONTAL);
+ gd.horizontalSpan = 3;
+ fillLabel = new Label(mainComp, SWT.HORIZONTAL | SWT.NULL);
+ fillLabel.setLayoutData(gd);
+
+ // generate test case option
+ gd = new GridData(GridData.FILL_HORIZONTAL);
+ gd.horizontalSpan = 3;
+ testCaseCheckBoxButton = new Button(mainComp, SWT.CHECK);
+ testCaseCheckBoxButton.setLayoutData(gd);
+ testCaseCheckBoxButton
+ .setText(Axis2ConsumptionUIMessages.LABEL_GENERATE_TESTCASE_CAPTION);
+ model.setTestCaseCheck(false);
+ testCaseCheckBoxButton.addSelectionListener(new SelectionListener() {
+ public void widgetSelected(SelectionEvent e) {
+ model.setTestCaseCheck(true);
+ }
+
+ public void widgetDefaultSelected(SelectionEvent e) {
+ }
+ });
+
+
+ // generate all
+ generateAllCheckBoxButton = new Button(mainComp, SWT.CHECK);
+ gd = new GridData(GridData.FILL_HORIZONTAL);
+ gd.horizontalSpan = 3;
+ generateAllCheckBoxButton.setLayoutData(gd);
+ generateAllCheckBoxButton.setSelection(false);
+ generateAllCheckBoxButton.setText(Axis2ConsumptionUIMessages.LABEL_GENERATE_ALL);
+ generateAllCheckBoxButton.addSelectionListener(new SelectionListener() {
+ public void widgetSelected(SelectionEvent e) {
+ model.setGenerateAllCheck(true);
+ }
+ public void widgetDefaultSelected(SelectionEvent e) {
+ }
+ });
+
+
+ //filling label
+ gd = new GridData(GridData.FILL_HORIZONTAL);
+ gd.horizontalSpan = 3;
+ fillLabel3 = new Label(mainComp, SWT.HORIZONTAL | SWT.NULL);
+
+ //filling label
+ gd = new GridData(GridData.FILL_HORIZONTAL);
+ gd.horizontalSpan = 3;
+ fillLabel4 = new Label(mainComp, SWT.HORIZONTAL | SWT.NULL);
+
+ //add a table to set namespace to package mapping
+ gd = new GridData(GridData.FILL_BOTH);
+ gd.horizontalSpan = 3;
+ gd.verticalSpan = 5;
+
+ namespace2packageTable = new Table(mainComp,SWT.BORDER|SWT.MULTI);
+ namespace2packageTable.setLinesVisible(true);
+ namespace2packageTable.setHeaderVisible(true);
+ namespace2packageTable.setEnabled(true);
+ namespace2packageTable.setLayoutData(gd);
+
+ declareColumn(namespace2packageTable,
+ 350, //a default width until we adjust
+ Axis2ConsumptionUIMessages.LABEL_NAMESPACE);
+ declareColumn(namespace2packageTable,
+ 200,//a default width until we adjust
+ Axis2ConsumptionUIMessages.LABEL_PACKAGE);
+
+ namespace2packageTable.setVisible(true);
+
+ // add the table editor
+ final TableEditor editor = new TableEditor(namespace2packageTable);
+ editor.setColumn(1);
+ editor.horizontalAlignment = SWT.LEFT;
+ editor.grabHorizontal = true;
+
+ namespace2packageTable.addListener(SWT.MouseDown, new Listener() {
+ public void handleEvent(Event event) {
+ Rectangle clientArea = namespace2packageTable.getClientArea();
+ Point pt = new Point(event.x, event.y);
+ int index = namespace2packageTable.getTopIndex();
+ while (index < namespace2packageTable.getItemCount()) {
+ boolean visible = false;
+ final TableItem item = namespace2packageTable.getItem(index);
+ for (int i = 0; i < namespace2packageTable.getColumnCount(); i++) {
+ Rectangle rect = item.getBounds(i);
+ if (rect.contains(pt)) {
+ final int column = i;
+ final Text text = new Text(namespace2packageTable, SWT.NONE);
+ Listener textListener = new Listener() {
+ public void handleEvent(final Event e) {
+ switch (e.type) {
+ case SWT.FocusOut:
+ item.setText(column, text.getText());
+ text.dispose();
+ break;
+ case SWT.Traverse:
+ switch (e.detail) {
+ case SWT.TRAVERSE_RETURN:
+ item
+ .setText(column, text
+ .getText());
+ // FALL THROUGH
+ case SWT.TRAVERSE_ESCAPE:
+ text.dispose();
+ e.doit = false;
+ }
+ break;
+ }
+ }
+ };
+ text.addListener(SWT.FocusOut, textListener);
+ text.addListener(SWT.Traverse, textListener);
+ editor.setEditor(text, item, i);
+ text.setText(item.getText(i));
+ text.selectAll();
+ text.setFocus();
+ return;
+ }
+ if (!visible && rect.intersects(clientArea)) {
+ visible = true;
+ }
+ }
+ if (!visible)
+ return;
+ index++;
+ }
+ model.setNamespaseToPackageMapping(getNs2PkgMapping());
+ }
+ });
+
+
+// UIUtils uiUtils = new UIUtils( pluginId_ );
+// parent.setToolTipText( Axis2ConsumptionUIMessages.TOOLTIP_PPAE_PAGE );
+// PlatformUI.getWorkbench().getHelpSystem().setHelp( parent, pluginId_ + "." + this.pluginId_);
+
+ populateParamsFromWSDL();
+ populateModel();
+
+ return this;
+ }
+
+ /**
+ * A util method to create a new column
+ * @param table
+ * @param width
+ * @param colName
+ */
+ private void declareColumn(Table table, int width,String colName){
+ TableColumn column = new TableColumn(table,SWT.NONE);
+ column.setWidth(width);
+ column.setText(colName);
+ }
+
+ /**
+ * get the package to namespace mappings
+ * @return
+ */
+ public String getNs2PkgMapping(){
+ String returnList="";
+ TableItem[] items = namespace2packageTable.getItems();
+ String packageValue;
+ for (int i=0;i<items.length;i++){
+ packageValue = items[i].getText(1);
+ if (packageValue!=null && !"".equals(packageValue)){
+ returnList = returnList +
+ ("".equals(returnList)?"":",") +
+ items[i].getText(0)+ "=" + packageValue;
+ }
+
+ }
+ return "".equals(returnList)?null:returnList;
+ }
+
+ public boolean isGenProxy() {
+ //boolean enabled = genProxyCheckbox_.getSelection();
+ return true; //always
+
+ }
+
+ public void setGenerateProxy( Boolean genProxy ){
+ genProxyCheckbox_.setSelection( genProxy.booleanValue() );
+ }
+
+ /**
+ * Fill the combo with proper databinding names
+ */
+ private void fillDatabinderCombo() {
+ databindingTypeCombo.add(Axis2ConsumptionUIMessages.DATA_BINDING_ADB);
+ databindingTypeCombo.add(Axis2ConsumptionUIMessages.DATA_BINDING_NONE);
+ databindingTypeCombo.select(0);
+ }
+
+ private void populateModel() {
+ model.setServiceName(serviceNameCombo.getText());
+ model.setPortName(portNameCombo.getText());
+ model.setPackageText(packageText.getText());
+ model.setDatabindingType(databindingTypeCombo.getText());
+ model.setASync(asyncOnlyRadioButton.getSelection());
+ model.setSync(syncOnlyRadioButton.getSelection());
+ if (syncAndAsyncRadioButton.getSelection()){
+ model.setASync(true);
+ model.setSync(true);
+ }
+ model.setGenerateAllCheck(generateAllCheckBoxButton.getSelection());
+ model.setTestCaseCheck(testCaseCheckBoxButton.getSelection());
+ model.setNamespaseToPackageMapping(getNs2PkgMapping());
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.wst.command.env.ui.widgets.WidgetContributor#getStatus()
+ */
+ public IStatus getStatus()
+ {
+ IStatus result = null;
+ return result;
+ }
+
+ private void populatePackageName() {
+ this.packageText.setText(reader.packageFromTargetNamespace());
+ }
+
+ /**
+ * populate the service and the port from the WSDL this needs to be public
+ * since the WSDLselection page may call this
+ */
+ public void populateParamsFromWSDL() {
+ if (reader == null)
+ reader = new WSDLPropertyReader();
+ try {
+ String lname = model.getWsdlURI();
+ if (!"".equals(lname.trim())) {
+
+ reader.readWSDL(model.getWebProjectName(), lname);
+
+ this.serviceQNameList = reader.getServiceList();
+ if (!serviceQNameList.isEmpty()) {
+ serviceNameCombo.removeAll();
+ 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");
+
+ Method GetLocalPartMethod = QNameClass.getMethod("getLocalPart", null);
+
+ Object resultLocalPart = GetLocalPartMethod.invoke(serviceQnameInstance, null);
+ serviceNameCombo.add(resultLocalPart.toString());
+ }
+ ;
+ // select the first one as the default
+ serviceNameCombo.select(0);
+
+ // load the ports
+ loadPortNames();
+
+ } else {
+ // service name list being empty means we are switching to
+ // the interface mode
+ if (serviceNameCombo!=null) serviceNameCombo.removeAll();
+ if (portNameCombo!=null) portNameCombo.removeAll();
+
+ }
+
+ populatePackageName();
+
+ //populate the namespacess
+ loadNamespaces(reader.getDefinitionNamespaceMap());
+ }
+ } catch (Exception e) {
+ status = StatusUtils.errorStatus(NLS.bind(
+ Axis2ConsumptionUIMessages.ERROR_INVALID_WSDL_FILE_READ_WRITEL,
+ new String[]{e.getLocalizedMessage()}), e);
+ }
+ }
+
+ /**
+ * Loads the namespaces
+ * @param namespaceMap
+ */
+ private void loadNamespaces(Map namespaceMap){
+ Iterator namespaces = namespaceMap.values().iterator();
+ namespace2packageTable.removeAll();
+ TableItem[] items = new TableItem[namespaceMap.size()]; // An item for each field
+
+ int i = 0;
+ while(namespaces.hasNext()){
+
+ items[i] = new TableItem(namespace2packageTable, SWT.NULL);
+ String namespace = (String)namespaces.next();
+ items[i].setText(0,namespace);
+ items[i].setText(1,getPackageFromNamespace(namespace));
+ i++;
+ }
+
+ namespace2packageTable.setVisible(true);
+
+ }
+
+ private void loadPortNames() {
+ int selectionIndex = serviceNameCombo.getSelectionIndex();
+ if (selectionIndex != -1) {
+ java.util.List ports = reader.getPortNameList( serviceQNameList
+ .get(selectionIndex));
+ if (!ports.isEmpty()) {
+ portNameCombo.removeAll();
+ for (int i = 0; i < ports.size(); i++) {
+ // add the local part of the
+ portNameCombo.add(ports.get(i).toString());
+ }
+ portNameCombo.select(0);
+ } else {
+ // error no ports found
+ }
+ }
+ }
+
+ /**
+ * get the package derived by Namespace
+ */
+ public String getPackageFromNamespace(String namespace){
+ // 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);
+ } catch (SecurityException e) {
+ e.printStackTrace();
+ } catch (NoSuchMethodException e) {
+ e.printStackTrace();
+ } catch (IllegalArgumentException e) {
+ e.printStackTrace();
+ } catch (IllegalAccessException e) {
+ e.printStackTrace();
+ } catch (InvocationTargetException e) {
+ e.printStackTrace();
+ }
+ return (String)stringReturn;
+
+ }
+
+}
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
new file mode 100644
index 0000000..d3e2927
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.consumption.ui/src/org/eclipse/jst/ws/internal/axis2/consumption/ui/wizard/client/WebServiceClientAxis2Type.java
@@ -0,0 +1,99 @@
+/*******************************************************************************
+ * 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
+ * -------- -------- -----------------------------------------------------------
+ * 20070130 168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2
+ * runtime to the framework for 168762
+ *******************************************************************************/
+package org.eclipse.jst.ws.internal.axis2.consumption.ui.wizard.client;
+
+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.internal.axis2.consumption.ui.widgets.Axis2ProxyWidget;
+import org.eclipse.wst.command.internal.env.core.data.DataMappingRegistry;
+import org.eclipse.wst.command.internal.env.core.fragment.CommandFragment;
+import org.eclipse.wst.command.internal.env.core.fragment.CommandFragmentFactory;
+import org.eclipse.wst.command.internal.env.core.fragment.SimpleFragment;
+import org.eclipse.wst.command.internal.env.ui.widgets.CanFinishRegistry;
+import org.eclipse.wst.command.internal.env.ui.widgets.CommandWidgetBinding;
+import org.eclipse.wst.command.internal.env.ui.widgets.WidgetContributor;
+import org.eclipse.wst.command.internal.env.ui.widgets.WidgetContributorFactory;
+import org.eclipse.wst.command.internal.env.ui.widgets.WidgetRegistry;
+
+public class WebServiceClientAxis2Type implements CommandWidgetBinding {
+
+ DataModel model;
+
+ public WebServiceClientAxis2Type(DataModel model){
+ this.model = model;
+ }
+
+
+ /* (non-Javadoc)
+ * @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 );
+
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.wst.command.env.ui.widgets.CommandWidgetBinding#registerWidgetMappings(org.eclipse.wst.command.env.ui.widgets.WidgetRegistry)
+ */
+ public void registerWidgetMappings(WidgetRegistry widgetRegistry) {
+
+ widgetRegistry.add( "AxisClientStart",
+ Axis2ConsumptionUIMessages.PAGE_TITLE_WS_AXIS2_PROXY,
+ Axis2ConsumptionUIMessages.PAGE_DESC_WS_AXIS2_PROXY,
+ new WidgetContributorFactory()
+ {
+ public WidgetContributor create()
+ {
+ return new Axis2ProxyWidget(model);
+ }
+ } );
+
+ //widgetRegistry.add( "AxisClientBeanMapping",
+ // Axis2ConsumptionUIMessages.PAGE_TITLE_WS_XML2PROXY,
+ // Axis2ConsumptionUIMessages.LABEL_EXPLORE_MAPPINGS_XML2BEAN,
+ // new WidgetContributorFactory()
+ // {
+ // public WidgetContributor create()
+ // {
+ // return new AxisMappingsWidget(AxisMappingsWidget.MODE_XML2PROXY );
+ // }
+ // } );
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.wst.command.internal.env.core.fragment.CommandFragmentFactoryFactory#create()
+ */
+ public CommandFragmentFactory create()
+ {
+ return new CommandFragmentFactory()
+ {
+ public CommandFragment create()
+ {
+ //dead code - doesn't matter what gets returned here.
+ return new SimpleFragment();
+ }
+ };
+ }
+ /* (non-Javadoc)
+ * @see org.eclipse.wst.command.env.ui.widgets.CommandWidgetBinding#registerCanFinish(org.eclipse.wst.command.env.ui.widgets.CanFinishRegistry)
+ */
+ public void registerCanFinish(CanFinishRegistry canFinishRegistry){
+ }
+
+ public void setWebServiceDataModel( DataModel model ){
+ this.model = model;
+ }
+}
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
new file mode 100644
index 0000000..326e941
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.consumption.ui/src/org/eclipse/jst/ws/internal/axis2/consumption/ui/wsrt/Axis2ClientConfigWidgetFactory.java
@@ -0,0 +1,73 @@
+/*******************************************************************************
+ * 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
+ * -------- -------- -----------------------------------------------------------
+ * 20070230 168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2
+ * runtime to the framework for 168762
+ *******************************************************************************/
+package org.eclipse.jst.ws.internal.axis2.consumption.ui.wsrt;
+
+import org.eclipse.jst.ws.axis2.consumption.core.command.Axis2ClientDefaultingCommand;
+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.internal.axis2.consumption.ui.widgets.Axis2ProxyWidget;
+import org.eclipse.jst.ws.internal.axis2.consumption.ui.wizard.client.WebServiceClientAxis2Type;
+import org.eclipse.wst.command.internal.env.core.data.DataMappingRegistry;
+import org.eclipse.wst.command.internal.env.ui.widgets.INamedWidgetContributor;
+import org.eclipse.wst.command.internal.env.ui.widgets.INamedWidgetContributorFactory;
+import org.eclipse.wst.command.internal.env.ui.widgets.WidgetBindingToWidgetFactoryAdapter;
+
+public class Axis2ClientConfigWidgetFactory implements INamedWidgetContributorFactory{
+ private INamedWidgetContributor proxyConfigWidget;
+ private INamedWidgetContributor mappingsWidget;
+ private Axis2ProxyWidget proxyWidget;
+ private WidgetBindingToWidgetFactoryAdapter adapter;
+ private DataModel model;
+ private WebServiceClientAxis2Type wsClientAxis2Type;
+ private DataMappingRegistry dataRegistry;
+
+ public Axis2ClientConfigWidgetFactory(){
+ }
+
+ public INamedWidgetContributor getFirstNamedWidget() {
+ init();
+ //wsClientAxis2Type.setWebServiceDataModel(model);
+ return proxyConfigWidget;
+ }
+
+ public INamedWidgetContributor getNextNamedWidget( INamedWidgetContributor widgetContributor) {
+ return widgetContributor == proxyConfigWidget && proxyWidget.isGenProxy() ? mappingsWidget : null;
+ }
+
+ public void registerDataMappings(DataMappingRegistry dataRegistry) {
+ this.dataRegistry=dataRegistry;
+ // Map the data model from the defaulting command to this widget factory.
+ // The framework will actually to the call to getWebServiceDataModel in
+ // the ExampleDefaultingCommand class and then call the setWebServiceDataModel
+ // method in this class.
+ dataRegistry.addMapping( Axis2ClientDefaultingCommand.class,
+ Axis2ConsumptionUIMessages.LABEL_DATA_MODEL,
+ Axis2ClientConfigWidgetFactory.class );
+ }
+
+ public void setWebServiceDataModel( DataModel model ){
+ this.model = model;
+ }
+
+ private void init(){
+ wsClientAxis2Type = new WebServiceClientAxis2Type(model);
+ adapter = new WidgetBindingToWidgetFactoryAdapter(wsClientAxis2Type );
+ proxyConfigWidget = adapter.getWidget( "AxisClientStart" );
+ proxyWidget = (Axis2ProxyWidget)proxyConfigWidget.getWidgetContributorFactory().create();
+ mappingsWidget = adapter.getWidget( "AxisClientBeanMapping" );
+ adapter.registerDataMappings( dataRegistry );
+
+ }
+}
diff --git a/bundles/org.eclipse.jst.ws.axis2.consumption.ui/src/org/eclipse/jst/ws/internal/axis2/consumption/ui/wsrt/Axis2WebServiceClient.java b/bundles/org.eclipse.jst.ws.axis2.consumption.ui/src/org/eclipse/jst/ws/internal/axis2/consumption/ui/wsrt/Axis2WebServiceClient.java
new file mode 100644
index 0000000..592697b
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.consumption.ui/src/org/eclipse/jst/ws/internal/axis2/consumption/ui/wsrt/Axis2WebServiceClient.java
@@ -0,0 +1,84 @@
+/*******************************************************************************
+ * 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
+ * -------- -------- -----------------------------------------------------------
+ * 20070230 168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2
+ * runtime to the framework for 168762
+ *******************************************************************************/
+package org.eclipse.jst.ws.internal.axis2.consumption.ui.wsrt;
+
+import java.util.Vector;
+
+import org.eclipse.jst.ws.axis2.consumption.core.command.Axis2ClientCodegenCommand;
+import org.eclipse.jst.ws.axis2.consumption.core.command.Axis2ClientDefaultingCommand;
+import org.eclipse.jst.ws.axis2.consumption.core.command.Axis2WebservicesServerCommand;
+import org.eclipse.jst.ws.axis2.consumption.core.data.DataModel;
+import org.eclipse.jst.ws.internal.axis2.consumption.ui.task.DefaultsForHTTPBasicAuthCommand;
+import org.eclipse.wst.command.internal.env.core.ICommandFactory;
+import org.eclipse.wst.command.internal.env.core.SimpleCommandFactory;
+import org.eclipse.wst.command.internal.env.core.data.DataMappingRegistry;
+import org.eclipse.wst.command.internal.env.eclipse.EclipseEnvironment;
+import org.eclipse.wst.common.environment.IEnvironment;
+import org.eclipse.wst.ws.internal.wsrt.AbstractWebServiceClient;
+import org.eclipse.wst.ws.internal.wsrt.IContext;
+import org.eclipse.wst.ws.internal.wsrt.ISelection;
+import org.eclipse.wst.ws.internal.wsrt.WebServiceClientInfo;
+
+public class Axis2WebServiceClient extends AbstractWebServiceClient {
+
+ public Axis2WebServiceClient(WebServiceClientInfo info) {
+ super(info);
+ }
+
+ public ICommandFactory assemble(IEnvironment env, IContext ctx,
+ ISelection arg2, String arg3, String arg4) {
+ return null;
+ }
+
+ public ICommandFactory deploy(IEnvironment env, IContext ctx,
+ ISelection arg2, String arg3, String arg4) {
+ return null;
+ }
+
+ public ICommandFactory develop(IEnvironment env, IContext ctx,
+ ISelection sel, String project, String earProject) {
+ DataModel model = new DataModel();
+
+ EclipseEnvironment environment = (EclipseEnvironment)env;
+ registerDataMappings( environment.getCommandManager().getMappingRegistry());
+ model.setWebProjectName(project);
+ Vector commands = new Vector();
+ commands.add(new Axis2ClientDefaultingCommand(model,this));
+ commands.add(new Axis2WebservicesServerCommand(model, project));
+ commands.add(new Axis2ClientCodegenCommand(model));
+
+ return new SimpleCommandFactory(commands);
+ }
+
+ public ICommandFactory install(IEnvironment env, IContext ctx,
+ ISelection sel, String project, String earProject) {
+ return null;
+ }
+
+ public ICommandFactory run(IEnvironment env, IContext ctx,
+ ISelection sel, String project, String earProject) {
+ return null;
+ }
+
+ public void registerDataMappings(DataMappingRegistry registry){
+ // AxisClientDefaultingCommand
+ registry.addMapping(Axis2ClientDefaultingCommand.class,
+ "WsdlURL",
+ DefaultsForHTTPBasicAuthCommand.class,
+ "WsdlServiceURL", null); //OK
+
+ }
+
+}
diff --git a/bundles/org.eclipse.jst.ws.axis2.core/.classpath b/bundles/org.eclipse.jst.ws.axis2.core/.classpath
new file mode 100644
index 0000000..304e861
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.core/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/bundles/org.eclipse.jst.ws.axis2.core/.project b/bundles/org.eclipse.jst.ws.axis2.core/.project
new file mode 100644
index 0000000..2230d2d
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.core/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.jst.ws.axis2.core</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/bundles/org.eclipse.jst.ws.axis2.core/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.jst.ws.axis2.core/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..6e7793f
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.core/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,57 @@
+#Tue Mar 20 10:45:04 LKT 2007
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nullReference=ignore
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/bundles/org.eclipse.jst.ws.axis2.core/META-INF/MANIFEST.MF b/bundles/org.eclipse.jst.ws.axis2.core/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..73fba01
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.core/META-INF/MANIFEST.MF
@@ -0,0 +1,35 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %PLUGIN_NAME
+Bundle-SymbolicName: org.eclipse.jst.ws.axis2.core;singleton:=true
+Bundle-Version: 1.0.0
+Bundle-Activator: org.eclipse.jst.ws.axis2.core.plugin.WebServiceAxis2CorePlugin
+Bundle-Vendor: %PLUGIN_PROVIDER
+Bundle-Localization: plugin
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.core.resources,
+ org.apache.ant,
+ org.eclipse.ui,
+ org.eclipse.wst.common.project.facet.core,
+ org.eclipse.wst.common.project.facet.ui,
+ org.eclipse.wst.common.modulecore,
+ org.eclipse.jst.j2ee.web,
+ org.eclipse.jst.j2ee,
+ org.eclipse.jst.j2ee.core,
+ org.eclipse.emf.common,
+ org.eclipse.emf.ecore,
+ org.eclipse.jem,
+ org.eclipse.wst.command.env,
+ org.eclipse.wst.command.env.core,
+ org.eclipse.jst.ws,
+ org.eclipse.wst.common.environment,
+ org.eclipse.wst.common.frameworks,
+ org.eclipse.wst.common.frameworks.ui,
+ org.eclipse.wst.command.env.ui
+Eclipse-LazyStart: true
+Export-Package: org.eclipse.jst.ws.axis2.core.context,
+ org.eclipse.jst.ws.axis2.core.plugin,
+ org.eclipse.jst.ws.axis2.core.plugin.data,
+ org.eclipse.jst.ws.axis2.core.plugin.messages,
+ org.eclipse.jst.ws.axis2.core.utils
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/bundles/org.eclipse.jst.ws.axis2.core/build.properties b/bundles/org.eclipse.jst.ws.axis2.core/build.properties
new file mode 100644
index 0000000..0dc34f7
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.core/build.properties
@@ -0,0 +1,6 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml,\
+ plugin.properties
diff --git a/bundles/org.eclipse.jst.ws.axis2.core/plugin.properties b/bundles/org.eclipse.jst.ws.axis2.core/plugin.properties
new file mode 100644
index 0000000..7695ba6
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.core/plugin.properties
@@ -0,0 +1,31 @@
+###############################################################################
+# 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
+# -------- -------- -----------------------------------------------------------
+# 20070405 168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to
+# introduse the Axis2 runtime to the framework for 168762
+###############################################################################
+#
+
+#
+# Messages in plugin.xml.
+#
+PLUGIN_NAME=Axis2 Core Plug-in
+PLUGIN_PROVIDER=WSO2
+
+AXIS2_CATOGERY_LABEL=Axis2 Web Services
+AXIS2_CATOGERY_DISCRIPTION=Enables Web Services generation through Axis2 Web services engine.
+
+AXIS2_FACET_CORE_LABEL=Axis2 Web Services Core
+AXIS2_FACET_CORE_DISCRIPTION=Prepare the Project for Web Services generation through Axis2 Web services engine.
+
+
+AXIS2_FACET_EXT_LABEL=Axis2 Web Services Extensions
+AXIS2_FACET_EXT_DISCRIPTION=Prepare the Project for additional Web services support with the Axis2 Web services runtime.
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.ws.axis2.core/plugin.xml b/bundles/org.eclipse.jst.ws.axis2.core/plugin.xml
new file mode 100644
index 0000000..575375d
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.core/plugin.xml
@@ -0,0 +1,69 @@
+<plugin>
+
+ <extension point="org.eclipse.wst.common.project.facet.core.facets">
+
+ <category id="axis2.category">
+ <label>%AXIS2_CATOGERY_LABEL</label>
+ <description>%AXIS2_CATOGERY_DISCRIPTION</description>
+ </category>
+
+ <project-facet id="axis2.core">
+ <label>%AXIS2_FACET_CORE_LABEL</label>
+ <description>%AXIS2_FACET_CORE_DISCRIPTION</description>
+ <category>axis2.category</category>
+ </project-facet>
+
+ <project-facet-version facet="axis2.core" version="1.1">
+ <constraint>
+ <requires facet="jst.web" version="2.2,2.3,2.4"/>
+ </constraint>
+ <action type="INSTALL">
+ <delegate class="org.eclipse.jst.ws.axis2.facet.deligate.Axis2CoreFacetInstallDelegate"/>
+ </action>
+ <action type="UNINSTALL">
+ <delegate class="org.eclipse.jst.ws.axis2.facet.deligate.Axis2CoreFacetUnInstallDelegate"/>
+ </action>
+ </project-facet-version>
+
+ <project-facet id="axis2.ext">
+ <label>%AXIS2_FACET_EXT_LABEL</label>
+ <description>%AXIS2_FACET_EXT_DISCRIPTION</description>
+ <category>axis2.category</category>
+ </project-facet>
+
+ <project-facet-version facet="axis2.ext" version="1.1">
+ <constraint>
+ <requires facet="axis2.core" version="1.1"/>
+ </constraint>
+ <action type="INSTALL">
+ <delegate class="org.eclipse.jst.ws.axis2.facet.deligate.Axis2ExtFacetInstallDelegate"/>
+ </action>
+ <action type="UNINSTALL">
+ <delegate class="org.eclipse.jst.ws.axis2.facet.deligate.Axis2ExtFacetUnInstallDelegate"/>
+ </action>
+ </project-facet-version>
+
+ </extension>
+
+ <extension point="org.eclipse.wst.common.project.facet.ui.images">
+ <image facet="axis2.core" path="icons/axis2-facet-add.gif"/>
+ <image facet="axis2.ext" path="icons/axis2-facet-add.gif"/>
+ <image category="axis2.category" path="icons/axis2-facet.ico"/>
+ </extension>
+
+ <extension
+ point="org.eclipse.wst.common.project.facet.core.runtimes">
+ <supported>
+ <runtime-component
+ any="true"/>
+ <facet
+ id="axis2.core"
+ version="1.1"/>
+ <facet
+ id="axis2.ext"
+ version="1.1"/>
+ </supported>
+ </extension>
+
+
+</plugin>
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/core/context/BUServiceContext.java b/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/core/context/BUServiceContext.java
new file mode 100644
index 0000000..1e60e0b
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/core/context/BUServiceContext.java
@@ -0,0 +1,27 @@
+package org.eclipse.jst.ws.axis2.core.context;
+
+public class BUServiceContext {
+
+ private static BUServiceContext instance;
+ private static String serviceName;
+
+ //singleton
+ private BUServiceContext(){}
+
+ public static BUServiceContext getInstance(){
+ if (instance == null) {
+ instance = new BUServiceContext();
+ }
+ return instance;
+ }
+
+ public String getServiceName() {
+ return serviceName;
+ }
+
+ public void setServiceName(String serviceName) {
+ BUServiceContext.serviceName = serviceName;
+ }
+
+
+}
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
new file mode 100644
index 0000000..5928a6a
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/core/plugin/WebServiceAxis2CorePlugin.java
@@ -0,0 +1,64 @@
+/*******************************************************************************
+ * 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
+ * -------- -------- -----------------------------------------------------------
+ * 20070130 168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2
+ * runtime to the framework for 168762
+ *******************************************************************************/
+package org.eclipse.jst.ws.axis2.core.plugin;
+
+import org.eclipse.core.runtime.Plugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class WebServiceAxis2CorePlugin extends Plugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.jst.ws.axis2.core.plugin";
+
+ // The shared instance
+ private static WebServiceAxis2CorePlugin plugin;
+
+ /**
+ * The constructor
+ */
+ public WebServiceAxis2CorePlugin() {
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.core.runtime.Plugins#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.core.runtime.Plugin#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static WebServiceAxis2CorePlugin getDefault() {
+ return 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
new file mode 100644
index 0000000..f69c821
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/core/plugin/data/ServerModel.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * 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
+ * -------- -------- -----------------------------------------------------------
+ * 20070213 168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse
+ * the Axis2 runtime to the framework for 168762
+ *******************************************************************************/
+package org.eclipse.jst.ws.axis2.core.plugin.data;
+
+public class ServerModel {
+
+ private static String axis2ServerPath;
+
+ public static String getAxis2ServerPath() {
+ return axis2ServerPath;
+ }
+
+ public static void setAxis2ServerPath(String axis2ServerPathParam) {
+ axis2ServerPath = axis2ServerPathParam;
+ }
+
+}
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
new file mode 100644
index 0000000..885221b
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/core/plugin/messages/Axis2CoreUI.properties
@@ -0,0 +1,73 @@
+###############################################################################
+# 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
+# -------- -------- -----------------------------------------------------------
+# 20070110 168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2
+# runtime to the framework for 168762
+###############################################################################
+
+LABEL_BROUSE=Browse
+LABEL_WEB_SERVICE_CODEGEN=Web service codegen options
+LABEL_WEB_SERVICE_CLIENT_CODEGEN=Web service client codegen options
+LABEL_WEB_SERVICE_AAR=Web service archive options
+LABEL_DATABINDING=Default Databinding
+LABEL_AAR_EXTENTION=AAR Default Extention
+LABEL_WEBAPP_LOCATION=Axis2 Webapp location :
+LABEL_AXIS2_RUNTIME_LOAD=Axis2 Runtime Loaded Suncessfully !!!
+LABEL_AXIS2_RUNTIME_LOAD_ERROR=Error occured during loading Axis2 Runtime\n Please select the correct Axis2 Runtime Folder !!
+LABEL_GENERATE_TESTCASE_CAPTION=Generate test case to test the service
+LABEL_GENERATE_SERVERSIDE_INTERFACE=Generate an Interface for Skeleton
+LABEL_GENERATE_ALL=Generate All Types for all elements refered by shemas
+LABEL_CLIENT_SIDE=Client mode
+LABEL_SYNC_AND_ASYNC=Generate both sync and async
+LABEL_SYNC=Generate sync style only
+LABEL_ASYNC=Generate async style only
+
+DIR_WEBCONTENT=WebContent
+DIR_TEMPWAR=tempwar
+DIR_DIST=dist
+DIR_WEB_INF=WEB-INF
+DIR_LIB=lib
+
+FILE_AXIS2_WAR=axis2.war
+
+
+NULL=
+ADB=adb
+AAR=aar
+AXIS2_LOCATION=Axis2 Runtime
+AXIS2_RUNTIME=Axis2 Runtime
+AXIS2_PREFERENCES=Axis2 Preferences
+ERROR_INVALID_AXIS2_SERVER_LOCATION=Invalid Axis2 Webapp location
+TEMP_AXIS2_FACET_DIR=org.apache.axis2.facet
+DIR_DOT_METADATA=.metadata
+DIR_DOT_PLUGINS=.plugins
+DIR_UNZIP=unzip
+
+LOCAL_SERVER_PORT=http://localhost:8080
+SERVICES=services
+
+WEBAPP_EXPLODED_SERVER_LOCATION_FILE=server.properties
+SERVER_STATUS_LOCATION_FILE=status.properties
+
+
+PROPERTY_KEY_PATH=path
+PROPERTY_KEY_STATUS=status
+
+SERVER_STATUS=status
+SERVER_STATUS_PASS=pass
+SERVER_STATUS_FAIL=fail
+
+ERROR_INVALID_FILE_READ_WRITEL=Exception occured while file read wrote
+ERROR_SERVER_IS_NOT_SET=Axis2 runtime is not set at web services preferences page!! Please set the web services runtime by navigating through preferences.
+
+
+PROGRESS_INSTALL_AXIS2_RUNTIME=Installing Axis2 Runtime...
+PROGRESS_UNINSTALL_AXIS2_RUNTIME=UnInstalling the Axis2 Runtime...
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
new file mode 100644
index 0000000..5b23a86
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/core/plugin/messages/Axis2CoreUIMessages.java
@@ -0,0 +1,84 @@
+/*******************************************************************************
+ * 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
+ * -------- -------- -----------------------------------------------------------
+ * 20070110 168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse
+ * the Axis2 runtime to the framework for 168762
+ *******************************************************************************/
+package org.eclipse.jst.ws.axis2.core.plugin.messages;
+
+import org.eclipse.osgi.util.NLS;
+
+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 Axis2CoreUIMessages() {
+ // Do not instantiate
+ }
+
+ public static String LABEL_BROUSE;
+ public static String LABEL_WEB_SERVICE_CODEGEN;
+ public static String LABEL_WEB_SERVICE_CLIENT_CODEGEN;
+ public static String LABEL_WEB_SERVICE_AAR;
+ public static String LABEL_AAR_EXTENTION;
+ public static String LABEL_DATABINDING;
+ public static String LABEL_AXIS2_RUNTIME_LOAD;
+ public static String LABEL_AXIS2_RUNTIME_LOAD_ERROR;
+ public static String LABEL_GENERATE_TESTCASE_CAPTION;
+ public static String LABEL_GENERATE_SERVERSIDE_INTERFACE;
+ public static String LABEL_GENERATE_ALL;
+ public static String LABEL_CLIENT_SIDE;
+ public static String LABEL_SYNC_AND_ASYNC;
+ public static String LABEL_SYNC;
+ public static String LABEL_ASYNC;
+
+ public static String DIR_WEBCONTENT;
+ public static String DIR_TEMPWAR;
+ public static String DIR_DIST;
+ public static String DIR_DOT_METADATA;
+ public static String DIR_WEB_INF;
+ public static String DIR_LIB;
+ public static String DIR_DOT_PLUGINS;
+ public static String DIR_UNZIP;
+
+ public static String FILE_AXIS2_WAR;
+
+ public static String AXIS2_LOCATION;
+ public static String AXIS2_RUNTIME;
+ public static String AXIS2_PREFERENCES;
+ public static String TEMP_AXIS2_FACET_DIR;
+ public static String WEBAPP_EXPLODED_SERVER_LOCATION_FILE;
+ public static String SERVER_STATUS_LOCATION_FILE;
+ public static String LABEL_WEBAPP_LOCATION;
+ public static String NULL;
+ public static String ADB;
+ public static String AAR;
+ public static String PROPERTY_KEY_PATH;
+ public static String PROPERTY_KEY_STATUS;
+ public static String LOCAL_SERVER_PORT;
+ public static String SERVICES;
+
+ public static String SERVER_STATUS;
+ public static String SERVER_STATUS_PASS;
+ public static String SERVER_STATUS_FAIL;
+
+ public static String ERROR_INVALID_AXIS2_SERVER_LOCATION;
+ public static String ERROR_INVALID_FILE_READ_WRITEL;
+ public static String ERROR_SERVER_IS_NOT_SET;
+
+
+ public static String PROGRESS_INSTALL_AXIS2_RUNTIME;
+ public static String PROGRESS_UNINSTALL_AXIS2_RUNTIME;
+
+ static {
+ NLS.initializeMessages(BUNDLE_NAME, Axis2CoreUIMessages.class);
+ }
+}
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
new file mode 100644
index 0000000..7d5b3a9
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/core/utils/Axis2CoreUtils.java
@@ -0,0 +1,60 @@
+/*******************************************************************************
+ * 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
+ * -------- -------- -----------------------------------------------------------
+ * 20070130 168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2
+ * runtime to the framework for 168762
+ *******************************************************************************/
+package org.eclipse.jst.ws.axis2.core.utils;
+
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.jst.ws.axis2.core.plugin.messages.Axis2CoreUIMessages;
+
+public class Axis2CoreUtils {
+
+ 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);
+ return tempAxis2Dir;
+ }
+
+ public static String tempAxis2WebappFileLocation() {
+ return
+ addAnotherNodeToPath(tempAxis2Directory(),
+ Axis2CoreUIMessages.WEBAPP_EXPLODED_SERVER_LOCATION_FILE);
+ }
+
+
+ public static String tempRuntimeStatusFileLocation() {
+ return
+ addAnotherNodeToPath(tempAxis2Directory(),
+ Axis2CoreUIMessages.SERVER_STATUS_LOCATION_FILE);
+ }
+
+ public static String addAnotherNodeToPath(String currentPath, String newNode) {
+ return currentPath + File.separator + newNode;
+ }
+
+ public static void writePropertyToFile(File file,String key, String value) throws IOException {
+ BufferedWriter out = new BufferedWriter(new FileWriter(file));
+ 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
new file mode 100644
index 0000000..b3f49ef
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/core/utils/ClassLoadingUtil.java
@@ -0,0 +1,216 @@
+/*******************************************************************************
+ * 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
+ * -------- -------- -----------------------------------------------------------
+ * 20070130 168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2
+ * runtime to the framework for 168762
+ *******************************************************************************/
+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;
+import org.apache.tools.ant.types.Path;
+
+public class ClassLoadingUtil {
+
+ private static String[] axis2ClassPath = null;
+ private static int libCount = 0;
+ private static AntClassLoader antClassLoader;
+
+ public static void init(String project) {
+
+ //Obtain a ant class loader instance
+ antClassLoader = new AntClassLoader();
+
+ // Set the class loader to child first
+ antClassLoader.setParentFirst(false);
+
+ String[] classLoadPath = getAxis2Libs(project);
+ URL[] urls = new URL[classLoadPath.length];
+
+ Path classpath = new Path(new Project());
+
+ 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;
+ classpath.setPath(classLoadPath[i]);
+ }
+ }
+
+ }catch(MalformedURLException e){
+ 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;
+ }
+ }
+
+ // 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){
+
+ Class cls = null;
+ try{
+ cls = antClassLoader.loadClass(fillyQualifiedClassName);
+ } catch (ClassNotFoundException e) {
+ e.printStackTrace();
+ }
+ return cls;
+ }
+
+
+
+ private static String[] getAxis2Libs(String project){
+ File webContainerPath = new File(FacetContainerUtils.pathToWebProjectContainerLib(project));
+ axis2ClassPath = new String[webContainerPath.list().length];
+ libCount = 0;
+ visitAllFiles(webContainerPath);
+ return axis2ClassPath;
+ }
+
+
+ public static void visitAllFiles(File dir) {
+ if(!dir.toString().endsWith(".txt")){
+ if (dir.isDirectory()) {
+
+ String[] children = dir.list();
+ for (int i=0; i<children.length; i++) {
+ visitAllFiles(new File(dir, children[i]));
+ }
+
+ } else {
+ axis2ClassPath[libCount]=dir.getAbsolutePath();
+ libCount+=1;
+ }
+
+ }
+
+ }
+
+
+}
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
new file mode 100644
index 0000000..4d4c169
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/core/utils/FacetContainerUtils.java
@@ -0,0 +1,104 @@
+/*******************************************************************************
+ * 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
+ * -------- -------- -----------------------------------------------------------
+ * 20070222 168766 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2
+ * facet to the framework for 168766
+ *******************************************************************************/
+package org.eclipse.jst.ws.axis2.core.utils;
+
+import java.io.File;
+
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.jst.ws.axis2.core.plugin.messages.Axis2CoreUIMessages;
+import org.eclipse.jst.ws.axis2.core.utils.Axis2CoreUtils;
+
+public class FacetContainerUtils {
+
+ public static String pathToWebProjectContainer(String project) {
+
+ String workspaceDirectory = ResourcesPlugin.getWorkspace().getRoot()
+ .getLocation().toOSString();
+ String projectString = replaceEscapecharactors(project.toString());
+
+ String currentDynamicWebProjectDir = Axis2CoreUtils.addAnotherNodeToPath(
+ workspaceDirectory,
+ getProjectNameFromFramewokNameString(projectString)
+ );
+
+ //TODO The Web content directory can be different. cater that also
+ String webContainerDirString = Axis2CoreUtils.addAnotherNodeToPath(
+ currentDynamicWebProjectDir,
+ Axis2CoreUIMessages.DIR_WEBCONTENT);
+
+ return webContainerDirString;
+ }
+
+
+ public static String pathToWebProjectContainerLib(String project){
+
+ String webContainerWEBINFString = Axis2CoreUtils.addAnotherNodeToPath(
+ pathToWebProjectContainer(project),
+ Axis2CoreUIMessages.DIR_WEB_INF);
+
+ return Axis2CoreUtils.addAnotherNodeToPath(
+ webContainerWEBINFString,
+ Axis2CoreUIMessages.DIR_LIB);
+ }
+
+
+
+ //Fix for the windows build not working
+ private static String replaceEscapecharactors(String vulnarableString){
+ if (vulnarableString.indexOf("/")!=-1){
+ vulnarableString = vulnarableString.replace('/', File.separator.charAt(0));
+ }
+ return vulnarableString;
+ }
+
+
+ private static String getProjectNameFromFramewokNameString(String frameworkProjectString){
+ if (frameworkProjectString.indexOf(getSplitCharactor())== -1){
+ return frameworkProjectString;
+ }else{
+ return frameworkProjectString.split(getSplitCharactors())[1];
+ }
+
+ }
+
+
+ private static String getSplitCharactor(){
+ //Windows check (because from inside wtp in return I received a hard coded path)
+ if (File.separatorChar == '\\'){
+ return "\\" ;
+ }else{
+ return File.separator;
+ }
+ }
+
+ private static String getSplitCharactors(){
+ //Windows check (because from inside wtp in return I received a hard coded path)
+ if (File.separatorChar == '\\'){
+ return "\\" + File.separator;
+ }else{
+ return File.separator;
+ }
+ }
+
+
+ public static String getDeployedWSDLURL(String projectName, String serviceName){
+ //TODO get the hostname and port from eclispe runtime
+ String[] deployedWSDLURLParts = {projectName.split("Client")[0],
+ Axis2CoreUIMessages.SERVICES,
+ serviceName
+ };
+ 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
new file mode 100644
index 0000000..3a40df8
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/core/utils/FileUtils.java
@@ -0,0 +1,193 @@
+/*******************************************************************************
+ * Copyright (c) 2007 IBM and 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
+ * -------- -------- -----------------------------------------------------------
+ * 20070110 168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the
+ * Axis2 runtime to the framework for 168762
+ *******************************************************************************/
+package org.eclipse.jst.ws.axis2.core.utils;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+
+public class FileUtils
+{
+ public FileUtils(){
+ super();
+ }
+
+ public static void copyFile(String src, String dest) {
+ InputStream is = null;
+ FileOutputStream fos = null;
+
+ try
+ {
+ is = new FileInputStream(src);
+ fos = new FileOutputStream(dest);
+ int c = 0;
+ byte[] array = new byte[1024];
+ while ((c = is.read(array)) >= 0){
+ fos.write(array, 0, c);
+ }
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ finally {
+ try {
+ fos.close();
+ is.close();
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
+ public static File createFileAndParentDirectories(String fileName) throws Exception {
+ File file = new File(fileName);
+ File parent = file.getParentFile();
+ if (!parent.exists()){
+ parent.mkdirs();
+ }
+ file.createNewFile();
+ return file;
+ }
+
+ public static boolean deleteDir(File dir) {
+ if (dir.isDirectory()) {
+ String[] children = dir.list();
+ for (int i=0; i<children.length; i++) {
+ boolean success = deleteDir(new File(dir, children[i]));
+ if (!success) {
+ return false;
+ }
+ }
+ }
+ return dir.delete();
+ }
+
+ public static void deleteDirectories(File dir) {
+ File[] children = dir.listFiles();
+ for (int i = 0; i < children.length; i++){
+ if (children[i].list() != null && children[i].list().length > 0){
+ deleteDirectories(children[i]);
+ }
+ else{
+ children[i].delete();
+ }
+ }
+ dir.delete();
+ }
+
+ public static void deleteDirectories(String dir) {
+ File directory = new File(dir);
+ deleteDirectories(directory);
+ }
+
+ 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{
+ File idealResultFile = new File(targetFileName);
+ if (overwrite || !idealResultFile.exists())
+ {
+ FileUtils.createFileAndParentDirectories(targetFileName);
+ FileUtils.copyFile(sourceFileName, targetFileName);
+ }
+ }
+
+ public static boolean createDirectory(String directory){
+ // Create a directory; all ancestor directories must exist
+ boolean success = (new File(directory)).mkdir();
+ if (!success) {
+ // Directory creation failed
+ }
+ return success;
+ }
+
+ public static boolean createDirectorys(String directory){
+ // Create a directory; all ancestor directories must exist
+ boolean success = (new File(directory)).mkdirs();
+ if (!success) {
+ // Directory creation failed
+ }
+ return success;
+ }
+
+ //Copies all files under srcDir to dstDir.
+ // If dstDir does not exist, it will be created.
+ public static void copyDirectory(File srcDir, File dstDir) throws IOException {
+ if (srcDir.isDirectory()) {
+ if (!dstDir.exists()) {
+ dstDir.mkdir();
+ }
+
+ String[] children = srcDir.list();
+ for (int i=0; i<children.length; i++) {
+ copyDirectory(new File(srcDir, children[i]),
+ new File(dstDir, children[i]));
+ }
+ } else {
+ copy(srcDir, dstDir);
+ }
+ }
+
+ //Copies src file to dst file.
+ // If the dst file does not exist, it is created
+ public static void copy(File src, File dst) throws IOException {
+ InputStream in = new FileInputStream(src);
+ OutputStream out = new FileOutputStream(dst);
+
+ // Transfer bytes from in to out
+ byte[] buf = new byte[1024];
+ int len;
+ while ((len = in.read(buf)) > 0) {
+ out.write(buf, 0, len);
+ }
+ in.close();
+ out.close();
+ }
+
+ public static String addAnotherNodeToPath(String currentPath, String newNode) {
+ return currentPath + File.separator + newNode;
+ }
+
+ public static String addNodesToPath(String currentPath, String[] newNode) {
+ String returnPath=currentPath;
+ for (int i = 0; i < newNode.length; i++) {
+ returnPath = returnPath + File.separator + newNode[i];
+ }
+ return returnPath;
+ }
+
+ public static String addNodesToPath(StringBuffer currentPath, String[] pathNodes) {
+ for (int i = 0; i < pathNodes.length; i++){
+ currentPath.append(File.separator);
+ currentPath.append(pathNodes[i]);
+ }
+ return currentPath.toString();
+ }
+
+ public static String addNodesToURL(String currentPath, String[] newNode) {
+ String returnPath=currentPath;
+ for (int i = 0; i < newNode.length; i++) {
+ returnPath = returnPath + "/" + newNode[i];
+ }
+ return returnPath;
+ }
+
+}
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
new file mode 100644
index 0000000..aa8068e
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/core/utils/RuntimePropertyUtils.java
@@ -0,0 +1,134 @@
+/*******************************************************************************
+ * 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
+ * -------- -------- -----------------------------------------------------------
+ * 20070130 168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2
+ * runtime to the framework for 168762
+ *******************************************************************************/
+package org.eclipse.jst.ws.axis2.core.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.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jst.ws.axis2.core.plugin.messages.Axis2CoreUIMessages;
+
+public class RuntimePropertyUtils {
+ private static File PropertiesFileDir,serverPropertiesFile,statusPropertyFile;
+ private static IStatus status;
+ private static Properties properties;
+
+ private static void init(){
+ PropertiesFileDir = new File(Axis2CoreUtils.tempAxis2Directory());
+ if (!PropertiesFileDir.exists()){
+ PropertiesFileDir.mkdirs();
+ }
+ properties = new Properties();
+ }
+
+ private static void serverPropertiesFileInit() throws IOException{
+ serverPropertiesFile = new File(Axis2CoreUtils.tempAxis2WebappFileLocation());
+ if (!serverPropertiesFile.exists()){
+ serverPropertiesFile.createNewFile();
+ }
+ properties.load(new FileInputStream(serverPropertiesFile));
+ }
+
+ private static void statusPropertiesFileInit() throws IOException{
+ statusPropertyFile = new File(Axis2CoreUtils.tempRuntimeStatusFileLocation());
+ if (!statusPropertyFile.exists()){
+ statusPropertyFile.createNewFile();
+ }
+ properties.load(new FileInputStream(statusPropertyFile));
+ }
+
+ public static IStatus writeServerPathToPropertiesFile(String axis2Path) {
+ //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);;
+ }else{
+ axis2PathNew=axis2Path;
+ }
+ try {
+ init();
+ serverPropertiesFileInit();
+ if(! (properties.size()== 0)){
+ if(properties.containsKey(Axis2CoreUIMessages.PROPERTY_KEY_PATH)){
+ properties.remove(Axis2CoreUIMessages.PROPERTY_KEY_PATH);
+ }
+ }
+ Axis2CoreUtils.writePropertyToFile(serverPropertiesFile,
+ Axis2CoreUIMessages.PROPERTY_KEY_PATH,
+ axis2PathNew);
+ } catch (FileNotFoundException e) {
+ updateStatusError();
+ } catch (IOException e) {
+ updateStatusError();
+ }
+
+ return status;
+ }
+
+ public static String getServerPathFromPropertiesFile(){
+ init();
+ String serverPath = null;
+ serverPropertiesFile = new File(Axis2CoreUtils.tempAxis2WebappFileLocation());
+ if (!serverPropertiesFile.exists()){
+ updateStatusError();
+ }
+ try {
+ properties.load(new FileInputStream(serverPropertiesFile));
+ if(properties.containsKey(Axis2CoreUIMessages.PROPERTY_KEY_PATH)){
+ serverPath = properties.getProperty(Axis2CoreUIMessages.PROPERTY_KEY_PATH);
+ }
+ } catch (FileNotFoundException e) {
+ updateStatusError();
+ } catch (IOException e) {
+ updateStatusError();
+ }
+ return serverPath;
+ }
+
+
+ public static IStatus writeServerStausToPropertiesFile(String runtimeStatus) {
+ try {
+ init();
+ statusPropertiesFileInit();
+ if(! (properties.size()== 0)){
+ if(properties.containsKey(Axis2CoreUIMessages.PROPERTY_KEY_STATUS)){
+ properties.remove(Axis2CoreUIMessages.PROPERTY_KEY_STATUS);
+ }
+ }
+ Axis2CoreUtils.writePropertyToFile(statusPropertyFile,
+ Axis2CoreUIMessages.PROPERTY_KEY_STATUS,
+ runtimeStatus);
+ } catch (FileNotFoundException e) {
+ updateStatusError();
+ } catch (IOException e) {
+ updateStatusError();
+ }
+
+ return status;
+ }
+
+ private static void updateStatusError(){
+ status = new Status( IStatus.ERROR,
+ "id",
+ 0,
+ Axis2CoreUIMessages.ERROR_INVALID_AXIS2_SERVER_LOCATION,
+ null );
+ }
+
+ }
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
new file mode 100644
index 0000000..e9b5f92
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/facet/commands/Axis2WebservicesServerCommand.java
@@ -0,0 +1,65 @@
+/*******************************************************************************
+ * 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
+ * -------- -------- -----------------------------------------------------------
+ * 20070213 168766 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2
+ * facet to the framework for 168766
+ *******************************************************************************/
+package org.eclipse.jst.ws.axis2.facet.commands;
+
+import java.io.File;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+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.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.ContentCopyUtils;
+import org.eclipse.wst.common.frameworks.datamodel.AbstractDataModelOperation;
+
+public class Axis2WebservicesServerCommand extends
+AbstractDataModelOperation {
+
+ String project;
+ public Axis2WebservicesServerCommand(String project){
+ this.project = project;
+ }
+
+ public IStatus execute(IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ return Status.OK_STATUS;
+ }
+
+ public IStatus exexuteOverrride(IProgressMonitor monitor) throws ExecutionException {
+ //Copy the axis2 libs in to this client project
+ IStatus status = Status.OK_STATUS;
+
+ ContentCopyUtils contentCopyUtils = new ContentCopyUtils();
+ String runtimeLocation = Axis2RuntimeUtils.copyAxis2War(
+ monitor,
+ Axis2CoreUIMessages.PROPERTY_KEY_PATH);
+ status = contentCopyUtils.copyDirectoryRecursivelyIntoWorkspace(
+ runtimeLocation,
+ FacetContainerUtils.pathToWebProjectContainer(project),
+ monitor
+ );
+
+ //clean up tempory files
+ File tempFacetDirectory = new File(runtimeLocation);
+ if (tempFacetDirectory.exists()) {
+ FileUtils.deleteDir(tempFacetDirectory);
+ }
+ return status;
+ }
+}
diff --git a/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/facet/deligate/Axis2CoreFacetInstallDelegate.java b/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/facet/deligate/Axis2CoreFacetInstallDelegate.java
new file mode 100644
index 0000000..4da7d38
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/facet/deligate/Axis2CoreFacetInstallDelegate.java
@@ -0,0 +1,58 @@
+/*******************************************************************************
+ * 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
+ * -------- -------- -----------------------------------------------------------
+ * 20070213 168766 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2
+ * facet to the framework for 168766
+ *******************************************************************************/
+package org.eclipse.jst.ws.axis2.facet.deligate;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.CoreException;
+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.messages.Axis2CoreUIMessages;
+import org.eclipse.jst.ws.axis2.core.utils.RuntimePropertyUtils;
+import org.eclipse.jst.ws.axis2.facet.commands.Axis2WebservicesServerCommand;
+import org.eclipse.wst.common.project.facet.core.IDelegate;
+import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
+
+public class Axis2CoreFacetInstallDelegate implements IDelegate {
+
+ private IStatus status;
+
+ public void execute(IProject project, IProjectFacetVersion arg1, Object arg2,
+ IProgressMonitor monitor) throws CoreException {
+ monitor.beginTask(Axis2CoreUIMessages.PROGRESS_INSTALL_AXIS2_RUNTIME, 2 );
+ try {
+ Axis2WebservicesServerCommand command = new Axis2WebservicesServerCommand(
+ project.toString()
+ );
+ status = command.exexuteOverrride(monitor);
+ if (status.getCode() == Status.OK_STATUS.getCode() ){
+ RuntimePropertyUtils.writeServerStausToPropertiesFile(
+ Axis2CoreUIMessages.SERVER_STATUS_PASS);
+ }else{
+ RuntimePropertyUtils.writeServerStausToPropertiesFile(
+ Axis2CoreUIMessages.SERVER_STATUS_FAIL);
+ }
+ monitor.worked( 1 );
+
+ } catch (ExecutionException e) {
+ e.printStackTrace();
+ }
+ finally {
+ monitor.done();
+ }
+ }
+
+}
diff --git a/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/facet/deligate/Axis2CoreFacetUnInstallDelegate.java b/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/facet/deligate/Axis2CoreFacetUnInstallDelegate.java
new file mode 100644
index 0000000..114407d
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/facet/deligate/Axis2CoreFacetUnInstallDelegate.java
@@ -0,0 +1,50 @@
+/*******************************************************************************
+ * 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
+ * -------- -------- -----------------------------------------------------------
+ * 20070213 168766 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2
+ * facet to the framework for 168766
+ *******************************************************************************/
+package org.eclipse.jst.ws.axis2.facet.deligate;
+
+import java.io.File;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.CoreException;
+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.messages.Axis2CoreUIMessages;
+import org.eclipse.jst.ws.axis2.core.utils.FacetContainerUtils;
+import org.eclipse.jst.ws.axis2.core.utils.FileUtils;
+import org.eclipse.wst.common.project.facet.core.IDelegate;
+import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
+
+public class Axis2CoreFacetUnInstallDelegate implements IDelegate {
+
+ private IStatus status;
+
+ public void execute(IProject project, IProjectFacetVersion arg1, Object arg2,
+ IProgressMonitor monitor) throws CoreException {
+ monitor.beginTask(Axis2CoreUIMessages.PROGRESS_UNINSTALL_AXIS2_RUNTIME, 2 );
+ File webContainerDir = new File(FacetContainerUtils.pathToWebProjectContainer(
+ project.toString()));
+ if (webContainerDir.isDirectory()) {
+ FileUtils.deleteDirectories(webContainerDir);
+ }
+ // TODO rollback the dynamic web project to the previous state.
+ status = Status.OK_STATUS;
+ monitor.worked( 1 );
+ }
+
+ public IStatus getStatus(){
+ return status;
+ }
+}
diff --git a/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/facet/deligate/Axis2ExtFacetInstallDelegate.java b/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/facet/deligate/Axis2ExtFacetInstallDelegate.java
new file mode 100644
index 0000000..5d7f5cb
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/facet/deligate/Axis2ExtFacetInstallDelegate.java
@@ -0,0 +1,30 @@
+/*******************************************************************************
+ * 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
+ * -------- -------- -----------------------------------------------------------
+ * 20070213 168766 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2
+ * facet to the framework for 168766
+ *******************************************************************************/
+package org.eclipse.jst.ws.axis2.facet.deligate;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.wst.common.project.facet.core.IDelegate;
+import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
+
+public class Axis2ExtFacetInstallDelegate implements IDelegate {
+
+ public void execute(IProject arg0, IProjectFacetVersion arg1, Object arg2,
+ IProgressMonitor arg3) throws CoreException {
+ //TODO This will include the more requirements that needed to be automated
+ // when we cover the other RFE s in future.
+ }
+}
diff --git a/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/facet/deligate/Axis2ExtFacetUnInstallDelegate.java b/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/facet/deligate/Axis2ExtFacetUnInstallDelegate.java
new file mode 100644
index 0000000..edc71cf
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/facet/deligate/Axis2ExtFacetUnInstallDelegate.java
@@ -0,0 +1,30 @@
+/*******************************************************************************
+ * 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
+ * -------- -------- -----------------------------------------------------------
+ * 20070213 168766 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2
+ * facet to the framework for 168766
+ *******************************************************************************/
+package org.eclipse.jst.ws.axis2.facet.deligate;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.wst.common.project.facet.core.IDelegate;
+import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
+
+public class Axis2ExtFacetUnInstallDelegate implements IDelegate {
+
+ public void execute(IProject arg0, IProjectFacetVersion arg1, Object arg2,
+ IProgressMonitor arg3) throws CoreException {
+ //TODO This will include the more requirements that needed to be automated
+ // when we cover the other RFE s in future.
+ }
+}
diff --git a/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/facet/messages/Axis2FacetUI.properties b/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/facet/messages/Axis2FacetUI.properties
new file mode 100644
index 0000000..1cb3d0c
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/facet/messages/Axis2FacetUI.properties
@@ -0,0 +1,17 @@
+###############################################################################
+# 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
+# -------- -------- -----------------------------------------------------------
+# 20070214 168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse
+# the Axis2 facet to the framework for 168762
+###############################################################################
+
+
+WEB_INF_LIB=WEB-INF/lib
\ No newline at end of file
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
new file mode 100644
index 0000000..439d9b1
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/facet/messages/Axis2FacetUIMessages.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * 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
+ * -------- -------- -----------------------------------------------------------
+ * 20070213 168766 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2
+ * facet to the framework for 168766
+ *******************************************************************************/
+package org.eclipse.jst.ws.axis2.facet.messages;
+
+import org.eclipse.osgi.util.NLS;
+
+public final class Axis2FacetUIMessages extends NLS {
+
+ private static final String BUNDLE_NAME = "org.eclipse.jst.ws.axis2.facet.messages.Axis2FacetUI";//$NON-NLS-1$
+
+ private Axis2FacetUIMessages() {
+ // Do not instantiate
+ }
+
+ public static String WEB_INF_LIB;
+
+ static {
+ NLS.initializeMessages(BUNDLE_NAME, Axis2FacetUIMessages.class);
+ }
+}
diff --git a/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/facet/model/FacetModel.java b/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/facet/model/FacetModel.java
new file mode 100644
index 0000000..ba0d68e
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/facet/model/FacetModel.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * 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
+ * -------- -------- -----------------------------------------------------------
+ * 20070222 168766 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2
+ * facet to the framework for 168766
+ *******************************************************************************/
+package org.eclipse.jst.ws.axis2.facet.model;
+
+public class FacetModel {
+
+ private static String webFacetConinerDir;
+
+ public static String getWebFacetConinerDir() {
+ return webFacetConinerDir;
+ }
+
+ public static void setWebFacetConinerDir(String inputWebFacetConinerDir) {
+ webFacetConinerDir = inputWebFacetConinerDir;
+ }
+
+}
diff --git a/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/facet/plugin/Axis2FacetPlugin.java b/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/facet/plugin/Axis2FacetPlugin.java
new file mode 100644
index 0000000..c95e133
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/facet/plugin/Axis2FacetPlugin.java
@@ -0,0 +1,87 @@
+/*******************************************************************************
+ * 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
+ * -------- -------- -----------------------------------------------------------
+ * 20070213 168766 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2
+ * facet to the framework for 168766
+ *******************************************************************************/
+package org.eclipse.jst.ws.axis2.facet.plugin;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Axis2FacetPlugin extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.apache.axis2.facet";
+
+ // The shared instance
+ private static Axis2FacetPlugin plugin;
+
+ /**
+ * The constructor
+ */
+ public Axis2FacetPlugin() {
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ public static Axis2FacetPlugin getDefault() {
+ return plugin;
+ }
+
+ public static Axis2FacetPlugin getInstance() {
+ return plugin;
+ }
+
+ public static void log( final Exception e ){
+ final String msg = e.getMessage() + "";
+ log( new Status( IStatus.ERROR, PLUGIN_ID, IStatus.OK, msg, e ) );
+ }
+
+ public static void log( final IStatus status ){
+ getInstance().getLog().log( status );
+ }
+
+ public static void log( final String msg ){
+ log( new Status( IStatus.ERROR, PLUGIN_ID, IStatus.OK, msg, null ) );
+ }
+
+ public static IStatus createErrorStatus( final String msg ){
+ return createErrorStatus( msg, null );
+ }
+
+ public static IStatus createErrorStatus( final String msg,
+ final Exception e ){
+ return new Status( IStatus.ERROR, PLUGIN_ID, 0, msg, e );
+ }
+
+}
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
new file mode 100644
index 0000000..2b1024d
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/facet/utils/Axis2RuntimeUtils.java
@@ -0,0 +1,183 @@
+/*******************************************************************************
+ * 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
+ * -------- -------- -----------------------------------------------------------
+ * 20070213 168766 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2
+ * facet to the framework for 168766
+ *******************************************************************************/
+package org.eclipse.jst.ws.axis2.facet.utils;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.channels.FileChannel;
+import java.util.Enumeration;
+import java.util.Properties;
+import java.util.SortedSet;
+import java.util.TreeSet;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipFile;
+
+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 Axis2RuntimeUtils {
+
+ public static final int ZIP=0, UNZIP = 1;
+ protected static int mode = UNZIP;
+ static ZipFile zipFile;
+ protected static byte[] b;
+ static SortedSet createdDirs;
+ static String outputPath;
+
+ public static String copyAxis2War(IProgressMonitor monitor, String Axis2Home) {
+ String tempWarFile = null;
+ String tempWarLocation = null;
+ String tempUnzipLocation = null;
+ try {
+ if (new File (Axis2CoreUtils.tempAxis2Directory()).isDirectory()) {
+ tempWarLocation = Axis2CoreUtils.addAnotherNodeToPath(
+ Axis2CoreUtils.tempAxis2Directory(),
+ Axis2CoreUIMessages.DIR_TEMPWAR);
+ File tempWarLocationFile= new File(tempWarLocation);
+ if (tempWarLocationFile.exists()) {
+ FileUtils.deleteDirectories(tempWarLocationFile);
+ }
+ tempWarLocationFile.mkdirs();
+ tempWarFile = Axis2CoreUtils.addAnotherNodeToPath(
+ tempWarLocation,
+ Axis2CoreUIMessages.FILE_AXIS2_WAR);
+ new File(tempWarFile).createNewFile();
+ 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,
+ Axis2CoreUIMessages.FILE_AXIS2_WAR);
+
+ FileChannel srcChannel = new FileInputStream(axis2WarFile).getChannel();
+ FileChannel dstChannel = new FileOutputStream(tempWarFile).getChannel();
+ // Copy file contents from source to destination
+ dstChannel.transferFrom(srcChannel, 0, srcChannel.size());
+ // Close the channels
+ srcChannel.close();
+ dstChannel.close();
+
+ //unzip this into another foulder
+ tempUnzipLocation = FileUtils.addAnotherNodeToPath(tempWarLocation, Axis2CoreUIMessages.DIR_UNZIP);
+ File tempUnzipLocationFile= new File(tempUnzipLocation);
+ if (!tempUnzipLocationFile.exists()) {
+ tempUnzipLocationFile.mkdirs();
+ }
+ unzipAxis2War(tempWarFile,tempUnzipLocation );
+
+ }
+
+ } else {
+ //Throws an error message
+ }
+ } catch (FileNotFoundException e) {
+ e.printStackTrace();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+
+ return tempUnzipLocation;
+ }
+
+
+ private static void unzipAxis2War(String fileName,String outputPath){
+ b = new byte[8092];
+ setOutputPath(outputPath);
+ if (fileName.endsWith(".war") )
+ unZip(fileName);
+ else
+ throw new IllegalStateException("Wrong file type" + fileName);
+ }
+
+ /** For a given Zip file, process each entry. */
+ public static void unZip(String fileName) {
+
+ createdDirs = new TreeSet();
+ try {
+ zipFile = new ZipFile(fileName);
+ Enumeration all = zipFile.entries();
+ while (all.hasMoreElements()) {
+ unzipFile((ZipEntry) all.nextElement());
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+
+ protected static void unzipFile(ZipEntry e) throws IOException {
+
+ boolean warnedMkDir = false;
+ String zipName = e.getName();
+ switch (mode) {
+ case UNZIP:
+ if (zipName.startsWith("/")) {
+ if (!warnedMkDir)
+ warnedMkDir = true;
+ zipName = zipName.substring(1);
+ }
+ if (zipName.endsWith("/")) {
+ return;
+ }
+ int ix = zipName.lastIndexOf('/');
+ if (ix > 0) {
+ String dirName = zipName.substring(0, ix);
+ if (!createdDirs.contains(dirName)) {
+ File d = new File(getOutputPath()+File.separator+dirName);
+ if (!(d.exists() && d.isDirectory())) {
+ if (!d.mkdirs()) {
+ throw new IllegalStateException("Warning: unable to mkdir " + dirName);
+ }
+ createdDirs.add(dirName);
+ }
+ }
+ }
+ FileOutputStream os = new FileOutputStream(getOutputPath()+File.separator+zipName);
+ InputStream is = zipFile.getInputStream(e);
+ int n = 0;
+ while ((n = is.read(b)) > 0)
+ os.write(b, 0, n);
+ is.close();
+ os.close();
+ break;
+ default:
+ throw new IllegalStateException("mode value (" + mode + ") bad");
+ }
+ }
+
+
+
+ public static String getOutputPath() {
+ return outputPath;
+ }
+
+
+ public static void setOutputPath(String outputPath) {
+ Axis2RuntimeUtils.outputPath = outputPath;
+ }
+
+
+}
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
new file mode 100644
index 0000000..03993d0
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.core/src/org/eclipse/jst/ws/axis2/facet/utils/ContentCopyUtils.java
@@ -0,0 +1,329 @@
+/*******************************************************************************
+ * Copyright (c) 2007 IBM Corporation, 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
+ * yyyymmdd bug Email and other contact information
+ * -------- -------- -----------------------------------------------------------
+ * 20070213 168766 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2
+ * facet to the framework for 168766
+ *******************************************************************************/
+package org.eclipse.jst.ws.axis2.facet.utils;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IWorkspace;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jst.ws.axis2.core.plugin.messages.Axis2CoreUIMessages;
+import org.eclipse.jst.ws.internal.plugin.WebServicePlugin;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.wst.command.internal.env.core.common.StatusUtils;
+import org.eclipse.wst.command.internal.env.core.context.ResourceContext;
+
+public class ContentCopyUtils {
+
+ private static IWorkspaceRoot root_ = null;
+ private static IWorkspace workspace_ = null;
+ private List fileAndDirectoriesList = new ArrayList();
+ FileInputStream finStream = null;
+
+ /**
+ * 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) {
+ IStatus status = Status.OK_STATUS;
+ fileAndDirectoriesList.clear();
+ File axis2WebappFolder = new File(sourceDir);
+ visitAllDirsAndFiles(axis2WebappFolder);
+ List deployFiles = new ArrayList();
+ deployFiles= fileAndDirectoriesList;
+
+ try {
+
+ //Import the axis2 dependency plugin according to the Resources API of eclipse
+ ResourceContext context = WebServicePlugin.getInstance().getResourceContext();
+
+ IPath outputPath = new Path (destinationDir);
+
+ String fileName;
+ IPath targetPath=null;
+ boolean isDirectory = false;
+
+ String deployFile;
+ Iterator iterator;
+
+ String tempOutputDir = axis2WebappFolder.toString();
+ iterator = deployFiles.iterator();
+ while (iterator.hasNext()) {
+ deployFile = (String) iterator.next();
+ File source = new File(deployFile);
+ if (source.isDirectory()) {
+ isDirectory =true;
+ }else{
+ isDirectory=false;
+ finStream = new FileInputStream(source);
+ }
+
+ if (deployFile.startsWith(tempOutputDir)) {
+ fileName = deployFile.substring(tempOutputDir.length());
+ targetPath = outputPath.append(fileName).makeAbsolute();
+ if (isDirectory){
+ makeFolderPathAtLocation(context,
+ targetPath,
+ monitor);
+ }else{
+ if (finStream != null) {
+ createFileAtLocation(context,
+ targetPath,
+ finStream,
+ monitor);
+ }
+ finStream.close();
+ }
+ }
+ }
+ } catch (IOException 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);
+ }
+
+ return status;
+
+ }
+
+ // Process all files and directories under dir
+ private void visitAllDirsAndFiles(File dir) {
+
+ fileAndDirectoriesList.add(dir.getAbsolutePath());
+
+ if (dir.isDirectory()) {
+ String[] children = dir.list();
+ for (int i=0; i<children.length; i++) {
+ visitAllDirsAndFiles(new File(dir, children[i]));
+ }
+ }
+ }
+
+
+
+ private static IFolder makeFolder (
+ ResourceContext resourceContext,
+ IContainer parent,
+ String folderName,
+ IProgressMonitor progressMonitor )
+
+ throws CoreException
+ {
+ IResource child = parent.findMember(folderName);
+ if( child == null )
+ {
+ IFolder folder = parent.getFolder(new Path(folderName));
+ folder.create(true,true,null);
+ return folder;
+ }
+ else if( child.getType() == IResource.FOLDER )
+ {
+ return (IFolder)child;
+ }
+ else
+ {
+ throw new CoreException(
+ new Status( IStatus.ERROR,
+ "ResourceUtils",
+ 0,
+ NLS.bind("ERROR",//EnvironmentMessages.MSG_ERROR_RESOURCE_NOT_FOLDER,
+ new Object[]{ parent.getFullPath().append(folderName).toString() }),
+ null ) );
+ }
+ }
+
+
+ public static IContainer makeFolderPathAtLocation (
+ ResourceContext resourceContext,
+ IContainer resource,
+ IProgressMonitor progressMonitor )
+
+ throws CoreException
+ {
+ if (resource.exists())
+ {
+ if (resource instanceof IContainer)
+ {
+ return (IContainer) resource;
+ }
+ else
+ {
+ throw new CoreException(
+ new Status( IStatus.ERROR,
+ "ResourceUtils",
+ 0,
+ NLS.bind("ERROR",//EnvironmentMessages.MSG_ERROR_RESOURCE_NOT_FOLDER,
+ new Object[]{ resource.getFullPath().toString() }),
+ null ) );
+ }
+ }
+ else
+ {
+ IContainer parent = makeFolderPathAtLocation(resourceContext, resource.getParent(), progressMonitor );
+ String folderName = resource.getName();
+
+ return makeFolder(resourceContext, parent, folderName, progressMonitor );
+ }
+ }
+
+
+ /**
+ * Creates a path of folders.
+ * Do not call with an absolutePath of less than one segment.
+ * @param resourceContext the resource context for making folders.
+ * @param absolutePath the path of folders that will be created.
+ * @param progressMonitor the progress monitor to be used.
+ * @param statusHandler the status handler.
+ * @return returns the IContainer of the created folder.
+ */
+ public static IContainer makeFolderPathAtLocation (
+ ResourceContext resourceContext,
+ IPath absolutePath,
+ IProgressMonitor progressMonitor )
+
+ throws CoreException
+ {
+ return makeFolderPathAtLocation(resourceContext,
+ getWorkspaceRoot().getContainerForLocation(absolutePath),
+ progressMonitor);
+ }
+
+
+ public static IWorkspaceRoot getWorkspaceRoot ()
+ {
+ if (root_ == null)
+ {
+ root_ = ResourcesPlugin.getWorkspace().getRoot();
+ }
+ return root_;
+ }
+
+ public static IFile createFileAtLocation (
+ ResourceContext resourceContext,
+ IPath absolutePath,
+ InputStream inputStream,
+ IProgressMonitor progressMonitor )
+
+ throws CoreException
+ {
+ if (!absolutePath.isAbsolute())
+ {
+ 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,
+ 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,
+ new Object[] {absolutePath.toString()}),null));
+ }
+ IContainer parent = makeFolderPathAtLocation(resourceContext, absolutePath.removeLastSegments(1), progressMonitor);
+ String fileName = absolutePath.lastSegment();
+
+ return makeFile(resourceContext, parent, fileName, inputStream, progressMonitor);
+ }
+
+
+ private static IFile makeFile (
+ ResourceContext resourceContext,
+ IContainer parent,
+ String fileName,
+ InputStream inputStream,
+ IProgressMonitor progressMonitor )
+
+ throws CoreException
+ {
+ IResource child = parent.findMember(fileName);
+
+ if( child != null )
+ {
+ if( child.getType() == IResource.FILE )
+ {
+ //We have permission to overwrite so check if file is read-only
+ if( child.getResourceAttributes().isReadOnly() )
+ {
+ IFile[] files = new IFile[1];
+ files[0] = (IFile)child;
+ }
+
+ //Change the contents of the existing file.
+ IFile file = parent.getFile( new Path(fileName) );
+ file.setContents( inputStream, true, true, null );
+
+ return file;
+
+ }
+ else
+ {
+ throw new CoreException(
+ new Status( IStatus.ERROR,
+ "ResourceUtils",
+ 0,
+ NLS.bind("ERROR",//EnvironmentMessages.MSG_ERROR_RESOURCE_NOT_FILE,
+ new Object[] {parent.getFullPath().append(fileName)}),
+ null ) );
+ }
+ }
+ else
+ {
+ //Create a new file.
+ IFile file = parent.getFile( new Path(fileName) );
+ file.create( inputStream, true, null);
+
+ return file;
+ }
+ }
+
+ public static IWorkspace getWorkspace ()
+ {
+ if (workspace_ == null)
+ {
+ if (root_ == null)
+ {
+ root_ = ResourcesPlugin.getWorkspace().getRoot();
+ }
+
+ workspace_ = root_.getWorkspace();
+ }
+
+ return workspace_;
+ }
+
+}
diff --git a/bundles/org.eclipse.jst.ws.axis2.creation.core/.classpath b/bundles/org.eclipse.jst.ws.axis2.creation.core/.classpath
new file mode 100644
index 0000000..304e861
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.creation.core/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/bundles/org.eclipse.jst.ws.axis2.creation.core/.project b/bundles/org.eclipse.jst.ws.axis2.creation.core/.project
new file mode 100644
index 0000000..b1c0d65
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.creation.core/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.jst.ws.axis2.creation.core</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/bundles/org.eclipse.jst.ws.axis2.creation.core/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.jst.ws.axis2.creation.core/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..499f7c8
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.creation.core/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,62 @@
+#Thu Feb 22 14:28:31 LKT 2007
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nullReference=ignore
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/bundles/org.eclipse.jst.ws.axis2.creation.core/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.jst.ws.axis2.creation.core/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000..8322bb7
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.creation.core/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,4 @@
+#Wed Feb 21 10:49:06 LKT 2007
+eclipse.preferences.version=1
+internal.default.compliance=default
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?>\n<templates/>
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
new file mode 100644
index 0000000..3d5e7e7
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.creation.core/META-INF/MANIFEST.MF
@@ -0,0 +1,29 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: 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,
+ org.eclipse.wst.common.frameworks,
+ org.eclipse.wst.ws,
+ org.eclipse.wst.common.frameworks.ui,
+ org.eclipse.wst.command.env.core,
+ org.eclipse.wst.command.env.ui,
+ org.eclipse.wst.command.env.infopop,
+ org.eclipse.core.commands,
+ org.eclipse.wst.common.environment,
+ org.eclipse.jst.ws,
+ org.eclipse.jdt.core,
+ org.eclipse.jst.ws.axis2.consumption.core,
+ org.eclipse.jst.ws.axis2.core,
+ org.apache.ant
+Eclipse-LazyStart: true
+Export-Package: org.eclipse.jst.ws.axis2.creation.core.command,
+ org.eclipse.jst.ws.axis2.creation.core.messages,
+ org.eclipse.jst.ws.axis2.creation.core.plugin,
+ org.eclipse.jst.ws.axis2.creation.core.utils
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/bundles/org.eclipse.jst.ws.axis2.creation.core/build.properties b/bundles/org.eclipse.jst.ws.axis2.creation.core/build.properties
new file mode 100644
index 0000000..e9863e2
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.creation.core/build.properties
@@ -0,0 +1,5 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml
diff --git a/bundles/org.eclipse.jst.ws.axis2.creation.core/data/DataModel.java b/bundles/org.eclipse.jst.ws.axis2.creation.core/data/DataModel.java
new file mode 100644
index 0000000..e5c5657
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.creation.core/data/DataModel.java
@@ -0,0 +1,182 @@
+/*******************************************************************************
+ * 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
+ * -------- -------- -----------------------------------------------------------
+ * 20070110 168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2
+ * runtime to the framework for 168762
+ *******************************************************************************/
+package org.eclipse.jst.ws.internal.axis2.creation.ui.data;
+
+public class DataModel{
+
+ private String webProjectName;
+
+ //Client Side
+ private String serviceClass;
+ private boolean generateServicesXML;
+ private boolean servicesXML;
+ private boolean generateAAR;
+ private String pathToServicesXML;
+ private String pathToWebServicesTempDir;
+
+ //Server Side
+ private String wsdlURI;
+ private boolean generateServerSideInterface;
+ private boolean serverXMLCheck;
+ private boolean generateAllCheck;
+ private boolean testCaseCheck;
+ private String databindingType;
+ private String portName;
+ private String serviceName;
+ private String packageText;
+ private String namespaseToPackageMapping;
+
+
+ public boolean isGenerateServicesXML()
+ {
+ return generateServicesXML;
+ }
+
+ public void setGenerateServicesXML(boolean generateServicesXML)
+ {
+ this.generateServicesXML = generateServicesXML;
+ }
+
+ public String getPathToServicesXML()
+ {
+ return pathToServicesXML;
+ }
+
+ public void setPathToServicesXML(String pathToServicesXML)
+ {
+ this.pathToServicesXML = pathToServicesXML;
+ }
+
+ public boolean isGenerateAAR() {
+ return generateAAR;
+ }
+
+ public void setGenerateAAR(boolean generateAAR) {
+ this.generateAAR = generateAAR;
+ }
+
+ public String getWebProjectName() {
+ return webProjectName;
+ }
+
+ public void setWebProjectName(String webProjectName) {
+ this.webProjectName = webProjectName;
+ }
+
+ public boolean isServicesXML() {
+ return servicesXML;
+ }
+
+ public void setServicesXML(boolean servicesXML) {
+ this.servicesXML = servicesXML;
+ }
+
+ public String getPathToWebServicesTempDir() {
+ return pathToWebServicesTempDir;
+ }
+
+ public void setPathToWebServicesTempDir(String pathToWebServicesTempDir) {
+ this.pathToWebServicesTempDir = pathToWebServicesTempDir;
+ }
+
+ public String getWsdlURI() {
+ return wsdlURI;
+ }
+
+ public void setWsdlURI(String wsdlURI) {
+ this.wsdlURI = wsdlURI;
+ }
+
+ public String getDatabindingType() {
+ return databindingType;
+ }
+
+ public void setDatabindingType(String databindingType) {
+ this.databindingType = databindingType;
+ }
+
+ public boolean isGenerateAllCheck() {
+ return generateAllCheck;
+ }
+
+ public void setGenerateAllCheck(boolean generateAllCheck) {
+ this.generateAllCheck = generateAllCheck;
+ }
+
+ public boolean isGenerateServerSideInterface() {
+ return generateServerSideInterface;
+ }
+
+ public void setGenerateServerSideInterface(boolean generateServerSideInterface) {
+ this.generateServerSideInterface = generateServerSideInterface;
+ }
+
+ public String getPortName() {
+ return portName;
+ }
+
+ public void setPortName(String portName) {
+ this.portName = portName;
+ }
+
+ public boolean isServerXMLCheck() {
+ return serverXMLCheck;
+ }
+
+ public void setServerXMLCheck(boolean serverXMLCheck) {
+ this.serverXMLCheck = serverXMLCheck;
+ }
+
+ public String getServiceName() {
+ return serviceName;
+ }
+
+ public void setServiceName(String serviceName) {
+ this.serviceName = serviceName;
+ }
+
+ public boolean isTestCaseCheck() {
+ return testCaseCheck;
+ }
+
+ public void setTestCaseCheck(boolean testCaseCheck) {
+ this.testCaseCheck = testCaseCheck;
+ }
+
+ public String getPackageText() {
+ return packageText;
+ }
+
+ public void setPackageText(String packageText) {
+ this.packageText = packageText;
+ }
+
+ public String getServiceClass() {
+ return serviceClass;
+ }
+
+ public void setServiceClass(String serviceClass) {
+ this.serviceClass = serviceClass;
+ }
+
+ public String getNamespaseToPackageMapping() {
+ return namespaseToPackageMapping;
+ }
+
+ public void setNamespaseToPackageMapping(String namespaseToPackageMapping) {
+ this.namespaseToPackageMapping = namespaseToPackageMapping;
+ }
+
+}
diff --git a/bundles/org.eclipse.jst.ws.axis2.creation.core/plugin.xml b/bundles/org.eclipse.jst.ws.axis2.creation.core/plugin.xml
new file mode 100644
index 0000000..1f01135
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.creation.core/plugin.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+<plugin>
+
+
+</plugin>
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/command/Axis2BUCommand.java b/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/command/Axis2BUCommand.java
new file mode 100644
index 0000000..bd5ffe1
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/command/Axis2BUCommand.java
@@ -0,0 +1,47 @@
+/*******************************************************************************
+ * 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
+ * -------- -------- -----------------------------------------------------------
+ * 20070110 168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2 runtime to the framework for 168762
+ *******************************************************************************/
+package org.eclipse.jst.ws.axis2.creation.core.command;
+
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jst.ws.axis2.creation.core.data.DataModel;
+import org.eclipse.jst.ws.axis2.creation.core.messages.Axis2CreationUIMessages;
+import org.eclipse.wst.command.internal.env.core.common.StatusUtils;
+import org.eclipse.wst.common.frameworks.datamodel.AbstractDataModelOperation;
+
+
+public class Axis2BUCommand extends AbstractDataModelOperation
+{
+ private DataModel model;
+
+ public Axis2BUCommand( DataModel model )
+ {
+ this.model = model;
+ }
+
+ public IStatus execute( IProgressMonitor monitor, IAdaptable adaptable )
+ {
+ IStatus status ;
+ // Check for the nessesary data are available for the scenario to begin
+ if (model.getServiceClass() == null){
+ status = StatusUtils.errorStatus(Axis2CreationUIMessages.ERROR_INVALID_SERVICE_CREATION);
+ }else {
+ status = Status.OK_STATUS; // Ok to proceed
+ }
+ return status;
+ }
+}
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
new file mode 100644
index 0000000..5dbf2ca
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/command/Axis2BUServiceCreationCommand.java
@@ -0,0 +1,134 @@
+/*******************************************************************************
+ * 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
+ * -------- -------- -----------------------------------------------------------
+ * 20070110 168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2 runtime to the framework for 168762
+ *******************************************************************************/
+package org.eclipse.jst.ws.axis2.creation.core.command;
+
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+
+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;
+import org.eclipse.core.runtime.Status;
+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.CommonUtils;
+import org.eclipse.jst.ws.axis2.creation.core.utils.ServiceXMLCreator;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.wst.command.internal.env.core.common.StatusUtils;
+import org.eclipse.wst.common.environment.IEnvironment;
+import org.eclipse.wst.common.frameworks.datamodel.AbstractDataModelOperation;
+import org.eclipse.wst.ws.internal.wsrt.IWebService;
+
+public class Axis2BUServiceCreationCommand extends
+ AbstractDataModelOperation {
+
+ private DataModel model;
+ private IWebService ws;
+
+ public Axis2BUServiceCreationCommand( DataModel model,IWebService ws, String project )
+ {
+ this.model = model;
+ this.ws=ws;
+ }
+
+ public IStatus execute(IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IStatus status = Status.OK_STATUS;
+ IEnvironment environment = getEnvironment();
+ //The full Qulalified Service Class
+ String serviceClass = ws.getWebServiceInfo().getImplURL();
+ 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 webservicesDir = FileUtils.addAnotherNodeToPath(matadataAxis2Dir,
+ Axis2CreationUIMessages.DIR_WEBSERVICES);
+ model.setPathToWebServicesTempDir(webservicesDir);
+
+ //Get the Service name from the class name
+ String serviceName = CommonUtils.classNameFromQualifiedName(serviceClass);
+ //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);
+
+ //Create the directories
+ //Create the Webservices stuff on the workspace .matadata directory
+ FileUtils.createDirectorys(servicesDirectory);
+ FileUtils.createDirectorys(serviceXMLDirectory);
+
+ //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);
+ FileWriter serviceXMLFileWriter;
+
+ serviceXMLFileWriter = new FileWriter(serviceXMLFile, false);
+ BufferedWriter writer = new BufferedWriter(serviceXMLFileWriter) ;
+ writer.write(serviceXMLCreator.toString()) ;
+ writer.close() ;
+ }else {
+ String pathToServicesXML = model.getPathToServicesXML();
+ if (pathToServicesXML == null){
+ 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);
+ FileUtils.copy(serviceXMLFile, targetServicesXMLFile);
+ }
+
+ }
+
+ // Copy the classes directory to the sevices directory
+ 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;
+
+ FileUtils.copyDirectory(new File(classesDirectory), new File(servicesDirectory));
+
+// //Create the .aar file
+// 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);
+
+ //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);
+ environment.getStatusHandler().reportError(status);
+ } catch (Exception e) {
+ status = StatusUtils.errorStatus(NLS.bind(Axis2CreationUIMessages.ERROR_INVALID_SERVICE_CREATION,new String[]{e.getLocalizedMessage()}), e);
+ environment.getStatusHandler().reportError(status);
+ }
+
+
+
+ return 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
new file mode 100644
index 0000000..6b86541
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/command/Axis2BuildProjectCommand.java
@@ -0,0 +1,101 @@
+/*******************************************************************************
+ * 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
+ * -------- -------- -----------------------------------------------------------
+ * 20070110 168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2 runtime to the framework for 168762
+ *******************************************************************************/
+package org.eclipse.jst.ws.axis2.creation.core.command;
+
+//import org.apache.xerces.impl.validation.ValidationManager;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IncrementalProjectBuilder;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.OperationCanceledException;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.wst.common.frameworks.datamodel.AbstractDataModelOperation;
+
+public class Axis2BuildProjectCommand extends
+ AbstractDataModelOperation {
+
+// private ValidationManager validationManager;
+ private IProject project;
+ private boolean forceBuild;
+
+ /**
+ * Default CTOR;
+ */
+ public Axis2BuildProjectCommand(){
+ }
+
+ public Axis2BuildProjectCommand(IProject project){
+ this.project = project;
+ }
+
+ public Axis2BuildProjectCommand(IProject project, boolean forceBuild){
+ this.project = project;
+ this.forceBuild = forceBuild;
+ }
+
+ /**
+ * Execute the command
+ */
+ public IStatus execute( IProgressMonitor monitor, IAdaptable adaptable )
+ {
+ try
+ {
+ if (forceBuild)
+ project.build(IncrementalProjectBuilder.INCREMENTAL_BUILD, new NullProgressMonitor());
+// else if (validationManager == null)
+// project.build(IncrementalProjectBuilder.INCREMENTAL_BUILD, new NullProgressMonitor());
+// else if (validationManager.getWorkspaceAutoBuildPreference())
+// project.build(IncrementalProjectBuilder.INCREMENTAL_BUILD, new NullProgressMonitor());
+ }
+ catch (Exception e){
+ }
+
+ try{
+ Platform.getJobManager().join(ResourcesPlugin.FAMILY_AUTO_BUILD, new NullProgressMonitor());
+ }
+ catch (InterruptedException ie){
+ // continue execution
+ }
+ catch (OperationCanceledException oce){
+ // continue execution
+ }
+
+ return Status.OK_STATUS;
+ }
+ /**
+ * @param forceBuild The forceBuild to set.
+ */
+ public void setForceBuild(boolean forceBuild) {
+ this.forceBuild = forceBuild;
+ }
+
+ /**
+ * @param project The project to set.
+ */
+ public void setProject(IProject project) {
+ this.project = project;
+ }
+
+// /**
+// * @param validationManager The validationManager to set.
+// */
+// public void setValidationManager(ValidationManager validationManager) {
+// this.validationManager = validationManager;
+// }
+
+}
diff --git a/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/command/Axis2ChengeBuildPathCommand.java b/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/command/Axis2ChengeBuildPathCommand.java
new file mode 100644
index 0000000..1fb540a
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/command/Axis2ChengeBuildPathCommand.java
@@ -0,0 +1,62 @@
+/*******************************************************************************
+ * 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
+ * -------- -------- -----------------------------------------------------------
+ * 20070125 168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2
+ * runtime to the framework for 168762
+ *******************************************************************************/
+package org.eclipse.jst.ws.axis2.creation.core.command;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jdt.core.IClasspathEntry;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jdt.core.JavaModelException;
+import org.eclipse.wst.common.frameworks.datamodel.AbstractDataModelOperation;
+
+public class Axis2ChengeBuildPathCommand extends AbstractDataModelOperation {
+
+ private IProject project;
+ private String srcDir;
+ private String outDir;
+
+ public Axis2ChengeBuildPathCommand(IProject project, String srcDir, String outDir) {
+ this.project = project;
+ this.srcDir = srcDir;
+ this.outDir = outDir;
+ }
+
+ public IStatus execute(IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+
+ IPath srcPath = new Path(srcDir);
+ IPath outPath = new Path(outDir);
+
+ IStatus status = Status.OK_STATUS;
+ final IJavaProject jproj = JavaCore.create(project);
+ final IClasspathEntry[] cp = {JavaCore.newSourceEntry(srcPath)};
+
+ try {
+ jproj.setRawClasspath(cp, outPath, null);
+ jproj.save(null, true);
+ } catch (JavaModelException e) {
+ e.printStackTrace();
+ }
+ return status;
+ }
+
+}
diff --git a/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/command/Axis2CleanupCommand.java b/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/command/Axis2CleanupCommand.java
new file mode 100644
index 0000000..b4bb82c
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/command/Axis2CleanupCommand.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * 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
+ * -------- -------- -----------------------------------------------------------
+ * 20070314 168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse
+ * the Axis2 runtime to the framework for 168762
+ *******************************************************************************/
+package org.eclipse.jst.ws.axis2.creation.core.command;
+
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.wst.common.frameworks.datamodel.AbstractDataModelOperation;
+
+
+public class Axis2CleanupCommand extends AbstractDataModelOperation
+{
+
+ public Axis2CleanupCommand(){
+ }
+
+ public IStatus execute( IProgressMonitor monitor, IAdaptable adaptable )
+ {
+ // Cleanup the reflection over head by increasing the priority to the garbage thread
+ System.gc();
+ return Status.OK_STATUS;
+ }
+}
diff --git a/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/command/Axis2DefaultingCommand.java b/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/command/Axis2DefaultingCommand.java
new file mode 100644
index 0000000..0b077f7
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/command/Axis2DefaultingCommand.java
@@ -0,0 +1,96 @@
+/*******************************************************************************
+ * 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
+ * -------- -------- -----------------------------------------------------------
+ * 20070206 168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2
+ * runtime to the framework for 168762
+ *******************************************************************************/
+package org.eclipse.jst.ws.axis2.creation.core.command;
+
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.util.Properties;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jst.ws.axis2.consumption.core.utils.DefaultCodegenUtil;
+import org.eclipse.jst.ws.axis2.core.context.BUServiceContext;
+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.creation.core.data.DataModel;
+import org.eclipse.jst.ws.axis2.creation.core.messages.Axis2CreationUIMessages;
+import org.eclipse.jst.ws.axis2.creation.core.utils.CommonUtils;
+import org.eclipse.wst.command.internal.env.core.common.StatusUtils;
+import org.eclipse.wst.common.frameworks.datamodel.AbstractDataModelOperation;
+import org.eclipse.wst.ws.internal.wsrt.IWebService;
+import org.eclipse.wst.ws.internal.wsrt.WebServiceScenario;
+
+public class Axis2DefaultingCommand extends AbstractDataModelOperation
+{
+ private DataModel model;
+ private IWebService ws;
+ private int scenario;
+ IStatus status;
+
+ public Axis2DefaultingCommand( DataModel model ,IWebService ws, int scenario)
+ {
+ this.model = model;
+ this.ws=ws;
+ this.scenario=scenario;
+ }
+
+ public IStatus execute( IProgressMonitor monitor, IAdaptable adaptable ){
+ //Check wether the current dynamic Web Project is properly build to invoke web service
+ Properties properties = new Properties();
+ try {
+ properties.load(new FileInputStream(Axis2CoreUtils.tempRuntimeStatusFileLocation()));
+ if (properties.containsKey(Axis2CoreUIMessages.PROPERTY_KEY_STATUS)){
+ status = Status.OK_STATUS;
+ model.setServerStatus(true);
+ }else{
+ status = StatusUtils.errorStatus(Axis2CoreUIMessages.ERROR_SERVER_IS_NOT_SET);
+ }
+ } catch (FileNotFoundException e) {
+ status = StatusUtils.errorStatus(Axis2CoreUIMessages.ERROR_INVALID_FILE_READ_WRITEL+
+ Axis2CoreUIMessages.ERROR_SERVER_IS_NOT_SET);
+ } catch (IOException e) {
+ status = StatusUtils.errorStatus(Axis2CoreUIMessages.ERROR_INVALID_FILE_READ_WRITEL+
+ Axis2CoreUIMessages.ERROR_SERVER_IS_NOT_SET);
+ }
+
+ if (scenario == WebServiceScenario.TOPDOWN) {
+ model.setWsdlURI(ws.getWebServiceInfo().getWsdlURL());
+ model.setDatabindingType(Axis2CreationUIMessages.DATA_BINDING_ADB);
+ DefaultCodegenUtil defaultCodegenUtil = new DefaultCodegenUtil(model);
+ defaultCodegenUtil.populateModelParamsFromWSDL();
+ model.setServicesXML(true);
+ model.setServerXMLCheck(true);
+ }else if (scenario == WebServiceScenario.BOTTOMUP) {
+ model.setServiceClass(ws.getWebServiceInfo().getImplURL());
+ //set the service name inside BUServiceContext for used by client if invoke together
+ BUServiceContext.getInstance().setServiceName(
+ CommonUtils.classNameFromQualifiedName(ws.getWebServiceInfo().getImplURL())
+ );
+
+ model.setGenerateServicesXML(true);
+ }else{
+ //never come here
+ }
+ return status;
+ }
+
+ public DataModel getWebServiceDataModel()
+ {
+ return model;
+ }
+}
diff --git a/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/command/Axis2ServicesXMLValidationCommand.java b/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/command/Axis2ServicesXMLValidationCommand.java
new file mode 100644
index 0000000..974dcef
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/command/Axis2ServicesXMLValidationCommand.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * 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
+ * -------- -------- -----------------------------------------------------------
+ * 20070110 168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2 runtime to the framework for 168762
+ *******************************************************************************/
+package org.eclipse.jst.ws.axis2.creation.core.command;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.wst.common.frameworks.datamodel.AbstractDataModelOperation;
+
+public class Axis2ServicesXMLValidationCommand extends
+ AbstractDataModelOperation {
+
+ public IStatus execute(IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ //Here write the code to validate the services.xml
+ IStatus status = Status.OK_STATUS;
+ return status;
+ }
+}
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
new file mode 100644
index 0000000..ed0c772
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/command/Axis2SkelImplCommand.java
@@ -0,0 +1,91 @@
+/*******************************************************************************
+ * 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
+ * -------- -------- -----------------------------------------------------------
+ * 20070123 168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2
+ * runtime to the framework for 168762
+ *******************************************************************************/
+package org.eclipse.jst.ws.axis2.creation.core.command;
+
+import java.net.MalformedURLException;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Status;
+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.CommonUtils;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.wst.command.internal.env.core.common.StatusUtils;
+import org.eclipse.wst.common.environment.IEnvironment;
+import org.eclipse.wst.common.frameworks.datamodel.AbstractDataModelOperation;
+import org.eclipse.wst.ws.internal.wsrt.WebServiceInfo;
+
+public class Axis2SkelImplCommand extends AbstractDataModelOperation {
+
+ private WebServiceInfo webServiceInfo;
+ private DataModel model;
+
+ public Axis2SkelImplCommand(WebServiceInfo webServiceInfo, DataModel model){
+ this.webServiceInfo = webServiceInfo;
+ this.model=model;
+ }
+
+ public IStatus execute(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
+
+ IStatus status = Status.OK_STATUS;
+ IEnvironment environment = getEnvironment();
+
+ String workspaceDirectory = ResourcesPlugin.getWorkspace().getRoot().
+ getLocation().toOSString();
+ String currentDynamicWebProjectDir = FileUtils.addAnotherNodeToPath(
+ workspaceDirectory,
+ model.getWebProjectName());
+ String projectSrcDir = FileUtils.addAnotherNodeToPath(
+ currentDynamicWebProjectDir,
+ Axis2CreationUIMessages.DIR_SRC);
+
+ String packagePath = CommonUtils.packgeName2PathName(model.getPackageText());
+ String packageDir = FileUtils.addAnotherNodeToPath(projectSrcDir, packagePath);
+ String serviceSkeletonImpl = FileUtils.addAnotherNodeToPath(packageDir, model.
+ getServiceName());
+
+ String serviceSkeletonImplURL = serviceSkeletonImpl +
+ Axis2CreationUIMessages.SKELETON_SUFFIX;
+ IPath serviceSkeletonImplURLPath = new Path(serviceSkeletonImplURL);
+ try {
+ //webServiceInfo.setImplURL(serviceSkeletonImplURLPath.toFile().toURL().toString());
+ //String[] implURLArray = {serviceSkeletonImplURL};
+ //webServiceInfo.setImplURLs( implURLArray);
+
+ String serviceSkeletonImplURLString =
+ serviceSkeletonImplURLPath.toFile().toURL().toString();
+
+ webServiceInfo.setImplURL(serviceSkeletonImplURLString);
+ String[] implURLArray = {serviceSkeletonImplURLString};
+ webServiceInfo.setImplURLs( implURLArray);
+
+
+ } catch (MalformedURLException e) {
+ status = StatusUtils.errorStatus(NLS.bind(Axis2CreationUIMessages.ERROR_INVALID_FILE_READ_WRITEL,new String[]{e.getLocalizedMessage()}), e);
+ environment.getStatusHandler().reportError(status);
+ }
+
+ return status;
+
+ }
+
+}
diff --git a/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/command/Axis2TDCommand.java b/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/command/Axis2TDCommand.java
new file mode 100644
index 0000000..e07e7d0
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/command/Axis2TDCommand.java
@@ -0,0 +1,47 @@
+/*******************************************************************************
+ * 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
+ * -------- -------- -----------------------------------------------------------
+ * 20070110 168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2 runtime to the framework for 168762
+ *******************************************************************************/
+package org.eclipse.jst.ws.axis2.creation.core.command;
+
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jst.ws.axis2.creation.core.data.DataModel;
+import org.eclipse.jst.ws.axis2.creation.core.messages.Axis2CreationUIMessages;
+import org.eclipse.wst.command.internal.env.core.common.StatusUtils;
+import org.eclipse.wst.common.frameworks.datamodel.AbstractDataModelOperation;
+
+
+public class Axis2TDCommand extends AbstractDataModelOperation
+{
+ private DataModel model;
+
+ public Axis2TDCommand( DataModel model )
+ {
+ this.model = model;
+ }
+
+ public IStatus execute( IProgressMonitor monitor, IAdaptable adaptable )
+ {
+ IStatus status = Status.OK_STATUS;
+ // Check for the nessesary data are available for the scenario to begin
+ if (model.getWsdlURI() == null){
+ status = StatusUtils.errorStatus(Axis2CreationUIMessages.ERROR_INVALID_SERVICE_CREATION);
+ }else {
+ status = Status.OK_STATUS; // Ok to proceed
+ }
+ return 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
new file mode 100644
index 0000000..4029c24
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/command/Axis2TDServiceCreationCommand.java
@@ -0,0 +1,95 @@
+package org.eclipse.jst.ws.axis2.creation.core.command;
+
+import java.io.File;
+import java.io.IOException;
+
+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;
+import org.eclipse.core.runtime.Status;
+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.osgi.util.NLS;
+import org.eclipse.wst.command.internal.env.core.common.StatusUtils;
+import org.eclipse.wst.common.environment.IEnvironment;
+import org.eclipse.wst.common.frameworks.datamodel.AbstractDataModelOperation;
+import org.eclipse.wst.ws.internal.wsrt.IWebService;
+
+public class Axis2TDServiceCreationCommand extends
+AbstractDataModelOperation {
+
+ private DataModel model;
+
+ public Axis2TDServiceCreationCommand( DataModel model,IWebService ws, String project )
+ {
+ this.model = model;
+ }
+
+public IStatus execute(IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+ IStatus status = Status.OK_STATUS;
+ IEnvironment environment = getEnvironment();
+ //The full Qulalified Service Class
+// String serviceDefinition = ws.getWebServiceInfo().getWsdlURL();
+ 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 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);
+
+ //Create the directories
+ //Create the Webservices stuff on the workspace .matadata directory
+ FileUtils.createDirectorys(currentservicesDirectory);
+ FileUtils.createDirectorys(metaInfDirectory);
+
+
+ //copy the generated resources (services.xml .wsdl ) files
+ //at resources/service.xml
+ 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;
+ //TODO copy only the relevent .classes to the aar
+ 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);
+// 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);
+
+
+ //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);
+ environment.getStatusHandler().reportError(status);
+ } catch (Exception e) {
+ status = StatusUtils.errorStatus(NLS.bind(Axis2CreationUIMessages.ERROR_INVALID_SERVICE_CREATION,new String[]{e.getLocalizedMessage()}), e);
+ environment.getStatusHandler().reportError(status);
+ }
+
+
+
+ return 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
new file mode 100644
index 0000000..b7ac20f
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/command/Axis2WSDL2JavaCommand.java
@@ -0,0 +1,193 @@
+/*******************************************************************************
+ * 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
+ * -------- -------- -----------------------------------------------------------
+ * 20070118 168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2
+ * runtime to the framework for 168762
+ *******************************************************************************/
+package org.eclipse.jst.ws.axis2.creation.core.command;
+
+import java.io.File;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.Method;
+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;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jst.ws.axis2.consumption.core.utils.ContentCopyUtils;
+import org.eclipse.jst.ws.axis2.consumption.core.utils.WSDL2JavaGenerator;
+import org.eclipse.jst.ws.axis2.core.utils.ClassLoadingUtil;
+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.osgi.util.NLS;
+import org.eclipse.wst.command.internal.env.core.common.StatusUtils;
+import org.eclipse.wst.common.environment.IEnvironment;
+import org.eclipse.wst.common.environment.IStatusHandler;
+import org.eclipse.wst.common.frameworks.datamodel.AbstractDataModelOperation;
+
+public class Axis2WSDL2JavaCommand extends AbstractDataModelOperation {
+
+ private DataModel model;
+
+ public Axis2WSDL2JavaCommand( DataModel model ){
+ this.model = model;
+ }
+
+
+ public IStatus execute(IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+
+ IStatus status = Status.OK_STATUS;
+ 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);
+ File tempCodegenLocationFile = new File(tempCodegenOutputLocation);
+ if (tempCodegenLocationFile.exists())FileUtils.deleteDirectories(tempCodegenOutputLocation);
+ FileUtils.createDirectorys(tempCodegenOutputLocation);
+ WSDL2JavaGenerator generator = new WSDL2JavaGenerator();
+
+ //AxisService service;
+ Object axisServiceInstance;
+
+ try {
+ //service = generator.getAxisService(model.getWsdlURI());
+ ClassLoadingUtil.init(model.getWebProjectName());
+ axisServiceInstance = generator.getAxisService(model.getWsdlURI());
+ Map optionsMap = generator.fillOptionMap(
+ false, //async always false
+ false, //sync always false
+ true, //is serverside true
+ model.isServerXMLCheck(),
+ 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.getWsdlURI()!=null)?model.getWsdlURI():null,
+ (model.getPackageText()!=null)?model.getPackageText():null,
+ "java",
+ tempCodegenOutputLocation,
+ model.getNamespaseToPackageMapping(),
+ model.isGenerateServerSideInterface()
+ );
+
+
+ //CodeGenConfiguration codegenConfig = new CodeGenConfiguration(service, optionsMap);
+ 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);
+
+ //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);
+
+ //Get the namespace from the AxisService and set it in the configuration
+ 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);
+
+ 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);
+
+ //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);
+
+ //Invoke Codegen Method
+ Method generateMethod = CodeGenerationEngineClass.getMethod("generate", null);
+ generateMethod.invoke(CodeGenerationEngineInstance, null);
+
+
+ //Copy the existing codegen results to the current project
+ ContentCopyUtils contentCopyUtils = new ContentCopyUtils();
+ status = contentCopyUtils.copyDirectoryRecursivelyIntoWorkspace(
+ tempCodegenOutputLocation,
+ currentDynamicWebProjectDir,
+ monitor,
+ statusHandler);
+
+
+ } catch (Exception e) {
+ status = StatusUtils.errorStatus(NLS.bind(
+ Axis2CreationUIMessages.ERROR_CODEGEN_EXCEPTION,
+ new String[]{e.getLocalizedMessage()}),
+ e);
+ e.printStackTrace();
+ environment.getStatusHandler().reportError(status);
+ }
+
+ return status;
+ }
+
+}
diff --git a/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/command/Axis2WebservicesServerCommand.java b/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/command/Axis2WebservicesServerCommand.java
new file mode 100644
index 0000000..c25a86e
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/command/Axis2WebservicesServerCommand.java
@@ -0,0 +1,102 @@
+/*******************************************************************************
+ * 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
+ * -------- -------- -----------------------------------------------------------
+ * 20070110 168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2
+ * runtime to the framework for 168762
+ *******************************************************************************/
+package org.eclipse.jst.ws.axis2.creation.core.command;
+
+import java.io.File;
+
+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;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jst.ws.axis2.consumption.core.utils.ContentCopyUtils;
+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.wst.common.environment.IEnvironment;
+import org.eclipse.wst.common.environment.IStatusHandler;
+import org.eclipse.wst.common.frameworks.datamodel.AbstractDataModelOperation;
+import org.eclipse.wst.ws.internal.wsrt.WebServiceScenario;
+
+public class Axis2WebservicesServerCommand extends AbstractDataModelOperation {
+
+ private DataModel model;
+ private int scenario;
+
+ public Axis2WebservicesServerCommand( DataModel model, int scenario ){
+ this.model = model;
+ this.scenario = scenario;
+ }
+
+ public IStatus execute(IProgressMonitor monitor, IAdaptable info)
+ throws ExecutionException {
+
+ IStatus status = Status.OK_STATUS;
+ IEnvironment environment = getEnvironment();
+ IStatusHandler statusHandler = environment.getStatusHandler();
+
+ String workspaceDirectory = ResourcesPlugin.getWorkspace().getRoot().
+ getLocation().toOSString();
+ String currentDynamicWebProjectDir = FileUtils.addAnotherNodeToPath(
+ workspaceDirectory,
+ model.getWebProjectName());
+
+ //TODO The Web content directory can be different. cater that also
+ String webContainerDirString = FileUtils.addAnotherNodeToPath(currentDynamicWebProjectDir,
+ Axis2CreationUIMessages.DIR_WEBCONTENT);
+
+ ContentCopyUtils contentCopyUtils = new ContentCopyUtils();
+
+ //Check for the server status
+ if (model.getServerStatus()){
+ if (scenario == WebServiceScenario.BOTTOMUP){
+ //Import the tempory webservices directory according to the Resources API of eclipse
+ String webserviceTempDirString = model.getPathToWebServicesTempDir();
+ String repositoryString = webContainerDirString
+ + File.separator + Axis2CreationUIMessages.DIR_WEB_INF
+ + File.separator + Axis2CreationUIMessages.DIR_SERVICES;
+ //Copy the existing services to the repository
+ status = contentCopyUtils.copyDirectoryRecursivelyIntoWorkspace(
+ webserviceTempDirString,
+ repositoryString,
+ monitor,
+ statusHandler);
+ FileUtils.deleteDirectories(webserviceTempDirString);
+
+
+ }else if (scenario == WebServiceScenario.TOPDOWN){
+ //Do topdown
+ String webserviceTempDirString = model.getPathToWebServicesTempDir();
+ String repositoryString = webContainerDirString
+ + File.separator + Axis2CreationUIMessages.DIR_WEB_INF
+ + File.separator + Axis2CreationUIMessages.DIR_SERVICES;
+ //Copy the existing services to the repository
+ status = contentCopyUtils.copyDirectoryRecursivelyIntoWorkspace(
+ webserviceTempDirString,
+ repositoryString,
+ monitor,
+ statusHandler);
+ FileUtils.deleteDirectories(webserviceTempDirString);
+ }
+ status = Status.OK_STATUS;
+ }else{
+ status = Status.CANCEL_STATUS;
+ }
+
+ return status;
+ }
+
+}
diff --git a/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/messages/Axis2CreationUI.properties b/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/messages/Axis2CreationUI.properties
new file mode 100644
index 0000000..0e367bc
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/messages/Axis2CreationUI.properties
@@ -0,0 +1,88 @@
+###############################################################################
+# 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
+# -------- -------- -----------------------------------------------------------
+# 20070110 168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2
+# runtime to the framework for 168762
+###############################################################################
+#
+# Axis2 server component type labels
+#
+LABEL_CLIENT_COMP_TYPE_WEB=Web
+LABEL_HAVE_SERVICES_XML_FILE=Have a Sevices.xml file
+LABEL_DEFAULT_SERVICES_XML_FILE=Generate Default Sevices.xml file
+LABEL_AXIS2_PREFERENCE_PAGE=Axis2 Web Service Java Bean Configuration
+LABEL_AXIS2_PREFERENCE_PAGE_HEADING=Axis2 Web Service Java Bean Configuration
+LABEL_AXIS2_PREFERENCE_PAGE_SUB_HEADING=Customize your Webservice on this page
+LABEL_BROWSE=&Browse
+LABEL_DATA_MODEL=WebServiceDataModel
+LABEL_EDIT_SERVICES_XML=Do you want edit the services.xml
+LABEL_JAVA_2_WSDL_PAGE_HEADING=Axis2 Web Service skeleton Java Bean Configuration
+LABEL_JAVA_2_WSDL_PAGE_SUB_HEADING=Please select the appropriate options for the code generation
+LABEL_SERVICE_NAME_CAPTION=Service Name
+LABEL_GENERATE_SERVICEXML_CAPTION=Generate a default services.xml
+LABEL_GENERATE_TESTCASE_CAPTION=Generate test case to test the service
+LABEL_DATABINDING_CAPTION=Databinding Name
+LABEL_PORTNAME=Port Name
+LABEL_GENERATE_ALL=Generate All Types for all elements refered by shemas
+LABEL_GENERATE_SERVERSIDE_INTERFACE=Generate an Interface for Skeleton
+LABEL_PACKEGE_NAME=Custom package name
+LABEL_NAMESPACE=Namespace
+LABEL_PACKAGE=Package
+LABEL_NAMESPACE_TO_PACKAGE=Namespace to package mappings
+
+#
+# Axis2 server component type files
+#
+FILE_SERVICES_XML=services.xml
+FILE_AAR=.aar
+FILE_XML=*.xml
+
+#
+# Axis2 server component type folders
+#
+DIR_META_INF=META-INF
+DIR_BUILD=build
+DIR_SRC=src
+DIR_CLASSES=classes
+DIR_RESOURCES=resources
+DIR_AAR=aar
+DIR_WEB_INF=WEB-INF
+DIR_SERVICES=services
+DIR_WEBSERVICES=webservices
+DIR_WEBCONTENT=WebContent
+DIR_WORKSPACE=workspace
+DIR_AXIS2=axis2
+DIR_PLUGINS=plugins
+DIR_DOT_METADATA=.metadata
+DIR_DOT_PLUGINS=.plugins
+
+#
+# Axis2 server component type error
+#
+ERROR_INVALID_SERVICES_XML=You must select a valid services.xml file!
+ERROR_INVALID_FILE_READ_WRITEL=Exception occured while file read wrote
+ERROR_INVALID_WSDL_FILE_READ_WRITEL=Exception occured while wsdl file read wrote
+ERROR_INVALID_SERVICE_CREATION=Exception occured while service creation
+ERROR_WSDL_NIT_FOUND=Specified WSDL is not found!, Please Check whether you have entered the correct path to a *.wsdl on previous page.
+ERROR_CODEGEN_EXCEPTION=Exception occured while code generation the wsdl
+
+#
+# Axis2 server component type other
+#
+JAR_TASK=jar
+AXIS2_RUNTIME=org.apache.axis2_1.0.0/axis2
+#AXIS2_RUNTIME=org.apache.axis2/axis2
+AXIS2_PROJECT=org.eclipse.jst.ws.axis2
+CODEGEN_RESULTS=codegen
+
+DATA_BINDING_ADB=ADB
+DATA_BINDING_NONE=NONE
+SKELETON_SUFFIX=Skeleton.java
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
new file mode 100644
index 0000000..c86679e
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/messages/Axis2CreationUIMessages.java
@@ -0,0 +1,89 @@
+/*******************************************************************************
+ * 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
+ * -------- -------- -----------------------------------------------------------
+ * 20070110 168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2 runtime to the framework for 168762
+ *******************************************************************************/
+package org.eclipse.jst.ws.axis2.creation.core.messages;
+
+import org.eclipse.osgi.util.NLS;
+
+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 Axis2CreationUIMessages() {
+ // Do not instantiate
+ }
+ //labels
+ public static String LABEL_HAVE_SERVICES_XML_FILE;
+ public static String LABEL_DEFAULT_SERVICES_XML_FILE;
+ public static String LABEL_AXIS2_PREFERENCE_PAGE;
+ public static String LABEL_AXIS2_PREFERENCE_PAGE_HEADING;
+ public static String LABEL_AXIS2_PREFERENCE_PAGE_SUB_HEADING;
+ public static String LABEL_BROWSE;
+ public static String LABEL_DATA_MODEL;
+ public static String LABEL_EDIT_SERVICES_XML;
+ public static String LABEL_JAVA_2_WSDL_PAGE_HEADING;
+ public static String LABEL_JAVA_2_WSDL_PAGE_SUB_HEADING;
+ public static String LABEL_SERVICE_NAME_CAPTION;
+ public static String LABEL_GENERATE_SERVICEXML_CAPTION;
+ public static String LABEL_GENERATE_TESTCASE_CAPTION;
+ public static String LABEL_DATABINDING_CAPTION;
+ public static String LABEL_PORTNAME;
+ public static String LABEL_GENERATE_ALL;
+ public static String LABEL_GENERATE_SERVERSIDE_INTERFACE;
+ public static String LABEL_PACKEGE_NAME;
+ public static String LABEL_NAMESPACE;
+ public static String LABEL_PACKAGE;
+ public static String LABEL_NAMESPACE_TO_PACKAGE;
+
+ //files
+ public static String FILE_SERVICES_XML;
+ public static String FILE_AAR;
+ public static String FILE_XML;
+ //folders
+ public static String DIR_DYNAMIC_PROJECT_WEBSERVICES;
+ public static String DIR_BUILD;
+ public static String DIR_SRC;
+ public static String DIR_CLASSES;
+ public static String DIR_RESOURCES;
+ public static String DIR_AAR;
+ public static String DIR_META_INF;
+ public static String DIR_WEB_INF;
+ public static String DIR_SERVICES;
+ public static String DIR_WEBSERVICES;
+ public static String DIR_WEBCONTENT;
+ public static String DIR_WORKSPACE;
+ public static String DIR_AXIS2;
+ public static String DIR_PLUGINS;
+ public static String DIR_DOT_METADATA;
+ public static String DIR_DOT_PLUGINS;
+ //error
+ public static String ERROR_INVALID_SERVICES_XML;
+ public static String ERROR_INVALID_FILE_READ_WRITEL;
+ public static String ERROR_INVALID_WSDL_FILE_READ_WRITEL;
+ public static String ERROR_INVALID_SERVICE_CREATION;
+ public static String ERROR_CODEGEN_EXCEPTION;
+ //other
+ public static String JAR_TASK;
+ public static String AXIS2_RUNTIME;
+ public static String AXIS2_PROJECT;
+ public static String CODEGEN_RESULTS;
+ public static String DATA_BINDING_ADB;
+ public static String DATA_BINDING_NONE;
+ public static String SKELETON_SUFFIX;
+
+ static {
+ NLS.initializeMessages(BUNDLE_NAME, Axis2CreationUIMessages.class);
+ }
+
+}
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
new file mode 100644
index 0000000..56c9fb3
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/plugin/WebServiceAxis2CreationCorePlugin.java
@@ -0,0 +1,64 @@
+/*******************************************************************************
+ * 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
+ * -------- -------- -----------------------------------------------------------
+ * 20070130 168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2
+ * runtime to the framework for 168762
+ *******************************************************************************/
+package org.eclipse.jst.ws.axis2.creation.core.plugin;
+
+import org.eclipse.core.runtime.Plugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class WebServiceAxis2CreationCorePlugin extends Plugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.jst.ws.axis2.creation.core.plugin";
+
+ // The shared instance
+ private static WebServiceAxis2CreationCorePlugin plugin;
+
+ /**
+ * The constructor
+ */
+ public WebServiceAxis2CreationCorePlugin() {
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.core.runtime.Plugins#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.core.runtime.Plugin#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static WebServiceAxis2CreationCorePlugin getDefault() {
+ return plugin;
+ }
+
+}
diff --git a/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/utils/AARFileWriter.java b/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/utils/AARFileWriter.java
new file mode 100644
index 0000000..eeff2ec
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/utils/AARFileWriter.java
@@ -0,0 +1,52 @@
+/*******************************************************************************
+ * 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
+ * -------- -------- -----------------------------------------------------------
+ * 20070110 168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2
+ * runtime to the framework for 168762
+ *******************************************************************************/
+package org.eclipse.jst.ws.axis2.creation.core.utils;
+
+import java.io.File;
+import java.io.IOException;
+import org.apache.tools.ant.Project;
+import org.apache.tools.ant.taskdefs.Jar;
+import org.eclipse.jst.ws.axis2.creation.core.messages.Axis2CreationUIMessages;
+
+public class AARFileWriter extends Jar{
+
+ public AARFileWriter() {
+ this.setProject(new Project());
+ this.getProject().init();
+ this.setTaskType(Axis2CreationUIMessages.JAR_TASK);
+ this.setTaskName(Axis2CreationUIMessages.JAR_TASK);
+ this.setOwningTarget(new org.apache.tools.ant.Target());
+ }
+
+ public void writeAARFile(File outputFolder,
+ String outputFileName,
+ File inputFileFolder) throws IOException,Exception {
+
+ if (!outputFolder.exists()){
+ outputFolder.mkdir(); //create the output path
+ }else{
+ if (!outputFolder.isDirectory())
+ return;
+ }
+
+ File targetFile = new File(outputFolder,outputFileName);
+ this.setBasedir(inputFileFolder);
+ this.setDestFile(targetFile);
+
+ //run the task
+ this.perform();
+ }
+
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/utils/CommonUtils.java b/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/utils/CommonUtils.java
new file mode 100644
index 0000000..bf21d79
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/utils/CommonUtils.java
@@ -0,0 +1,51 @@
+/*******************************************************************************
+ * 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
+ * -------- -------- -----------------------------------------------------------
+ * 20070110 168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2
+ * runtime to the framework for 168762
+ *******************************************************************************/
+package org.eclipse.jst.ws.axis2.creation.core.utils;
+
+
+public class CommonUtils {
+
+ public static String classNameFromQualifiedName(String qualifiedCalssName){
+ //This was done due to not splitting with . Strange
+ qualifiedCalssName = qualifiedCalssName.replace('.', ':');
+ String[] parts = qualifiedCalssName.split(":");
+ if (parts.length == 0){
+ return "";
+ }
+ return parts[parts.length-1];
+ }
+
+ public static String packageNameFromQualifiedName(String qualifiedCalssName){
+ //This was done due to not splitting with . Strange
+ qualifiedCalssName = qualifiedCalssName.replace('.', ':');
+ String[] parts = qualifiedCalssName.split(":");
+ StringBuffer packageName = new StringBuffer();
+ for (int i = 0; i < parts.length-1; i++) {
+ packageName.append(parts[i]);
+ if (! (i == parts.length-2)){
+ packageName.append(".");
+ }
+ }
+ return packageName.toString();
+ }
+
+
+ public static String packgeName2PathName(String packageName){
+ packageName = packageName.replace('.', '/');
+ return packageName;
+ }
+
+
+}
diff --git a/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/utils/PluginLocationFinderUtil.java b/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/utils/PluginLocationFinderUtil.java
new file mode 100644
index 0000000..88a4aa6
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/utils/PluginLocationFinderUtil.java
@@ -0,0 +1,120 @@
+/*******************************************************************************
+ * 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
+ * -------- -------- -----------------------------------------------------------
+ * 20070130 168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2
+ * runtime to the framework for 168762
+ *******************************************************************************/
+package org.eclipse.jst.ws.axis2.creation.core.utils;
+
+
+public class PluginLocationFinderUtil {
+// /**
+// *
+// * @return returns a Vector containing PluginData objects.
+// * Each PluginData object represents a Plugin found under any of the following
+// * plugin directories
+// * a. the targetPlatformLocation\eclipse\plugins directory,
+// * b. other plugin directories as specified by *.link files under
+// * targetPlatform\eclipse\links directory
+// **/
+// public static Vector getPluginsInTargetPlatform(){
+// /**
+// //step1: Get path of target platform.
+// //step2: Prepare path of links folder.
+// //step3: Get list of files in links folder.
+// //step4: Parse each link file and get the path of linked Eclipse folder.
+// //step5: Prepare a list of all plugin root folders
+// // (Eclipse plugins and linked Eclipse plugins).
+// //step6: 6a. For each plugin root folder,
+// // 6b. go to each plugin directory and get path of plugin.xml.
+// //step7: Parse the plugin.xml file to get plugin id, plugin version,
+// // and store in vectors, lists, etc.
+// //step8: Go back to step 6 to continue with next plugin directory.
+// **/
+//
+// //step1: Get path of target platform.
+// //Fall back to Eclipse install location if targetplatform in not set.
+// URL platFormURL = Platform.getInstallLocation().getURL();
+// Location location = Platform.getInstallLocation();
+// IPath eclipsePath = null ;
+//
+// //Get path of target platform against which the users of this tool
+// //will compile their code.
+//// IPath targetPlatFormLocation = new Path(getTargetPlatformPath(true));
+//// IPath targetPlatFormLocation = new Path(System.getProperty("user.dir"));
+//
+//// if(_useTargetPlatform == false)
+// eclipsePath = new Path(platFormURL.getPath());
+//// else
+//// eclipsePath = targetPlatFormLocation;
+//
+//// showMessage("Considering target platform to be: " +
+//// eclipsePath.toString());
+//
+// //step2: Prepare path of links folder.
+// //step3: Get list of files in links folder.
+// //step4: Parse each link file and get the path of linked Eclipse folder.
+// IPath linksPath = new Path( eclipsePath.toString() ).append("/links");
+// String linkedPaths[] = getLinkedPaths(linksPath.toString());
+// int linkedPathLength = 0;
+// if(null != linkedPaths){
+// linkedPathLength = linkedPaths.length;
+// }
+//
+// //step5: Prepare a list of all plugin root folders
+// // (Eclipse plugins and linked Eclipse plugins).
+// IPath eclipsePluginRootFolders[] = new IPath[linkedPathLength + 1];
+// eclipsePluginRootFolders[0] =
+// new Path( eclipsePath.toString() ).append("/plugins");
+// if(null != linkedPaths){
+// for(int i=0; i<linkedPaths.length; i++){
+// eclipsePluginRootFolders[i+1] =
+// new Path(linkedPaths[i]).append("/eclipse/plugins");
+// }
+// }
+//
+// //step6: 6a. For each plugin root folder,
+// // 6b. go to each plugin directory and get path of plugin.xml.
+// //step7: Parse the plugin.xml file to get plugin id, plugin version,
+// // and store in vectors, lists, etc.
+// Vector vectorsInThisVector = new Vector();
+// for(int i=0; i<eclipsePluginRootFolders.length; i++){
+// System.out.println("\n========plugin IDs and Versions in " +
+// eclipsePluginRootFolders[i] + "========");
+// Vector pluginDataObjs =
+// getPluginDataForAllPlugins(
+// eclipsePluginRootFolders[i].toString());
+// vectorsInThisVector.add(pluginDataObjs);
+// System.out.println(pluginDataObjs);
+// System.out.println("\n===========|||=== end ===|||===========");
+// }
+//
+// Vector pluginData = new Vector();
+// Iterator outerIterator = vectorsInThisVector.iterator();
+// while(outerIterator.hasNext()){
+// Vector pluginDataObjs = (Vector)outerIterator.next();
+// Iterator innerIterator = pluginDataObjs.iterator();
+// while(innerIterator.hasNext()){
+// PluginData pd = (PluginData)innerIterator.next();
+// String pluginIdKey = pd.getPluginID();
+// String versionValue = pd.getPluginVersion();
+// String pluginPath = pd.getPluginLocation();
+// pluginData.add(pd);
+// }
+// }
+//
+// int breakpoint=0;
+//
+// return pluginData;
+// }
+//
+//
+}
diff --git a/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/utils/ServiceXMLCreator.java b/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/utils/ServiceXMLCreator.java
new file mode 100644
index 0000000..28d3be2
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.creation.core/src/org/eclipse/jst/ws/axis2/creation/core/utils/ServiceXMLCreator.java
@@ -0,0 +1,58 @@
+/*******************************************************************************
+ * 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
+ * -------- -------- -----------------------------------------------------------
+ * 20070110 168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2
+ * runtime to the framework for 168762
+ *******************************************************************************/
+package org.eclipse.jst.ws.axis2.creation.core.utils;
+
+import java.util.ArrayList;
+
+public class ServiceXMLCreator {
+ private String serviceName;
+ private String serviceClass;
+ private ArrayList operations;
+
+ public ServiceXMLCreator(String serviceName, String serviceClass, ArrayList operations) {
+ this.serviceName = serviceName;
+ this.serviceClass = serviceClass;
+ this.operations = operations;
+ }
+
+ public String getServiceName() {
+ return serviceName;
+ }
+
+ public String getServiceClass() {
+ return serviceClass;
+ }
+
+ public ArrayList getOperations() {
+ return operations;
+ }
+
+ public String toString() {
+ String serviceXML = "<service name=\"" + serviceName + "\" >\n" +
+ "\t<description>\n" +
+ "\t\tPlease Type your service description here\n" +
+ "\t</description>\n" +
+ "\t<messageReceivers>\n" +
+ "\t\t<messageReceiver mep=\"http://www.w3.org/2004/08/wsdl/in-only\" " +
+ "class=\"org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver\" />\n" +
+ "\t\t<messageReceiver mep=\"http://www.w3.org/2004/08/wsdl/in-out\" " +
+ "class=\"org.apache.axis2.rpc.receivers.RPCMessageReceiver\"/>\n" +
+ "\t</messageReceivers>\n" +
+ "\t<parameter name=\"ServiceClass\" locked=\"false\">" + serviceClass + "</parameter>\n" ;
+ serviceXML = serviceXML + "</service>\n";
+ return serviceXML;
+ }
+
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.ws.axis2.creation.ui/.classpath b/bundles/org.eclipse.jst.ws.axis2.creation.ui/.classpath
new file mode 100644
index 0000000..304e861
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.creation.ui/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/bundles/org.eclipse.jst.ws.axis2.creation.ui/.project b/bundles/org.eclipse.jst.ws.axis2.creation.ui/.project
new file mode 100644
index 0000000..b48462a
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.creation.ui/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.jst.ws.axis2.creation.ui</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/bundles/org.eclipse.jst.ws.axis2.creation.ui/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.jst.ws.axis2.creation.ui/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..5ab8f84
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.creation.ui/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,57 @@
+#Thu Feb 22 14:31:42 LKT 2007
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nullReference=ignore
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.5
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
new file mode 100644
index 0000000..32fdb01
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.creation.ui/META-INF/MANIFEST.MF
@@ -0,0 +1,29 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: 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
+Bundle-Localization: plugin
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.core.resources,
+ org.eclipse.jst.ws.consumption.ui,
+ org.eclipse.wst.ws,
+ org.eclipse.wst.common.environment,
+ org.eclipse.wst.command.env.core,
+ org.eclipse.emf.common,
+ org.eclipse.wst.common.frameworks,
+ org.eclipse.wst.command.env.ui,
+ org.eclipse.jst.ws,
+ org.eclipse.wst.command.env,
+ org.eclipse.jdt.core,
+ org.eclipse.jst.ws.axis2.creation.core,
+ org.eclipse.jst.ws.axis2.consumption.ui,
+ org.eclipse.jst.ws.axis2.consumption.core,
+ org.eclipse.jst.ws.axis2.core
+Eclipse-LazyStart: true
+Export-Package: org.eclipse.jst.ws.internal.axis2.creation.ui.widgets.bean,
+ org.eclipse.jst.ws.internal.axis2.creation.ui.widgets.skeleton,
+ org.eclipse.jst.ws.internal.axis2.creation.ui.wsrt
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/bundles/org.eclipse.jst.ws.axis2.creation.ui/build.properties b/bundles/org.eclipse.jst.ws.axis2.creation.ui/build.properties
new file mode 100644
index 0000000..a8546f7
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.creation.ui/build.properties
@@ -0,0 +1,19 @@
+###############################################################################
+# Copyright (c) 2007 IBM Corporation 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
+# 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
+###############################################################################
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml,\
+ plugin.properties
diff --git a/bundles/org.eclipse.jst.ws.axis2.creation.ui/plugin.properties b/bundles/org.eclipse.jst.ws.axis2.creation.ui/plugin.properties
new file mode 100644
index 0000000..8078b32
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.creation.ui/plugin.properties
@@ -0,0 +1,18 @@
+###############################################################################
+# Copyright (c) 2006, 2007 IBM Corporation 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
+# 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
+###############################################################################
+
+#
+# Messages in plugin.xml.
+#
+LABEL_RUNTIME_AXIS_2=Apache Axis2
diff --git a/bundles/org.eclipse.jst.ws.axis2.creation.ui/plugin.xml b/bundles/org.eclipse.jst.ws.axis2.creation.ui/plugin.xml
new file mode 100644
index 0000000..5004d58
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.creation.ui/plugin.xml
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.2"?>
+<plugin>
+
+ <extension point="org.eclipse.wst.command.env.ui.widgetRegistry">
+ <widgetFactory
+ id="BeanExampleConfig"
+ insertBeforeCommandId="org.eclipse.jst.ws.axis2.creation.core.command.Axis2BUCommand"
+ class="org.eclipse.jst.ws.internal.axis2.creation.ui.wsrt.Axis2BeanConfigWidgetFactory"/>
+ </extension>
+
+ <extension point="org.eclipse.wst.command.env.ui.widgetRegistry">
+ <widgetFactory
+ id="SkelExampleConfig"
+ insertBeforeCommandId="org.eclipse.jst.ws.axis2.creation.core.command.Axis2TDCommand"
+ class="org.eclipse.jst.ws.internal.axis2.creation.ui.wsrt.Axis2SkelConfigWidgetFactory" />
+ </extension>
+
+ <extension point="org.eclipse.jst.ws.consumption.ui.runtimes">
+ <runtime
+ id="org.eclipse.jst.ws.axis2.creation.axis2WebServiceRT"
+ label="%LABEL_RUNTIME_AXIS_2"
+ serverRequired="false"/>
+ </extension>
+
+
+ <!-- define support for Axis2 Java bean bottom up and top-down support in web projects -->
+ <extension point="org.eclipse.jst.ws.consumption.ui.serviceRuntimes">
+ <serviceRuntime
+ id="org.eclipse.jst.ws.axis2.creation.java"
+ serviceImplementationTypeId="org.eclipse.jst.ws.wsImpl.java"
+ runtimeId="org.eclipse.jst.ws.axis2.creation.axis2WebServiceRT"
+ bottomUp="true"
+ topDown="true"
+ class="org.eclipse.jst.ws.internal.axis2.creation.ui.wsrt.Axis2WebServiceRuntime">
+
+ <required-facet-version facet="jst.web" version="2.3" allow-newer="true"/>
+ <required-facet-version facet="axis2.core" version="1.1" allow-newer="true" />
+ <required-facet-version facet="axis2.ext" version="1.1" allow-newer="true" />
+
+ </serviceRuntime>
+ </extension>
+
+ <!-- define support for Axis Java clients in Web projects -->
+ <extension point="org.eclipse.jst.ws.consumption.ui.clientRuntimes">
+ <clientRuntime
+ id="org.eclipse.jst.ws.axis2.consumption.web"
+ clientImplementationTypeId="org.eclipse.jst.ws.client.type.java"
+ runtimeId="org.eclipse.jst.ws.axis2.creation.axis2WebServiceRT"
+ class="org.eclipse.jst.ws.internal.axis2.creation.ui.wsrt.Axis2WebServiceRuntime">
+
+ <required-facet-version facet="jst.web" version="2.3" allow-newer="true" />
+ <required-facet-version facet="axis2.core" version="1.1" allow-newer="true" />
+ <required-facet-version facet="axis2.ext" version="1.1" allow-newer="true" />
+
+ </clientRuntime>
+ </extension>
+
+</plugin>
diff --git a/bundles/org.eclipse.jst.ws.axis2.creation.ui/src/org/eclipse/jst/ws/internal/axis2/creation/ui/plugin/WebServiceAxis2CreationUIPlugin.java b/bundles/org.eclipse.jst.ws.axis2.creation.ui/src/org/eclipse/jst/ws/internal/axis2/creation/ui/plugin/WebServiceAxis2CreationUIPlugin.java
new file mode 100644
index 0000000..1ebe6f5
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.creation.ui/src/org/eclipse/jst/ws/internal/axis2/creation/ui/plugin/WebServiceAxis2CreationUIPlugin.java
@@ -0,0 +1,62 @@
+/*******************************************************************************
+ * 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
+ * -------- -------- -----------------------------------------------------------
+ * 20070110 168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2
+ * runtime to the framework for 168762
+ *******************************************************************************/
+package org.eclipse.jst.ws.internal.axis2.creation.ui.plugin;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class WebServiceAxis2CreationUIPlugin extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.jst.ws.axis2.creation.ui";
+
+ // The shared instance
+ private static WebServiceAxis2CreationUIPlugin plugin;
+
+ /**
+ * The constructor
+ */
+ public WebServiceAxis2CreationUIPlugin() {
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * @return the shared instance
+ */
+ public static WebServiceAxis2CreationUIPlugin getDefault() {
+ return plugin;
+ }
+
+}
diff --git a/bundles/org.eclipse.jst.ws.axis2.creation.ui/src/org/eclipse/jst/ws/internal/axis2/creation/ui/widgets/bean/ServicesXMLSelectBeanWidget.java b/bundles/org.eclipse.jst.ws.axis2.creation.ui/src/org/eclipse/jst/ws/internal/axis2/creation/ui/widgets/bean/ServicesXMLSelectBeanWidget.java
new file mode 100644
index 0000000..55a27dc
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.creation.ui/src/org/eclipse/jst/ws/internal/axis2/creation/ui/widgets/bean/ServicesXMLSelectBeanWidget.java
@@ -0,0 +1,224 @@
+/*******************************************************************************
+ * 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
+ * -------- -------- -----------------------------------------------------------
+ * 20070110 168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2
+ * runtime to the framework for 168762
+ *******************************************************************************/
+package org.eclipse.jst.ws.internal.axis2.creation.ui.widgets.bean;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jst.ws.axis2.creation.core.data.DataModel;
+import org.eclipse.jst.ws.axis2.creation.core.messages.Axis2CreationUIMessages;
+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.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.FileDialog;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.wst.command.internal.env.ui.widgets.SimpleWidgetDataContributor;
+import org.eclipse.wst.command.internal.env.ui.widgets.WidgetDataEvents;
+
+
+public class ServicesXMLSelectBeanWidget extends SimpleWidgetDataContributor
+{
+ private DataModel model;
+ private Button browseButton;
+ private Text servicesXMLPath;
+ private Button generateServicesXML;
+ private Button haveServicesXML;
+
+ public ServicesXMLSelectBeanWidget( DataModel model )
+ {
+ this.model = model;
+ }
+
+ public WidgetDataEvents addControls( Composite parent, final Listener statusListener )
+ {
+ final Composite mainComp = new Composite( parent, SWT.NONE );
+ GridLayout layout = new GridLayout();
+ layout.numColumns = 14;
+ GridData griddata = new GridData( GridData.FILL_HORIZONTAL );
+ Label label = new Label( mainComp, SWT.NONE );
+
+ griddata = new GridData( GridData.FILL_HORIZONTAL );
+ griddata.horizontalSpan = 14;
+ mainComp.setLayout( layout );
+ mainComp.setLayoutData( griddata );
+ label.setText( Axis2CreationUIMessages.LABEL_AXIS2_PREFERENCE_PAGE );
+ model.setGenerateServicesXML(true);
+ model.setServicesXML(false);
+
+ griddata = new GridData( GridData.FILL_HORIZONTAL );
+ griddata.horizontalSpan = 14;
+ haveServicesXML = new Button( mainComp, SWT.CHECK );
+ haveServicesXML.setText(Axis2CreationUIMessages.LABEL_HAVE_SERVICES_XML_FILE);
+ haveServicesXML.setLayoutData(griddata);
+ haveServicesXML.addSelectionListener( new SelectionAdapter()
+ {
+ public void widgetSelected(SelectionEvent e)
+ {
+ if (haveServicesXML.getSelection()){
+ haveServicesXML.setSelection(true);
+ generateServicesXML.setSelection(false);
+ enableServicesXMLBrowse();
+ }else{
+ if (!generateServicesXML.getSelection()){
+ haveServicesXML.setSelection(true);
+ generateServicesXML.setSelection(false);
+ enableServicesXMLBrowse();
+ }else{
+ haveServicesXML.setSelection(false);
+ disableServicesXMLBrowse();
+ }
+ }
+ model.setGenerateServicesXML(false);
+ model.setServicesXML(true);
+
+ // Need to trigger a validation at this point to ensure
+ // that the next button is enabled properly just in case
+ // this is the last page in the wizard.
+ statusListener.handleEvent( null );
+ }
+ });
+ griddata = new GridData( GridData.FILL_HORIZONTAL );
+ griddata.horizontalSpan = 13;
+
+ servicesXMLPath = new Text( mainComp, SWT.BORDER );
+ servicesXMLPath.setText("");
+ servicesXMLPath.setLayoutData(griddata);
+ servicesXMLPath.addModifyListener( new ModifyListener()
+ {
+ public void modifyText(ModifyEvent e)
+ {
+ model.setPathToServicesXML( servicesXMLPath.getText() );
+ // Need to trigger a validation at this point to ensure
+ // that the next button is enabled properly just in case
+ // this is the last page in the wizard.
+ statusListener.handleEvent( null );
+ }
+ });
+
+ griddata = new GridData( );
+ griddata.horizontalSpan = 1;
+ griddata.minimumWidth = 50;
+ griddata.grabExcessHorizontalSpace = true;
+ browseButton = new Button( mainComp, SWT.NULL );
+ browseButton.setText(Axis2CreationUIMessages.LABEL_BROWSE);
+ browseButton.setLayoutData(griddata);
+ browseButton.addSelectionListener( new SelectionAdapter()
+ {
+ public void widgetSelected(SelectionEvent e)
+ {
+ handleBrowse(mainComp.getShell());
+ // Need to trigger a validation at this point to ensure
+ // that the next button is enabled properly just in case
+ // this is the last page in the wizard.
+ statusListener.handleEvent( null );
+ }
+ });
+
+
+ griddata = new GridData( GridData.FILL_HORIZONTAL );
+ griddata.horizontalSpan = 14;
+ generateServicesXML = new Button( mainComp, SWT.CHECK );
+ generateServicesXML.setText( Axis2CreationUIMessages.LABEL_DEFAULT_SERVICES_XML_FILE );
+ generateServicesXML.setLayoutData(griddata);
+ generateServicesXML.setSelection(true);
+ generateServicesXML.addSelectionListener( new SelectionAdapter()
+ {
+ public void widgetSelected(SelectionEvent e)
+ {
+ if (generateServicesXML.getSelection()){
+ generateServicesXML.setSelection(true);
+ haveServicesXML.setSelection(false);
+ disableServicesXMLBrowse();
+ }else{
+ if (!haveServicesXML.getSelection()){
+ generateServicesXML.setSelection(true);
+ haveServicesXML.setSelection(false);
+ }else{
+ generateServicesXML.setSelection(false);
+ }
+ }
+ model.setGenerateServicesXML(true);
+ model.setServicesXML(false);
+ // Need to trigger a validation at this point to ensure
+ // that the next button is enabled properly just in case
+ // this is the last page in the wizard.
+ statusListener.handleEvent( null );
+ }
+ });
+
+ disableServicesXMLBrowse();
+
+ return this;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.wst.command.env.ui.widgets.WidgetContributor#getStatus()
+ */
+ public IStatus getStatus()
+ {
+ IStatus result = null;
+
+ if( haveServicesXML.getSelection() && servicesXMLPath.getText().equals("") )
+ {
+ result = new Status( IStatus.ERROR,
+ "id",
+ 0,
+ Axis2CreationUIMessages.ERROR_INVALID_SERVICES_XML,
+ null );
+ }
+
+ return result;
+ }
+
+ /**
+ * enable the services.xml text and browse button
+ */
+ private void enableServicesXMLBrowse(){
+ browseButton.setEnabled(true);
+ servicesXMLPath.setEnabled(true);
+ }
+
+ /**
+ * disable the services.xml text and browse button
+ */
+ private void disableServicesXMLBrowse(){
+ browseButton.setEnabled(false);
+ servicesXMLPath.setEnabled(false);
+ }
+
+ /**
+ * Pops up the file browse dialog box
+ */
+ private void handleBrowse(Shell parent) {
+ FileDialog fileDialog = new FileDialog(parent);
+ fileDialog.setFilterExtensions(new String[] { Axis2CreationUIMessages.FILE_XML });
+ String fileName = fileDialog.open();
+ if (fileName != null) {
+ servicesXMLPath.setText(fileName);
+ model.setPathToServicesXML( servicesXMLPath.getText() );
+ }
+ }
+}
+
+
+
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
new file mode 100644
index 0000000..a5fa29b
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.creation.ui/src/org/eclipse/jst/ws/internal/axis2/creation/ui/widgets/skeleton/WSDL2JAVASkelConfigWidget.java
@@ -0,0 +1,506 @@
+/*******************************************************************************
+ * 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
+ * -------- -------- -----------------------------------------------------------
+ * 20070110 168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2
+ * runtime to the framework for 168762
+ *******************************************************************************/
+package org.eclipse.jst.ws.internal.axis2.creation.ui.widgets.skeleton;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.Iterator;
+import java.util.Map;
+
+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.utils.ClassLoadingUtil;
+import org.eclipse.jst.ws.axis2.creation.core.data.DataModel;
+import org.eclipse.jst.ws.axis2.creation.core.messages.Axis2CreationUIMessages;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.TableEditor;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.widgets.TableItem;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.wst.command.internal.env.core.common.StatusUtils;
+import org.eclipse.wst.command.internal.env.ui.widgets.SimpleWidgetDataContributor;
+import org.eclipse.wst.command.internal.env.ui.widgets.WidgetDataEvents;
+
+
+public class WSDL2JAVASkelConfigWidget extends SimpleWidgetDataContributor
+{
+ private DataModel model;
+ IStatus status = Status.OK_STATUS;
+
+ //controls
+ //check box for server side interface
+ private Button generateServerSideInterfaceCheckBoxButton;
+ private Button generateAllCheckBoxButton;
+ private Button testCaseCheckBoxButton;
+ private Combo databindingTypeCombo;
+ // Text box to have the portname
+ private Combo portNameCombo;
+ //Text box to have the service name
+ private Combo serviceNameCombo;
+ private WSDLPropertyReader reader;
+ private java.util.List serviceQNameList = null;
+ 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.
+ Label label, fillLabel, fillLabel1, fillLabel2, fillLabel3, fillLabel4, fillLabel5, fillLabel6;
+
+ public WSDL2JAVASkelConfigWidget( DataModel model ) {
+ this.model = model;
+ }
+
+ public WidgetDataEvents addControls( Composite parent, final Listener statusListener ){
+ Composite mainComp = new Composite( parent, SWT.NONE );
+ GridLayout layout = new GridLayout();
+ mainComp.setLayout(layout);
+
+ layout.numColumns = 3;
+ GridData gd = new GridData(GridData.FILL_HORIZONTAL);
+ mainComp.setLayoutData( gd );
+
+ // service name
+ label = new Label(mainComp, SWT.NULL);
+ label.setText(Axis2CreationUIMessages.LABEL_SERVICE_NAME_CAPTION);
+
+ serviceNameCombo = new Combo(mainComp, SWT.DROP_DOWN | SWT.BORDER
+ | SWT.READ_ONLY);
+ gd = new GridData(GridData.FILL_HORIZONTAL);
+ gd.horizontalSpan = 2;
+ serviceNameCombo.setLayoutData(gd);
+ serviceNameCombo.addSelectionListener(new SelectionListener() {
+ public void widgetSelected(SelectionEvent e) {
+ model.setServiceName(serviceNameCombo.getText());
+ }
+ public void widgetDefaultSelected(SelectionEvent e) {
+ }
+ });
+
+ // port name
+ label = new Label(mainComp, SWT.NULL);
+ label.setText(Axis2CreationUIMessages.LABEL_PORTNAME);
+ portNameCombo = new Combo(mainComp, SWT.DROP_DOWN | SWT.BORDER
+ | SWT.READ_ONLY);
+ gd = new GridData(GridData.FILL_HORIZONTAL);
+ gd.horizontalSpan = 2;
+ portNameCombo.setLayoutData(gd);
+ portNameCombo.addSelectionListener(new SelectionListener() {
+ public void widgetSelected(SelectionEvent e) {
+ model.setPortName(portNameCombo.getText());
+ }
+ public void widgetDefaultSelected(SelectionEvent e) {
+ }
+ });
+
+ // Databinding
+ label = new Label(mainComp, SWT.NULL);
+ label.setText(Axis2CreationUIMessages.LABEL_DATABINDING_CAPTION);
+ gd = new GridData(GridData.FILL_HORIZONTAL);
+ gd.horizontalSpan = 2;
+ databindingTypeCombo = new Combo(mainComp, SWT.DROP_DOWN | SWT.BORDER | SWT.READ_ONLY);
+ databindingTypeCombo.setLayoutData(gd);
+ fillDatabinderCombo();
+ databindingTypeCombo.select(0);
+ databindingTypeCombo.addSelectionListener(new SelectionListener() {
+ public void widgetSelected(SelectionEvent e) {
+ model.setDatabindingType(databindingTypeCombo.getText());
+ };
+ public void widgetDefaultSelected(SelectionEvent e) {
+ };
+ });
+
+ // package name
+ label = new Label(mainComp, SWT.NULL);
+ label.setText(Axis2CreationUIMessages.LABEL_PACKEGE_NAME);
+ packageText = new Text(mainComp, SWT.BORDER);
+ gd = new GridData(GridData.FILL_HORIZONTAL);
+ gd.horizontalSpan = 2;
+
+ packageText.setLayoutData(gd);
+ packageText.setText(""); // get this text from the
+ packageText.addModifyListener(new ModifyListener() {
+ public void modifyText(ModifyEvent e) {
+ model.setPackageText(packageText.getText());
+ }
+ });
+
+ //filling label
+ gd = new GridData(GridData.FILL_HORIZONTAL);
+ gd.horizontalSpan = 3;
+ fillLabel = new Label(mainComp, SWT.HORIZONTAL | SWT.NULL);
+
+ //filling label
+ gd = new GridData(GridData.FILL_HORIZONTAL);
+ gd.horizontalSpan = 3;
+ fillLabel2 = new Label(mainComp, SWT.HORIZONTAL | SWT.NULL);
+
+ //filling label
+ gd = new GridData(GridData.FILL_HORIZONTAL);
+ gd.horizontalSpan = 3;
+ fillLabel3 = new Label(mainComp, SWT.HORIZONTAL | SWT.NULL);
+
+ //filling label
+ gd = new GridData(GridData.FILL_HORIZONTAL);
+ gd.horizontalSpan = 3;
+ fillLabel4 = new Label(mainComp, SWT.HORIZONTAL | SWT.NULL);
+
+ // generate test case option
+ gd = new GridData(GridData.FILL_HORIZONTAL);
+ gd.horizontalSpan = 3;
+ testCaseCheckBoxButton = new Button(mainComp, SWT.CHECK);
+ testCaseCheckBoxButton.setLayoutData(gd);
+ testCaseCheckBoxButton
+ .setText(Axis2CreationUIMessages.LABEL_GENERATE_TESTCASE_CAPTION);
+ model.setTestCaseCheck(false);
+ testCaseCheckBoxButton.addSelectionListener(new SelectionListener() {
+ public void widgetSelected(SelectionEvent e) {
+ model.setTestCaseCheck(true);
+ }
+
+ public void widgetDefaultSelected(SelectionEvent e) {
+ }
+ });
+
+ model.setServerXMLCheck(true);
+
+ //the server side interface option
+ generateServerSideInterfaceCheckBoxButton = new Button(mainComp, SWT.CHECK);
+ gd = new GridData(GridData.FILL_HORIZONTAL);
+ gd.horizontalSpan = 3;
+ generateServerSideInterfaceCheckBoxButton.setLayoutData(gd);
+ generateServerSideInterfaceCheckBoxButton.setSelection(false);
+ generateServerSideInterfaceCheckBoxButton.setText(Axis2CreationUIMessages.
+ LABEL_GENERATE_SERVERSIDE_INTERFACE);
+ model.setGenerateAllCheck(false);
+ generateServerSideInterfaceCheckBoxButton.addSelectionListener(new SelectionListener() {
+ public void widgetSelected(SelectionEvent e) {
+ model.setGenerateServerSideInterface(true);
+ }
+ public void widgetDefaultSelected(SelectionEvent e) {
+ }
+ });
+
+ // generate all
+ generateAllCheckBoxButton = new Button(mainComp, SWT.CHECK);
+ gd = new GridData(GridData.FILL_HORIZONTAL);
+ gd.horizontalSpan = 3;
+ generateAllCheckBoxButton.setLayoutData(gd);
+ generateAllCheckBoxButton.setSelection(false);
+ generateAllCheckBoxButton.setText(Axis2CreationUIMessages.LABEL_GENERATE_ALL);
+ generateAllCheckBoxButton.addSelectionListener(new SelectionListener() {
+ public void widgetSelected(SelectionEvent e) {
+ model.setGenerateAllCheck(true);
+ }
+ public void widgetDefaultSelected(SelectionEvent e) {
+ }
+ });
+
+ //filling label
+ gd = new GridData(GridData.FILL_HORIZONTAL);
+ gd.horizontalSpan = 3;
+ fillLabel5 = new Label(mainComp, SWT.HORIZONTAL | SWT.NULL);
+
+ //filling label
+ gd = new GridData(GridData.FILL_HORIZONTAL);
+ gd.horizontalSpan = 3;
+ fillLabel6 = new Label(mainComp, SWT.HORIZONTAL | SWT.NULL);
+
+ //add a table to set namespace to package mapping
+ gd = new GridData(GridData.FILL_BOTH);
+ gd.horizontalSpan = 3;
+ gd.verticalSpan = 5;
+
+ namespace2packageTable = new Table(mainComp,SWT.BORDER|SWT.MULTI);
+ namespace2packageTable.setLinesVisible(true);
+ namespace2packageTable.setHeaderVisible(true);
+ namespace2packageTable.setEnabled(true);
+ namespace2packageTable.setLayoutData(gd);
+
+ declareColumn(namespace2packageTable,
+ 350, //a default width until we adjust
+ Axis2CreationUIMessages.LABEL_NAMESPACE);
+ declareColumn(namespace2packageTable,
+ 200,//a default width until we adjust
+ Axis2CreationUIMessages.LABEL_PACKAGE);
+
+ namespace2packageTable.setVisible(true);
+
+ // add the table editor
+ final TableEditor editor = new TableEditor(namespace2packageTable);
+ editor.setColumn(1);
+ editor.horizontalAlignment = SWT.LEFT;
+ editor.grabHorizontal = true;
+
+ namespace2packageTable.addListener(SWT.MouseDown, new Listener() {
+ public void handleEvent(Event event) {
+ Rectangle clientArea = namespace2packageTable.getClientArea();
+ Point pt = new Point(event.x, event.y);
+ int index = namespace2packageTable.getTopIndex();
+ while (index < namespace2packageTable.getItemCount()) {
+ boolean visible = false;
+ final TableItem item = namespace2packageTable.getItem(index);
+ for (int i = 0; i < namespace2packageTable.getColumnCount(); i++) {
+ Rectangle rect = item.getBounds(i);
+ if (rect.contains(pt)) {
+ final int column = i;
+ final Text text = new Text(namespace2packageTable, SWT.NONE);
+ Listener textListener = new Listener() {
+ public void handleEvent(final Event e) {
+ switch (e.type) {
+ case SWT.FocusOut:
+ item.setText(column, text.getText());
+ text.dispose();
+ break;
+ case SWT.Traverse:
+ switch (e.detail) {
+ case SWT.TRAVERSE_RETURN:
+ item
+ .setText(column, text
+ .getText());
+ case SWT.TRAVERSE_ESCAPE:
+ text.dispose();
+ e.doit = false;
+ }
+ break;
+ }
+ }
+ };
+ text.addListener(SWT.FocusOut, textListener);
+ text.addListener(SWT.Traverse, textListener);
+ editor.setEditor(text, item, i);
+ text.setText(item.getText(i));
+ text.selectAll();
+ text.setFocus();
+ return;
+ }
+ if (!visible && rect.intersects(clientArea)) {
+ visible = true;
+ }
+ }
+ if (!visible)
+ return;
+ index++;
+ }
+ model.setNamespaseToPackageMapping(getNs2PkgMapping());
+ }
+ });
+
+ populateParamsFromWSDL();
+ populateModel();
+
+ return this;
+ }
+
+ private void populateModel() {
+ model.setServiceName(serviceNameCombo.getText());
+ model.setPortName(portNameCombo.getText());
+ model.setPackageText(packageText.getText());
+ model.setDatabindingType(databindingTypeCombo.getText());
+ model.setGenerateAllCheck(generateAllCheckBoxButton.getSelection());
+ model.setGenerateServerSideInterface(generateServerSideInterfaceCheckBoxButton.getSelection());
+ model.setTestCaseCheck(testCaseCheckBoxButton.getSelection());
+ model.setNamespaseToPackageMapping(getNs2PkgMapping());
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.wst.command.env.ui.widgets.WidgetContributor#getStatus()
+ */
+ public IStatus getStatus()
+ {
+ IStatus result = null;
+ return result;
+ }
+
+ private void populatePackageName() {
+ this.packageText.setText(reader.packageFromTargetNamespace());
+ }
+
+ /**
+ * populate the service and the port from the WSDL this needs to be public
+ * since the WSDLselection page may call this
+ */
+ public void populateParamsFromWSDL() {
+ if (reader == null)
+ reader = new WSDLPropertyReader();
+ try {
+ String lname = model.getWsdlURI();
+ if (!"".equals(lname.trim())) {
+
+ reader.readWSDL(model.getWebProjectName(), lname);
+
+ this.serviceQNameList = reader.getServiceList();
+ if (!serviceQNameList.isEmpty()) {
+ serviceNameCombo.removeAll();
+ 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");
+ Method GetLocalPartMethod = QNameClass.getMethod("getLocalPart", null);
+ Object resultLocalPart = GetLocalPartMethod.invoke(serviceQnameInstance, null);
+ serviceNameCombo.add(resultLocalPart.toString());
+ }
+ ;
+ // select the first one as the default
+ serviceNameCombo.select(0);
+
+ // load the ports
+ loadPortNames();
+
+ } else {
+ // service name list being empty means we are switching to
+ // the interface mode
+ if (serviceNameCombo!=null) serviceNameCombo.removeAll();
+ if (portNameCombo!=null) portNameCombo.removeAll();
+
+ }
+
+ populatePackageName();
+
+ //populate the namespacess
+ loadNamespaces(reader.getDefinitionNamespaceMap());
+ }
+ } 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);
+ }
+ }
+
+ private void loadPortNames() {
+ int selectionIndex = serviceNameCombo.getSelectionIndex();
+ if (selectionIndex != -1) {
+ java.util.List ports = reader.getPortNameList(serviceQNameList
+ .get(selectionIndex));
+ if (!ports.isEmpty()) {
+ portNameCombo.removeAll();
+ for (int i = 0; i < ports.size(); i++) {
+ // add the local part of the
+ portNameCombo.add(ports.get(i).toString());
+ }
+ portNameCombo.select(0);
+ } else {
+ // TODO error no ports found
+ }
+ }
+ }
+
+ /**
+ * Fill the combo with proper databinding names
+ */
+ private void fillDatabinderCombo() {
+ databindingTypeCombo.add(Axis2CreationUIMessages.DATA_BINDING_ADB);
+ databindingTypeCombo.add(Axis2CreationUIMessages.DATA_BINDING_NONE);
+ databindingTypeCombo.select(0);
+ }
+
+
+ /**
+ * A util method to create a new column
+ * @param table
+ * @param width
+ * @param colName
+ */
+ private void declareColumn(Table table, int width,String colName){
+ TableColumn column = new TableColumn(table,SWT.NONE);
+ column.setWidth(width);
+ column.setText(colName);
+ }
+
+ /**
+ * Loads the namespaces
+ * @param namespaceMap
+ */
+ private void loadNamespaces(Map namespaceMap){
+ Iterator namespaces = namespaceMap.values().iterator();
+ namespace2packageTable.removeAll();
+ TableItem[] items = new TableItem[namespaceMap.size()]; // An item for each field
+ int i = 0;
+ while(namespaces.hasNext()){
+
+ items[i] = new TableItem(namespace2packageTable, SWT.NULL);
+ String namespace = (String)namespaces.next();
+ items[i].setText(0,namespace);
+ items[i].setText(1,getPackageFromNamespace(namespace));
+ i++;
+ }
+ namespace2packageTable.setVisible(true);
+ }
+
+ /**
+ * get the package to namespace mappings
+ * @return
+ */
+ public String getNs2PkgMapping(){
+ String returnList="";
+ TableItem[] items = namespace2packageTable.getItems();
+ String packageValue;
+ for (int i=0;i<items.length;i++){
+ packageValue = items[i].getText(1);
+ if (packageValue!=null && !"".equals(packageValue)){
+ returnList = returnList +
+ ("".equals(returnList)?"":",") +
+ items[i].getText(0)+ "=" + packageValue;
+ }
+
+ }
+ return "".equals(returnList)?null:returnList;
+ }
+
+
+ /**
+ * get the package derived by Namespace
+ */
+ public String getPackageFromNamespace(String namespace){
+
+ Object result = null;
+ try {
+ //Class URLProcessor = Class.forName("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);
+ Object args[] = new Object[1];
+ args[0] = namespace;
+ result = makePackageNameMethod.invoke(makePackageNameMethod, args);
+ } catch (SecurityException e) {
+ e.printStackTrace();
+ } catch (NoSuchMethodException e) {
+ e.printStackTrace();
+ } catch (IllegalArgumentException e) {
+ e.printStackTrace();
+ } catch (IllegalAccessException e) {
+ e.printStackTrace();
+ } catch (InvocationTargetException e) {
+ e.printStackTrace();
+ }
+ return (String)result;
+ }
+
+}
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
new file mode 100644
index 0000000..05721c1
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.creation.ui/src/org/eclipse/jst/ws/internal/axis2/creation/ui/wsrt/Axis2BeanConfigWidgetFactory.java
@@ -0,0 +1,86 @@
+/*******************************************************************************
+ * 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
+ * -------- -------- -----------------------------------------------------------
+ * 20070110 168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2
+ * runtime to the framework for 168762
+ *******************************************************************************/
+
+package org.eclipse.jst.ws.internal.axis2.creation.ui.wsrt;
+
+import org.eclipse.jst.ws.axis2.creation.core.command.Axis2DefaultingCommand;
+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.internal.axis2.creation.ui.widgets.bean.ServicesXMLSelectBeanWidget;
+import org.eclipse.wst.command.internal.env.core.data.DataMappingRegistry;
+import org.eclipse.wst.command.internal.env.ui.widgets.INamedWidgetContributor;
+import org.eclipse.wst.command.internal.env.ui.widgets.INamedWidgetContributorFactory;
+import org.eclipse.wst.command.internal.env.ui.widgets.SimpleWidgetContributor;
+import org.eclipse.wst.command.internal.env.ui.widgets.WidgetContributor;
+import org.eclipse.wst.command.internal.env.ui.widgets.WidgetContributorFactory;
+import org.eclipse.wst.command.internal.env.ui.widgets.WidgetDataContributor;
+
+public class Axis2BeanConfigWidgetFactory implements INamedWidgetContributorFactory {
+
+ private SimpleWidgetContributor servicesXMLSelectWidgetContrib;
+ private DataModel model;
+
+ public Axis2BeanConfigWidgetFactory(){
+ }
+
+ public INamedWidgetContributor getFirstNamedWidget(){
+ if( servicesXMLSelectWidgetContrib == null ) init();
+ return servicesXMLSelectWidgetContrib;
+ }
+
+ public INamedWidgetContributor getNextNamedWidget( INamedWidgetContributor widgetContributor){
+ if( servicesXMLSelectWidgetContrib == null ) init();
+ INamedWidgetContributor nextWidgetContrib = null;
+ return nextWidgetContrib;
+ }
+
+ public void registerDataMappings(DataMappingRegistry dataRegistry)
+ {
+ // Map the data model from the defaulting command to this widget factory.
+ // The framework will actually to the call to getWebServiceDataModel in
+ // the ExampleDefaultingCommand class and then call the setWebServiceDataModel
+ // method in this class.
+ dataRegistry.addMapping(Axis2DefaultingCommand.class,
+ Axis2CreationUIMessages.LABEL_DATA_MODEL,
+ Axis2BeanConfigWidgetFactory.class );
+ }
+
+ public void setWebServiceDataModel( DataModel model ){
+ this.model = model;
+ }
+
+ private void init(){
+ //Pages of Axis2 Web Services Java Bean Scenario
+ ServicesXMLSelectBeanWidget servicesXMLSelectWidget = new ServicesXMLSelectBeanWidget(model);
+ servicesXMLSelectWidgetContrib = createWidgetContributor(
+ Axis2CreationUIMessages.LABEL_AXIS2_PREFERENCE_PAGE_HEADING,
+ Axis2CreationUIMessages.LABEL_AXIS2_PREFERENCE_PAGE_SUB_HEADING,
+ servicesXMLSelectWidget );
+ }
+
+ private SimpleWidgetContributor createWidgetContributor(String title,
+ String description,
+ final WidgetDataContributor contributor){
+ SimpleWidgetContributor widgetContrib = new SimpleWidgetContributor();
+ widgetContrib.setTitle(title);
+ widgetContrib.setDescription(description);
+ widgetContrib.setFactory( new WidgetContributorFactory(){
+ public WidgetContributor create(){
+ return contributor;
+ }
+ });
+ return widgetContrib;
+ }
+}
diff --git a/bundles/org.eclipse.jst.ws.axis2.creation.ui/src/org/eclipse/jst/ws/internal/axis2/creation/ui/wsrt/Axis2SkelConfigWidgetFactory.java b/bundles/org.eclipse.jst.ws.axis2.creation.ui/src/org/eclipse/jst/ws/internal/axis2/creation/ui/wsrt/Axis2SkelConfigWidgetFactory.java
new file mode 100644
index 0000000..ba5c8e4
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.creation.ui/src/org/eclipse/jst/ws/internal/axis2/creation/ui/wsrt/Axis2SkelConfigWidgetFactory.java
@@ -0,0 +1,86 @@
+/*******************************************************************************
+ * 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
+ * -------- -------- -----------------------------------------------------------
+ * 20070110 168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2
+ * runtime to the framework for 168762
+ *******************************************************************************/
+
+package org.eclipse.jst.ws.internal.axis2.creation.ui.wsrt;
+
+import org.eclipse.jst.ws.axis2.creation.core.command.Axis2DefaultingCommand;
+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.internal.axis2.creation.ui.widgets.skeleton.WSDL2JAVASkelConfigWidget;
+import org.eclipse.wst.command.internal.env.core.data.DataMappingRegistry;
+import org.eclipse.wst.command.internal.env.ui.widgets.INamedWidgetContributor;
+import org.eclipse.wst.command.internal.env.ui.widgets.INamedWidgetContributorFactory;
+import org.eclipse.wst.command.internal.env.ui.widgets.SimpleWidgetContributor;
+import org.eclipse.wst.command.internal.env.ui.widgets.WidgetContributor;
+import org.eclipse.wst.command.internal.env.ui.widgets.WidgetContributorFactory;
+import org.eclipse.wst.command.internal.env.ui.widgets.WidgetDataContributor;
+
+public class Axis2SkelConfigWidgetFactory implements INamedWidgetContributorFactory {
+
+ private SimpleWidgetContributor skelConfig1WidgetContrib;
+ private DataModel model;
+
+ public Axis2SkelConfigWidgetFactory(){
+ }
+
+ public INamedWidgetContributor getFirstNamedWidget(){
+ if( skelConfig1WidgetContrib == null ) init();
+ return skelConfig1WidgetContrib;
+ }
+
+ public INamedWidgetContributor getNextNamedWidget( INamedWidgetContributor widgetContributor){
+ if( skelConfig1WidgetContrib == null ) init();
+ INamedWidgetContributor nextWidgetContrib = null;
+ return nextWidgetContrib;
+ }
+
+ public void registerDataMappings(DataMappingRegistry dataRegistry){
+ // Map the data model from the defaulting command to this widget factory.
+ // The framework will actually to the call to getWebServiceDataModel in
+ // the ExampleDefaultingCommand class and then call the setWebServiceDataModel
+ // method in this class.
+ dataRegistry.addMapping( Axis2DefaultingCommand.class,
+ Axis2CreationUIMessages.LABEL_DATA_MODEL,
+ Axis2SkelConfigWidgetFactory.class );
+ }
+
+ public void setWebServiceDataModel( DataModel model ){
+ this.model = model;
+ }
+
+ private void init(){
+ WSDL2JAVASkelConfigWidget skel1 = new WSDL2JAVASkelConfigWidget( model );
+
+ skelConfig1WidgetContrib = createWidgetContributor(
+ Axis2CreationUIMessages.LABEL_JAVA_2_WSDL_PAGE_HEADING,
+ Axis2CreationUIMessages.LABEL_JAVA_2_WSDL_PAGE_SUB_HEADING,
+ skel1 );
+ }
+
+ private SimpleWidgetContributor createWidgetContributor(String title,
+ String description,
+ final WidgetDataContributor contributor){
+ SimpleWidgetContributor widgetContrib = new SimpleWidgetContributor();
+ widgetContrib.setTitle(title);
+ widgetContrib.setDescription(description);
+ widgetContrib.setFactory( new WidgetContributorFactory(){
+ public WidgetContributor create(){
+ return contributor;
+ }
+ });
+
+ return widgetContrib;
+ }
+}
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
new file mode 100644
index 0000000..11e6e5d
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.creation.ui/src/org/eclipse/jst/ws/internal/axis2/creation/ui/wsrt/Axis2WebService.java
@@ -0,0 +1,110 @@
+/*******************************************************************************
+ * 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
+ * -------- -------- -----------------------------------------------------------
+ * 20070110 168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2 runtime to the framework for 168762
+ *******************************************************************************/
+package org.eclipse.jst.ws.internal.axis2.creation.ui.wsrt;
+
+import java.util.Vector;
+
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.jst.ws.axis2.creation.core.command.Axis2BUCommand;
+import org.eclipse.jst.ws.axis2.creation.core.command.Axis2BUServiceCreationCommand;
+import org.eclipse.jst.ws.axis2.creation.core.command.Axis2BuildProjectCommand;
+import org.eclipse.jst.ws.axis2.creation.core.command.Axis2CleanupCommand;
+import org.eclipse.jst.ws.axis2.creation.core.command.Axis2DefaultingCommand;
+import org.eclipse.jst.ws.axis2.creation.core.command.Axis2ServicesXMLValidationCommand;
+import org.eclipse.jst.ws.axis2.creation.core.command.Axis2SkelImplCommand;
+import org.eclipse.jst.ws.axis2.creation.core.command.Axis2TDCommand;
+import org.eclipse.jst.ws.axis2.creation.core.command.Axis2TDServiceCreationCommand;
+import org.eclipse.jst.ws.axis2.creation.core.command.Axis2WSDL2JavaCommand;
+import org.eclipse.jst.ws.axis2.creation.core.command.Axis2WebservicesServerCommand;
+import org.eclipse.jst.ws.axis2.creation.core.data.DataModel;
+//import org.eclipse.jst.ws.internal.axis2.creation.ui.command.Page1ComesUpBeforeThisBUCommand;
+//import org.eclipse.jst.ws.internal.axis2.creation.ui.command.Page1ComesUpBeforeThisTDCommand;
+import org.eclipse.wst.command.internal.env.core.ICommandFactory;
+import org.eclipse.wst.command.internal.env.core.SimpleCommandFactory;
+import org.eclipse.wst.common.environment.IEnvironment;
+import org.eclipse.wst.ws.internal.wsrt.AbstractWebService;
+import org.eclipse.wst.ws.internal.wsrt.IContext;
+import org.eclipse.wst.ws.internal.wsrt.ISelection;
+import org.eclipse.wst.ws.internal.wsrt.WebServiceInfo;
+import org.eclipse.wst.ws.internal.wsrt.WebServiceScenario;
+
+public class Axis2WebService extends AbstractWebService
+{
+// private Axis2WebServiceInfo axis2WebServiceInfo;
+
+ public Axis2WebService(WebServiceInfo info)
+ {
+ super(info);
+ }
+
+ public ICommandFactory assemble(IEnvironment env, IContext ctx,
+ ISelection sel, String project, String earProject)
+ {
+ return null;
+ }
+
+ public ICommandFactory deploy(IEnvironment env, IContext ctx, ISelection sel,
+ String project, String earProject)
+ {
+ return null;
+ }
+
+ public ICommandFactory develop(IEnvironment env, IContext ctx, ISelection sel,
+ String project, String earProject)
+ {
+ Vector commands = new Vector();
+ DataModel model = new DataModel();
+ //EclipseEnvironment environment = (EclipseEnvironment)env;
+
+ model.setWebProjectName(project);
+
+ if (ctx.getScenario().getValue() == WebServiceScenario.BOTTOMUP) {
+ commands.add(new Axis2DefaultingCommand( model,this, ctx.getScenario().getValue() ) );
+ commands.add(new Axis2BUCommand( model ) );
+ commands.add(new Axis2ServicesXMLValidationCommand());
+ commands.add(new Axis2BUServiceCreationCommand(model,this,project));
+ commands.add(new Axis2WebservicesServerCommand(model, ctx.getScenario().getValue() ));
+ }
+ else if (ctx.getScenario().getValue() == WebServiceScenario.TOPDOWN) {
+ 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 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 Axis2SkelImplCommand(this.getWebServiceInfo(),model));
+ commands.add(new Axis2CleanupCommand());
+ }
+ else
+ {
+ return null;
+ }
+
+ return new SimpleCommandFactory(commands);
+ }
+
+ public ICommandFactory install(IEnvironment env, IContext ctx, ISelection sel,
+ String project, String earProject)
+ {
+ return null;
+ }
+
+ public ICommandFactory run(IEnvironment env, IContext ctx, ISelection sel,
+ String project, String earProject)
+ {
+ return null;
+ }
+}
diff --git a/bundles/org.eclipse.jst.ws.axis2.creation.ui/src/org/eclipse/jst/ws/internal/axis2/creation/ui/wsrt/Axis2WebServiceInfo.java b/bundles/org.eclipse.jst.ws.axis2.creation.ui/src/org/eclipse/jst/ws/internal/axis2/creation/ui/wsrt/Axis2WebServiceInfo.java
new file mode 100644
index 0000000..5235e9d
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.creation.ui/src/org/eclipse/jst/ws/internal/axis2/creation/ui/wsrt/Axis2WebServiceInfo.java
@@ -0,0 +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
+ * -------- -------- -----------------------------------------------------------
+ * 20070110 168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2
+ * runtime to the framework for 168762
+ *******************************************************************************/
+
+package org.eclipse.jst.ws.internal.axis2.creation.ui.wsrt;
+
+public class Axis2WebServiceInfo {
+
+}
diff --git a/bundles/org.eclipse.jst.ws.axis2.creation.ui/src/org/eclipse/jst/ws/internal/axis2/creation/ui/wsrt/Axis2WebServiceRuntime.java b/bundles/org.eclipse.jst.ws.axis2.creation.ui/src/org/eclipse/jst/ws/internal/axis2/creation/ui/wsrt/Axis2WebServiceRuntime.java
new file mode 100644
index 0000000..0dfb583
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.creation.ui/src/org/eclipse/jst/ws/internal/axis2/creation/ui/wsrt/Axis2WebServiceRuntime.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * 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
+ * -------- -------- -----------------------------------------------------------
+ * 20070110 168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2
+ * runtime to the framework for 168762
+ *******************************************************************************/
+
+package org.eclipse.jst.ws.internal.axis2.creation.ui.wsrt;
+
+import org.eclipse.jst.ws.internal.axis2.consumption.ui.wsrt.Axis2WebServiceClient;
+import org.eclipse.wst.ws.internal.wsrt.AbstractWebServiceRuntime;
+import org.eclipse.wst.ws.internal.wsrt.IWebService;
+import org.eclipse.wst.ws.internal.wsrt.IWebServiceClient;
+import org.eclipse.wst.ws.internal.wsrt.WebServiceClientInfo;
+import org.eclipse.wst.ws.internal.wsrt.WebServiceInfo;
+
+public class Axis2WebServiceRuntime extends AbstractWebServiceRuntime
+{
+
+ public IWebService getWebService(WebServiceInfo info){
+ return new Axis2WebService(info);
+ }
+
+ public IWebServiceClient getWebServiceClient(WebServiceClientInfo info){
+ return new Axis2WebServiceClient(info);
+ }
+
+}
diff --git a/bundles/org.eclipse.jst.ws.axis2.ui/.classpath b/bundles/org.eclipse.jst.ws.axis2.ui/.classpath
new file mode 100644
index 0000000..304e861
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.ui/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/bundles/org.eclipse.jst.ws.axis2.ui/.project b/bundles/org.eclipse.jst.ws.axis2.ui/.project
new file mode 100644
index 0000000..acc7e17
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.ui/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.jst.ws.axis2.ui</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/bundles/org.eclipse.jst.ws.axis2.ui/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.jst.ws.axis2.ui/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..c69c26a
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.ui/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,57 @@
+#Tue Mar 20 10:45:38 LKT 2007
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nullReference=ignore
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/bundles/org.eclipse.jst.ws.axis2.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.jst.ws.axis2.ui/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..27f1398
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.ui/META-INF/MANIFEST.MF
@@ -0,0 +1,17 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Axis2 Ui Plug-in
+Bundle-SymbolicName: org.eclipse.jst.ws.axis2.ui;singleton:=true
+Bundle-Version: 1.0.0
+Bundle-Activator: org.eclipse.jst.ws.axis2.ui.plugin.WebServiceAxis2UIPlugin
+Bundle-Vendor: WSO2
+Bundle-Localization: plugin
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.jst.ws.axis2.core,
+ org.eclipse.jst.ws,
+ org.eclipse.jst.ws.ui
+Eclipse-LazyStart: true
+Export-Package: org.eclipse.jst.ws.axis2.ui.plugin,
+ org.eclipse.jst.ws.internal.axis2.consumption.ui.preferences
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/bundles/org.eclipse.jst.ws.axis2.ui/build.properties b/bundles/org.eclipse.jst.ws.axis2.ui/build.properties
new file mode 100644
index 0000000..30b2fc4
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.ui/build.properties
@@ -0,0 +1,6 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.properties,\
+ plugin.xml
diff --git a/bundles/org.eclipse.jst.ws.axis2.ui/plugin.properties b/bundles/org.eclipse.jst.ws.axis2.ui/plugin.properties
new file mode 100644
index 0000000..a30093d
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.ui/plugin.properties
@@ -0,0 +1,21 @@
+###############################################################################
+# 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
+# -------- -------- -----------------------------------------------------------
+# 20070118 168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2 runtime to the framework for 168762
+###############################################################################
+#
+
+#
+# Messages in plugin.xml.
+# Web Services Preferance Pages
+#
+# Categories
+PREFERENCE_CATEGORY_AXIS2_RUNTIME=Axis2 Preferences
diff --git a/bundles/org.eclipse.jst.ws.axis2.ui/plugin.xml b/bundles/org.eclipse.jst.ws.axis2.ui/plugin.xml
new file mode 100644
index 0000000..5f22106
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.ui/plugin.xml
@@ -0,0 +1,12 @@
+<plugin>
+
+ <extension point="org.eclipse.ui.preferencePages">
+ <page
+ name="%PREFERENCE_CATEGORY_AXIS2_RUNTIME"
+ category="org.eclipse.wst.ws.internal.ui.preferences.name"
+ class="org.eclipse.jst.ws.internal.axis2.consumption.ui.preferences.Axis2RuntimePreferencePage"
+ id="org.eclipse.jst.ws.internal.axis2.consumption.ui.preferences.Axis2RuntimePreferencePage">
+ </page>
+ </extension>
+
+</plugin>
\ No newline at end of file
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
new file mode 100644
index 0000000..66cb17e
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.ui/src/org/eclipse/jst/ws/axis2/ui/plugin/WebServiceAxis2UIPlugin.java
@@ -0,0 +1,64 @@
+/*******************************************************************************
+ * 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
+ * -------- -------- -----------------------------------------------------------
+ * 20070130 168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2
+ * runtime to the framework for 168762
+ *******************************************************************************/
+package org.eclipse.jst.ws.axis2.ui.plugin;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class WebServiceAxis2UIPlugin extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.jst.ws.axis2.ui.plugin";
+
+ // The shared instance
+ private static WebServiceAxis2UIPlugin plugin;
+
+ /**
+ * The constructor
+ */
+ public WebServiceAxis2UIPlugin() {
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static WebServiceAxis2UIPlugin getDefault() {
+ return 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
new file mode 100644
index 0000000..db3a06d
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.axis2.ui/src/org/eclipse/jst/ws/internal/axis2/consumption/ui/preferences/Axis2RuntimePreferencePage.java
@@ -0,0 +1,400 @@
+/*******************************************************************************
+ * 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
+ * -------- -------- -----------------------------------------------------------
+ * 20070130 168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2
+ * runtime to the framework for 168762
+ *******************************************************************************/
+package org.eclipse.jst.ws.internal.axis2.consumption.ui.preferences;
+
+import java.io.File;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.preference.PreferencePage;
+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.RuntimePropertyUtils;
+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.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.DirectoryDialog;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.TabFolder;
+import org.eclipse.swt.widgets.TabItem;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPreferencePage;
+
+public class Axis2RuntimePreferencePage extends PreferencePage implements
+ IWorkbenchPreferencePage {
+
+ private Button browseButton;
+ private Text axis2Path;
+ private Label statusLabel;
+ @SuppressWarnings("unused")
+ private IStatus status = Status.OK_STATUS;
+ private boolean warExist = false;
+
+
+ protected Control createContents(Composite superparent) {
+ status = Status.OK_STATUS;
+
+ final Composite mainComp = new Composite( superparent, SWT.NONE );
+
+ TabFolder axis2PreferenceTab = new TabFolder(mainComp, SWT.NONE);
+ TabItem runtimeInstalLocationItem = new TabItem(axis2PreferenceTab, SWT.NONE);
+ runtimeInstalLocationItem.setText(Axis2CoreUIMessages.AXIS2_RUNTIME);
+
+ //---------------------------------------------------Axis2 Rintume Location Group------------------------------//
+ Group runtimeGroup = new Group(axis2PreferenceTab, SWT.NONE);
+ runtimeGroup.setText("Axis2 Rintume Location");
+ runtimeInstalLocationItem.setControl(runtimeGroup);
+
+ Label label = new Label( runtimeGroup, SWT.NONE );
+ label.setText( Axis2CoreUIMessages.AXIS2_LOCATION );
+ label.setLocation(10,30);
+ label.setSize(100,20);
+
+ axis2Path = new Text( runtimeGroup, SWT.BORDER );
+ axis2Path.setText(
+ (RuntimePropertyUtils.getServerPathFromPropertiesFile() == null) ? ""
+ : RuntimePropertyUtils.getServerPathFromPropertiesFile()
+ );
+ 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) {
+ status = RuntimePropertyUtils.writeServerPathToPropertiesFile(
+ axis2Path.getText());
+ }
+ }
+ });
+ browseButton = new Button( runtimeGroup, SWT.NONE );
+ browseButton.setText(Axis2CoreUIMessages.LABEL_BROUSE);
+ browseButton.setLocation(520,30);
+ browseButton.setSize(70, 20);
+ browseButton.addSelectionListener( new SelectionAdapter()
+ {
+ public void widgetSelected(SelectionEvent e)
+ {
+ handleBrowse(mainComp.getShell());
+ }
+ });
+
+ if(axis2Path.getText().equals(Axis2CoreUIMessages.NULL)){
+ status = new Status( IStatus.ERROR,
+ "id",
+ 0,
+ Axis2CoreUIMessages.ERROR_INVALID_AXIS2_SERVER_LOCATION,
+ null );
+ }
+
+
+ statusLabel = new Label( runtimeGroup, SWT.NONE );
+ 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());
+
+ TabItem codegenPreferencesItem = new TabItem(axis2PreferenceTab, SWT.NONE);
+ codegenPreferencesItem.setText(Axis2CoreUIMessages.AXIS2_PREFERENCES);
+
+ //---------------------------------------------------Axis2 Runtime Preferences------------------------------//
+
+ Group codegenGroup = new Group(axis2PreferenceTab, SWT.NONE);
+ codegenGroup.setText("Axis2 Runtime Preferences");
+ codegenPreferencesItem.setControl(codegenGroup);
+
+ //Service Codegen Options
+ Label serviceCodegenLabel = new Label( codegenGroup, SWT.NONE );
+ serviceCodegenLabel.setText( Axis2CoreUIMessages.LABEL_WEB_SERVICE_CODEGEN);
+ serviceCodegenLabel.setLocation(10,30);
+ serviceCodegenLabel.setSize(200,20);
+
+ //Data binding
+ Label databindingLabel = new Label( codegenGroup, SWT.NONE );
+ databindingLabel.setText( Axis2CoreUIMessages.LABEL_DATABINDING);
+ databindingLabel.setLocation(10,60);
+ databindingLabel.setSize(200,20);
+
+ final Text databindingText = new Text( codegenGroup,SWT.BORDER );
+ databindingText.setText(Axis2CoreUIMessages.ADB);
+ databindingText.addModifyListener( new ModifyListener() {
+ public void modifyText(ModifyEvent e){
+ ServerModel.setAxis2ServerPath( databindingText.getText() );
+ }
+ });
+ databindingText.setLocation(220,60);
+ databindingText.setSize(100,20);
+
+ // generate test case option
+ Button testCaseCheckBoxButton = new Button(codegenGroup, SWT.CHECK);
+ testCaseCheckBoxButton.setText(Axis2CoreUIMessages.LABEL_GENERATE_TESTCASE_CAPTION);
+ //model.setTestCaseCheck(false);
+ testCaseCheckBoxButton.addSelectionListener(new SelectionListener() {
+ public void widgetSelected(SelectionEvent e) {
+ //model.setTestCaseCheck(true);
+ }
+
+ public void widgetDefaultSelected(SelectionEvent e) {
+ }
+ });
+ testCaseCheckBoxButton.setLocation(10, 90);
+ testCaseCheckBoxButton.setSize(300, 15);
+
+ //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);
+ generateServerSideInterfaceCheckBoxButton.addSelectionListener(new SelectionListener() {
+ public void widgetSelected(SelectionEvent e) {
+ //model.setGenerateServerSideInterface(true);
+ }
+ public void widgetDefaultSelected(SelectionEvent e) {
+ }
+ });
+ generateServerSideInterfaceCheckBoxButton.setLocation(10, 120);
+ generateServerSideInterfaceCheckBoxButton.setSize(300, 15);
+
+ // generate all
+ Button generateAllCheckBoxButton = new Button(codegenGroup, SWT.CHECK);
+ generateAllCheckBoxButton.setSelection(false);
+ generateAllCheckBoxButton.setText(Axis2CoreUIMessages.LABEL_GENERATE_ALL);
+ generateAllCheckBoxButton.addSelectionListener(new SelectionListener() {
+ public void widgetSelected(SelectionEvent e) {
+ //model.setGenerateAllCheck(true);
+ }
+ public void widgetDefaultSelected(SelectionEvent e) {
+ }
+ });
+ generateAllCheckBoxButton.setLocation(10, 150);
+ generateAllCheckBoxButton.setSize(350, 15);
+
+ ///////////////////////////////////////////////////////////////////////////////////////////////////
+
+ //seperator
+ Label seperatorLabel0 = new Label( codegenGroup, SWT.SEPARATOR|SWT.BORDER);
+ seperatorLabel0.setLocation(10,185);
+ seperatorLabel0.setSize(570,1);
+
+ ///Client Codegen Options
+ Label clientCodegenLabel = new Label( codegenGroup, SWT.NONE );
+ clientCodegenLabel.setText( Axis2CoreUIMessages.LABEL_WEB_SERVICE_CLIENT_CODEGEN);
+ clientCodegenLabel.setLocation(10,200);
+ clientCodegenLabel.setSize(200,20);
+
+ //Client type label
+ Label clientLabel = new Label(codegenGroup, SWT.HORIZONTAL | SWT.NULL);
+ clientLabel.setText(Axis2CoreUIMessages.LABEL_CLIENT_SIDE);
+ clientLabel.setLocation(10,240);
+ clientLabel.setSize(70,20);
+
+ //client side buttons
+ Button syncAndAsyncRadioButton = new Button(codegenGroup, SWT.RADIO);
+ syncAndAsyncRadioButton.setText(Axis2CoreUIMessages.LABEL_SYNC_AND_ASYNC);
+ syncAndAsyncRadioButton.setVisible(true);
+ syncAndAsyncRadioButton.setSelection(true);
+ syncAndAsyncRadioButton.addSelectionListener(new SelectionListener() {
+ public void widgetSelected(SelectionEvent e) {
+ //model.setSync(syncOnlyRadioButton.getSelection());
+ //model.setSync(asyncOnlyRadioButton.getSelection());
+ }
+ public void widgetDefaultSelected(SelectionEvent e) {
+ }
+ });
+ syncAndAsyncRadioButton.setLocation(80,240);
+ syncAndAsyncRadioButton.setSize(190,20);
+
+ Button syncOnlyRadioButton = new Button(codegenGroup, SWT.RADIO);
+ syncOnlyRadioButton.setText(Axis2CoreUIMessages.LABEL_SYNC);
+ syncOnlyRadioButton.setSelection(false);
+ syncOnlyRadioButton.addSelectionListener(new SelectionListener() {
+ public void widgetSelected(SelectionEvent e) {
+ //model.setSync(syncOnlyRadioButton.getSelection());
+ }
+ public void widgetDefaultSelected(SelectionEvent e) {
+ }
+ });
+ syncOnlyRadioButton.setLocation(280,240);
+ syncOnlyRadioButton.setSize(170,20);
+
+ Button asyncOnlyRadioButton = new Button(codegenGroup, SWT.RADIO);
+ asyncOnlyRadioButton.setText(Axis2CoreUIMessages.LABEL_ASYNC);
+ asyncOnlyRadioButton.setSelection(false);
+ asyncOnlyRadioButton.addSelectionListener(new SelectionListener() {
+ public void widgetSelected(SelectionEvent e) {
+ //model.setSync(asyncOnlyRadioButton.getSelection());
+ }
+ public void widgetDefaultSelected(SelectionEvent e) {
+ }
+ });
+ asyncOnlyRadioButton.setLocation(460,240);
+ asyncOnlyRadioButton.setSize(170,20);
+
+ //Data binding
+ Label clientDatabindingLabel = new Label( codegenGroup, SWT.NONE );
+ clientDatabindingLabel.setText( Axis2CoreUIMessages.LABEL_DATABINDING);
+ clientDatabindingLabel.setLocation(10,270);
+ clientDatabindingLabel.setSize(200,20);
+
+ final Text databindingText1 = new Text( codegenGroup, SWT.BORDER );
+ databindingText1.setText(Axis2CoreUIMessages.ADB);
+ databindingText1.addModifyListener( new ModifyListener() {
+ public void modifyText(ModifyEvent e){
+ ServerModel.setAxis2ServerPath( databindingText1.getText() );
+ }
+ });
+ databindingText1.setLocation(220,270);
+ databindingText1.setSize(100,20);
+
+
+ // generate test case option
+ Button clientTestCaseCheckBoxButton = new Button(codegenGroup, SWT.CHECK);
+ clientTestCaseCheckBoxButton.setText(Axis2CoreUIMessages.LABEL_GENERATE_TESTCASE_CAPTION);
+ //model.setTestCaseCheck(false);
+ clientTestCaseCheckBoxButton.addSelectionListener(new SelectionListener() {
+ public void widgetSelected(SelectionEvent e) {
+ //model.setTestCaseCheck(true);
+ }
+
+ public void widgetDefaultSelected(SelectionEvent e) {
+ }
+ });
+ clientTestCaseCheckBoxButton.setLocation(10,300);
+ clientTestCaseCheckBoxButton.setSize(300, 15);
+
+ //model.setServerXMLCheck(true);
+
+ // generate all
+ Button clientGenerateAllCheckBoxButton = new Button(codegenGroup, SWT.CHECK);
+ clientGenerateAllCheckBoxButton.setSelection(false);
+ clientGenerateAllCheckBoxButton.setText(Axis2CoreUIMessages.LABEL_GENERATE_ALL);
+ clientGenerateAllCheckBoxButton.addSelectionListener(new SelectionListener() {
+ public void widgetSelected(SelectionEvent e) {
+ //model.setGenerateAllCheck(true);
+ }
+ public void widgetDefaultSelected(SelectionEvent e) {
+ }
+ });
+ clientGenerateAllCheckBoxButton.setLocation(10, 330);
+ clientGenerateAllCheckBoxButton.setSize(400, 15);
+
+ ///////////////////////////////////////////////////////////////////////////////////////////////////
+
+ //seperator
+ Label seperatorLabel1 = new Label( codegenGroup, SWT.SEPARATOR|SWT.BORDER);
+ seperatorLabel1.setLocation(10,365);
+ seperatorLabel1.setSize(570,1);
+
+ ///AAR Options
+ Label aarLabel = new Label( codegenGroup, SWT.NONE );
+ aarLabel.setText( Axis2CoreUIMessages.LABEL_WEB_SERVICE_AAR);
+ aarLabel.setLocation(10,380);
+ aarLabel.setSize(200,20);
+
+ //aar extention
+ Label aarExtentionLabel = new Label( codegenGroup, SWT.NONE );
+ aarExtentionLabel.setText( Axis2CoreUIMessages.LABEL_AAR_EXTENTION);
+ aarExtentionLabel.setLocation(10,420);
+ aarExtentionLabel.setSize(200,20);
+
+ final Text aarExtentionText = new Text( codegenGroup, SWT.BORDER);
+ aarExtentionText.setText(Axis2CoreUIMessages.AAR);
+ aarExtentionText.addModifyListener( new ModifyListener() {
+ public void modifyText(ModifyEvent e){
+ ServerModel.setAxis2ServerPath( databindingText1.getText() );
+ }
+ });
+ aarExtentionText.setLocation(220,420);
+ aarExtentionText.setSize(100,20);
+
+
+ axis2PreferenceTab.setSize(640, 500);
+
+ return mainComp;
+ }
+
+ public void init(IWorkbench workbench) {
+ // TODO Auto-generated method stub
+ }
+
+
+ /**
+ * Pops up the file browse dialog box
+ */
+ private void handleBrowse(Shell parent) {
+ DirectoryDialog fileDialog = new DirectoryDialog(parent);
+ String fileName = fileDialog.open();
+ if (fileName != null) {
+ axis2Path.setText(fileName);
+ ServerModel.setAxis2ServerPath( axis2Path.getText() );
+ }
+ }
+
+ private void statusUpdate(boolean status){
+ 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);
+ }
+
+ }
+
+ private boolean runtimeExist(String path){
+ File axis2HomeDir = new File(path);
+ if (axis2HomeDir.isDirectory()) {
+ String axis2DistPath = Axis2CoreUtils.addAnotherNodeToPath(
+ axis2HomeDir.getAbsolutePath(),
+ "dist");
+ if (new File(axis2DistPath).isDirectory()) {
+ String axis2WarPath = Axis2CoreUtils.addAnotherNodeToPath(
+ axis2DistPath,
+ "axis2.war");
+ if (new File(axis2WarPath).isFile()) {
+ statusUpdate(true);
+ return true;
+ } else {
+ statusUpdate(false);
+ return false;
+ }
+ } else {
+ statusUpdate(false);
+ return false;
+ }
+ }else{
+ statusUpdate(false);
+ return false;
+ }
+ }
+
+}