/******************************************************************************* * Copyright (c) 2006-2010 eBay Inc. All Rights Reserved. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 *******************************************************************************/ /** * */ package org.ebayopensource.turmeric.eclipse.functional.test.ft.wsdlsvc; import java.io.File; import java.io.IOException; import java.util.Collection; import javax.wsdl.Definition; import javax.wsdl.Service; import javax.wsdl.WSDLException; import org.apache.commons.io.FileUtils; import org.ebayopensource.turmeric.eclipse.functional.test.SoaTestConstants; import org.ebayopensource.turmeric.eclipse.test.util.ProjectArtifactValidator; import org.ebayopensource.turmeric.eclipse.test.util.ProjectUtil; import org.ebayopensource.turmeric.eclipse.test.utils.WsdlUtilTest; import org.ebayopensource.turmeric.eclipse.utils.plugin.WorkspaceUtil; import org.ebayopensource.turmeric.eclipse.utils.wsdl.WSDLUtil; import org.eclipse.core.resources.IProject; import org.eclipse.core.runtime.CoreException; /** * @author shrao * */ public class ServiceSetupCleanupValidate { static String PARENT_DIR = getParentDir(); static boolean validateMatch = true; public static String getParentDir() { String parentDir = null; parentDir = org.eclipse.core.runtime.Platform.getLocation() .toOSString(); System.out.println(" --- service projects parent directory = " + parentDir); return parentDir; } public static void cleanupWSConsumer(String serviceName) { System.out.println(" ---Service cleanupWSConsumer()"); try { if (WorkspaceUtil.getProject(serviceName).exists()) ProjectUtil.cleanUpProjects(WorkspaceUtil .getProject(serviceName)); if (WorkspaceUtil.getProject(serviceName + "Consumer").exists()) ProjectUtil.cleanUpProjects(WorkspaceUtil .getProject(serviceName + "Consumer")); } catch (Exception e) { System.out.println(" --- Exception in cleanupWSConsumer() : " + e.getMessage()); e.printStackTrace(); } } public static void cleanupWSService(String serviceName) { System.out.println(" --- eBox Service cleanupWSService()"); try { if (WorkspaceUtil.getProject(serviceName).exists()) ProjectUtil.cleanUpProjects(WorkspaceUtil .getProject(serviceName)); if (WorkspaceUtil.getProject(serviceName + "Impl").exists()) ProjectUtil.cleanUpProjects(WorkspaceUtil .getProject(serviceName + "Impl")); } catch (Exception e) { System.out.println(" -- Exception in cleanupWSService() : " + e.getMessage()); e.printStackTrace(); } } public static void cleanup(String serviceName) throws InterruptedException { String dirPath = null; dirPath = PARENT_DIR + File.separator + serviceName; try{ FileUtils.deleteDirectory(new File(dirPath)); dirPath = PARENT_DIR + File.separator + serviceName + "Impl"; FileUtils.deleteDirectory(new File(dirPath)); dirPath = PARENT_DIR + File.separator + serviceName + "Consumer"; FileUtils.deleteDirectory(new File(dirPath)); }catch(IOException e){ } /* * ProcessBuilder procBuilder = null; Process pid = null; * * System.out.println(" --- Delete Svc Artifacts "); * * //Delete Intf Proj folder procBuilder = new ProcessBuilder("cmd", * "/c", "rmdir", "/S/Q", PARENT_DIR + "\\"+ serviceName); pid = * procBuilder.start(); pid.waitFor(); * * //Delete Impl Proj folder procBuilder = new ProcessBuilder("cmd", * "/c", "rmdir", "/S/Q", PARENT_DIR + "\\" + serviceName + "Impl"); pid * = procBuilder.start(); pid.waitFor(); * * //Delete Consumer Proj folder procBuilder = new ProcessBuilder("cmd", * "/c", "rmdir", "/S/Q", PARENT_DIR + "\\" + serviceName + "Consumer"); * pid = procBuilder.start(); pid.waitFor(); */ } public static void cleanupConsumer(String serviceName) throws IOException, InterruptedException { String dirPath = null; dirPath = PARENT_DIR + File.separator + serviceName + "Consumer"; FileUtils.deleteDirectory(new File(dirPath)); /* * ProcessBuilder procBuilder = null; Process pid = null; * * System.out.println(" --- Delete SvcConsumer Artifacts "); * * //Delete Consumer Proj folder procBuilder = new ProcessBuilder("cmd", * "/c", "rmdir", "/S/Q", PARENT_DIR + "\\" + serviceName + "Client"); * pid = procBuilder.start(); pid.waitFor(); */ } public static boolean validateConsumerArtifacts(IProject consumerPrj, String goldCopyFolder) { ProjectArtifactValidator pav = new ProjectArtifactValidator("target", ".svn"); pav.setGoldCopyRootDir(goldCopyFolder); try { consumerPrj.accept(pav); if (pav.isMatches() == false) { validateMatch = false; System.out.println("Goldcopy validation failed for " + consumerPrj.getName()); } } catch (CoreException e) { validateMatch = false; System.out.println("Exception in validateConsumerArtifacts() for " + consumerPrj.getName()); e.printStackTrace(); } return validateMatch; } public static boolean validateIntfArtifacts(IProject intfPrj, String goldCopyFolder) { ProjectArtifactValidator pav = new ProjectArtifactValidator("target", ".svn"); pav.setGoldCopyRootDir(goldCopyFolder); try { intfPrj.accept(pav); if (pav.isMatches() == false) { validateMatch = false; System.out.println("Goldcopy validation failed for " + intfPrj.getName()); } } catch (CoreException e) { validateMatch = false; System.out.println("Exception in validateIntfArtifacts() for " + intfPrj.getName()); e.printStackTrace(); } return validateMatch; } public static boolean validateImplArtifacts(IProject implPrj, String goldCopyFolder) { ProjectArtifactValidator pav = new ProjectArtifactValidator("target", ".svn"); pav.setGoldCopyRootDir(goldCopyFolder); try { implPrj.accept(pav); if (pav.isMatches() == false) { validateMatch = false; System.out.println("Goldcopy validation failed for " + implPrj.getName()); } } catch (CoreException e) { validateMatch = false; System.out.println("Exception in validateImplArtifacts() for " + implPrj.getName()); e.printStackTrace(); } return validateMatch; } public static String getServiceName(String wsdlFilePath) { String serviceName = null; try { final Definition definition = WSDLUtil.readWSDL(wsdlFilePath); final Collection<?> services = definition.getServices().values(); if (services.size() > 0) { // we believe that the wsdl should // contain only one service final Service service = (Service) services.toArray()[0]; // serviceName = // StringUtils.capitalize(service.getQName().getLocalPart()); serviceName = service.getQName().getLocalPart(); } } catch (final WSDLException wsdlE) { wsdlE.printStackTrace(); } return serviceName; } public static String getWsdlFilePath(String wsdlFileName) { String wsdlFilePath = null; wsdlFilePath = WsdlUtilTest.getPluginOSPath( SoaTestConstants.PLUGIN_ID, "data/extractedData") + WorkspaceUtil.PATH_SEPERATOR + wsdlFileName; return wsdlFilePath; } public void initializeConsumer() { } public void initializeInterface() { } public void initializeImpl() { } }