Added windows uninstall actions
This commit is contained in:
		| @@ -269,10 +269,12 @@ package/linux/CASA_auth_token_svc_4zen.spec | ||||
| package/windows/Makefile | ||||
| package/windows/ClientKeystoreSetup/Makefile | ||||
| package/windows/CommandLauncher/Makefile | ||||
| package/windows/DeleteFile/Makefile | ||||
| package/windows/InitConfigFile/Makefile | ||||
| package/windows/MungeCryptoPropertiesFilePath/Makefile | ||||
| package/windows/ServerKeystoreSetup/Makefile | ||||
| package/windows/SetupAsWindowsService/Makefile | ||||
| package/windows/ShutdownWindowsService/Makefile | ||||
| package/windows/UpdateWarFile/Makefile | ||||
| package/windows/server-java_msi/Makefile | ||||
| Svc/Makefile | ||||
|   | ||||
| @@ -0,0 +1,376 @@ | ||||
| /*********************************************************************** | ||||
|  *  | ||||
|  *  Copyright (C) 2006 Novell, Inc. All Rights Reserved. | ||||
|  * | ||||
|  *  This library 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; version 2.1 | ||||
|  *  of the License. | ||||
|  * | ||||
|  *  This library 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 | ||||
|  *  Library Lesser General Public License for more details. | ||||
|  * | ||||
|  *  You should have received a copy of the GNU Lesser General Public | ||||
|  *  License along with this library; if not, Novell, Inc. | ||||
|  *  | ||||
|  *  To contact Novell about this file by physical or electronic mail,  | ||||
|  *  you may find current contact information at www.novell.com. | ||||
|  *  | ||||
|  *  Author: Juan Carlos Luciani <jluciani@novell.com> | ||||
|  *   | ||||
|  ***********************************************************************/ | ||||
|  | ||||
| import java.io.*; | ||||
| import java.util.*; | ||||
|  | ||||
| /** | ||||
|  * Summary description for DeleteFile | ||||
|  */ | ||||
| public class DeleteFile | ||||
| { | ||||
| 	final static int ERROR_NO_ERROR						= 0; | ||||
| 	final static int ERROR_INVALID_NUMBER_OF_PARAMS		= -1; | ||||
| 	final static int ERROR_BAD_FILE_PARAM				= -2; | ||||
| 	final static int ERROR_IO_EXCEPTION					= -3; | ||||
| 	final static int ERROR_FILE_PARAM_REPEATED			= -4; | ||||
| 	final static int ERROR_FILTER_PARAM_REPEATED		= -5; | ||||
| 	final static int ERROR_UNKNOWN_PARAMETER			= -6; | ||||
| 	final static int ERROR_MISSING_FILE_PARAM			= -7; | ||||
| 	final static int ERROR_FILTER_ON_NON_DIRECTORY		= -8; | ||||
| 	final static int ERROR_BAD_PROPERTY_FILE_PARAM		= -9;; | ||||
|  | ||||
| 	final static String FILE_KEY		= "file="; | ||||
| 	final static String FILTER_KEY		= "filter="; | ||||
|  | ||||
| 	RandomAccessFile	raf; | ||||
| 	int					rc; | ||||
| 	String				sFile; | ||||
| 	String				sFilter; | ||||
|  | ||||
| 	public static void main(String[] args) | ||||
| 	{ | ||||
| 		DeleteFile p = new DeleteFile(args); | ||||
| 		System.exit(p.rc); | ||||
| 	} | ||||
|  | ||||
| 	DeleteFile(String[] args) | ||||
| 	{ | ||||
| 		rc = ERROR_NO_ERROR; | ||||
| 		sFile = null; | ||||
| 		sFilter = null; | ||||
|  | ||||
| 		try | ||||
| 		{ | ||||
| 			raf = new RandomAccessFile(new File("c:\\test8.log"), "rw"); | ||||
| 			raf.seek(raf.length()); | ||||
|  | ||||
| 			// Process the arguments | ||||
| 			if (ERROR_NO_ERROR == (rc = processArgs(args))) | ||||
| 			{ | ||||
| 				rc = doDelete(); | ||||
| 			} | ||||
|  | ||||
| 		} | ||||
| 		catch (IOException e) | ||||
| 		{ | ||||
| 			rc = ERROR_IO_EXCEPTION; | ||||
| 		} | ||||
| 		finally | ||||
| 		{ | ||||
| 			try | ||||
| 			{ | ||||
| 				log(rc); | ||||
| 				raf.close(); | ||||
| 			} | ||||
| 			catch (Exception e1) | ||||
| 			{ | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	int processArgs(String[] argsOld) | ||||
| 	{ | ||||
| 		String sProperties; | ||||
| 		File fileInstallDir = null; | ||||
| 		int iEquals; | ||||
| 		String sKey; | ||||
| 		String sValue; | ||||
| 		int iOld; | ||||
| 		int i; | ||||
| 		String args[] = new String[argsOld.length]; | ||||
| 		int iNew; | ||||
|  | ||||
| 		log("Original arg count " + argsOld.length); | ||||
| 		for (i = 0; i < argsOld.length; i++) | ||||
| 		{ | ||||
| 			log("Arg " + i + " = " + argsOld[i] + "\r\n"); | ||||
| 		} | ||||
|  | ||||
| 		// Validate the number of parameters | ||||
| 		if (args.length < 1) | ||||
| 		{ | ||||
| 			return ERROR_INVALID_NUMBER_OF_PARAMS; | ||||
| 		} | ||||
|  | ||||
| 		iNew = -1; | ||||
| 		for (iOld = 0; iOld < argsOld.length; iOld++) | ||||
| 		{ | ||||
| 			if (0 <= argsOld[iOld].indexOf("=")) | ||||
| 			{ | ||||
| 				iNew++; | ||||
| 				args[iNew] = argsOld[iOld]; | ||||
| 				for (i = iOld + 1; i < argsOld.length && (-1 == argsOld[i].indexOf("=")); i++) | ||||
| 				{ | ||||
| 					args[iNew] += " " + argsOld[i]; | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
|  | ||||
| 		log("New arg count " + args.length); | ||||
| 		for (i = 0; i < args.length; i++) | ||||
| 		{ | ||||
| 			if (null == args[i]) | ||||
| 			{ | ||||
| 				continue; | ||||
| 			} | ||||
|  | ||||
| 			log("arg[" + i + "] = " +args[i]); | ||||
|  | ||||
| 			// is this the file to delete param? | ||||
| 			if (args[i].startsWith(FILE_KEY)) | ||||
| 			{ | ||||
| 				// Have we already processed a file paramter? | ||||
| 				if (null != sFile) | ||||
| 				{ | ||||
| 					return ERROR_FILE_PARAM_REPEATED; | ||||
| 				} | ||||
|  | ||||
| 				// Make sure it is more the param tag | ||||
| 				if (args[i].length() <= FILE_KEY.length()) | ||||
| 				{ | ||||
| 					return ERROR_BAD_FILE_PARAM; | ||||
| 				} | ||||
|  | ||||
| 				sFile = args[i].substring(FILE_KEY.length()).trim(); | ||||
| 			} | ||||
|  | ||||
| 			// is this the filter param? | ||||
| 			else if (args[i].startsWith(FILTER_KEY)) | ||||
| 			{ | ||||
| 				// Have we already processed a filter paramter? | ||||
| 				if (null != sFilter) | ||||
| 				{ | ||||
| 					return ERROR_FILTER_PARAM_REPEATED; | ||||
| 				} | ||||
|  | ||||
| 				// Make sure it is more than the param tag | ||||
| 				if (args[i].length() <= FILTER_KEY.length()) | ||||
| 				{ | ||||
| 					return ERROR_BAD_PROPERTY_FILE_PARAM; | ||||
| 				} | ||||
|  | ||||
| 				sFilter = args[i].substring(FILTER_KEY.length()).trim(); | ||||
| 			} | ||||
|  | ||||
| 			// Handle additional parameters | ||||
| 			else | ||||
| 			{ | ||||
| 				return ERROR_UNKNOWN_PARAMETER; | ||||
| 			} | ||||
| 		} | ||||
|  | ||||
| 		// Make sure we got a file | ||||
| 		if (null == sFile) | ||||
| 		{ | ||||
| 			return ERROR_MISSING_FILE_PARAM; | ||||
| 		} | ||||
|  | ||||
| 		// Note: the filter parameter is optional, if present the file is assumed to be a directory | ||||
|  | ||||
| 		return ERROR_NO_ERROR; | ||||
| 	} | ||||
|  | ||||
| 	int doDelete() | ||||
| 	{ | ||||
| 		File file = new File(sFile); | ||||
|  | ||||
| 		log("Attempt to delete: " + sFile); | ||||
|  | ||||
| 		// If the file is already gone - we are happy. | ||||
| 		if (!file.exists()) | ||||
| 		{ | ||||
| 			log("File did not exist: " + sFile); | ||||
| 			return ERROR_NO_ERROR; | ||||
| 		} | ||||
|  | ||||
| 		// If a filter was passed in but the file is not a directory... | ||||
| 		if (null != sFilter) | ||||
| 		{ | ||||
| 			log("there is a filter:  + sFilter"); | ||||
|  | ||||
| 			// The file is not a directory - we wont try to apply the filter | ||||
| 			if (!file.isDirectory()) | ||||
| 			{ | ||||
| 				log("file is not a directory"); | ||||
| 				return ERROR_FILTER_ON_NON_DIRECTORY; | ||||
| 			} | ||||
|  | ||||
| 			// The file is a directory | ||||
| 			else | ||||
| 			{ | ||||
| 				log("file is a directory"); | ||||
| 				// Delete the children that match the template | ||||
| 				deleteFiles(file); | ||||
|  | ||||
| 				// Attempt to delete the directory | ||||
| 				deleteDirectory(file); | ||||
| 			} | ||||
| 		} | ||||
|  | ||||
| 		else | ||||
| 		{ | ||||
| 			if (!file.isDirectory()) | ||||
| 			{ | ||||
| 				log("Delete file: " + sFile); | ||||
| 				file.delete(); | ||||
| 			} | ||||
|  | ||||
| 			else | ||||
| 			{ | ||||
| 				deleteDirectory(file); | ||||
| 			} | ||||
| 		} | ||||
|  | ||||
| 		return ERROR_NO_ERROR; | ||||
| 	} | ||||
|  | ||||
| 	void deleteFiles(File file) | ||||
| 	{ | ||||
| 		File fileDelete; | ||||
| 		int i; | ||||
|  | ||||
| 		log("attempting to delete file"); | ||||
|  | ||||
| 		// Get the children of this directory | ||||
| 		File[] rgFile = file.listFiles( | ||||
| 			new FileFilter() | ||||
| 			{ | ||||
| 				public boolean accept(File f) | ||||
| 				{ | ||||
| 					if (null == sFilter) return true; | ||||
| 					log("file " + f.getName() + " matches filter " + sFilter + " : " + (-1 != f.getName().indexOf(sFilter))) ; | ||||
| 					return (-1 != f.getName().indexOf(sFilter));  | ||||
| 				} | ||||
| 			}); | ||||
|  | ||||
| 		log(file.getAbsolutePath() + " has " + rgFile.length + " children that match the filter: " + sFilter); | ||||
|  | ||||
| 		// Attempt to delete each child file | ||||
| 		for (i = 0; i < rgFile.length; i++) | ||||
| 		{ | ||||
| 			if (rgFile[i].isDirectory()) | ||||
| 			{ | ||||
| 				deleteDirectory(rgFile[i]); | ||||
| 			} | ||||
| 			else | ||||
| 			{ | ||||
| 				log("Delete file: " + rgFile[i].getAbsolutePath()); | ||||
| 				rgFile[i].delete(); | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	void deleteDirectory(File file) | ||||
| 	{ | ||||
| 		File fileDelete; | ||||
| 		int i; | ||||
|  | ||||
| 		log("Delete directory: " + file.getAbsolutePath()); | ||||
|  | ||||
| 		// Get the children of this directory | ||||
| 		File[] rgFile = file.listFiles(); | ||||
|  | ||||
| 		log(file.getAbsolutePath() + " has " + rgFile.length + " children"); | ||||
|  | ||||
| 		// Delete empty child directories | ||||
| 		for (i = 0; i < rgFile.length; i++) | ||||
| 		{ | ||||
| 			if (rgFile[i].isDirectory()) | ||||
| 			{ | ||||
| 				deleteDirectory(rgFile[i]); | ||||
| 			} | ||||
| 		} | ||||
|  | ||||
| 		// Delete this directory if it is empty | ||||
| 		rgFile = file.listFiles(); | ||||
| 		if (rgFile.length == 0) | ||||
| 		{ | ||||
| 			log("Delete file: " + file.getAbsolutePath()); | ||||
| 			file.delete(); | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
|  | ||||
| 	void log(int err) | ||||
| 	{ | ||||
| 		log(err, null); | ||||
| 	} | ||||
|  | ||||
| 	void log(int err, String s) | ||||
| 	{ | ||||
| 		String sMessage = ""; | ||||
|  | ||||
| 		switch (err) | ||||
| 		{ | ||||
| 			case ERROR_NO_ERROR: | ||||
| 				sMessage = "No error"; | ||||
| 				break; | ||||
| 			case ERROR_INVALID_NUMBER_OF_PARAMS: | ||||
| 				sMessage = "Invalid number of parameters: 1 expected"; | ||||
| 				break; | ||||
| 			case ERROR_BAD_FILE_PARAM: | ||||
| 				sMessage = "Bad file parameter"; | ||||
| 				break; | ||||
| 			case ERROR_FILE_PARAM_REPEATED: | ||||
| 				sMessage = "File parameter repeated"; | ||||
| 				break; | ||||
| 			case ERROR_FILTER_PARAM_REPEATED: | ||||
| 				sMessage = "Filter parameter repeated"; | ||||
| 				break; | ||||
| 			case ERROR_UNKNOWN_PARAMETER: | ||||
| 				sMessage = "Unknown parameter: "; | ||||
| 				break; | ||||
| 			case ERROR_MISSING_FILE_PARAM: | ||||
| 				sMessage = "Missing file parameter"; | ||||
| 				break; | ||||
| 			case ERROR_FILTER_ON_NON_DIRECTORY: | ||||
| 				sMessage = "Filter parameter of non-directory file"; | ||||
| 				break; | ||||
| 			case ERROR_BAD_PROPERTY_FILE_PARAM: | ||||
| 				sMessage = "Bad property file parameter"; | ||||
| 				break; | ||||
| 			default: | ||||
| 				sMessage = "Unknown error: " + err; | ||||
| 				break; | ||||
| 		} | ||||
|  | ||||
| 		if (null != s) | ||||
| 		{ | ||||
| 			sMessage = sMessage + s; | ||||
| 		} | ||||
| 		log(sMessage); | ||||
| 	} | ||||
|  | ||||
| 	void log(String s) | ||||
| 	{ | ||||
| 		try | ||||
| 		{ | ||||
| 			raf.writeUTF(this.getClass().getName() + ": " + s + "\r\n"); | ||||
| 		} | ||||
| 		catch (IOException ioe) | ||||
| 		{ | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
| @@ -0,0 +1,77 @@ | ||||
| ####################################################################### | ||||
| # | ||||
| #  Copyright (C) 2004 Novell, Inc. | ||||
| # | ||||
| #  This program is free software; you can redistribute it and/or | ||||
| #  modify it under the terms of the GNU General Public | ||||
| #  License as published by the Free Software Foundation; either | ||||
| #  version 2 of the License, or (at your option) any later version. | ||||
| # | ||||
| #  This program 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 | ||||
| #  General Public License for more details. | ||||
| # | ||||
| #  You should have received a copy of the GNU General Public | ||||
| #  License along with this program; if not, write to the Free | ||||
| #  Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||||
| # | ||||
| #  Author: Greg Richardson <grichardson@novell.com> | ||||
| # | ||||
| ####################################################################### | ||||
|  | ||||
| SUBDIRS = | ||||
|  | ||||
| DIST_SUBDIRS = | ||||
|  | ||||
| EXTRA_DIST = DeleteFile.java | ||||
|  | ||||
| if DEBUG | ||||
| TARGET_CFG = Debug | ||||
| DEBUG = -g | ||||
| else | ||||
| TARGET_CFG = Release | ||||
| DEBUG = -g:none | ||||
| endif | ||||
|  | ||||
| PACKAGE = DeleteFile | ||||
| TARGET_FILE = $(PACKAGE).class | ||||
| LOG_FILE = $(PACKAGE).log | ||||
| JAVAFILES = DeleteFile.java  | ||||
| CLASSES = $(addprefix $(BUILDDIR)/, $(JAVAFILES:%.java=%.class)) | ||||
| BUILDDIR = bin/$(TARGET_CFG) | ||||
|  | ||||
| .PHONY: package package-clean package-install package-uninstall | ||||
|  | ||||
| all: $(BUILDDIR) $(CLASSES) | ||||
|  | ||||
| $(BUILDDIR)/%.class: %.java | ||||
| 	@rm -f $(LOG_FILE) $@ | ||||
| 	@echo [======== Compiling $@ ========] | ||||
| 	@javac $(DEBUG) -d $(BUILDDIR) $< 2> $(LOG_FILE) | ||||
| 	@echo $$CMD; \ | ||||
| 	if eval $$CMD; then \ | ||||
| 		ls -l $(BUILDDIR)/$(TARGET_FILE); \ | ||||
| 		cp $(BUILDDIR)/*.class bin; \ | ||||
| 	else \ | ||||
| 		grep -a "ERROR:" $(LOG_FILE); \ | ||||
| 	fi | ||||
|  | ||||
| $(BUILDDIR): | ||||
| 	[ -d $(BUILDDIR) ] || mkdir -p $(BUILDDIR) | ||||
|  | ||||
| 	 | ||||
| package-clean clean-local: | ||||
| 	rm -rf  bin/Release/* bin/Release bin/Debug/* bin/Debug bin/* bin *.log | ||||
|  | ||||
| clean: | ||||
| 	rm -rf  bin/Release/* bin/Release bin/Debug/* bin/Debug bin/* bin *.log | ||||
|  | ||||
| distclean-local: package-clean | ||||
| 	rm -f Makefile | ||||
|  | ||||
| maintainer-clean-local: | ||||
| 	rm -f Makefile.in | ||||
|  | ||||
|  | ||||
|  | ||||
| @@ -120,7 +120,6 @@ public class InitConfigFile | ||||
| 			try | ||||
| 			{ | ||||
| 				log(rc, "  " + sOutput + "\n\n\n"); | ||||
| 				//raf.flush(); | ||||
| 				raf.close(); | ||||
| 			} | ||||
| 			catch (Exception e1) | ||||
| @@ -170,6 +169,11 @@ public class InitConfigFile | ||||
| 		log("New arg count " + args.length); | ||||
| 		for (i = 0; i < args.length; i++) | ||||
| 		{ | ||||
| 			if (null == args[i]) | ||||
| 			{ | ||||
| 				continue; | ||||
| 			} | ||||
|  | ||||
| 			log("arg[" + i + "] = " +args[i]); | ||||
|  | ||||
| 			// is this the install dir param? | ||||
|   | ||||
| @@ -20,19 +20,21 @@ | ||||
| # | ||||
| ####################################################################### | ||||
|  | ||||
| SUBDIRS = ClientKeystoreSetup InitConfigFile MungeCryptoPropertiesFilePath ServerKeystoreSetup SetupAsWindowsService UpdateWarFile server-java_msi | ||||
| SUBDIRS = ClientKeystoreSetup DeleteFile InitConfigFile MungeCryptoPropertiesFilePath ServerKeystoreSetup SetupAsWindowsService ShutdownWindowsService UpdateWarFile server-java_msi | ||||
|  | ||||
| DIST_SUBDIRS = ClientKeystoreSetup CommandLauncher InitConfigFile MungeCryptoPropertiesFilePath ServerKeystoreSetup SetupAsWindowsService UpdateWarFile server-java_msi | ||||
| DIST_SUBDIRS = ClientKeystoreSetup DeleteFile CommandLauncher InitConfigFile MungeCryptoPropertiesFilePath ServerKeystoreSetup SetupAsWindowsService ShutdownWindowsService UpdateWarFile server-java_msi | ||||
|  | ||||
| EXTRA_DIST = | ||||
|  | ||||
| .PHONY: package package-clean package-install package-uninstall | ||||
| package package-clean package-install package-uninstall: | ||||
| 	$(MAKE) -C ClientKeystoreSetup  $@ | ||||
| 	$(MAKE) -C DeleteFile  $@ | ||||
| 	$(MAKE) -C InitConfigFile  $@ | ||||
| 	$(MAKE) -C MungeCryptoPropertiesFilePath $@ | ||||
| 	$(MAKE) -C ServerKeystoreSetup $@ | ||||
| 	$(MAKE) -C SetupAsWindowsService $@ | ||||
| 	$(MAKE) -C ShutdownWindowsService $@ | ||||
| 	$(MAKE) -C UpdateWarFile $@ | ||||
| 	$(MAKE) -C server-java_msi $@ | ||||
|  | ||||
|   | ||||
| @@ -80,18 +80,15 @@ public class SetupAsWindowsService | ||||
| 			file = new File("c:\\test6.log"); | ||||
| 			fw = new FileWriter(file); | ||||
|  | ||||
| 			log("Here we go: " + args.length); | ||||
| 			for (int i = 0; i < args.length; i++) | ||||
| 			{ | ||||
| 				log("Arg " + i + " = " + args[i]); | ||||
| 			} | ||||
|  | ||||
| 			// Process the arguments | ||||
| 			log("Process args"); | ||||
| 			if (ERROR_NO_ERROR == (rc = processArgs(args))) | ||||
| 			{ | ||||
| 				// Process the properties | ||||
| 				log("Process properties"); | ||||
| 				if (ERROR_NO_ERROR == (rc = processProperties())) | ||||
| 				{ | ||||
| 					log("setupService"); | ||||
| 					rc = setupService(); | ||||
| 				} | ||||
| 			} | ||||
| @@ -156,6 +153,11 @@ public class SetupAsWindowsService | ||||
| 		log("New arg count " + args.length); | ||||
| 		for (i = 0; i < args.length; i++) | ||||
| 		{ | ||||
| 			if (null == args[i]) | ||||
| 			{ | ||||
| 				continue; | ||||
| 			} | ||||
|  | ||||
| 			log("arg[" + i + "] = " +args[i]); | ||||
|  | ||||
| 			// is this the install dir param? | ||||
| @@ -237,7 +239,6 @@ public class SetupAsWindowsService | ||||
| 		} | ||||
|  | ||||
| 		// Note: the properties file parameter is optional | ||||
|  | ||||
| 		return ERROR_NO_ERROR; | ||||
| 	} | ||||
|  | ||||
|   | ||||
| @@ -0,0 +1,77 @@ | ||||
| ####################################################################### | ||||
| # | ||||
| #  Copyright (C) 2004 Novell, Inc. | ||||
| # | ||||
| #  This program is free software; you can redistribute it and/or | ||||
| #  modify it under the terms of the GNU General Public | ||||
| #  License as published by the Free Software Foundation; either | ||||
| #  version 2 of the License, or (at your option) any later version. | ||||
| # | ||||
| #  This program 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 | ||||
| #  General Public License for more details. | ||||
| # | ||||
| #  You should have received a copy of the GNU General Public | ||||
| #  License along with this program; if not, write to the Free | ||||
| #  Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||||
| # | ||||
| #  Author: Greg Richardson <grichardson@novell.com> | ||||
| # | ||||
| ####################################################################### | ||||
|  | ||||
| SUBDIRS = | ||||
|  | ||||
| DIST_SUBDIRS = | ||||
|  | ||||
| EXTRA_DIST = ShutdownWindowsService.java | ||||
|  | ||||
| if DEBUG | ||||
| TARGET_CFG = Debug | ||||
| DEBUG = -g | ||||
| else | ||||
| TARGET_CFG = Release | ||||
| DEBUG = -g:none | ||||
| endif | ||||
|  | ||||
| PACKAGE = ShutdownWindowsService | ||||
| TARGET_FILE = $(PACKAGE).class | ||||
| LOG_FILE = $(PACKAGE).log | ||||
| JAVAFILES = ShutdownWindowsService.java  | ||||
| CLASSES = $(addprefix $(BUILDDIR)/, $(JAVAFILES:%.java=%.class)) | ||||
| BUILDDIR = bin/$(TARGET_CFG) | ||||
|  | ||||
| .PHONY: package package-clean package-install package-uninstall | ||||
|  | ||||
| all: $(BUILDDIR) $(CLASSES) | ||||
|  | ||||
| $(BUILDDIR)/%.class: %.java | ||||
| 	@rm -f $(LOG_FILE) $@ | ||||
| 	@echo [======== Compiling $@ ========] | ||||
| 	@javac $(DEBUG) -d $(BUILDDIR) $< 2> $(LOG_FILE) | ||||
| 	@echo $$CMD; \ | ||||
| 	if eval $$CMD; then \ | ||||
| 		ls -l $(BUILDDIR)/$(TARGET_FILE); \ | ||||
| 		cp $(BUILDDIR)/$(TARGET_FILE) bin; \ | ||||
| 	else \ | ||||
| 		grep -a "ERROR:" $(LOG_FILE); \ | ||||
| 	fi | ||||
|  | ||||
| $(BUILDDIR): | ||||
| 	[ -d $(BUILDDIR) ] || mkdir -p $(BUILDDIR) | ||||
|  | ||||
| 	 | ||||
| package-clean clean-local: | ||||
| 	rm -rf  bin/Release/* bin/Release bin/Debug/* bin/Debug bin/* bin *.log | ||||
|  | ||||
| clean: | ||||
| 	rm -rf  bin/Release/* bin/Release bin/Debug/* bin/Debug bin/* bin *.log | ||||
|  | ||||
| distclean-local: package-clean | ||||
| 	rm -f Makefile | ||||
|  | ||||
| maintainer-clean-local: | ||||
| 	rm -f Makefile.in | ||||
|  | ||||
|  | ||||
|  | ||||
| @@ -0,0 +1,397 @@ | ||||
| /*********************************************************************** | ||||
|  *  | ||||
|  *  Copyright (C) 2006 Novell, Inc. All Rights Reserved. | ||||
|  * | ||||
|  *  This library 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; version 2.1 | ||||
|  *  of the License. | ||||
|  * | ||||
|  *  This library 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 | ||||
|  *  Library Lesser General Public License for more details. | ||||
|  * | ||||
|  *  You should have received a copy of the GNU Lesser General Public | ||||
|  *  License along with this library; if not, Novell, Inc. | ||||
|  *  | ||||
|  *  To contact Novell about this file by physical or electronic mail,  | ||||
|  *  you may find current contact information at www.novell.com. | ||||
|  *  | ||||
|  *  Author: Juan Carlos Luciani <jluciani@novell.com> | ||||
|  *   | ||||
|  ***********************************************************************/ | ||||
|  | ||||
| import java.io.*; | ||||
| import java.util.*; | ||||
|  | ||||
| /** | ||||
|  * Summary description for ShutdownWindowsService | ||||
|  */ | ||||
| public class ShutdownWindowsService | ||||
| { | ||||
| 	final static int ERROR_NO_ERROR						= 0; | ||||
| 	final static int ERROR_INVALID_NUMBER_OF_PARAMS		= -1; | ||||
| 	final static int ERROR_EXEC_FAILED					= -2; | ||||
| 	final static int ERROR_EXEC_INTERRUPTED				= -3; | ||||
| 	final static int ERROR_IO_EXCEPTION					= -13; | ||||
| 	final static int ERROR_UNABLE_TO_READ_PROPERTIES	= -16; | ||||
| 	final static int ERROR_MISSING_INSTALL_DIR			= -18; | ||||
| 	final static int ERROR_INSTALL_DIR_NOT_A_DIR		= -19; | ||||
| 	final static int ERROR_BAD_INSTALL_DIR_PARAM		= -20; | ||||
| 	final static int ERROR_BAD_PROPERTY_FILE_PARAM		= -21; | ||||
| 	final static int ERROR_MISSING_PROPERTIES_FILE		= -22; | ||||
| 	final static int ERROR_MISSING_INSTALL_DIR_PARAM	= -23; | ||||
| 	final static int ERROR_MISSING_PROPERTY_FILE_PARAM	= -24; | ||||
| 	final static int ERROR_BAD_PROPERTY_PARAM			= -29; | ||||
|  | ||||
| 	final static String INSTALL_DIR_PROPERTY	= "ATS_INSTALL_DIR"; | ||||
| 	final static String PROPERTY_FILE_PARAM		= "propertyfile="; | ||||
| 	final static String INSTALL_DIR = "installdir="; | ||||
| 	final static String PROPERTY_FILE = "propertyfile="; | ||||
|  | ||||
| 	Properties		properties; | ||||
| 	File			fileProperties; | ||||
| 	FileInputStream	fisProperties; | ||||
| 	File			fileOutput; | ||||
| 	File			file; | ||||
| 	FileWriter		fw; | ||||
| 	String			sInstallDir; | ||||
| 	String			sOutput; | ||||
| 	int				rc; | ||||
|  | ||||
| 	public static void main(String[] args) | ||||
| 	{ | ||||
| 		ShutdownWindowsService p = new ShutdownWindowsService(args); | ||||
| 		System.exit(ERROR_NO_ERROR); | ||||
| 	} | ||||
|  | ||||
| 	ShutdownWindowsService(String[] args) | ||||
| 	{ | ||||
| 		rc = ERROR_NO_ERROR; | ||||
|  | ||||
| 		properties = new Properties(); | ||||
| 		fileProperties = null; | ||||
| 		fisProperties = null; | ||||
| 		fileOutput = null; | ||||
|  | ||||
| 		try | ||||
| 		{ | ||||
| 			file = new File("c:\\test7.log"); | ||||
| 			fw = new FileWriter(file); | ||||
|  | ||||
| 			// Process the arguments | ||||
| 			if (ERROR_NO_ERROR == (rc = processArgs(args))) | ||||
| 			{ | ||||
| 				// Process the properties | ||||
| 				if (ERROR_NO_ERROR == (rc = processProperties())) | ||||
| 				{ | ||||
| 					rc = shutdownService(); | ||||
| 				} | ||||
| 			} | ||||
|  | ||||
| 		} | ||||
| 		catch (IOException e) | ||||
| 		{ | ||||
| 			rc = ERROR_IO_EXCEPTION; | ||||
| 		} | ||||
| 		finally | ||||
| 		{ | ||||
| 			try | ||||
| 			{ | ||||
| 				log(rc); | ||||
| 				fw.flush(); | ||||
| 				fw.close(); | ||||
| 			} | ||||
| 			catch (Exception e1) | ||||
| 			{ | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	int processArgs(String[] argsOld) | ||||
| 	{ | ||||
| 		String sProperties; | ||||
| 		File fileInstallDir = null; | ||||
| 		int iEquals; | ||||
| 		String sKey; | ||||
| 		String sValue; | ||||
| 		int iOld; | ||||
| 		int i; | ||||
| 		String args[] = new String[argsOld.length]; | ||||
| 		int iNew; | ||||
|  | ||||
| 		log("Original arg count " + argsOld.length); | ||||
| 		for (i = 0; i < argsOld.length; i++) | ||||
| 		{ | ||||
| 			log("Arg " + i + " = " + argsOld[i] + "\r\n"); | ||||
| 		} | ||||
|  | ||||
| 		// Validate the number of parameters | ||||
| 		if (args.length < 2) | ||||
| 		{ | ||||
| 			return ERROR_INVALID_NUMBER_OF_PARAMS; | ||||
| 		} | ||||
|  | ||||
| 		iNew = -1; | ||||
| 		for (iOld = 0; iOld < argsOld.length; iOld++) | ||||
| 		{ | ||||
| 			if (0 <= argsOld[iOld].indexOf("=")) | ||||
| 			{ | ||||
| 				iNew++; | ||||
| 				args[iNew] = argsOld[iOld]; | ||||
| 				for (i = iOld + 1; i < argsOld.length && (-1 == argsOld[i].indexOf("=")); i++) | ||||
| 				{ | ||||
| 					args[iNew] += " " + argsOld[i]; | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
|  | ||||
| 		log("New arg count " + args.length); | ||||
| 		for (i = 0; i < args.length; i++) | ||||
| 		{ | ||||
| 			if (null == args[i]) | ||||
| 			{ | ||||
| 				continue; | ||||
| 			} | ||||
|  | ||||
| 			log("arg[" + i + "] = " +args[i]); | ||||
|  | ||||
| 			// is this the install dir param? | ||||
| 			if (args[i].startsWith(INSTALL_DIR)) | ||||
| 			{ | ||||
| 				// Make sure it is more the the param tag | ||||
| 				if (args[i].length() <= INSTALL_DIR.length()) | ||||
| 				{ | ||||
| 					return ERROR_BAD_INSTALL_DIR_PARAM; | ||||
| 				} | ||||
|  | ||||
| 				sInstallDir = args[i].substring(INSTALL_DIR.length()).trim(); | ||||
| 				fileInstallDir = new File(sInstallDir); | ||||
|  | ||||
| 				// Make sure the install dir can be found | ||||
| 				if (!fileInstallDir.exists()) | ||||
| 				{ | ||||
| 					return ERROR_MISSING_INSTALL_DIR; | ||||
| 				} | ||||
|  | ||||
| 				// Make sure the install dir is a directory | ||||
| 				if (!fileInstallDir.isDirectory()) | ||||
| 				{ | ||||
| 					return ERROR_INSTALL_DIR_NOT_A_DIR; | ||||
| 				} | ||||
|  | ||||
| 				properties.setProperty(INSTALL_DIR_PROPERTY, sInstallDir); | ||||
| 			} | ||||
|  | ||||
| 			// is this the properties file param? | ||||
| 			else if (args[i].startsWith(PROPERTY_FILE_PARAM)) | ||||
| 			{ | ||||
| 				// Make sure it is more than the param tag | ||||
| 				if (args[i].length() <= PROPERTY_FILE_PARAM.length()) | ||||
| 				{ | ||||
| 					return ERROR_BAD_PROPERTY_FILE_PARAM; | ||||
| 				} | ||||
|  | ||||
| 				sProperties = args[i].substring(PROPERTY_FILE_PARAM.length()).trim(); | ||||
| 				fileProperties = new File(sProperties); | ||||
|  | ||||
| 				// Make sure the properties file can be found | ||||
| 				if (!fileProperties.exists()) | ||||
| 				{ | ||||
| 					return ERROR_MISSING_PROPERTIES_FILE; | ||||
| 				} | ||||
|  | ||||
| 				// Read the properties | ||||
| 				try | ||||
| 				{ | ||||
| 					fisProperties = new FileInputStream(fileProperties); | ||||
| 					properties.load(fisProperties); | ||||
| 				} | ||||
| 				catch (IOException ioe) | ||||
| 				{ | ||||
| 					return ERROR_UNABLE_TO_READ_PROPERTIES; | ||||
| 				} | ||||
| 			} | ||||
|  | ||||
| 			// Handle additional parameters | ||||
| 			else | ||||
| 			{ | ||||
| 				if (-1 == (iEquals = args[i].indexOf("=")) || | ||||
| 					0 == iEquals || | ||||
| 					args[i].length() == iEquals) | ||||
| 				{ | ||||
| 					return ERROR_BAD_PROPERTY_PARAM; | ||||
| 				} | ||||
| 				sKey = args[i].substring(0, iEquals); | ||||
| 				sValue = args[i].substring(iEquals + 1); | ||||
| 				properties.setProperty(sKey, sValue); | ||||
| 			} | ||||
| 		} | ||||
|  | ||||
| 		// Make sure we got an install dir | ||||
| 		if (null == fileInstallDir) | ||||
| 		{ | ||||
| 			return ERROR_MISSING_INSTALL_DIR_PARAM; | ||||
| 		} | ||||
|  | ||||
| 		// Note: the properties file parameter is optional | ||||
|  | ||||
| 		return ERROR_NO_ERROR; | ||||
| 	} | ||||
|  | ||||
| 	int processProperties() | ||||
| 	{ | ||||
| 		try | ||||
| 		{ | ||||
| 			Enumeration e; | ||||
| 			String sKey; | ||||
| 			String sValue; | ||||
|  | ||||
| 			e = properties.propertyNames(); | ||||
|  | ||||
| 			while (e.hasMoreElements()) | ||||
| 			{ | ||||
| 				sKey = (String)e.nextElement(); | ||||
| 				sValue = (String)properties.get(sKey); | ||||
|  | ||||
| 				log("Property key = " + sKey + "  Value = " + sValue); | ||||
| 			} | ||||
| 		} | ||||
| 		catch (Exception ex1) | ||||
| 		{ | ||||
| 			return -111; | ||||
| 		} | ||||
|  | ||||
| 		return ERROR_NO_ERROR; | ||||
| 	} | ||||
|  | ||||
| 	int shutdownService() | ||||
| 	{ | ||||
| 		String sExe = (String)properties.get("TOMCAT5"); | ||||
| 		String sCommand = ""; | ||||
| 		int iReturn = ERROR_NO_ERROR; | ||||
|  | ||||
| 		sCommand = sExe + " //SS//CasaAuthTokenService"; | ||||
| 		if (ERROR_NO_ERROR != (iReturn = invokeCommand(sCommand))) | ||||
| 		{ | ||||
| 			return iReturn; | ||||
| 		} | ||||
|  | ||||
| 		sCommand = sExe + " //DS//CasaAuthTokenService"; | ||||
| 		if (ERROR_NO_ERROR != (iReturn = invokeCommand(sCommand))) | ||||
| 		{ | ||||
| 			return iReturn; | ||||
| 		} | ||||
|  | ||||
| 		return ERROR_NO_ERROR; | ||||
| 	} | ||||
|  | ||||
| 	int invokeCommand(String sCommand) | ||||
| 	{ | ||||
| 		Process p; | ||||
| 		int rc; | ||||
|  | ||||
| 		log("invoke command: " + sCommand); | ||||
| 		Runtime runtime = Runtime.getRuntime(); | ||||
| 		try | ||||
| 		{ | ||||
| 			p = runtime.exec(sCommand); | ||||
| 			try | ||||
| 			{ | ||||
| 				rc = p.waitFor(); | ||||
| 				log("invoke command return code: " + rc); | ||||
| 			} | ||||
| 			catch (InterruptedException ie) | ||||
| 			{ | ||||
| 				log(ERROR_EXEC_INTERRUPTED, sCommand); | ||||
| 				return ERROR_EXEC_INTERRUPTED; | ||||
| 			} | ||||
| 		} | ||||
| 		catch (IOException e) | ||||
| 		{ | ||||
| 			log("IOException"); | ||||
| 			return ERROR_EXEC_FAILED; | ||||
| 		} | ||||
|  | ||||
| 		return ERROR_NO_ERROR; | ||||
| 	} | ||||
|  | ||||
|  | ||||
|  | ||||
| 	void log(int err) | ||||
| 	{ | ||||
| 		log(err, null); | ||||
| 	} | ||||
|  | ||||
| 	void log(int err, String s) | ||||
| 	{ | ||||
| 		String sMessage = ""; | ||||
|  | ||||
| 		switch (err) | ||||
| 		{ | ||||
| 			case ERROR_NO_ERROR: | ||||
| 				sMessage = "No error"; | ||||
| 				break; | ||||
| 			case ERROR_INVALID_NUMBER_OF_PARAMS: | ||||
| 				sMessage = "Invalid number of parameters: 4 expected"; | ||||
| 				break; | ||||
| 			case ERROR_IO_EXCEPTION: | ||||
| 				sMessage = "IOException"; | ||||
| 				break; | ||||
| 			case ERROR_EXEC_FAILED: | ||||
| 				sMessage = "Exec failed"; | ||||
| 				break; | ||||
| 			case ERROR_EXEC_INTERRUPTED: | ||||
| 				sMessage = "Exec interrupted"; | ||||
| 				break; | ||||
| 			case ERROR_UNABLE_TO_READ_PROPERTIES: | ||||
| 				sMessage = "nable to read properties"; | ||||
| 				break; | ||||
| 			case ERROR_MISSING_INSTALL_DIR: | ||||
| 				sMessage = "Missing install directory"; | ||||
| 				break; | ||||
| 			case ERROR_INSTALL_DIR_NOT_A_DIR: | ||||
| 				sMessage = "Install directory is not a directory"; | ||||
| 				break; | ||||
| 			case ERROR_BAD_INSTALL_DIR_PARAM: | ||||
| 				sMessage = "Bad install directory parameter"; | ||||
| 				break; | ||||
| 			case ERROR_BAD_PROPERTY_FILE_PARAM: | ||||
| 				sMessage = "Bad property file parameter"; | ||||
| 				break; | ||||
| 			case ERROR_MISSING_PROPERTIES_FILE: | ||||
| 				sMessage = "Missing properties file"; | ||||
| 				break; | ||||
| 			case ERROR_MISSING_INSTALL_DIR_PARAM: | ||||
| 				sMessage = "Missing install directory parameter"; | ||||
| 				break; | ||||
| 			case ERROR_MISSING_PROPERTY_FILE_PARAM: | ||||
| 				sMessage = "Missing property file parameter"; | ||||
| 				break; | ||||
| 			case ERROR_BAD_PROPERTY_PARAM: | ||||
| 				sMessage = "Bad property parameter"; | ||||
| 				break; | ||||
| 			default: | ||||
| 				sMessage = "Unknown error: " + err; | ||||
| 				break; | ||||
| 		} | ||||
|  | ||||
| 		if (null != s) | ||||
| 		{ | ||||
| 			sMessage = sMessage + s; | ||||
| 		} | ||||
| 		log(sMessage); | ||||
| 	} | ||||
|  | ||||
| 	void log(String s) | ||||
| 	{ | ||||
| 		try | ||||
| 		{ | ||||
| 			fw.write(this.getClass().getName() + ": " + s + "\r\n"); | ||||
| 		} | ||||
| 		catch (IOException ioe) | ||||
| 		{ | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
| @@ -99,6 +99,18 @@ | ||||
|         } | ||||
|         "Entry" | ||||
|         { | ||||
|         "MsmKey" = "8:_43F51B14BBCA4E0A9786556A539FD88F" | ||||
|         "OwnerKey" = "8:_UNDEFINED" | ||||
|         "MsmSig" = "8:_UNDEFINED" | ||||
|         } | ||||
|         "Entry" | ||||
|         { | ||||
|         "MsmKey" = "8:_4594A449DFB94B1B8C326E3DC0B00919" | ||||
|         "OwnerKey" = "8:_UNDEFINED" | ||||
|         "MsmSig" = "8:_UNDEFINED" | ||||
|         } | ||||
|         "Entry" | ||||
|         { | ||||
|         "MsmKey" = "8:_492E9F6EE5ED45E6B360CEBA29C63A4F" | ||||
|         "OwnerKey" = "8:_UNDEFINED" | ||||
|         "MsmSig" = "8:_UNDEFINED" | ||||
| @@ -219,6 +231,12 @@ | ||||
|         } | ||||
|         "Entry" | ||||
|         { | ||||
|         "MsmKey" = "8:_ADF699EF93AE477F94571E0E50364B00" | ||||
|         "OwnerKey" = "8:_UNDEFINED" | ||||
|         "MsmSig" = "8:_UNDEFINED" | ||||
|         } | ||||
|         "Entry" | ||||
|         { | ||||
|         "MsmKey" = "8:_B29E25690B014C0B846CFC4698D08846" | ||||
|         "OwnerKey" = "8:_UNDEFINED" | ||||
|         "MsmSig" = "8:_UNDEFINED" | ||||
| @@ -386,6 +404,34 @@ | ||||
|     { | ||||
|         "CustomAction" | ||||
|         { | ||||
|             "{4AA51A2D-7D85-4A59-BA75-B0809FC8B380}:_02595416B509419086F13318E5A6E580" | ||||
|             { | ||||
|             "Name" = "8:CommandLauncher.exe (DeleteFile - CasaIdenTokenSettingsEditor.bat)" | ||||
|             "Condition" = "8:" | ||||
|             "Object" = "8:_32E2D317FBCD4B25904D5402E547B8A8" | ||||
|             "FileType" = "3:2" | ||||
|             "InstallAction" = "3:4" | ||||
|             "Arguments" = "8:[ATS_JAVA_EXE] -cp [TARGETDIR]ats\\bin DeleteFile file=[TARGETDIR]ats\\bin\\CasaIdenTokenSettingsEditor.bat" | ||||
|             "EntryPoint" = "8:" | ||||
|             "Sequence" = "3:12" | ||||
|             "Identifier" = "8:_3F049460_54B8_46F3_900D_C389747E68EC" | ||||
|             "InstallerClass" = "11:FALSE" | ||||
|             "CustomActionData" = "8:" | ||||
|             } | ||||
|             "{4AA51A2D-7D85-4A59-BA75-B0809FC8B380}:_09510491144349109522DD24482B7174" | ||||
|             { | ||||
|             "Name" = "8:CommandLauncher.exe (DeleteFile - server\\jks-store)" | ||||
|             "Condition" = "8:" | ||||
|             "Object" = "8:_32E2D317FBCD4B25904D5402E547B8A8" | ||||
|             "FileType" = "3:2" | ||||
|             "InstallAction" = "3:4" | ||||
|             "Arguments" = "8:[ATS_JAVA_EXE] -cp [TARGETDIR]ats\\bin DeleteFile file=[TARGETDIR]ats\\etc\\keys\\server\\jks-store" | ||||
|             "EntryPoint" = "8:" | ||||
|             "Sequence" = "3:4" | ||||
|             "Identifier" = "8:_89BDE0E0_BA46_4A4D_9220_389BE70C05FF" | ||||
|             "InstallerClass" = "11:FALSE" | ||||
|             "CustomActionData" = "8:" | ||||
|             } | ||||
|             "{4AA51A2D-7D85-4A59-BA75-B0809FC8B380}:_0C4AE9D91D7D47208BF7E9E0CBB1710F" | ||||
|             { | ||||
|             "Name" = "8:CommandLauncher.exe  (InitConfigFile - startup.bat)" | ||||
| @@ -395,11 +441,67 @@ | ||||
|             "InstallAction" = "3:1" | ||||
|             "Arguments" = "8:[ATS_JAVA_EXE] -cp [TARGETDIR]ats\\bin  InitConfigFile ATS_INSTALL_DIR=[TARGETDIR] propertyfile=[PROPERTYFILE]  template=[TARGETDIR]ats\\etc\\svc\\templates\\startup.bat output=[TARGETDIR]ats\\bin\\startup.bat" | ||||
|             "EntryPoint" = "8:" | ||||
|             "Sequence" = "3:7" | ||||
|             "Sequence" = "3:9" | ||||
|             "Identifier" = "8:_18F0776E_A735_4E77_B376_47F1F4F23F97" | ||||
|             "InstallerClass" = "11:FALSE" | ||||
|             "CustomActionData" = "8:" | ||||
|             } | ||||
|             "{4AA51A2D-7D85-4A59-BA75-B0809FC8B380}:_0FDC0BE5C7BB4F21BE2A35AFD7133779" | ||||
|             { | ||||
|             "Name" = "8:CommandLauncher.exe (DeleteFile - startup.bat)" | ||||
|             "Condition" = "8:" | ||||
|             "Object" = "8:_32E2D317FBCD4B25904D5402E547B8A8" | ||||
|             "FileType" = "3:2" | ||||
|             "InstallAction" = "3:4" | ||||
|             "Arguments" = "8:[ATS_JAVA_EXE] -cp [TARGETDIR]ats\\bin DeleteFile file=[TARGETDIR]ats\\bin\\startup.bat" | ||||
|             "EntryPoint" = "8:" | ||||
|             "Sequence" = "3:8" | ||||
|             "Identifier" = "8:_C928E564_1DCE_4404_98A5_1FE085EC9446" | ||||
|             "InstallerClass" = "11:FALSE" | ||||
|             "CustomActionData" = "8:" | ||||
|             } | ||||
|             "{4AA51A2D-7D85-4A59-BA75-B0809FC8B380}:_36863141C9454EFC8202B71293813223" | ||||
|             { | ||||
|             "Name" = "8:CommandLauncher.exe (DeleteFile - CasaSvcSettingsEditor.bat)" | ||||
|             "Condition" = "8:" | ||||
|             "Object" = "8:_32E2D317FBCD4B25904D5402E547B8A8" | ||||
|             "FileType" = "3:2" | ||||
|             "InstallAction" = "3:4" | ||||
|             "Arguments" = "8:[ATS_JAVA_EXE] -cp [TARGETDIR]ats\\bin DeleteFile file=[TARGETDIR]ats\\bin\\CasaSvcSettingsEditor.bat" | ||||
|             "EntryPoint" = "8:" | ||||
|             "Sequence" = "3:13" | ||||
|             "Identifier" = "8:_A739EC74_A674_4BD8_B872_AFF1DF991C21" | ||||
|             "InstallerClass" = "11:FALSE" | ||||
|             "CustomActionData" = "8:" | ||||
|             } | ||||
|             "{4AA51A2D-7D85-4A59-BA75-B0809FC8B380}:_457F14D6965540A081F31A1F841AFFB3" | ||||
|             { | ||||
|             "Name" = "8:CommandLauncher.exe (DeleteFile - client\\jks-store)" | ||||
|             "Condition" = "8:" | ||||
|             "Object" = "8:_32E2D317FBCD4B25904D5402E547B8A8" | ||||
|             "FileType" = "3:2" | ||||
|             "InstallAction" = "3:4" | ||||
|             "Arguments" = "8:[ATS_JAVA_EXE] -cp [TARGETDIR]ats\\bin DeleteFile file=[TARGETDIR]ats\\etc\\keys\\client\\jks-store" | ||||
|             "EntryPoint" = "8:" | ||||
|             "Sequence" = "3:3" | ||||
|             "Identifier" = "8:_EC4106EE_CF9E_45EB_B6E3_6FCE66653556" | ||||
|             "InstallerClass" = "11:FALSE" | ||||
|             "CustomActionData" = "8:" | ||||
|             } | ||||
|             "{4AA51A2D-7D85-4A59-BA75-B0809FC8B380}:_4A2EA62CF7E74BCF99C43F5A0C68CE7F" | ||||
|             { | ||||
|             "Name" = "8:CommandLauncher.exe (DeleteFile - crypto.properties) Must occur after UpdateWarFile" | ||||
|             "Condition" = "8:" | ||||
|             "Object" = "8:_32E2D317FBCD4B25904D5402E547B8A8" | ||||
|             "FileType" = "3:2" | ||||
|             "InstallAction" = "3:1" | ||||
|             "Arguments" = "8:[ATS_JAVA_EXE] -cp [TARGETDIR]ats\\bin DeleteFile file=[TARGETDIR]ats\\etc\\svc\\templates\\crypto.properties" | ||||
|             "EntryPoint" = "8:" | ||||
|             "Sequence" = "3:7" | ||||
|             "Identifier" = "8:_41435F8A_10DA_454F_AE4E_55B6EDC859B1" | ||||
|             "InstallerClass" = "11:FALSE" | ||||
|             "CustomActionData" = "8:" | ||||
|             } | ||||
|             "{4AA51A2D-7D85-4A59-BA75-B0809FC8B380}:_4AB953C8E8AA4E44B7A3D2DDD163C040" | ||||
|             { | ||||
|             "Name" = "8:CommandLauncher.exe (MungeCryptoPropertiesFilePath) Must occur after InitConfigFile for crypto.properties and prior to UpdateWarFile" | ||||
| @@ -428,6 +530,34 @@ | ||||
|             "InstallerClass" = "11:FALSE" | ||||
|             "CustomActionData" = "8:" | ||||
|             } | ||||
|             "{4AA51A2D-7D85-4A59-BA75-B0809FC8B380}:_6856EF9C699743C888919E8E4A66C24C" | ||||
|             { | ||||
|             "Name" = "8:CommandLauncher.exe (DeleteFile - catalinabase\\logs)" | ||||
|             "Condition" = "8:" | ||||
|             "Object" = "8:_32E2D317FBCD4B25904D5402E547B8A8" | ||||
|             "FileType" = "3:2" | ||||
|             "InstallAction" = "3:4" | ||||
|             "Arguments" = "8:[ATS_JAVA_EXE] -cp [TARGETDIR]ats\\bin DeleteFile file=[TARGETDIR]ats\\catalinabase\\logs filter=.log" | ||||
|             "EntryPoint" = "8:" | ||||
|             "Sequence" = "3:7" | ||||
|             "Identifier" = "8:_E6C59EBB_D6D2_48DC_A2C5_113AF9FEA805" | ||||
|             "InstallerClass" = "11:FALSE" | ||||
|             "CustomActionData" = "8:" | ||||
|             } | ||||
|             "{4AA51A2D-7D85-4A59-BA75-B0809FC8B380}:_79E2F134079A4BF0B250AD6842157864" | ||||
|             { | ||||
|             "Name" = "8:CommandLauncher.exe (DeleteFile - server.xml)" | ||||
|             "Condition" = "8:" | ||||
|             "Object" = "8:_32E2D317FBCD4B25904D5402E547B8A8" | ||||
|             "FileType" = "3:2" | ||||
|             "InstallAction" = "3:4" | ||||
|             "Arguments" = "8:[ATS_JAVA_EXE] -cp [TARGETDIR]ats\\bin DeleteFile file=[TARGETDIR]ats\\catalinabase\\conf\\server.xml" | ||||
|             "EntryPoint" = "8:" | ||||
|             "Sequence" = "3:5" | ||||
|             "Identifier" = "8:_A9D4BDAB_E372_45CF_B5F5_F99B51BABADD" | ||||
|             "InstallerClass" = "11:FALSE" | ||||
|             "CustomActionData" = "8:" | ||||
|             } | ||||
|             "{4AA51A2D-7D85-4A59-BA75-B0809FC8B380}:_89821E71155946E687F31736E33F4DB7" | ||||
|             { | ||||
|             "Name" = "8:CommandLauncher.exe (ServerKeystoreSetup)" | ||||
| @@ -442,6 +572,20 @@ | ||||
|             "InstallerClass" = "11:FALSE" | ||||
|             "CustomActionData" = "8:" | ||||
|             } | ||||
|             "{4AA51A2D-7D85-4A59-BA75-B0809FC8B380}:_9BBF79DF235045B88BA9523B7DF92CAB" | ||||
|             { | ||||
|             "Name" = "8:CommandLauncher.exe (ShutdownWindowsService)" | ||||
|             "Condition" = "8:" | ||||
|             "Object" = "8:_32E2D317FBCD4B25904D5402E547B8A8" | ||||
|             "FileType" = "3:2" | ||||
|             "InstallAction" = "3:4" | ||||
|             "Arguments" = "8:[ATS_JAVA_EXE] -cp [TARGETDIR]ats\\bin  ShutdownWindowsService installdir=[TARGETDIR] propertyfile=[PROPERTYFILE]" | ||||
|             "EntryPoint" = "8:" | ||||
|             "Sequence" = "3:1" | ||||
|             "Identifier" = "8:_B3A6BA0F_E061_4439_9858_14F6DA35353D" | ||||
|             "InstallerClass" = "11:FALSE" | ||||
|             "CustomActionData" = "8:" | ||||
|             } | ||||
|             "{4AA51A2D-7D85-4A59-BA75-B0809FC8B380}:_A374DE89164249E0BDB101D9571CF8E9" | ||||
|             { | ||||
|             "Name" = "8:CommandLauncher.exe (InitConfigFile - CasaSvcSettingsEditor.bat)" | ||||
| @@ -451,11 +595,39 @@ | ||||
|             "InstallAction" = "3:1" | ||||
|             "Arguments" = "8:[ATS_JAVA_EXE] -cp [TARGETDIR]ats\\bin InitConfigFile ATS_INSTALL_DIR=[TARGETDIR] propertyfile=[PROPERTYFILE]  template=[TARGETDIR]ats\\etc\\svc\\templates\\CasaSvcSettingsEditor.bat output=[TARGETDIR]ats\\bin\\CasaSvcSettingsEditor.bat" | ||||
|             "EntryPoint" = "8:" | ||||
|             "Sequence" = "3:12" | ||||
|             "Sequence" = "3:14" | ||||
|             "Identifier" = "8:_2E92C5A6_F77B_4CDA_A4EB_7819264E6DA9" | ||||
|             "InstallerClass" = "11:FALSE" | ||||
|             "CustomActionData" = "8:" | ||||
|             } | ||||
|             "{4AA51A2D-7D85-4A59-BA75-B0809FC8B380}:_A4E3ADA134304D4EA9BB9C104FE4629C" | ||||
|             { | ||||
|             "Name" = "8:CommandLauncher.exe (DeleteFile - svc.settings)" | ||||
|             "Condition" = "8:" | ||||
|             "Object" = "8:_32E2D317FBCD4B25904D5402E547B8A8" | ||||
|             "FileType" = "3:2" | ||||
|             "InstallAction" = "3:4" | ||||
|             "Arguments" = "8:[ATS_JAVA_EXE] -cp [TARGETDIR]ats\\bin DeleteFile file=[TARGETDIR]ats\\etc\\svc\\svc.settings" | ||||
|             "EntryPoint" = "8:" | ||||
|             "Sequence" = "3:14" | ||||
|             "Identifier" = "8:_FEF3A1C8_7D1E_4BA6_A4B7_D6285DF69D92" | ||||
|             "InstallerClass" = "11:FALSE" | ||||
|             "CustomActionData" = "8:" | ||||
|             } | ||||
|             "{4AA51A2D-7D85-4A59-BA75-B0809FC8B380}:_AB70804AFE244365A9C3ED7DA5656DE3" | ||||
|             { | ||||
|             "Name" = "8:CommandLauncher.exe (DeleteFile - shutdown.bat)" | ||||
|             "Condition" = "8:" | ||||
|             "Object" = "8:_32E2D317FBCD4B25904D5402E547B8A8" | ||||
|             "FileType" = "3:2" | ||||
|             "InstallAction" = "3:4" | ||||
|             "Arguments" = "8:[ATS_JAVA_EXE] -cp [TARGETDIR]ats\\bin DeleteFile file=[TARGETDIR]ats\\bin\\shutdown.bat" | ||||
|             "EntryPoint" = "8:" | ||||
|             "Sequence" = "3:9" | ||||
|             "Identifier" = "8:_E392726C_43F4_4233_B46D_D0488AACB842" | ||||
|             "InstallerClass" = "11:FALSE" | ||||
|             "CustomActionData" = "8:" | ||||
|             } | ||||
|             "{4AA51A2D-7D85-4A59-BA75-B0809FC8B380}:_AE2874BFCE6B428B9B16A9C5556C632E" | ||||
|             { | ||||
|             "Name" = "8:CommandLauncher.exe  (InitConfigFile - CasaAuthPolicyEditor.bat)" | ||||
| @@ -465,7 +637,7 @@ | ||||
|             "InstallAction" = "3:1" | ||||
|             "Arguments" = "8:[ATS_JAVA_EXE] -cp [TARGETDIR]ats\\bin InitConfigFile ATS_INSTALL_DIR=[TARGETDIR] propertyfile=[PROPERTYFILE]  template=[TARGETDIR]ats\\etc\\svc\\templates\\CasaAuthPolicyEditor.bat output=[TARGETDIR]ats\\bin\\CasaAuthPolicyEditor.bat" | ||||
|             "EntryPoint" = "8:" | ||||
|             "Sequence" = "3:9" | ||||
|             "Sequence" = "3:11" | ||||
|             "Identifier" = "8:_AC56AE2C_72B9_43DD_BEEF_7C3CD286D8AE" | ||||
|             "InstallerClass" = "11:FALSE" | ||||
|             "CustomActionData" = "8:" | ||||
| @@ -479,7 +651,7 @@ | ||||
|             "InstallAction" = "3:1" | ||||
|             "Arguments" = "8:[ATS_JAVA_EXE] -cp [TARGETDIR]ats\\bin  InitConfigFile ATS_INSTALL_DIR=[TARGETDIR] propertyfile=[PROPERTYFILE]  template=[TARGETDIR]ats\\etc\\svc\\templates\\shutdown.bat output=[TARGETDIR]ats\\bin\\shutdown.bat" | ||||
|             "EntryPoint" = "8:" | ||||
|             "Sequence" = "3:8" | ||||
|             "Sequence" = "3:10" | ||||
|             "Identifier" = "8:_03320D51_6BDF_4F8C_B6C0_214BF474A4C7" | ||||
|             "InstallerClass" = "11:FALSE" | ||||
|             "CustomActionData" = "8:" | ||||
| @@ -498,6 +670,20 @@ | ||||
|             "InstallerClass" = "11:FALSE" | ||||
|             "CustomActionData" = "8:" | ||||
|             } | ||||
|             "{4AA51A2D-7D85-4A59-BA75-B0809FC8B380}:_BE34098F060F40C4B76CF65CCCC7B8C6" | ||||
|             { | ||||
|             "Name" = "8:CommandLauncher.exe (DeleteFile - casaatsdSigningCert)" | ||||
|             "Condition" = "8:" | ||||
|             "Object" = "8:_32E2D317FBCD4B25904D5402E547B8A8" | ||||
|             "FileType" = "3:2" | ||||
|             "InstallAction" = "3:4" | ||||
|             "Arguments" = "8:[ATS_JAVA_EXE] -cp [TARGETDIR]ats\\bin DeleteFile file=[TARGETDIR]ats\\etc\\keys\\casaatsdSigningCert" | ||||
|             "EntryPoint" = "8:" | ||||
|             "Sequence" = "3:2" | ||||
|             "Identifier" = "8:_6A3F7F90_E1A4_4824_8AB1_ADD1485CD413" | ||||
|             "InstallerClass" = "11:FALSE" | ||||
|             "CustomActionData" = "8:" | ||||
|             } | ||||
|             "{4AA51A2D-7D85-4A59-BA75-B0809FC8B380}:_C085F74CD409462F8662188E243C3B3E" | ||||
|             { | ||||
|             "Name" = "8:CommandLauncher.exe (InitConfigFile - svc.setting)" | ||||
| @@ -507,7 +693,7 @@ | ||||
|             "InstallAction" = "3:1" | ||||
|             "Arguments" = "8:[ATS_JAVA_EXE] -cp [TARGETDIR]ats\\bin InitConfigFile ATS_INSTALL_DIR=[TARGETDIR] propertyfile=[PROPERTYFILE]  template=[TARGETDIR]ats\\etc\\svc\\templates\\svc.settings output=[TARGETDIR]ats\\etc\\svc\\svc.settings" | ||||
|             "EntryPoint" = "8:" | ||||
|             "Sequence" = "3:13" | ||||
|             "Sequence" = "3:15" | ||||
|             "Identifier" = "8:_276FE83B_55B4_4779_B844_1E46693FBDE3" | ||||
|             "InstallerClass" = "11:FALSE" | ||||
|             "CustomActionData" = "8:" | ||||
| @@ -535,7 +721,7 @@ | ||||
|             "InstallAction" = "3:1" | ||||
|             "Arguments" = "8:[ATS_JAVA_EXE] -cp [TARGETDIR]ats\\bin InitConfigFile ATS_INSTALL_DIR=[TARGETDIR] propertyfile=[PROPERTYFILE]  template=[TARGETDIR]ats\\etc\\svc\\templates\\CasaIdenTokenSettingsEditor.bat output=[TARGETDIR]ats\\bin\\CasaIdenTokenSettingsEditor.bat" | ||||
|             "EntryPoint" = "8:" | ||||
|             "Sequence" = "3:11" | ||||
|             "Sequence" = "3:13" | ||||
|             "Identifier" = "8:_FD7621D3_DCE1_4D53_855E_7F3A809067BB" | ||||
|             "InstallerClass" = "11:FALSE" | ||||
|             "CustomActionData" = "8:" | ||||
| @@ -554,6 +740,48 @@ | ||||
|             "InstallerClass" = "11:FALSE" | ||||
|             "CustomActionData" = "8:" | ||||
|             } | ||||
|             "{4AA51A2D-7D85-4A59-BA75-B0809FC8B380}:_E40220C987784FAD9A06EE2D5DE2EE04" | ||||
|             { | ||||
|             "Name" = "8:CommandLauncher.exe (DeleteFile - crypto.properties.munge) Must occur after MungeCryptoPropertiesFilePath" | ||||
|             "Condition" = "8:" | ||||
|             "Object" = "8:_32E2D317FBCD4B25904D5402E547B8A8" | ||||
|             "FileType" = "3:2" | ||||
|             "InstallAction" = "3:1" | ||||
|             "Arguments" = "8:[ATS_JAVA_EXE] -cp [TARGETDIR]ats\\bin DeleteFile file=[TARGETDIR]ats\\etc\\svc\\templates\\crypto.properties.munge" | ||||
|             "EntryPoint" = "8:" | ||||
|             "Sequence" = "3:8" | ||||
|             "Identifier" = "8:_9B4A731D_B624_4E26_9350_EEEEA32D8892" | ||||
|             "InstallerClass" = "11:FALSE" | ||||
|             "CustomActionData" = "8:" | ||||
|             } | ||||
|             "{4AA51A2D-7D85-4A59-BA75-B0809FC8B380}:_F400F2380DAC4E98A4280B67E7640B13" | ||||
|             { | ||||
|             "Name" = "8:CommandLauncher.exe (DeleteFile - CasaAuthPolicyEditor.bat)" | ||||
|             "Condition" = "8:" | ||||
|             "Object" = "8:_32E2D317FBCD4B25904D5402E547B8A8" | ||||
|             "FileType" = "3:2" | ||||
|             "InstallAction" = "3:4" | ||||
|             "Arguments" = "8:[ATS_JAVA_EXE] -cp [TARGETDIR]ats\\bin DeleteFile file=[TARGETDIR]ats\\bin\\CasaAuthPolicyEditor.bat" | ||||
|             "EntryPoint" = "8:" | ||||
|             "Sequence" = "3:10" | ||||
|             "Identifier" = "8:_FF871556_C261_4E94_B045_E57BD9740462" | ||||
|             "InstallerClass" = "11:FALSE" | ||||
|             "CustomActionData" = "8:" | ||||
|             } | ||||
|             "{4AA51A2D-7D85-4A59-BA75-B0809FC8B380}:_F7123131894544C3981B265A568C3288" | ||||
|             { | ||||
|             "Name" = "8:CommandLauncher.exe (DeleteFile - CasaAuthTokenSettingsEditor.bat)" | ||||
|             "Condition" = "8:" | ||||
|             "Object" = "8:_32E2D317FBCD4B25904D5402E547B8A8" | ||||
|             "FileType" = "3:2" | ||||
|             "InstallAction" = "3:4" | ||||
|             "Arguments" = "8:[ATS_JAVA_EXE] -cp [TARGETDIR]ats\\bin DeleteFile file=[TARGETDIR]ats\\bin\\CasaAuthTokenSettingsEditor.bat" | ||||
|             "EntryPoint" = "8:" | ||||
|             "Sequence" = "3:11" | ||||
|             "Identifier" = "8:_1D4E8737_1B23_4CEE_BE66_5F30AAF659A8" | ||||
|             "InstallerClass" = "11:FALSE" | ||||
|             "CustomActionData" = "8:" | ||||
|             } | ||||
|             "{4AA51A2D-7D85-4A59-BA75-B0809FC8B380}:_F866EA13E789416D8C4A00BF1AF426BB" | ||||
|             { | ||||
|             "Name" = "8:CommandLauncher.exe  (InitConfigFile - CasaAuthTokenSettingsEditor.bat)" | ||||
| @@ -563,11 +791,25 @@ | ||||
|             "InstallAction" = "3:1" | ||||
|             "Arguments" = "8:[ATS_JAVA_EXE] -cp [TARGETDIR]ats\\bin InitConfigFile ATS_INSTALL_DIR=[TARGETDIR] propertyfile=[PROPERTYFILE]  template=[TARGETDIR]ats\\etc\\svc\\templates\\CasaAuthTokenSettingsEditor.bat output=[TARGETDIR]ats\\bin\\CasaAuthTokenSettingsEditor.bat" | ||||
|             "EntryPoint" = "8:" | ||||
|             "Sequence" = "3:10" | ||||
|             "Sequence" = "3:12" | ||||
|             "Identifier" = "8:_91DE6CAB_D3AF_4332_B355_F25852979834" | ||||
|             "InstallerClass" = "11:FALSE" | ||||
|             "CustomActionData" = "8:" | ||||
|             } | ||||
|             "{4AA51A2D-7D85-4A59-BA75-B0809FC8B380}:_FA5911D2143A418289CC544BBA37B08B" | ||||
|             { | ||||
|             "Name" = "8:CommandLauncher.exe (DeleteFile - CasaAuthTokenSvc.war)" | ||||
|             "Condition" = "8:" | ||||
|             "Object" = "8:_32E2D317FBCD4B25904D5402E547B8A8" | ||||
|             "FileType" = "3:2" | ||||
|             "InstallAction" = "3:4" | ||||
|             "Arguments" = "8:[ATS_JAVA_EXE] -cp [TARGETDIR]ats\\bin DeleteFile file=[TARGETDIR]ats\\catalinabase\\webapps\\CasaAuthTokenSvc.war" | ||||
|             "EntryPoint" = "8:" | ||||
|             "Sequence" = "3:6" | ||||
|             "Identifier" = "8:_4DD8C40A_3468_403A_BBAB_0C076D0C9FEC" | ||||
|             "InstallerClass" = "11:FALSE" | ||||
|             "CustomActionData" = "8:" | ||||
|             } | ||||
|             "{4AA51A2D-7D85-4A59-BA75-B0809FC8B380}:_FDB694C476A043499BB15516B7E7C6B2" | ||||
|             { | ||||
|             "Name" = "8:CommandLauncher.exe (SetupAsWindowsService)" | ||||
| @@ -577,7 +819,7 @@ | ||||
|             "InstallAction" = "3:1" | ||||
|             "Arguments" = "8:[ATS_JAVA_EXE] -cp [TARGETDIR]ats\\bin  SetupAsWindowsService installdir=[TARGETDIR] propertyfile=[PROPERTYFILE]" | ||||
|             "EntryPoint" = "8:" | ||||
|             "Sequence" = "3:14" | ||||
|             "Sequence" = "3:16" | ||||
|             "Identifier" = "8:_61CF50D6_CFBF_4737_A055_8FE995A2D184" | ||||
|             "InstallerClass" = "11:FALSE" | ||||
|             "CustomActionData" = "8:" | ||||
| @@ -877,6 +1119,46 @@ | ||||
|             "IsDependency" = "11:FALSE" | ||||
|             "IsolateTo" = "8:" | ||||
|             } | ||||
|             "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_43F51B14BBCA4E0A9786556A539FD88F" | ||||
|             { | ||||
|             "SourcePath" = "8:..\\DeleteFile\\bin\\DeleteFile$1.class" | ||||
|             "TargetName" = "8:DeleteFile$1.class" | ||||
|             "Tag" = "8:" | ||||
|             "Folder" = "8:_62B357DC6D484761A18291FA3525320C" | ||||
|             "Condition" = "8:" | ||||
|             "Transitive" = "11:FALSE" | ||||
|             "Vital" = "11:TRUE" | ||||
|             "ReadOnly" = "11:FALSE" | ||||
|             "Hidden" = "11:FALSE" | ||||
|             "System" = "11:FALSE" | ||||
|             "Permanent" = "11:FALSE" | ||||
|             "SharedLegacy" = "11:FALSE" | ||||
|             "PackageAs" = "3:1" | ||||
|             "Register" = "3:1" | ||||
|             "Exclude" = "11:FALSE" | ||||
|             "IsDependency" = "11:FALSE" | ||||
|             "IsolateTo" = "8:" | ||||
|             } | ||||
|             "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_4594A449DFB94B1B8C326E3DC0B00919" | ||||
|             { | ||||
|             "SourcePath" = "8:..\\DeleteFile\\bin\\DeleteFile.class" | ||||
|             "TargetName" = "8:DeleteFile.class" | ||||
|             "Tag" = "8:" | ||||
|             "Folder" = "8:_62B357DC6D484761A18291FA3525320C" | ||||
|             "Condition" = "8:" | ||||
|             "Transitive" = "11:FALSE" | ||||
|             "Vital" = "11:TRUE" | ||||
|             "ReadOnly" = "11:FALSE" | ||||
|             "Hidden" = "11:FALSE" | ||||
|             "System" = "11:FALSE" | ||||
|             "Permanent" = "11:FALSE" | ||||
|             "SharedLegacy" = "11:FALSE" | ||||
|             "PackageAs" = "3:1" | ||||
|             "Register" = "3:1" | ||||
|             "Exclude" = "11:FALSE" | ||||
|             "IsDependency" = "11:FALSE" | ||||
|             "IsolateTo" = "8:" | ||||
|             } | ||||
|             "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_492E9F6EE5ED45E6B360CEBA29C63A4F" | ||||
|             { | ||||
|             "SourcePath" = "8:..\\..\\..\\Svc\\external\\xml-apis.jar" | ||||
| @@ -1277,6 +1559,26 @@ | ||||
|             "IsDependency" = "11:FALSE" | ||||
|             "IsolateTo" = "8:" | ||||
|             } | ||||
|             "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_ADF699EF93AE477F94571E0E50364B00" | ||||
|             { | ||||
|             "SourcePath" = "8:..\\ShutdownWindowsService\\bin\\ShutdownWindowsService.class" | ||||
|             "TargetName" = "8:ShutdownWindowsService.class" | ||||
|             "Tag" = "8:" | ||||
|             "Folder" = "8:_62B357DC6D484761A18291FA3525320C" | ||||
|             "Condition" = "8:" | ||||
|             "Transitive" = "11:FALSE" | ||||
|             "Vital" = "11:TRUE" | ||||
|             "ReadOnly" = "11:FALSE" | ||||
|             "Hidden" = "11:FALSE" | ||||
|             "System" = "11:FALSE" | ||||
|             "Permanent" = "11:FALSE" | ||||
|             "SharedLegacy" = "11:FALSE" | ||||
|             "PackageAs" = "3:1" | ||||
|             "Register" = "3:1" | ||||
|             "Exclude" = "11:FALSE" | ||||
|             "IsDependency" = "11:FALSE" | ||||
|             "IsolateTo" = "8:" | ||||
|             } | ||||
|             "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_B29E25690B014C0B846CFC4698D08846" | ||||
|             { | ||||
|             "SourcePath" = "8:..\\..\\..\\Svc\\tomcat5\\conf\\catalina.properties" | ||||
|   | ||||
		Reference in New Issue
	
	Block a user