Author: dennyxu
Date: 2008-04-22 01:22:37 -0400 (Tue, 22 Apr 2008)
New Revision: 7671
Added:
trunk/ws/plugins/org.jboss.tools.ws.creation.core/src/org/jboos/tools/ws/creation/core/utils/
trunk/ws/plugins/org.jboss.tools.ws.creation.core/src/org/jboos/tools/ws/creation/core/utils/JBossWSCreationUtils.java
trunk/ws/plugins/org.jboss.tools.ws.creation.ui/src/org/jboss/tools/ws/creation/ui/widgets/
trunk/ws/plugins/org.jboss.tools.ws.creation.ui/src/org/jboss/tools/ws/creation/ui/widgets/CodeGenConfigWidget.java
Modified:
trunk/ws/plugins/org.jboss.tools.ws.creation.core/META-INF/MANIFEST.MF
trunk/ws/plugins/org.jboss.tools.ws.creation.core/src/org/jboos/tools/ws/creation/core/commands/InitialCommnad.java
trunk/ws/plugins/org.jboss.tools.ws.creation.core/src/org/jboos/tools/ws/creation/core/commands/WSDL2JavaCommnad.java
trunk/ws/plugins/org.jboss.tools.ws.creation.core/src/org/jboos/tools/ws/creation/core/data/ServiceModel.java
trunk/ws/plugins/org.jboss.tools.ws.creation.ui/META-INF/MANIFEST.MF
trunk/ws/plugins/org.jboss.tools.ws.creation.ui/plugin.xml
trunk/ws/plugins/org.jboss.tools.ws.creation.ui/src/org/jboss/tools/ws/creation/ui/wsrt/JBossWebService.java
trunk/ws/plugins/org.jboss.tools.ws.creation.ui/src/org/jboss/tools/ws/creation/ui/wsrt/JBossWebServiceRuntime.java
Log:
create a wizard page for configuring code generation properties
add command classes for code generation
Modified: trunk/ws/plugins/org.jboss.tools.ws.creation.core/META-INF/MANIFEST.MF
===================================================================
--- trunk/ws/plugins/org.jboss.tools.ws.creation.core/META-INF/MANIFEST.MF 2008-04-22
00:25:33 UTC (rev 7670)
+++ trunk/ws/plugins/org.jboss.tools.ws.creation.core/META-INF/MANIFEST.MF 2008-04-22
05:22:37 UTC (rev 7671)
@@ -8,7 +8,10 @@
Require-Bundle: org.eclipse.ui,
org.eclipse.core.runtime,
org.eclipse.wst.common.frameworks,
- org.eclipse.wst.ws
+ org.eclipse.wst.ws,
+ org.jboss.tools.ws.ui,
+ org.eclipse.core.resources,
+ org.eclipse.jst.ws
Eclipse-LazyStart: true
Export-Package: org.jboos.tools.ws.creation.core,
org.jboos.tools.ws.creation.core.commands,
Modified:
trunk/ws/plugins/org.jboss.tools.ws.creation.core/src/org/jboos/tools/ws/creation/core/commands/InitialCommnad.java
===================================================================
---
trunk/ws/plugins/org.jboss.tools.ws.creation.core/src/org/jboos/tools/ws/creation/core/commands/InitialCommnad.java 2008-04-22
00:25:33 UTC (rev 7670)
+++
trunk/ws/plugins/org.jboss.tools.ws.creation.core/src/org/jboos/tools/ws/creation/core/commands/InitialCommnad.java 2008-04-22
05:22:37 UTC (rev 7671)
@@ -4,6 +4,7 @@
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;
import org.eclipse.wst.ws.internal.wsrt.IWebService;
import org.eclipse.wst.ws.internal.wsrt.WebServiceScenario;
@@ -25,9 +26,9 @@
public IStatus execute(IProgressMonitor monitor, IAdaptable info)
throws ExecutionException {
+ model.setWsdlURI(ws.getWebServiceInfo().getWsdlURL());
-
- return null;
+ return Status.OK_STATUS;
}
}
Modified:
trunk/ws/plugins/org.jboss.tools.ws.creation.core/src/org/jboos/tools/ws/creation/core/commands/WSDL2JavaCommnad.java
===================================================================
---
trunk/ws/plugins/org.jboss.tools.ws.creation.core/src/org/jboos/tools/ws/creation/core/commands/WSDL2JavaCommnad.java 2008-04-22
00:25:33 UTC (rev 7670)
+++
trunk/ws/plugins/org.jboss.tools.ws.creation.core/src/org/jboos/tools/ws/creation/core/commands/WSDL2JavaCommnad.java 2008-04-22
05:22:37 UTC (rev 7671)
@@ -1,16 +1,28 @@
package org.jboos.tools.ws.creation.core.commands;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.LineNumberReader;
+
import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.CoreException;
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.Path;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.preference.PreferenceStore;
import org.eclipse.wst.common.frameworks.datamodel.AbstractDataModelOperation;
import org.jboos.tools.ws.creation.core.data.ServiceModel;
+import org.jboos.tools.ws.creation.core.utils.JBossWSCreationUtils;
public class WSDL2JavaCommnad extends AbstractDataModelOperation{
private ServiceModel model;
+
public WSDL2JavaCommnad(ServiceModel model){
this.model = model;
}
@@ -19,7 +31,64 @@
public IStatus execute(IProgressMonitor monitor, IAdaptable info)
throws ExecutionException {
- return null;
+ PreferenceStore prs = new PreferenceStore("jbosswsui.properties");
+ try {
+ prs.load();
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ String runtimeLocation =
prs.getString("jbosswsruntimelocation");//JBossWSUIPlugin.getDefault().getPreferenceStore().getString("jbosswsruntimelocation");
+ String binLocation = runtimeLocation + "bin";
+
+ String commandLine = binLocation + Path.SEPARATOR + "wsconsume.sh";
+
+ String args = getCommandlineArgs();
+
+ commandLine = commandLine + " -k -o " + args + " " +
model.getWsdlURI();
+ commandLine = "sh " + commandLine;
+
+
+
+ try {
+
+ InputStreamReader ir = new
InputStreamReader(Runtime.getRuntime().exec(commandLine).getInputStream());
+ LineNumberReader input = new LineNumberReader(ir);
+
+ String str = "";
+ for (int i = 1; str != null; i++)
+ {
+ str = input.readLine();
+ System.out.println(str);
+ }
+
+
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ refreshProject(model.getWebProjectName());
+
+ return Status.OK_STATUS;
}
+
+ private void refreshProject(String project){
+ try {
+ JBossWSCreationUtils.getProjectByName(project).refreshLocal(2, new
NullProgressMonitor());
+ } catch (CoreException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+
+ private String getCommandlineArgs(){
+ String project = model.getWebProjectName();
+ String projectRoot = JBossWSCreationUtils.getProjectRoot(project).toOSString();
+ String targetSrc = projectRoot + Path.SEPARATOR + "src";
+
+ return targetSrc;
+
+ }
}
Modified:
trunk/ws/plugins/org.jboss.tools.ws.creation.core/src/org/jboos/tools/ws/creation/core/data/ServiceModel.java
===================================================================
---
trunk/ws/plugins/org.jboss.tools.ws.creation.core/src/org/jboos/tools/ws/creation/core/data/ServiceModel.java 2008-04-22
00:25:33 UTC (rev 7670)
+++
trunk/ws/plugins/org.jboss.tools.ws.creation.core/src/org/jboos/tools/ws/creation/core/data/ServiceModel.java 2008-04-22
05:22:37 UTC (rev 7671)
@@ -9,7 +9,9 @@
private String portName;
private String serviceName;
private String packageText;
+ private String bindingFileLocation;
+
public String getPackageText() {
return packageText;
}
@@ -47,4 +49,11 @@
public void setWebProjectName(String webProjectName) {
this.webProjectName = webProjectName;
}
+
+ public String getBindingFileLocation(){
+ return this.bindingFileLocation;
+ }
+ public void setBindingFileLcation(String bindingFileLocation){
+ this.bindingFileLocation = bindingFileLocation;
+ }
}
Added:
trunk/ws/plugins/org.jboss.tools.ws.creation.core/src/org/jboos/tools/ws/creation/core/utils/JBossWSCreationUtils.java
===================================================================
---
trunk/ws/plugins/org.jboss.tools.ws.creation.core/src/org/jboos/tools/ws/creation/core/utils/JBossWSCreationUtils.java
(rev 0)
+++
trunk/ws/plugins/org.jboss.tools.ws.creation.core/src/org/jboos/tools/ws/creation/core/utils/JBossWSCreationUtils.java 2008-04-22
05:22:37 UTC (rev 7671)
@@ -0,0 +1,122 @@
+/**
+ * JBoss, a Division of Red Hat
+ * Copyright 2006, Red Hat Middleware, LLC, and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+* This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+ */
+package org.jboos.tools.ws.creation.core.utils;
+
+import java.io.File;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.jst.ws.internal.common.J2EEUtils;
+
+public class JBossWSCreationUtils {
+
+ public static IPath getWorkspace(){
+ return ResourcesPlugin.getWorkspace().getRoot().getLocation();
+ }
+
+ public static IProject getProjectByName(String project){
+ String projectString = replaceEscapecharactors(project);
+ return ResourcesPlugin.getWorkspace().getRoot().getProject(
+ getProjectNameFromFramewokNameString(projectString));
+ }
+
+ public static IPath getProjectRoot(String project){
+ String projectString = replaceEscapecharactors(project);
+ return ResourcesPlugin.getWorkspace().getRoot().getProject(
+ getProjectNameFromFramewokNameString(projectString)).getLocation();
+ }
+
+ public static String pathToWebProjectContainer(String project) {
+ IPath projectRoot = getProjectRoot(project);
+ IPath currentDynamicWebProjectDir = J2EEUtils.getWebContentPath(
+ getProjectByName(project));
+ IPath currentDynamicWebProjectDirWithoutProjectRoot = J2EEUtils.getWebContentPath(
+ getProjectByName(project)).removeFirstSegments(1).makeAbsolute();
+ if(projectRoot.toOSString().contains(getWorkspace().toOSString())){
+ return getWorkspace()
+ .append(currentDynamicWebProjectDir).toOSString();
+ }else{
+ return projectRoot
+ .append(currentDynamicWebProjectDirWithoutProjectRoot).toOSString();
+ }
+
+ }
+
+ public static String pathToWebProjectContainerWEBINF(String project) {
+ IPath projectRoot = getProjectRoot(project);
+ IPath webContainerWEBINFDir = J2EEUtils.getWebInfPath(
+ getProjectByName(project));
+ IPath webContainerWEBINFDirWithoutProjectRoot = J2EEUtils.getWebInfPath(
+ getProjectByName(project)).removeFirstSegments(1).makeAbsolute();
+ if(projectRoot.toOSString().contains(getWorkspace().toOSString())){
+ return getWorkspace()
+ .append(webContainerWEBINFDir).toOSString();
+ }else{
+ return projectRoot
+ .append(webContainerWEBINFDirWithoutProjectRoot).toOSString();
+ }
+ }
+
+
+ //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;
+ }
+ }
+
+
+
+
+
+}
Modified: trunk/ws/plugins/org.jboss.tools.ws.creation.ui/META-INF/MANIFEST.MF
===================================================================
--- trunk/ws/plugins/org.jboss.tools.ws.creation.ui/META-INF/MANIFEST.MF 2008-04-22
00:25:33 UTC (rev 7670)
+++ trunk/ws/plugins/org.jboss.tools.ws.creation.ui/META-INF/MANIFEST.MF 2008-04-22
05:22:37 UTC (rev 7671)
@@ -18,10 +18,6 @@
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,
org.eclipse.jst.ws.ui,
org.jboos.tools.ws.creation.core
Eclipse-LazyStart: true
Modified: trunk/ws/plugins/org.jboss.tools.ws.creation.ui/plugin.xml
===================================================================
--- trunk/ws/plugins/org.jboss.tools.ws.creation.ui/plugin.xml 2008-04-22 00:25:33 UTC
(rev 7670)
+++ trunk/ws/plugins/org.jboss.tools.ws.creation.ui/plugin.xml 2008-04-22 05:22:37 UTC
(rev 7671)
@@ -1,20 +1,15 @@
<?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
+
class="org.jboss.tools.ws.creation.ui.wsrt.JBossWSConfigWidgetFactory"
+ id="JBossWSWSDL2JavaConfig"
+
insertBeforeCommandId="org.jboos.tools.ws.creation.core.commands.WSDL2JavaCommnad">
+ </widgetFactory>
+ </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.jboss.tools.ws.creation.jbossWebServiceRT"
@@ -33,8 +28,8 @@
topDown="true"
class="org.jboss.tools.ws.creation.ui.wsrt.JBossWebServiceRuntime">
- <!--required-facet-version facet="jst.web" version="2.3"
allow-newer="true"/>
- <required-facet-versiond facet="jbossws.core"
version="1.0" allow-newer="true" />
+ <required-facet-version facet="jst.web" version="2.3"
allow-newer="true"/>
+ <!--required-facet-versiond facet="jbossws.core"
version="1.0" allow-newer="true" />
<required-facet-version facet="jbossws.ext" version="1.0"
allow-newer="true" / -->
</serviceRuntime>
Added:
trunk/ws/plugins/org.jboss.tools.ws.creation.ui/src/org/jboss/tools/ws/creation/ui/widgets/CodeGenConfigWidget.java
===================================================================
---
trunk/ws/plugins/org.jboss.tools.ws.creation.ui/src/org/jboss/tools/ws/creation/ui/widgets/CodeGenConfigWidget.java
(rev 0)
+++
trunk/ws/plugins/org.jboss.tools.ws.creation.ui/src/org/jboss/tools/ws/creation/ui/widgets/CodeGenConfigWidget.java 2008-04-22
05:22:37 UTC (rev 7671)
@@ -0,0 +1,65 @@
+package org.jboss.tools.ws.creation.ui.widgets;
+
+
+
+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.Display;
+import org.eclipse.swt.widgets.FileDialog;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Listener;
+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;
+import org.jboos.tools.ws.creation.core.data.ServiceModel;
+
+public class CodeGenConfigWidget extends SimpleWidgetDataContributor {
+
+ private ServiceModel model;
+
+ public CodeGenConfigWidget(ServiceModel model){
+ this.model = model;
+ }
+
+ public WidgetDataEvents addControls( Composite parent, Listener statusListener){
+
+ Composite configCom = new Composite(parent, SWT.NONE);
+ GridLayout layout = new GridLayout(2, false);
+ configCom.setLayout(layout);
+ configCom.setLayoutData(new GridData(GridData.FILL_BOTH));
+ Label lblCustomPakage = new Label(configCom, SWT.NONE);
+ lblCustomPakage.setText("Custom package name:");
+ final Text txtCustomPkgName = new Text(configCom, SWT.NONE);
+ txtCustomPkgName.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+ txtCustomPkgName.addModifyListener(new ModifyListener(){
+
+ public void modifyText(ModifyEvent e) {
+ model.setPackageText(txtCustomPkgName.getText());
+ }});
+
+ new Label(configCom, SWT.NONE).setText("Binding file:");
+ Composite fileSelection = new Composite(configCom, SWT.NONE);
+ fileSelection.setLayout(new GridLayout(2, false));
+ fileSelection.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+ final Text txtFiles = new Text(fileSelection, SWT.NONE);
+ txtFiles.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+ Button btnSelect = new Button(fileSelection, SWT.NONE);
+ btnSelect.setText("...");
+ btnSelect.addSelectionListener(new SelectionAdapter(){
+ public void widgetSelected(SelectionEvent e) {
+ String fileLocation = new FileDialog(Display.getCurrent().getActiveShell(),
SWT.NONE).open();
+ txtFiles.setText(fileLocation);
+ model.setBindingFileLcation(fileLocation);
+ }
+ });
+
+ return this;
+ }
+}
Modified:
trunk/ws/plugins/org.jboss.tools.ws.creation.ui/src/org/jboss/tools/ws/creation/ui/wsrt/JBossWebService.java
===================================================================
---
trunk/ws/plugins/org.jboss.tools.ws.creation.ui/src/org/jboss/tools/ws/creation/ui/wsrt/JBossWebService.java 2008-04-22
00:25:33 UTC (rev 7670)
+++
trunk/ws/plugins/org.jboss.tools.ws.creation.ui/src/org/jboss/tools/ws/creation/ui/wsrt/JBossWebService.java 2008-04-22
05:22:37 UTC (rev 7671)
@@ -11,6 +11,7 @@
import org.eclipse.wst.ws.internal.wsrt.ISelection;
import org.eclipse.wst.ws.internal.wsrt.WebServiceInfo;
import org.eclipse.wst.ws.internal.wsrt.WebServiceScenario;
+import org.jboos.tools.ws.creation.core.commands.InitialCommnad;
import org.jboos.tools.ws.creation.core.commands.WSDL2JavaCommnad;
import org.jboos.tools.ws.creation.core.data.ServiceModel;
@@ -40,7 +41,9 @@
Vector commands = new Vector();
ServiceModel model = new ServiceModel();
- if (ctx.getScenario().getValue() == WebServiceScenario.BOTTOMUP) {
+ model.setWebProjectName(project);
+ if (ctx.getScenario().getValue() == WebServiceScenario.TOPDOWN) {
+ commands.add(new InitialCommnad(model, this, WebServiceScenario.TOPDOWN));
commands.add(new WSDL2JavaCommnad(model));
}
Modified:
trunk/ws/plugins/org.jboss.tools.ws.creation.ui/src/org/jboss/tools/ws/creation/ui/wsrt/JBossWebServiceRuntime.java
===================================================================
---
trunk/ws/plugins/org.jboss.tools.ws.creation.ui/src/org/jboss/tools/ws/creation/ui/wsrt/JBossWebServiceRuntime.java 2008-04-22
00:25:33 UTC (rev 7670)
+++
trunk/ws/plugins/org.jboss.tools.ws.creation.ui/src/org/jboss/tools/ws/creation/ui/wsrt/JBossWebServiceRuntime.java 2008-04-22
05:22:37 UTC (rev 7671)
@@ -10,7 +10,7 @@
@Override
public IWebService getWebService(WebServiceInfo info) {
- return null;
+ return new JBossWebService(info);
}
@Override