//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// protected override void LogEventsFromTextOutput(string singleLine, MessageImportance messageImportance) { base.LogEventsFromTextOutput(JavaUtilities.ConvertJavaOutputToVS(singleLine), messageImportance); // // Intercept output class filenames and package addresses // . // e.g. // [checking com.example.nativemedia.MyRenderer] // [wrote AndroidMT\Debug\bin\classes\com\example\nativemedia\MyRenderer.class] // if (singleLine?.StartsWith("[") ?? false) { string sanitisedOutput = singleLine.Trim(new char[] { ' ', '[', ']' }); if (sanitisedOutput.StartsWith("checking ")) { string packageNameWithClassName = sanitisedOutput.Substring("checking ".Length); string packageNameWithoutClass = packageNameWithClassName.Substring(0, packageNameWithClassName.LastIndexOf('.')); _outputClassPackages.Add(packageNameWithoutClass); } else if (sanitisedOutput.StartsWith("wrote ")) { string fileWritten = sanitisedOutput.Substring("wrote ".Length); fileWritten = StripFileObjectDescriptor(fileWritten); _outputClassSourceFiles.Add(new TaskItem(fileWritten)); } } }
public void ConvertJavaOutputToVS() { Assert.AreEqual("warning : The signer's certificate is self-signed.", JavaUtilities.ConvertJavaOutputToVS("warning: The signer's certificate is self-signed.")); }
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// protected override void TrackedExecuteToolOutput(KeyValuePair <string, List <ITaskItem> > commandAndSourceFiles, string singleLine) { try { if (!string.IsNullOrWhiteSpace(singleLine)) { // // Intercept output class filenames and package addresses // . // e.g. // [checking com.example.nativemedia.MyRenderer] // [wrote AndroidMT\Debug\bin\classes\com\example\nativemedia\MyRenderer.class] // if (singleLine.StartsWith("[")) { if (Sources [0].GetMetadata("Verbose") == "true") { LogEventsFromTextOutput(string.Format("[{0}] {1}", ToolName, singleLine), MessageImportance.High); } string sanitisedOutput = singleLine.Trim(new char [] { ' ', '[', ']' }); if (sanitisedOutput.StartsWith("checking ")) { string packageNameWithClassName = sanitisedOutput.Substring("checking ".Length); string packageNameWithoutClass = packageNameWithClassName.Substring(0, packageNameWithClassName.LastIndexOf('.')); if (!m_outputClassPackages.Contains(packageNameWithoutClass)) { m_outputClassPackages.Add(packageNameWithoutClass); } } else if (sanitisedOutput.StartsWith("wrote ")) { string fileWritten = sanitisedOutput.Substring("wrote ".Length); fileWritten = StripFileObjectDescriptor(fileWritten); ITaskItem classFileItem = new TaskItem(fileWritten); classFileItem.SetMetadata("ClassOutputDirectory", Sources [0].GetMetadata("ClassOutputDirectory")); m_outputClassSourceFiles.Add(classFileItem); } } else { // // Java output differs from a Visual Studio's "jump to line" format, we transform that output here. // LogEventsFromTextOutput(JavaUtilities.ConvertJavaOutputToVS(singleLine), MessageImportance.High); } } } catch (Exception e) { Log.LogErrorFromException(e, true); } }
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// protected override void LogEventsFromTextOutput(string singleLine, MessageImportance messageImportance) { base.LogEventsFromTextOutput(JavaUtilities.ConvertJavaOutputToVS(singleLine), messageImportance); }