### Eclipse Workspace Patch 1.0 #P org.eclipse.jdt.core Index: batch/org/eclipse/jdt/internal/compiler/batch/Main.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/batch/org/eclipse/jdt/internal/compiler/batch/Main.java,v retrieving revision 1.268 diff -u -r1.268 Main.java --- batch/org/eclipse/jdt/internal/compiler/batch/Main.java 24 Oct 2006 02:54:49 -0000 1.268 +++ batch/org/eclipse/jdt/internal/compiler/batch/Main.java 10 Nov 2006 19:28:32 -0000 @@ -99,6 +99,8 @@ private static final String NUMBER_OF_WARNINGS = "warnings"; //$NON-NLS-1$ private static final String OPTION = "option"; //$NON-NLS-1$ private static final String OPTIONS = "options"; //$NON-NLS-1$ + private static final String OUTPUT = "output"; //$NON-NLS-1$ + private static final String PACKAGE = "package"; //$NON-NLS-1$ private static final String PATH = "path"; //$NON-NLS-1$ private static final String PROBLEM_ARGUMENT = "argument"; //$NON-NLS-1$ private static final String PROBLEM_ARGUMENT_VALUE = "value"; //$NON-NLS-1$ @@ -955,11 +957,29 @@ public void startLoggingSource(CompilationResult compilationResult) { if ((this.tagBits & Logger.XML) != 0) { ICompilationUnit compilationUnit = compilationResult.compilationUnit; - char[] fileName = compilationUnit.getFileName(); - File f = new File(new String(fileName)); - if (fileName != null) { - if (compilationUnit != null) { - this.parameters.put(Logger.PATH, f.getAbsolutePath()); + if (compilationUnit != null) { + char[] fileName = compilationUnit.getFileName(); + File f = new File(new String(fileName)); + if (fileName != null) { + this.parameters.put(Logger.PATH, f.getAbsolutePath()); + } + char[][] packageName = compilationResult.packageName; + if (packageName != null) { + this.parameters.put( + Logger.PACKAGE, + new String(CharOperation.concatWith(packageName, File.separatorChar))); + } + CompilationUnit unit = (CompilationUnit) compilationUnit; + String destinationPath = unit.destinationPath; + if (destinationPath == null) { + destinationPath = this.main.destinationPath; + } + if (destinationPath != null && destinationPath != NONE) { + if (File.separatorChar == '/') { + this.parameters.put(Logger.OUTPUT, destinationPath); + } else { + this.parameters.put(Logger.OUTPUT, destinationPath.replace('/', File.separatorChar)); + } } } this.printTag(Logger.SOURCE, this.parameters, true, false); Index: schema/compiler.dtd =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/schema/compiler.dtd,v retrieving revision 1.11 diff -u -r1.11 compiler.dtd --- schema/compiler.dtd 21 Apr 2006 17:59:21 -0000 1.11 +++ schema/compiler.dtd 10 Nov 2006 19:28:32 -0000 @@ -30,7 +30,9 @@ - +