Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcbrealey2004-12-02 17:20:34 +0000
committercbrealey2004-12-02 17:20:34 +0000
commit3c38afa18d3a47fd3bf4ca1d2237fd6994824735 (patch)
tree63f616210a5e3687e1d69e5b474158e56ff30892 /bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/test/wssample/WSSampleFinishCommand.java
parent06fc2bec33c43d2df1d0d43a7aed49dfdc6e56af (diff)
downloadwebtools.webservices-3c38afa18d3a47fd3bf4ca1d2237fd6994824735.tar.gz
webtools.webservices-3c38afa18d3a47fd3bf4ca1d2237fd6994824735.tar.xz
webtools.webservices-3c38afa18d3a47fd3bf4ca1d2237fd6994824735.zip
[79939] Committing initial version of Web service wizardry, with some adjustments to prereqs
Diffstat (limited to 'bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/test/wssample/WSSampleFinishCommand.java')
-rw-r--r--bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/test/wssample/WSSampleFinishCommand.java311
1 files changed, 311 insertions, 0 deletions
diff --git a/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/test/wssample/WSSampleFinishCommand.java b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/test/wssample/WSSampleFinishCommand.java
new file mode 100644
index 000000000..0763595aa
--- /dev/null
+++ b/bundles/org.eclipse.jst.ws.consumption.ui/src/org/eclipse/jst/ws/internal/consumption/ui/widgets/test/wssample/WSSampleFinishCommand.java
@@ -0,0 +1,311 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2004 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
+ *******************************************************************************/
+
+package org.eclipse.jst.ws.internal.consumption.ui.widgets.test.wssample;
+
+import java.io.IOException;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.List;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.jst.ws.internal.common.EnvironmentUtils;
+import org.eclipse.jst.ws.internal.common.ResourceUtils;
+import org.eclipse.jst.ws.internal.consumption.command.common.PublishProjectCommand;
+import org.eclipse.jst.ws.internal.consumption.command.common.StartProjectCommand;
+import org.eclipse.jst.ws.internal.consumption.sampleapp.codegen.InputFileGenerator;
+import org.eclipse.jst.ws.internal.consumption.sampleapp.codegen.MethodFileGenerator;
+import org.eclipse.jst.ws.internal.consumption.sampleapp.codegen.ResultFileGenerator;
+import org.eclipse.jst.ws.internal.consumption.sampleapp.codegen.TestClientFileGenerator;
+import org.eclipse.jst.ws.internal.consumption.sampleapp.command.GeneratePageCommand;
+import org.eclipse.jst.ws.internal.consumption.sampleapp.command.JavaToModelCommand;
+import org.eclipse.jst.ws.internal.consumption.ui.widgets.test.CopyWebServiceUtilsJarCommand;
+import org.eclipse.jst.ws.internal.datamodel.Model;
+import org.eclipse.jst.ws.internal.ext.test.JavaProxyTestCommand;
+import org.eclipse.wst.command.env.core.SimpleCommand;
+import org.eclipse.wst.command.env.core.common.Environment;
+import org.eclipse.wst.command.env.core.common.Log;
+import org.eclipse.wst.command.env.core.common.MessageUtils;
+import org.eclipse.wst.command.env.core.common.SimpleStatus;
+import org.eclipse.wst.command.env.core.common.Status;
+import org.eclipse.wst.command.env.core.common.StatusException;
+import org.eclipse.wst.command.env.core.selection.BooleanSelection;
+import org.eclipse.wst.server.core.IServer;
+import org.eclipse.wst.webbrowser.WebBrowser;
+import org.eclipse.wst.webbrowser.WebBrowserEditorInput;
+
+public class WSSampleFinishCommand extends SimpleCommand implements JavaProxyTestCommand
+{
+
+ public static String INPUT = "Input.jsp";
+ public static String TEST_CLIENT = "TestClient.jsp";
+ public static String RESULT = "Result.jsp";
+ public static String METHOD = "Method.jsp";
+
+ private static String LABEL = "JavaBeanToSampleActiveTask";
+ private static String DESCRIPTION = "default actions";
+ private MessageUtils msgUtils;
+
+ private Model proxyModel;
+ private String sampleServerTypeID;
+ private IServer sampleExistingServer;
+
+
+ private String clientProject;
+ private String qname;
+ private String jspFolder;
+ private boolean runClientTest;
+ private String sampleProject;
+ private BooleanSelection[] methods;
+ private String proxyBean;
+ private String setEndpointMethod;
+ private List endpoints;
+
+ /**
+ * Constructs a new JavaBeanToSampleActiveTask object with the given label and description.
+ */
+ public WSSampleFinishCommand ()
+ {
+ String pluginId = "org.eclipse.jst.ws.consumption.ui";
+ msgUtils = new MessageUtils(pluginId + ".plugin", this);
+ setDescription(DESCRIPTION);
+ setName(LABEL);
+ }
+
+ public Status execute(Environment env)
+ {
+ Status status = new SimpleStatus( "" );
+ //setters and getters to be removed
+ CopyWebServiceUtilsJarCommand copy = new CopyWebServiceUtilsJarCommand();
+ copy.setSampleProject(sampleProject);
+ status = copy.execute(env);
+ if (status.getSeverity() == Status.ERROR) return status;
+ status = createModel(env);
+ if (status.getSeverity() == Status.ERROR) return status;
+ status = generatePages(env);
+ if (status.getSeverity() == Status.ERROR) return status;
+ //if (!isSuccessful()) return;
+ status = launchSample(env);
+ return status;
+ }
+
+
+ /**
+ * Generate the four jsps that make up this
+ * sample app.
+ */
+ protected Status generatePages(Environment env)
+ {
+ Status status = new SimpleStatus( "" );
+ IPath fDestinationFolderPath = new Path(jspFolder);
+ fDestinationFolderPath = fDestinationFolderPath.makeAbsolute();
+ IWorkspaceRoot fWorkspace = ResourcesPlugin.getWorkspace().getRoot();
+
+ IPath pathTest = fDestinationFolderPath.append(TEST_CLIENT);
+ IFile fileTest = fWorkspace.getFile(pathTest);
+ GeneratePageCommand gpcTest = new GeneratePageCommand(EnvironmentUtils.getResourceContext(env), proxyModel,
+ new TestClientFileGenerator(INPUT,METHOD,RESULT),fileTest);
+ //gpcTest.setStatusMonitor(getStatusMonitor());
+ status = gpcTest.execute(env);
+ if (status.getSeverity() == Status.ERROR )
+ return status;
+
+
+ //input codegen
+ IPath pathInput = fDestinationFolderPath.append(INPUT);
+ IFile fileInput = fWorkspace.getFile(pathInput);
+ InputFileGenerator inputGenerator = new InputFileGenerator(RESULT);
+ GeneratePageCommand gpcInput = new GeneratePageCommand(EnvironmentUtils.getResourceContext(env), proxyModel,
+ inputGenerator,fileInput);
+ //gpcInput.setStatusMonitor(getStatusMonitor());
+ status = gpcInput.execute(env);
+ if (status.getSeverity() == Status.ERROR )
+ return status;
+
+ //method codegen
+ IPath pathMethod = fDestinationFolderPath.append(METHOD);
+ IFile fileMethod = fWorkspace.getFile(pathMethod);
+ MethodFileGenerator methodGenerator = new MethodFileGenerator(INPUT);
+ methodGenerator.setClientFolderPath(jspFolder);
+ GeneratePageCommand gpcMethod = new GeneratePageCommand(EnvironmentUtils.getResourceContext(env), proxyModel,
+ methodGenerator,fileMethod);
+ //gpcMethod.setStatusMonitor(getStatusMonitor());
+ status = gpcMethod.execute(env);
+ if (status.getSeverity() == Status.ERROR )
+ return status;
+
+
+ //result codegen
+ IPath pathResult = fDestinationFolderPath.append(RESULT);
+ IFile fileResult = fWorkspace.getFile(pathResult);
+ ResultFileGenerator rfg = new ResultFileGenerator();
+ rfg.setClientFolderPath(jspFolder);
+ rfg.setSetEndpointMethod(setEndpointMethod);
+ GeneratePageCommand gpcResult = new GeneratePageCommand(EnvironmentUtils.getResourceContext(env), proxyModel,
+ rfg,fileResult);
+ //gpcResult.setStatusMonitor(getStatusMonitor());
+ status = gpcResult.execute(env);
+
+ return status;
+ }
+
+
+ protected Status launchSample (Environment env) {
+
+ Status status = new SimpleStatus( "" );
+ if (!runClientTest) return status;
+
+
+ IPath fDestinationFolderPath = new Path(jspFolder);
+ fDestinationFolderPath = fDestinationFolderPath.makeAbsolute();
+
+ PublishProjectCommand ppc = new PublishProjectCommand();
+ ppc.setServerTypeID(sampleServerTypeID);
+ ppc.setExistingServer(sampleExistingServer);
+ ppc.setProject(sampleProject);
+ status = ppc.execute(env);
+
+ StartProjectCommand spc = new StartProjectCommand(false );
+ spc.setServiceServerTypeID(sampleServerTypeID);
+ spc.setSampleExistingServer(sampleExistingServer);
+ IProject project = (IProject) ResourceUtils.findResource(sampleProject);
+ spc.setSampleProject(project);
+ spc.setIsWebProjectStartupRequested(true);
+
+ status = spc.execute(env);
+ if (status.getSeverity() == Status.ERROR) return status;
+
+ IPath newPath = new Path(ResourceUtils.getWebProjectURL(ResourceUtils.getProjectOf(fDestinationFolderPath),sampleServerTypeID,sampleExistingServer));
+ newPath = newPath.append(fDestinationFolderPath.removeFirstSegments(2).makeAbsolute());
+ StringBuffer urlString = new StringBuffer(newPath.append(TEST_CLIENT).toString());
+ if (endpoints != null && !endpoints.isEmpty())
+ {
+ urlString.append("?endpoint=");
+ urlString.append(endpoints.get(0).toString());
+ }
+
+ try{
+ URL url;
+ url = new URL(urlString.toString());
+ int style = WebBrowserEditorInput.SHOW_TOOLBAR | WebBrowserEditorInput.SHOW_STATUSBAR | WebBrowserEditorInput.FORCE_NEW_PAGE;
+
+ for( int retries = 0; retries < 10; retries++ )
+ {
+ try
+ {
+ // Test the URLs
+ (new URL(newPath.append(RESULT).toString())).openStream();
+ (new URL(newPath.append(METHOD).toString())).openStream();
+ (new URL(newPath.append(INPUT).toString())).openStream();
+ (new URL(newPath.append(TEST_CLIENT).toString())).openStream();
+ // Looks good, exit loop
+ break;
+ }
+ catch( IOException ioe )
+ {
+ try
+ {
+ Thread.sleep(1000);
+ }
+ catch (InterruptedException ie) {}
+ }
+ }
+
+ WebBrowserEditorInput wbei = new WebBrowserEditorInput(url,style);
+ WebBrowser.openURL(wbei);
+ return status;
+ }catch(MalformedURLException exc){
+ env.getLog().log(Log.WARNING, 5048, this, "launchSample", exc);
+ status = new SimpleStatus( "launchSample", msgUtils.getMessage("MSG_ERROR_MALFORMED_URL"), Status.WARNING );
+ try {
+ env.getStatusHandler().report(status);
+ } catch (StatusException e) {
+ status = new SimpleStatus( "launchSample", msgUtils.getMessage("MSG_ERROR_MALFORMED_URL"), Status.ERROR );
+ }
+ return status;
+ }
+ }
+
+
+
+ protected Status createModel(Environment env) {
+
+ //create the model from the resource
+ JavaToModelCommand jtmc = new JavaToModelCommand();
+ jtmc.setMethods(methods);
+ jtmc.setClientProject(clientProject);
+ jtmc.setProxyBean(proxyBean);
+ //jtmc.setStatusMonitor(getStatusMonitor());
+ Status status = jtmc.execute(env);
+ if (status.getSeverity() == Status.ERROR) return status;
+
+ proxyModel = jtmc.getDataModel();
+ return status;
+ }
+
+ public void setServerTypeID(String sampleServerTypeID)
+ {
+ this.sampleServerTypeID = sampleServerTypeID;
+ }
+
+ public void setExistingServer(IServer sampleExistingServer)
+ {
+ this.sampleExistingServer = sampleExistingServer;
+ }
+
+ public void setJspFolder(String jspFolder)
+ {
+ this.jspFolder = jspFolder;
+ }
+
+ public void setRunClientTest(boolean runClientTest)
+ {
+ this.runClientTest = runClientTest;
+ }
+
+ public void setSampleProject(String sampleProject)
+ {
+ this.sampleProject = sampleProject;
+ }
+
+ public void setClientProject(String clientProject)
+ {
+ this.clientProject = clientProject;
+ }
+
+ public void setMethods(BooleanSelection[] methods)
+ {
+ this.methods = methods;
+ }
+
+ public void setProxyBean(String proxyBean)
+ {
+ this.proxyBean = proxyBean;
+ }
+
+ /**
+ * @param setEndpointMethod The setEndpointMethod to set.
+ */
+ public void setSetEndpointMethod(String setEndpointMethod)
+ {
+ this.setEndpointMethod = setEndpointMethod;
+ }
+
+ public void setEndpoint(List endpoints)
+ {
+ this.endpoints = endpoints;
+ }
+}

Back to the top