1*ef39d40dSAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 3*ef39d40dSAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4*ef39d40dSAndrew Rist * or more contributor license agreements. See the NOTICE file 5*ef39d40dSAndrew Rist * distributed with this work for additional information 6*ef39d40dSAndrew Rist * regarding copyright ownership. The ASF licenses this file 7*ef39d40dSAndrew Rist * to you under the Apache License, Version 2.0 (the 8*ef39d40dSAndrew Rist * "License"); you may not use this file except in compliance 9*ef39d40dSAndrew Rist * with the License. You may obtain a copy of the License at 10*ef39d40dSAndrew Rist * 11*ef39d40dSAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12*ef39d40dSAndrew Rist * 13*ef39d40dSAndrew Rist * Unless required by applicable law or agreed to in writing, 14*ef39d40dSAndrew Rist * software distributed under the License is distributed on an 15*ef39d40dSAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*ef39d40dSAndrew Rist * KIND, either express or implied. See the License for the 17*ef39d40dSAndrew Rist * specific language governing permissions and limitations 18*ef39d40dSAndrew Rist * under the License. 19*ef39d40dSAndrew Rist * 20*ef39d40dSAndrew Rist *************************************************************/ 21*ef39d40dSAndrew Rist 22*ef39d40dSAndrew Rist 23cdf0e10cSrcweir package helper; 24cdf0e10cSrcweir 25cdf0e10cSrcweir import java.io.File; 26cdf0e10cSrcweir import java.util.Properties; 27cdf0e10cSrcweir 28cdf0e10cSrcweir import lib.TestParameters; 29cdf0e10cSrcweir import util.PropertyName; 30cdf0e10cSrcweir import util.utils; 31cdf0e10cSrcweir 32cdf0e10cSrcweir /** 33cdf0e10cSrcweir * This class parses commandline Argument and stores <br> 34cdf0e10cSrcweir * them into TestParameter 35cdf0e10cSrcweir */ 36cdf0e10cSrcweir public class ClParser 37cdf0e10cSrcweir { 38cdf0e10cSrcweir /* 39cdf0e10cSrcweir * Parses the commandline argument and puts them<br> 40cdf0e10cSrcweir * into the TestParameters 41cdf0e10cSrcweir */ 42cdf0e10cSrcweir getCommandLineParameter(TestParameters param, String[] args)43cdf0e10cSrcweir public void getCommandLineParameter(TestParameters param, String[] args) 44cdf0e10cSrcweir { 45cdf0e10cSrcweir Properties mapping = getMapping(); 46cdf0e10cSrcweir 47cdf0e10cSrcweir for (int i = 0; i < args.length;) 48cdf0e10cSrcweir { 49cdf0e10cSrcweir String pName = getParameterFor(mapping, args[i]).trim(); 50cdf0e10cSrcweir String pValue = ""; 51cdf0e10cSrcweir if (pName.equals("TestJob")) 52cdf0e10cSrcweir { 53cdf0e10cSrcweir if (args.length > (i + 1)) 54cdf0e10cSrcweir { 55cdf0e10cSrcweir pValue = args[i].trim() + " " + args[i + 1].trim(); 56cdf0e10cSrcweir i += 2; 57cdf0e10cSrcweir } 58cdf0e10cSrcweir else 59cdf0e10cSrcweir { 60cdf0e10cSrcweir pValue = args[i].trim() + " unknown"; 61cdf0e10cSrcweir i += 2; 62cdf0e10cSrcweir } 63cdf0e10cSrcweir } 64cdf0e10cSrcweir else 65cdf0e10cSrcweir { 66cdf0e10cSrcweir if ((i + 1) < args.length) 67cdf0e10cSrcweir { 68cdf0e10cSrcweir pValue = args[i + 1].trim(); 69cdf0e10cSrcweir 70cdf0e10cSrcweir if (pValue.startsWith("-")) 71cdf0e10cSrcweir { 72cdf0e10cSrcweir i++; 73cdf0e10cSrcweir pValue = "yes"; 74cdf0e10cSrcweir } 75cdf0e10cSrcweir else if (pValue.startsWith("'")) 76cdf0e10cSrcweir { 77cdf0e10cSrcweir i++; 78cdf0e10cSrcweir while (!pValue.endsWith("'")) 79cdf0e10cSrcweir { 80cdf0e10cSrcweir i++; 81cdf0e10cSrcweir pValue = pValue + " " + args[i].trim(); 82cdf0e10cSrcweir 83cdf0e10cSrcweir } 84cdf0e10cSrcweir pValue = utils.replaceAll13(pValue, "'", ""); 85cdf0e10cSrcweir i++; 86cdf0e10cSrcweir } 87cdf0e10cSrcweir else 88cdf0e10cSrcweir { 89cdf0e10cSrcweir i += 2; 90cdf0e10cSrcweir } 91cdf0e10cSrcweir 92cdf0e10cSrcweir if (pName.equals("TestDocumentPath")) 93cdf0e10cSrcweir { 94cdf0e10cSrcweir System.setProperty( 95cdf0e10cSrcweir "DOCPTH", new File(pValue).getAbsolutePath()); 96cdf0e10cSrcweir } 97cdf0e10cSrcweir else if (pName.equals(PropertyName.SRC_ROOT)) 98cdf0e10cSrcweir { 99cdf0e10cSrcweir System.setProperty(pName, pValue); 100cdf0e10cSrcweir 101cdf0e10cSrcweir } 102cdf0e10cSrcweir } 103cdf0e10cSrcweir else 104cdf0e10cSrcweir { 105cdf0e10cSrcweir pValue = "yes"; 106cdf0e10cSrcweir i++; 107cdf0e10cSrcweir } 108cdf0e10cSrcweir } 109cdf0e10cSrcweir 110cdf0e10cSrcweir param.put(pName, pValue); 111cdf0e10cSrcweir } 112cdf0e10cSrcweir } 113cdf0e10cSrcweir 114cdf0e10cSrcweir /* 115cdf0e10cSrcweir * This method returns the path to a Configuration file <br> 116cdf0e10cSrcweir * if defined as command line parameter, an empty String elsewhere 117cdf0e10cSrcweir */ getIniPath(String[] args)118cdf0e10cSrcweir public String getIniPath(String[] args) 119cdf0e10cSrcweir { 120cdf0e10cSrcweir String iniFile = ""; 121cdf0e10cSrcweir 122cdf0e10cSrcweir for (int i = 0; i < args.length; i++) 123cdf0e10cSrcweir { 124cdf0e10cSrcweir if (args[i].equals("-ini")) 125cdf0e10cSrcweir { 126cdf0e10cSrcweir iniFile = args[i + 1]; 127cdf0e10cSrcweir break; 128cdf0e10cSrcweir } 129cdf0e10cSrcweir } 130cdf0e10cSrcweir 131cdf0e10cSrcweir return iniFile; 132cdf0e10cSrcweir } 133cdf0e10cSrcweir 134cdf0e10cSrcweir /* 135cdf0e10cSrcweir * This method returns the path to a Configuration file <br> 136cdf0e10cSrcweir * if defined as command line parameter, an empty String elsewhere 137cdf0e10cSrcweir */ getRunnerIniPath(String[] args)138cdf0e10cSrcweir public String getRunnerIniPath(String[] args) 139cdf0e10cSrcweir { 140cdf0e10cSrcweir String iniFile = ""; 141cdf0e10cSrcweir 142cdf0e10cSrcweir for (int i = 0; i < args.length; i++) 143cdf0e10cSrcweir { 144cdf0e10cSrcweir if (args[i].equals("-runnerini")) 145cdf0e10cSrcweir { 146cdf0e10cSrcweir iniFile = args[i + 1]; 147cdf0e10cSrcweir break; 148cdf0e10cSrcweir } 149cdf0e10cSrcweir } 150cdf0e10cSrcweir 151cdf0e10cSrcweir return iniFile; 152cdf0e10cSrcweir } 153cdf0e10cSrcweir 154cdf0e10cSrcweir /* 155cdf0e10cSrcweir * This method maps commandline Parameters to TestParameters 156cdf0e10cSrcweir */ getMapping()157cdf0e10cSrcweir protected Properties getMapping() 158cdf0e10cSrcweir { 159cdf0e10cSrcweir Properties map = new Properties(); 160cdf0e10cSrcweir map.setProperty("-cs", "ConnectionString"); 161cdf0e10cSrcweir map.setProperty("-tb", "TestBase"); 162cdf0e10cSrcweir map.setProperty("-tdoc", "TestDocumentPath"); 163cdf0e10cSrcweir map.setProperty("-objdsc", "DescriptionPath"); 164cdf0e10cSrcweir map.setProperty("-cmd", "AppExecutionCommand"); 165cdf0e10cSrcweir map.setProperty("-o", "TestJob"); 166cdf0e10cSrcweir map.setProperty("-sce", "TestJob"); 167cdf0e10cSrcweir map.setProperty("-p", "TestJob"); 168cdf0e10cSrcweir map.setProperty("-aca", "AdditionalConnectionArguments"); 169cdf0e10cSrcweir map.setProperty("-xcl", "ExclusionList"); 170cdf0e10cSrcweir map.setProperty("-debug", "DebugIsActive"); 171cdf0e10cSrcweir map.setProperty("-log", "LoggingIsActive"); 172cdf0e10cSrcweir map.setProperty("-dbout", "DataBaseOut"); 173cdf0e10cSrcweir map.setProperty("-nca", "NoCwsAttach"); 174cdf0e10cSrcweir 175cdf0e10cSrcweir return map; 176cdf0e10cSrcweir } 177cdf0e10cSrcweir getParameterFor(Properties map, String name)178cdf0e10cSrcweir protected String getParameterFor(Properties map, String name) 179cdf0e10cSrcweir { 180cdf0e10cSrcweir String ret = map.getProperty(name); 181cdf0e10cSrcweir 182cdf0e10cSrcweir if (ret == null) 183cdf0e10cSrcweir { 184cdf0e10cSrcweir ret = name.substring(1); 185cdf0e10cSrcweir } 186cdf0e10cSrcweir 187cdf0e10cSrcweir return ret; 188cdf0e10cSrcweir } 189cdf0e10cSrcweir }