Finished fixing problems related to log4j.properties on Windows.
This commit is contained in:
		| @@ -18,7 +18,7 @@ | ||||
|  *  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> | ||||
|  *  Author: Greg Richardson | ||||
|  *   | ||||
|  ***********************************************************************/ | ||||
|  | ||||
| @@ -30,311 +30,311 @@ import java.util.*; | ||||
|  */ | ||||
| public class MungeCryptoPropertiesFilePath | ||||
| { | ||||
| 	final static int ERROR_NO_ERROR						= 0; | ||||
| 	final static int ERROR_INVALID_NUMBER_OF_PARAMS		= -1; | ||||
| 	final static int ERROR_MISSING_INPUT_FILE			= -2; | ||||
| 	final static int ERROR_OUTPUT_COPY_FAILED			= -3; | ||||
| 	final static int ERROR_IO_EXCEPTION					= -4; | ||||
| 	final static int ERROR_BAD_INPUT_FILE_PARAM			= -5; | ||||
| 	final static int ERROR_BAD_OUTPUT_FILE_PARAM		= -6; | ||||
| 	final static int ERROR_MISSING_INPUT_FILE_PARAM		= -7; | ||||
| 	final static int ERROR_MISSING_OUTPUT_FILE_PARAM	= -8; | ||||
| 	final static int ERROR_CANNOT_READ_FILE				= -9; | ||||
| 	final static int ERROR_CANNOT_CREATE_FILE			= -10; | ||||
|    final static int ERROR_NO_ERROR                    = 0; | ||||
|    final static int ERROR_INVALID_NUMBER_OF_PARAMS    = -1; | ||||
|    final static int ERROR_MISSING_INPUT_FILE          = -2; | ||||
|    final static int ERROR_OUTPUT_COPY_FAILED          = -3; | ||||
|    final static int ERROR_IO_EXCEPTION                = -4; | ||||
|    final static int ERROR_BAD_INPUT_FILE_PARAM        = -5; | ||||
|    final static int ERROR_BAD_OUTPUT_FILE_PARAM       = -6; | ||||
|    final static int ERROR_MISSING_INPUT_FILE_PARAM    = -7; | ||||
|    final static int ERROR_MISSING_OUTPUT_FILE_PARAM   = -8; | ||||
|    final static int ERROR_CANNOT_READ_FILE            = -9; | ||||
|    final static int ERROR_CANNOT_CREATE_FILE          = -10; | ||||
|  | ||||
| 	final static String INPUT_FILE_PARAM	= "input="; | ||||
| 	final static String OUTPUT_FILE_PARAM	= "output="; | ||||
| 	final static String FILE_KEY			= "org.apache.ws.security.crypto.merlin.file="; | ||||
|    final static String INPUT_FILE_PARAM   = "input="; | ||||
|    final static String OUTPUT_FILE_PARAM  = "output="; | ||||
|    final static String FILE_KEY           = "org.apache.ws.security.crypto.merlin.file="; | ||||
|  | ||||
| 	File			fileInput; | ||||
| 	File			fileOutput; | ||||
| 	File			file; | ||||
| 	FileWriter		fw; | ||||
| 	String			sInput; | ||||
| 	String			sOutput; | ||||
| 	int				rc; | ||||
|    File        fileInput; | ||||
|    File        fileOutput; | ||||
|    File        file; | ||||
|    FileWriter  fw; | ||||
|    String      sInput; | ||||
|    String      sOutput; | ||||
|    int         rc; | ||||
|  | ||||
| 	public static void main(String[] args) | ||||
| 	{ | ||||
| 		MungeCryptoPropertiesFilePath p = new MungeCryptoPropertiesFilePath(args); | ||||
| 		System.exit(p.rc); | ||||
| 	} | ||||
|    public static void main(String[] args) | ||||
|    { | ||||
|       MungeCryptoPropertiesFilePath p = new MungeCryptoPropertiesFilePath(args); | ||||
|       System.exit(p.rc); | ||||
|    } | ||||
|  | ||||
| 	MungeCryptoPropertiesFilePath(String[] args) | ||||
| 	{ | ||||
| 		rc = ERROR_NO_ERROR; | ||||
|    MungeCryptoPropertiesFilePath(String[] args) | ||||
|    { | ||||
|       rc = ERROR_NO_ERROR; | ||||
|  | ||||
| 		fileInput = null; | ||||
| 		fileOutput = null; | ||||
|       fileInput = null; | ||||
|       fileOutput = null; | ||||
|  | ||||
| 		try | ||||
| 		{ | ||||
| 			file = new File("c:\\test5.log"); | ||||
| 			fw = new FileWriter(file); | ||||
|       try | ||||
|       { | ||||
|          file = new File("c:\\test5.log"); | ||||
|          fw = new FileWriter(file); | ||||
|  | ||||
| 			log("Here we go: " + args.length); | ||||
| 			for (int i = 0; i < args.length; i++) | ||||
| 			{ | ||||
| 				log("Arg " + i + " = " + args[i]); | ||||
| 			} | ||||
|          log("Here we go: " + args.length); | ||||
|          for (int i = 0; i < args.length; i++) | ||||
|          { | ||||
|             log("Arg " + i + " = " + args[i]); | ||||
|          } | ||||
|  | ||||
| 			// Process the arguments | ||||
| 			if (ERROR_NO_ERROR == (rc = processArgs(args))) | ||||
| 			{ | ||||
| 				// Process the file | ||||
| 				rc = createOutputFile(); | ||||
| 			} | ||||
|          // Process the arguments | ||||
|          if (ERROR_NO_ERROR == (rc = processArgs(args))) | ||||
|          { | ||||
|             // Process the file | ||||
|             rc = createOutputFile(); | ||||
|          } | ||||
|  | ||||
| 		} | ||||
| 		catch (IOException e) | ||||
| 		{ | ||||
| 			rc = ERROR_IO_EXCEPTION; | ||||
| 		} | ||||
| 		finally | ||||
| 		{ | ||||
| 			try | ||||
| 			{ | ||||
| 				log(rc); | ||||
| 				fw.flush(); | ||||
| 				fw.close(); | ||||
| 			} | ||||
| 			catch (Exception e1) | ||||
| 			{ | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
|       } | ||||
|       catch (IOException e) | ||||
|       { | ||||
|          rc = ERROR_IO_EXCEPTION; | ||||
|       } | ||||
|       finally | ||||
|       { | ||||
|          try | ||||
|          { | ||||
|             log(rc); | ||||
|             fw.flush(); | ||||
|             fw.close(); | ||||
|          } | ||||
|          catch (Exception e1) | ||||
|          { | ||||
|          } | ||||
|       } | ||||
|    } | ||||
|  | ||||
| 	int processArgs(String[] argsOld) | ||||
| 	{ | ||||
| 		int iOld; | ||||
| 		int i; | ||||
| 		String args[] = new String[argsOld.length]; | ||||
| 		int iNew; | ||||
|    int processArgs(String[] argsOld) | ||||
|    { | ||||
|       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"); | ||||
| 		} | ||||
|       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 (argsOld.length < 2) | ||||
| 		{ | ||||
| 			return ERROR_INVALID_NUMBER_OF_PARAMS; | ||||
| 		} | ||||
|       // Validate the number of parameters | ||||
|       if (argsOld.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]; | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
|       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++) | ||||
| 		{ | ||||
| 			log("Arg " + i + " = " + args[i] + "\r\n"); | ||||
| 		} | ||||
|       log("New arg count " + args.length); | ||||
|       for (i = 0; i < args.length; i++) | ||||
|       { | ||||
|          log("Arg " + i + " = " + args[i] + "\r\n"); | ||||
|       } | ||||
|  | ||||
| 		for (i = 0; i <= iNew; i++) | ||||
| 		{ | ||||
| 			log("arg[" + i + "] = " +args[i]); | ||||
|       for (i = 0; i <= iNew; i++) | ||||
|       { | ||||
|          log("arg[" + i + "] = " +args[i]); | ||||
|  | ||||
| 			if (args[i].startsWith(INPUT_FILE_PARAM)) | ||||
| 			{ | ||||
| 				// Make sure it is more than the param tag | ||||
| 				if (args[i].length() <= INPUT_FILE_PARAM.length()) | ||||
| 				{ | ||||
| 					return ERROR_BAD_INPUT_FILE_PARAM; | ||||
| 				} | ||||
|          if (args[i].startsWith(INPUT_FILE_PARAM)) | ||||
|          { | ||||
|             // Make sure it is more than the param tag | ||||
|             if (args[i].length() <= INPUT_FILE_PARAM.length()) | ||||
|             { | ||||
|                return ERROR_BAD_INPUT_FILE_PARAM; | ||||
|             } | ||||
|  | ||||
| 				sInput = args[i].substring(INPUT_FILE_PARAM.length()).trim(); | ||||
| 				fileInput = new File(sInput); | ||||
|             sInput = args[i].substring(INPUT_FILE_PARAM.length()).trim(); | ||||
|             fileInput = new File(sInput); | ||||
|  | ||||
| 				// Make sure the input file can be found | ||||
| 				if (!fileInput.exists()) | ||||
| 				{ | ||||
| 					log(ERROR_MISSING_INPUT_FILE, sInput); | ||||
| 					return ERROR_MISSING_INPUT_FILE; | ||||
| 				} | ||||
| 			} | ||||
|             // Make sure the input file can be found | ||||
|             if (!fileInput.exists()) | ||||
|             { | ||||
|                log(ERROR_MISSING_INPUT_FILE, sInput); | ||||
|                return ERROR_MISSING_INPUT_FILE; | ||||
|             } | ||||
|          } | ||||
|  | ||||
| 			else if (args[i].startsWith(OUTPUT_FILE_PARAM)) | ||||
| 			{ | ||||
| 				// Make sure it is more than the param tag | ||||
| 				if (args[i].length() <= OUTPUT_FILE_PARAM.length()) | ||||
| 				{ | ||||
| 					return ERROR_BAD_OUTPUT_FILE_PARAM; | ||||
| 				} | ||||
|          else if (args[i].startsWith(OUTPUT_FILE_PARAM)) | ||||
|          { | ||||
|             // Make sure it is more than the param tag | ||||
|             if (args[i].length() <= OUTPUT_FILE_PARAM.length()) | ||||
|             { | ||||
|                return ERROR_BAD_OUTPUT_FILE_PARAM; | ||||
|             } | ||||
|  | ||||
| 				sOutput = args[i].substring(OUTPUT_FILE_PARAM.length()).trim(); | ||||
| 				fileOutput = new File(sOutput); | ||||
| 			} | ||||
| 		} | ||||
|             sOutput = args[i].substring(OUTPUT_FILE_PARAM.length()).trim(); | ||||
|             fileOutput = new File(sOutput); | ||||
|          } | ||||
|       } | ||||
|  | ||||
| 		// Make sure we got an input file | ||||
| 		if (null == fileInput) | ||||
| 		{ | ||||
| 			return ERROR_MISSING_INPUT_FILE_PARAM; | ||||
| 		} | ||||
|       // Make sure we got an input file | ||||
|       if (null == fileInput) | ||||
|       { | ||||
|          return ERROR_MISSING_INPUT_FILE_PARAM; | ||||
|       } | ||||
|  | ||||
| 		// Make sure we got an output file | ||||
| 		if (null == fileOutput) | ||||
| 		{ | ||||
| 			return ERROR_MISSING_OUTPUT_FILE_PARAM; | ||||
| 		} | ||||
|       // Make sure we got an output file | ||||
|       if (null == fileOutput) | ||||
|       { | ||||
|          return ERROR_MISSING_OUTPUT_FILE_PARAM; | ||||
|       } | ||||
|  | ||||
| 		return ERROR_NO_ERROR; | ||||
| 	} | ||||
|       return ERROR_NO_ERROR; | ||||
|    } | ||||
|  | ||||
| 	int createOutputFile() | ||||
| 	{ | ||||
| 		LineNumberReader lnr = null; | ||||
| 		FileWriter fwOutput = null; | ||||
| 		String sLineTemplate; | ||||
| 		String sLineOutput; | ||||
| 		int iSearchFor; | ||||
|    int createOutputFile() | ||||
|    { | ||||
|       LineNumberReader lnr = null; | ||||
|       FileWriter fwOutput = null; | ||||
|       String sLineTemplate; | ||||
|       String sLineOutput; | ||||
|       int iSearchFor; | ||||
|  | ||||
| 		try | ||||
| 		{ | ||||
| 			// Open the file | ||||
| 			lnr = new LineNumberReader(new FileReader(fileInput)); | ||||
| 		} | ||||
| 		catch (Exception e) | ||||
| 		{ | ||||
| 			return ERROR_CANNOT_READ_FILE; | ||||
| 		} | ||||
|       try | ||||
|       { | ||||
|          // Open the file | ||||
|          lnr = new LineNumberReader(new FileReader(fileInput)); | ||||
|       } | ||||
|       catch (Exception e) | ||||
|       { | ||||
|          return ERROR_CANNOT_READ_FILE; | ||||
|       } | ||||
|  | ||||
| 		try | ||||
| 		{ | ||||
| 			fwOutput = new FileWriter(fileOutput); | ||||
| 		} | ||||
| 		catch (Exception e) | ||||
| 		{ | ||||
| 			return ERROR_CANNOT_CREATE_FILE; | ||||
| 		} | ||||
| 		try | ||||
| 		{ | ||||
| 			// For each line of text in the template file... | ||||
| 			while (null != (sLineTemplate = lnr.readLine())) | ||||
| 			{ | ||||
| 				sLineOutput = sLineTemplate; | ||||
| 				log("<-- " + sLineOutput); | ||||
|       try | ||||
|       { | ||||
|          fwOutput = new FileWriter(fileOutput); | ||||
|       } | ||||
|       catch (Exception e) | ||||
|       { | ||||
|          return ERROR_CANNOT_CREATE_FILE; | ||||
|       } | ||||
|       try | ||||
|       { | ||||
|          // For each line of text in the template file... | ||||
|          while (null != (sLineTemplate = lnr.readLine())) | ||||
|          { | ||||
|             sLineOutput = sLineTemplate; | ||||
|             log("<-- " + sLineOutput); | ||||
|  | ||||
| 				if (sLineOutput.trim().startsWith(FILE_KEY)) | ||||
| 				{ | ||||
| 					// Replace all instances of the line separator on the line | ||||
| 					while (-1 != (iSearchFor = sLineOutput.indexOf("\\"))) | ||||
| 					{ | ||||
| 						log("replacing \\ at position " + iSearchFor + " with //"); | ||||
| 						sLineOutput = sLineOutput.substring(0, iSearchFor) + "//" + | ||||
| 								sLineOutput.substring(iSearchFor + 1); | ||||
| 					} | ||||
| 				} | ||||
| 				try | ||||
| 				{ | ||||
| 					fwOutput.write(sLineOutput + "\r\n"); | ||||
| 					log("--> " + sLineOutput); | ||||
| 				} | ||||
| 				catch (Exception e) | ||||
| 				{ | ||||
| 					return -42; | ||||
| 				} | ||||
| 			} | ||||
|             if (sLineOutput.trim().startsWith(FILE_KEY)) | ||||
|             { | ||||
|                // Replace all instances of the line separator on the line | ||||
|                while (-1 != (iSearchFor = sLineOutput.indexOf("\\"))) | ||||
|                { | ||||
|                   log("replacing \\ at position " + iSearchFor + " with //"); | ||||
|                   sLineOutput = sLineOutput.substring(0, iSearchFor) + "//" + | ||||
|                         sLineOutput.substring(iSearchFor + 1); | ||||
|                } | ||||
|             } | ||||
|             try | ||||
|             { | ||||
|                fwOutput.write(sLineOutput + "\r\n"); | ||||
|                log("--> " + sLineOutput); | ||||
|             } | ||||
|             catch (Exception e) | ||||
|             { | ||||
|                return -42; | ||||
|             } | ||||
|          } | ||||
|  | ||||
| 			// Clean up | ||||
| 			fwOutput.flush(); | ||||
| 			fwOutput.close(); | ||||
| 			lnr.close(); | ||||
| 		} | ||||
| 		catch (Exception e) | ||||
| 		{ | ||||
| 			return ERROR_OUTPUT_COPY_FAILED; | ||||
| 		} | ||||
| 		return ERROR_NO_ERROR; | ||||
| 	} | ||||
|          // Clean up | ||||
|          fwOutput.flush(); | ||||
|          fwOutput.close(); | ||||
|          lnr.close(); | ||||
|       } | ||||
|       catch (Exception e) | ||||
|       { | ||||
|          return ERROR_OUTPUT_COPY_FAILED; | ||||
|       } | ||||
|       return ERROR_NO_ERROR; | ||||
|    } | ||||
|  | ||||
| 	void log(int err) | ||||
| 	{ | ||||
| 		log(err, null); | ||||
| 	} | ||||
|    void log(int err) | ||||
|    { | ||||
|       log(err, null); | ||||
|    } | ||||
|  | ||||
| 	void log(int err, String s) | ||||
| 	{ | ||||
| 		String sMessage = ""; | ||||
|    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: 2 expected"; | ||||
| 				break; | ||||
|       switch (err) | ||||
|       { | ||||
|          case ERROR_NO_ERROR: | ||||
|             sMessage = "No error"; | ||||
|             break; | ||||
|          case ERROR_INVALID_NUMBER_OF_PARAMS: | ||||
|             sMessage = "Invalid number of parameters: 2 expected"; | ||||
|             break; | ||||
|  | ||||
| 			case ERROR_MISSING_INPUT_FILE: | ||||
| 				sMessage = "Missing input file"; | ||||
| 				break; | ||||
|          case ERROR_MISSING_INPUT_FILE: | ||||
|             sMessage = "Missing input file"; | ||||
|             break; | ||||
|  | ||||
| 			case ERROR_OUTPUT_COPY_FAILED: | ||||
| 				sMessage = "Unable to create output file"; | ||||
| 				break; | ||||
|          case ERROR_OUTPUT_COPY_FAILED: | ||||
|             sMessage = "Unable to create output file"; | ||||
|             break; | ||||
|  | ||||
| 			case ERROR_IO_EXCEPTION: | ||||
| 				sMessage = "IOException"; | ||||
| 				break; | ||||
|          case ERROR_IO_EXCEPTION: | ||||
|             sMessage = "IOException"; | ||||
|             break; | ||||
|  | ||||
| 			case ERROR_BAD_INPUT_FILE_PARAM: | ||||
| 				sMessage = "Invalid input file parameter"; | ||||
| 				break; | ||||
|          case ERROR_BAD_INPUT_FILE_PARAM: | ||||
|             sMessage = "Invalid input file parameter"; | ||||
|             break; | ||||
|  | ||||
| 			case ERROR_BAD_OUTPUT_FILE_PARAM: | ||||
| 				sMessage = "Invalid output file parameter"; | ||||
| 				break; | ||||
|          case ERROR_BAD_OUTPUT_FILE_PARAM: | ||||
|             sMessage = "Invalid output file parameter"; | ||||
|             break; | ||||
|  | ||||
| 			case ERROR_MISSING_INPUT_FILE_PARAM: | ||||
| 				sMessage = "Missing input file parameter"; | ||||
| 				break; | ||||
|          case ERROR_MISSING_INPUT_FILE_PARAM: | ||||
|             sMessage = "Missing input file parameter"; | ||||
|             break; | ||||
|  | ||||
| 			case ERROR_MISSING_OUTPUT_FILE_PARAM: | ||||
| 				sMessage = "Missing output file parameter"; | ||||
| 				break; | ||||
|          case ERROR_MISSING_OUTPUT_FILE_PARAM: | ||||
|             sMessage = "Missing output file parameter"; | ||||
|             break; | ||||
|  | ||||
| 			case ERROR_CANNOT_READ_FILE: | ||||
| 				sMessage = "Cannot read file"; | ||||
| 				break; | ||||
|          case ERROR_CANNOT_READ_FILE: | ||||
|             sMessage = "Cannot read file"; | ||||
|             break; | ||||
|  | ||||
| 			case ERROR_CANNOT_CREATE_FILE: | ||||
| 				sMessage = "Cannot create file"; | ||||
| 				break; | ||||
|          case ERROR_CANNOT_CREATE_FILE: | ||||
|             sMessage = "Cannot create file"; | ||||
|             break; | ||||
|  | ||||
| 			default: | ||||
| 				sMessage = "Unknown error: " + err; | ||||
| 				break; | ||||
| 		} | ||||
|          default: | ||||
|             sMessage = "Unknown error: " + err; | ||||
|             break; | ||||
|       } | ||||
|  | ||||
| 		if (null != s) | ||||
| 		{ | ||||
| 			sMessage = sMessage + s; | ||||
| 		} | ||||
| 		log(sMessage); | ||||
| 	} | ||||
|       if (null != s) | ||||
|       { | ||||
|          sMessage = sMessage + s; | ||||
|       } | ||||
|       log(sMessage); | ||||
|    } | ||||
|  | ||||
| 	void log(String s) | ||||
| 	{ | ||||
| 		try | ||||
| 		{ | ||||
| 			fw.write(this.getClass().getName() + ": " + s + "\r\n"); | ||||
| 		} | ||||
| 		catch (IOException ioe) | ||||
| 		{ | ||||
| 		} | ||||
| 	} | ||||
|    void log(String s) | ||||
|    { | ||||
|       try | ||||
|       { | ||||
|          fw.write(this.getClass().getName() + ": " + s + "\r\n"); | ||||
|       } | ||||
|       catch (IOException ioe) | ||||
|       { | ||||
|       } | ||||
|    } | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user