[pkg-java] r2927 - in trunk/eclipse/debian: . patches
Matthias Klose
doko at alioth.debian.org
Thu Jan 11 22:46:30 CET 2007
Author: doko
Date: 2007-01-11 22:46:29 +0100 (Thu, 11 Jan 2007)
New Revision: 2927
Added:
trunk/eclipse/debian/patches/eclipse-ecj-gcj.dpatch
Modified:
trunk/eclipse/debian/changelog
trunk/eclipse/debian/rules
Log:
* debian/patches/eclipse-ecj-gcj.dpatch: New, same as in ecj-bootstrap.
Modified: trunk/eclipse/debian/changelog
===================================================================
--- trunk/eclipse/debian/changelog 2007-01-10 15:37:29 UTC (rev 2926)
+++ trunk/eclipse/debian/changelog 2007-01-11 21:46:29 UTC (rev 2927)
@@ -3,6 +3,7 @@
[ Matthias Klose ]
* libswt3.2-gtk-jni: Conflict with libswt-gnome-gtk-3.2-jni as well.
Closes: #401570.
+ * debian/patches/eclipse-ecj-gcj.dpatch: New, same as in ecj-bootstrap.
-- Matthias Klose <doko at debian.org> Mon, 8 Jan 2007 18:50:11 +0100
Added: trunk/eclipse/debian/patches/eclipse-ecj-gcj.dpatch
===================================================================
--- trunk/eclipse/debian/patches/eclipse-ecj-gcj.dpatch 2007-01-10 15:37:29 UTC (rev 2926)
+++ trunk/eclipse/debian/patches/eclipse-ecj-gcj.dpatch 2007-01-11 21:46:29 UTC (rev 2927)
@@ -0,0 +1,1208 @@
+#! /bin/sh -e
+##
+## DP:
+
+[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
+patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
+
+if [ $# -ne 1 ]; then
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1
+fi
+case "$1" in
+ -patch)
+ patch $patch_opts -p0 < $0;;
+ -unpatch)
+ patch $patch_opts -p0 -R < $0;;
+ *)
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1;;
+esac
+exit 0
+
+ at DPATCH@
+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.254
+diff -u -r1.254 Main.java
+--- source-tree/plugins/org.eclipse.jdt.core/batch/org/eclipse/jdt/internal/compiler/batch/Main.java 2 May 2006 13:45:31 -0000 1.254
++++ source-tree/plugins/org.eclipse.jdt.core/batch/org/eclipse/jdt/internal/compiler/batch/Main.java 18 Jul 2006 22:46:41 -0000
+@@ -1392,6 +1392,391 @@
+ }
+
+ /*
++Handle a single warning token.
++*/
++protected void handleWarningToken(String token, boolean isEnabling,
++ boolean useEnableJavadoc) throws InvalidInputException {
++ if (token.equals("constructorName")) { //$NON-NLS-1$
++ this.options.put(
++ CompilerOptions.OPTION_ReportMethodWithConstructorName,
++ isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
++ } else if (token.equals("pkgDefaultMethod") || token.equals("packageDefaultMethod")/*backward compatible*/ ) { //$NON-NLS-1$ //$NON-NLS-2$
++ this.options.put(
++ CompilerOptions.OPTION_ReportOverridingPackageDefaultMethod,
++ isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
++ } else if (token.equals("maskedCatchBlock") || token.equals("maskedCatchBlocks")/*backward compatible*/) { //$NON-NLS-1$ //$NON-NLS-2$
++ this.options.put(
++ CompilerOptions.OPTION_ReportHiddenCatchBlock,
++ isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
++ } else if (token.equals("deprecation")) { //$NON-NLS-1$
++ this.options.put(
++ CompilerOptions.OPTION_ReportDeprecation,
++ isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
++ this.options.put(
++ CompilerOptions.OPTION_ReportDeprecationInDeprecatedCode,
++ CompilerOptions.DISABLED);
++ this.options.put(
++ CompilerOptions.OPTION_ReportDeprecationWhenOverridingDeprecatedMethod,
++ CompilerOptions.DISABLED);
++ } else if (token.equals("allDeprecation")) { //$NON-NLS-1$
++ this.options.put(
++ CompilerOptions.OPTION_ReportDeprecation,
++ isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
++ this.options.put(
++ CompilerOptions.OPTION_ReportDeprecationInDeprecatedCode,
++ isEnabling ? CompilerOptions.ENABLED : CompilerOptions.DISABLED);
++ this.options.put(
++ CompilerOptions.OPTION_ReportDeprecationWhenOverridingDeprecatedMethod,
++ isEnabling ? CompilerOptions.ENABLED : CompilerOptions.DISABLED);
++ } else if (token.equals("unusedLocal") || token.equals("unusedLocals")/*backward compatible*/) { //$NON-NLS-1$ //$NON-NLS-2$
++ this.options.put(
++ CompilerOptions.OPTION_ReportUnusedLocal,
++ isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
++ } else if (token.equals("unusedArgument") || token.equals("unusedArguments")/*backward compatible*/) { //$NON-NLS-1$ //$NON-NLS-2$
++ this.options.put(
++ CompilerOptions.OPTION_ReportUnusedParameter,
++ isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
++ } else if (token.equals("unusedImport") || token.equals("unusedImports")/*backward compatible*/) { //$NON-NLS-1$ //$NON-NLS-2$
++ this.options.put(
++ CompilerOptions.OPTION_ReportUnusedImport,
++ isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
++ } else if (token.equals("unusedPrivate")) { //$NON-NLS-1$
++ this.options.put(
++ CompilerOptions.OPTION_ReportUnusedPrivateMember,
++ isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
++ } else if (token.equals("unusedLabel")) { //$NON-NLS-1$
++ this.options.put(
++ CompilerOptions.OPTION_ReportUnusedLabel,
++ isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
++ } else if (token.equals("localHiding")) { //$NON-NLS-1$
++ this.options.put(
++ CompilerOptions.OPTION_ReportLocalVariableHiding,
++ isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
++ } else if (token.equals("fieldHiding")) { //$NON-NLS-1$
++ this.options.put(
++ CompilerOptions.OPTION_ReportFieldHiding,
++ isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
++ } else if (token.equals("specialParamHiding")) { //$NON-NLS-1$
++ this.options.put(
++ CompilerOptions.OPTION_ReportSpecialParameterHidingField,
++ isEnabling ? CompilerOptions.ENABLED : CompilerOptions.DISABLED);
++ } else if (token.equals("conditionAssign")) { //$NON-NLS-1$
++ this.options.put(
++ CompilerOptions.OPTION_ReportPossibleAccidentalBooleanAssignment,
++ isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
++ } else if (token.equals("syntheticAccess") //$NON-NLS-1$
++ || token.equals("synthetic-access")) { //$NON-NLS-1$
++ this.options.put(
++ CompilerOptions.OPTION_ReportSyntheticAccessEmulation,
++ isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
++ } else if (token.equals("nls")) { //$NON-NLS-1$
++ this.options.put(
++ CompilerOptions.OPTION_ReportNonExternalizedStringLiteral,
++ isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
++ } else if (token.equals("staticReceiver")) { //$NON-NLS-1$
++ this.options.put(
++ CompilerOptions.OPTION_ReportNonStaticAccessToStatic,
++ isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
++ } else if (token.equals("indirectStatic")) { //$NON-NLS-1$
++ this.options.put(
++ CompilerOptions.OPTION_ReportIndirectStaticAccess,
++ isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
++ } else if (token.equals("noEffectAssign")) { //$NON-NLS-1$
++ this.options.put(
++ CompilerOptions.OPTION_ReportNoEffectAssignment,
++ isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
++ } else if (token.equals("intfNonInherited") || token.equals("interfaceNonInherited")/*backward compatible*/) { //$NON-NLS-1$ //$NON-NLS-2$
++ this.options.put(
++ CompilerOptions.OPTION_ReportIncompatibleNonInheritedInterfaceMethod,
++ isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
++ } else if (token.equals("charConcat") || token.equals("noImplicitStringConversion")/*backward compatible*/) {//$NON-NLS-1$ //$NON-NLS-2$
++ this.options.put(
++ CompilerOptions.OPTION_ReportNoImplicitStringConversion,
++ isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
++ } else if (token.equals("semicolon")) {//$NON-NLS-1$
++ this.options.put(
++ CompilerOptions.OPTION_ReportEmptyStatement,
++ isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
++ } else if (token.equals("serial")) {//$NON-NLS-1$
++ this.options.put(
++ CompilerOptions.OPTION_ReportMissingSerialVersion,
++ isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
++ } else if (token.equals("emptyBlock")) {//$NON-NLS-1$
++ this.options.put(
++ CompilerOptions.OPTION_ReportUndocumentedEmptyBlock,
++ isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
++ } else if (token.equals("uselessTypeCheck")) {//$NON-NLS-1$
++ this.options.put(
++ CompilerOptions.OPTION_ReportUnnecessaryTypeCheck,
++ isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
++ } else if (token.equals("unchecked") || token.equals("unsafe")) {//$NON-NLS-1$ //$NON-NLS-2$
++ this.options.put(
++ CompilerOptions.OPTION_ReportUncheckedTypeOperation,
++ isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
++ } else if (token.equals("raw")) {//$NON-NLS-1$
++ this.options.put(
++ CompilerOptions.OPTION_ReportRawTypeReference,
++ isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
++ } else if (token.equals("finalBound")) {//$NON-NLS-1$
++ this.options.put(
++ CompilerOptions.OPTION_ReportFinalParameterBound,
++ isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
++ } else if (token.equals("suppress")) {//$NON-NLS-1$
++ this.options.put(
++ CompilerOptions.OPTION_SuppressWarnings,
++ isEnabling ? CompilerOptions.ENABLED : CompilerOptions.DISABLED);
++ } else if (token.equals("warningToken")) {//$NON-NLS-1$
++ this.options.put(
++ CompilerOptions.OPTION_ReportUnhandledWarningToken,
++ isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
++ } else if (token.equals("unnecessaryElse")) {//$NON-NLS-1$
++ this.options.put(
++ CompilerOptions.OPTION_ReportUnnecessaryElse,
++ isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
++ } else if (token.equals("javadoc")) {//$NON-NLS-1$
++ if (!useEnableJavadoc) {
++ this.options.put(
++ CompilerOptions.OPTION_DocCommentSupport,
++ isEnabling ? CompilerOptions.ENABLED: CompilerOptions.DISABLED);
++ }
++ // if disabling then it's not necessary to set other javadoc options
++ if (isEnabling) {
++ this.options.put(
++ CompilerOptions.OPTION_ReportInvalidJavadoc,
++ CompilerOptions.WARNING);
++ this.options.put(
++ CompilerOptions.OPTION_ReportInvalidJavadocTags,
++ CompilerOptions.ENABLED);
++ this.options.put(
++ CompilerOptions.OPTION_ReportInvalidJavadocTagsDeprecatedRef,
++ CompilerOptions.DISABLED);
++ this.options.put(
++ CompilerOptions.OPTION_ReportInvalidJavadocTagsNotVisibleRef,
++ CompilerOptions.DISABLED);
++ this.options.put(
++ CompilerOptions.OPTION_ReportInvalidJavadocTagsVisibility,
++ CompilerOptions.PRIVATE);
++ this.options.put(
++ CompilerOptions.OPTION_ReportMissingJavadocTags,
++ CompilerOptions.WARNING);
++ this.options.put(
++ CompilerOptions.OPTION_ReportMissingJavadocTagsVisibility,
++ CompilerOptions.PRIVATE);
++ }
++ } else if (token.equals("allJavadoc")) { //$NON-NLS-1$
++ if (!useEnableJavadoc) {
++ this.options.put(
++ CompilerOptions.OPTION_DocCommentSupport,
++ isEnabling ? CompilerOptions.ENABLED: CompilerOptions.DISABLED);
++ }
++ // if disabling then it's not necessary to set other javadoc options
++ if (isEnabling) {
++ this.options.put(
++ CompilerOptions.OPTION_ReportInvalidJavadoc,
++ CompilerOptions.WARNING);
++ this.options.put(
++ CompilerOptions.OPTION_ReportInvalidJavadocTags,
++ CompilerOptions.ENABLED);
++ this.options.put(
++ CompilerOptions.OPTION_ReportInvalidJavadocTagsVisibility,
++ CompilerOptions.PRIVATE);
++ this.options.put(
++ CompilerOptions.OPTION_ReportMissingJavadocTags,
++ CompilerOptions.WARNING);
++ this.options.put(
++ CompilerOptions.OPTION_ReportMissingJavadocTagsVisibility,
++ CompilerOptions.PRIVATE);
++ this.options.put(
++ CompilerOptions.OPTION_ReportMissingJavadocComments,
++ CompilerOptions.WARNING);
++ }
++ } else if (token.startsWith("tasks")) { //$NON-NLS-1$
++ String taskTags = ""; //$NON-NLS-1$
++ int start = token.indexOf('(');
++ int end = token.indexOf(')');
++ if (start >= 0 && end >= 0 && start < end){
++ taskTags = token.substring(start+1, end).trim();
++ taskTags = taskTags.replace('|',',');
++ }
++ if (taskTags.length() == 0){
++ throw new InvalidInputException(Main.bind("configure.invalidTaskTag", token)); //$NON-NLS-1$
++ }
++ this.options.put(
++ CompilerOptions.OPTION_TaskTags,
++ isEnabling ? taskTags : ""); //$NON-NLS-1$
++ } else if (token.equals("assertIdentifier")) { //$NON-NLS-1$
++ this.options.put(
++ CompilerOptions.OPTION_ReportAssertIdentifier,
++ isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
++ } else if (token.equals("enumIdentifier")) { //$NON-NLS-1$
++ this.options.put(
++ CompilerOptions.OPTION_ReportEnumIdentifier,
++ isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
++ } else if (token.equals("finally")) { //$NON-NLS-1$
++ this.options.put(
++ CompilerOptions.OPTION_ReportFinallyBlockNotCompletingNormally,
++ isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
++ } else if (token.equals("unusedThrown")) { //$NON-NLS-1$
++ this.options.put(
++ CompilerOptions.OPTION_ReportUnusedDeclaredThrownException,
++ isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
++ } else if (token.equals("unqualifiedField") //$NON-NLS-1$
++ || token.equals("unqualified-field-access")) { //$NON-NLS-1$
++ this.options.put(
++ CompilerOptions.OPTION_ReportUnqualifiedFieldAccess,
++ isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
++ } else if (token.equals("typeHiding")) { //$NON-NLS-1$
++ this.options.put(
++ CompilerOptions.OPTION_ReportTypeParameterHiding,
++ isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
++ } else if (token.equals("varargsCast")) { //$NON-NLS-1$
++ this.options.put(
++ CompilerOptions.OPTION_ReportVarargsArgumentNeedCast,
++ isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
++ } else if (token.equals("null")) { //$NON-NLS-1$
++ this.options.put(
++ CompilerOptions.OPTION_ReportNullReference,
++ isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
++ } else if (token.equals("boxing")) { //$NON-NLS-1$
++ this.options.put(
++ CompilerOptions.OPTION_ReportAutoboxing,
++ isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
++ } else if (token.equals("over-ann")) { //$NON-NLS-1$
++ this.options.put(
++ CompilerOptions.OPTION_ReportMissingOverrideAnnotation,
++ isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
++ } else if (token.equals("dep-ann")) { //$NON-NLS-1$
++ this.options.put(
++ CompilerOptions.OPTION_ReportMissingDeprecatedAnnotation,
++ isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
++ } else if (token.equals("intfAnnotation")) { //$NON-NLS-1$
++ this.options.put(
++ CompilerOptions.OPTION_ReportAnnotationSuperInterface,
++ isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
++ } else if (token.equals("enumSwitch") //$NON-NLS-1$
++ || token.equals("incomplete-switch")) { //$NON-NLS-1$
++ this.options.put(
++ CompilerOptions.OPTION_ReportIncompleteEnumSwitch,
++ isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
++ } else if (token.equals("hiding")) { //$NON-NLS-1$
++ this.options.put(
++ CompilerOptions.OPTION_ReportHiddenCatchBlock,
++ isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
++ this.options.put(
++ CompilerOptions.OPTION_ReportLocalVariableHiding,
++ isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
++ this.options.put(
++ CompilerOptions.OPTION_ReportFieldHiding,
++ isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
++ this.options.put(
++ CompilerOptions.OPTION_ReportTypeParameterHiding,
++ isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
++ } else if (token.equals("static-access")) { //$NON-NLS-1$
++ this.options.put(
++ CompilerOptions.OPTION_ReportNonStaticAccessToStatic,
++ isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
++ this.options.put(
++ CompilerOptions.OPTION_ReportIndirectStaticAccess,
++ isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
++ } else if (token.equals("unused")) { //$NON-NLS-1$
++ this.options.put(
++ CompilerOptions.OPTION_ReportUnusedLocal,
++ isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
++ this.options.put(
++ CompilerOptions.OPTION_ReportUnusedParameter,
++ isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
++ this.options.put(
++ CompilerOptions.OPTION_ReportUnusedImport,
++ isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
++ this.options.put(
++ CompilerOptions.OPTION_ReportUnusedPrivateMember,
++ isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
++ this.options.put(
++ CompilerOptions.OPTION_ReportUnusedDeclaredThrownException,
++ isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
++ this.options.put(
++ CompilerOptions.OPTION_ReportUnusedLabel,
++ isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
++ } else if (token.equals("paramAssign")) { //$NON-NLS-1$
++ this.options.put(
++ CompilerOptions.OPTION_ReportParameterAssignment,
++ isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
++ } else if (token.equals("discouraged")) { //$NON-NLS-1$
++ this.options.put(
++ CompilerOptions.OPTION_ReportDiscouragedReference,
++ isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
++ } else if (token.equals("forbidden")) { //$NON-NLS-1$
++ this.options.put(
++ CompilerOptions.OPTION_ReportForbiddenReference,
++ isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
++ } else if (token.equals("fallthrough")) { //$NON-NLS-1$
++ this.options.put(
++ CompilerOptions.OPTION_ReportFallthroughCase,
++ isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
++ } else {
++ throw new InvalidInputException(Main.bind("configure.invalidWarning", token)); //$NON-NLS-1$
++ }
++}
++
++/*
++Handle extdirs processing
++*/
++protected ArrayList handleExtdirs(ArrayList extdirsClasspaths) {
++ final File javaHome = getJavaHome();
++ final int DEFAULT_SIZE_CLASSPATH = 4;
++
++ /*
++ * Feed endorsedDirClasspath according to:
++ * - -extdirs first if present;
++ * - else java.ext.dirs if defined;
++ * - else default extensions directory for the platform.
++ */
++ if (extdirsClasspaths == null) {
++ extdirsClasspaths = new ArrayList(DEFAULT_SIZE_CLASSPATH);
++ String extdirsStr = System.getProperty("java.ext.dirs"); //$NON-NLS-1$
++ if (extdirsStr == null) {
++ extdirsClasspaths.add(javaHome.getAbsolutePath() + "/lib/ext"); //$NON-NLS-1$
++ } else {
++ StringTokenizer tokenizer = new StringTokenizer(extdirsStr, File.pathSeparator);
++ while (tokenizer.hasMoreTokens())
++ extdirsClasspaths.add(tokenizer.nextToken());
++ }
++ }
++
++ /*
++ * Feed extdirsClasspath with the entries found into the directories listed by
++ * extdirsNames.
++ */
++ if (extdirsClasspaths.size() != 0) {
++ File[] directoriesToCheck = new File[extdirsClasspaths.size()];
++ for (int i = 0; i < directoriesToCheck.length; i++)
++ directoriesToCheck[i] = new File((String) extdirsClasspaths.get(i));
++ extdirsClasspaths.clear();
++ File[][] extdirsJars = getLibrariesFiles(directoriesToCheck);
++ if (extdirsJars != null) {
++ for (int i = 0, max = extdirsJars.length; i < max; i++) {
++ File[] current = extdirsJars[i];
++ if (current != null) {
++ for (int j = 0, max2 = current.length; j < max2; j++) {
++ FileSystem.Classpath classpath =
++ FileSystem.getClasspath(
++ current[j].getAbsolutePath(),
++ null, null);
++ if (classpath != null) {
++ extdirsClasspaths.add(classpath);
++ }
++ }
++ } else if (directoriesToCheck[i].isFile()) {
++ this.logger.logIncorrectExtDirsEntry(directoriesToCheck[i].getAbsolutePath());
++ }
++ }
++ }
++ }
++
++ return extdirsClasspaths;
++}
++
++/*
+ Decode the command line arguments
+ */
+ public void configure(String[] argv) throws InvalidInputException {
+@@ -1848,326 +2233,7 @@
+ while (tokenizer.hasMoreTokens()) {
+ String token = tokenizer.nextToken();
+ tokenCounter++;
+- if (token.equals("constructorName")) { //$NON-NLS-1$
+- this.options.put(
+- CompilerOptions.OPTION_ReportMethodWithConstructorName,
+- isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
+- } else if (token.equals("pkgDefaultMethod") || token.equals("packageDefaultMethod")/*backward compatible*/ ) { //$NON-NLS-1$ //$NON-NLS-2$
+- this.options.put(
+- CompilerOptions.OPTION_ReportOverridingPackageDefaultMethod,
+- isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
+- } else if (token.equals("maskedCatchBlock") || token.equals("maskedCatchBlocks")/*backward compatible*/) { //$NON-NLS-1$ //$NON-NLS-2$
+- this.options.put(
+- CompilerOptions.OPTION_ReportHiddenCatchBlock,
+- isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
+- } else if (token.equals("deprecation")) { //$NON-NLS-1$
+- this.options.put(
+- CompilerOptions.OPTION_ReportDeprecation,
+- isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
+- this.options.put(
+- CompilerOptions.OPTION_ReportDeprecationInDeprecatedCode,
+- CompilerOptions.DISABLED);
+- this.options.put(
+- CompilerOptions.OPTION_ReportDeprecationWhenOverridingDeprecatedMethod,
+- CompilerOptions.DISABLED);
+- } else if (token.equals("allDeprecation")) { //$NON-NLS-1$
+- this.options.put(
+- CompilerOptions.OPTION_ReportDeprecation,
+- isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
+- this.options.put(
+- CompilerOptions.OPTION_ReportDeprecationInDeprecatedCode,
+- isEnabling ? CompilerOptions.ENABLED : CompilerOptions.DISABLED);
+- this.options.put(
+- CompilerOptions.OPTION_ReportDeprecationWhenOverridingDeprecatedMethod,
+- isEnabling ? CompilerOptions.ENABLED : CompilerOptions.DISABLED);
+- } else if (token.equals("unusedLocal") || token.equals("unusedLocals")/*backward compatible*/) { //$NON-NLS-1$ //$NON-NLS-2$
+- this.options.put(
+- CompilerOptions.OPTION_ReportUnusedLocal,
+- isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
+- } else if (token.equals("unusedArgument") || token.equals("unusedArguments")/*backward compatible*/) { //$NON-NLS-1$ //$NON-NLS-2$
+- this.options.put(
+- CompilerOptions.OPTION_ReportUnusedParameter,
+- isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
+- } else if (token.equals("unusedImport") || token.equals("unusedImports")/*backward compatible*/) { //$NON-NLS-1$ //$NON-NLS-2$
+- this.options.put(
+- CompilerOptions.OPTION_ReportUnusedImport,
+- isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
+- } else if (token.equals("unusedPrivate")) { //$NON-NLS-1$
+- this.options.put(
+- CompilerOptions.OPTION_ReportUnusedPrivateMember,
+- isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
+- } else if (token.equals("unusedLabel")) { //$NON-NLS-1$
+- this.options.put(
+- CompilerOptions.OPTION_ReportUnusedLabel,
+- isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
+- } else if (token.equals("localHiding")) { //$NON-NLS-1$
+- this.options.put(
+- CompilerOptions.OPTION_ReportLocalVariableHiding,
+- isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
+- } else if (token.equals("fieldHiding")) { //$NON-NLS-1$
+- this.options.put(
+- CompilerOptions.OPTION_ReportFieldHiding,
+- isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
+- } else if (token.equals("specialParamHiding")) { //$NON-NLS-1$
+- this.options.put(
+- CompilerOptions.OPTION_ReportSpecialParameterHidingField,
+- isEnabling ? CompilerOptions.ENABLED : CompilerOptions.DISABLED);
+- } else if (token.equals("conditionAssign")) { //$NON-NLS-1$
+- this.options.put(
+- CompilerOptions.OPTION_ReportPossibleAccidentalBooleanAssignment,
+- isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
+- } else if (token.equals("syntheticAccess") //$NON-NLS-1$
+- || token.equals("synthetic-access")) { //$NON-NLS-1$
+- this.options.put(
+- CompilerOptions.OPTION_ReportSyntheticAccessEmulation,
+- isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
+- } else if (token.equals("nls")) { //$NON-NLS-1$
+- this.options.put(
+- CompilerOptions.OPTION_ReportNonExternalizedStringLiteral,
+- isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
+- } else if (token.equals("staticReceiver")) { //$NON-NLS-1$
+- this.options.put(
+- CompilerOptions.OPTION_ReportNonStaticAccessToStatic,
+- isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
+- } else if (token.equals("indirectStatic")) { //$NON-NLS-1$
+- this.options.put(
+- CompilerOptions.OPTION_ReportIndirectStaticAccess,
+- isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
+- } else if (token.equals("noEffectAssign")) { //$NON-NLS-1$
+- this.options.put(
+- CompilerOptions.OPTION_ReportNoEffectAssignment,
+- isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
+- } else if (token.equals("intfNonInherited") || token.equals("interfaceNonInherited")/*backward compatible*/) { //$NON-NLS-1$ //$NON-NLS-2$
+- this.options.put(
+- CompilerOptions.OPTION_ReportIncompatibleNonInheritedInterfaceMethod,
+- isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
+- } else if (token.equals("charConcat") || token.equals("noImplicitStringConversion")/*backward compatible*/) {//$NON-NLS-1$ //$NON-NLS-2$
+- this.options.put(
+- CompilerOptions.OPTION_ReportNoImplicitStringConversion,
+- isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
+- } else if (token.equals("semicolon")) {//$NON-NLS-1$
+- this.options.put(
+- CompilerOptions.OPTION_ReportEmptyStatement,
+- isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
+- } else if (token.equals("serial")) {//$NON-NLS-1$
+- this.options.put(
+- CompilerOptions.OPTION_ReportMissingSerialVersion,
+- isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
+- } else if (token.equals("emptyBlock")) {//$NON-NLS-1$
+- this.options.put(
+- CompilerOptions.OPTION_ReportUndocumentedEmptyBlock,
+- isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
+- } else if (token.equals("uselessTypeCheck")) {//$NON-NLS-1$
+- this.options.put(
+- CompilerOptions.OPTION_ReportUnnecessaryTypeCheck,
+- isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
+- } else if (token.equals("unchecked") || token.equals("unsafe")) {//$NON-NLS-1$ //$NON-NLS-2$
+- this.options.put(
+- CompilerOptions.OPTION_ReportUncheckedTypeOperation,
+- isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
+- } else if (token.equals("raw")) {//$NON-NLS-1$
+- this.options.put(
+- CompilerOptions.OPTION_ReportRawTypeReference,
+- isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
+- } else if (token.equals("finalBound")) {//$NON-NLS-1$
+- this.options.put(
+- CompilerOptions.OPTION_ReportFinalParameterBound,
+- isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
+- } else if (token.equals("suppress")) {//$NON-NLS-1$
+- this.options.put(
+- CompilerOptions.OPTION_SuppressWarnings,
+- isEnabling ? CompilerOptions.ENABLED : CompilerOptions.DISABLED);
+- } else if (token.equals("warningToken")) {//$NON-NLS-1$
+- this.options.put(
+- CompilerOptions.OPTION_ReportUnhandledWarningToken,
+- isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
+- } else if (token.equals("unnecessaryElse")) {//$NON-NLS-1$
+- this.options.put(
+- CompilerOptions.OPTION_ReportUnnecessaryElse,
+- isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
+- } else if (token.equals("javadoc")) {//$NON-NLS-1$
+- if (!useEnableJavadoc) {
+- this.options.put(
+- CompilerOptions.OPTION_DocCommentSupport,
+- isEnabling ? CompilerOptions.ENABLED: CompilerOptions.DISABLED);
+- }
+- // if disabling then it's not necessary to set other javadoc options
+- if (isEnabling) {
+- this.options.put(
+- CompilerOptions.OPTION_ReportInvalidJavadoc,
+- CompilerOptions.WARNING);
+- this.options.put(
+- CompilerOptions.OPTION_ReportInvalidJavadocTags,
+- CompilerOptions.ENABLED);
+- this.options.put(
+- CompilerOptions.OPTION_ReportInvalidJavadocTagsDeprecatedRef,
+- CompilerOptions.DISABLED);
+- this.options.put(
+- CompilerOptions.OPTION_ReportInvalidJavadocTagsNotVisibleRef,
+- CompilerOptions.DISABLED);
+- this.options.put(
+- CompilerOptions.OPTION_ReportInvalidJavadocTagsVisibility,
+- CompilerOptions.PRIVATE);
+- this.options.put(
+- CompilerOptions.OPTION_ReportMissingJavadocTags,
+- CompilerOptions.WARNING);
+- this.options.put(
+- CompilerOptions.OPTION_ReportMissingJavadocTagsVisibility,
+- CompilerOptions.PRIVATE);
+- }
+- } else if (token.equals("allJavadoc")) { //$NON-NLS-1$
+- if (!useEnableJavadoc) {
+- this.options.put(
+- CompilerOptions.OPTION_DocCommentSupport,
+- isEnabling ? CompilerOptions.ENABLED: CompilerOptions.DISABLED);
+- }
+- // if disabling then it's not necessary to set other javadoc options
+- if (isEnabling) {
+- this.options.put(
+- CompilerOptions.OPTION_ReportInvalidJavadoc,
+- CompilerOptions.WARNING);
+- this.options.put(
+- CompilerOptions.OPTION_ReportInvalidJavadocTags,
+- CompilerOptions.ENABLED);
+- this.options.put(
+- CompilerOptions.OPTION_ReportInvalidJavadocTagsVisibility,
+- CompilerOptions.PRIVATE);
+- this.options.put(
+- CompilerOptions.OPTION_ReportMissingJavadocTags,
+- CompilerOptions.WARNING);
+- this.options.put(
+- CompilerOptions.OPTION_ReportMissingJavadocTagsVisibility,
+- CompilerOptions.PRIVATE);
+- this.options.put(
+- CompilerOptions.OPTION_ReportMissingJavadocComments,
+- CompilerOptions.WARNING);
+- }
+- } else if (token.startsWith("tasks")) { //$NON-NLS-1$
+- String taskTags = ""; //$NON-NLS-1$
+- int start = token.indexOf('(');
+- int end = token.indexOf(')');
+- if (start >= 0 && end >= 0 && start < end){
+- taskTags = token.substring(start+1, end).trim();
+- taskTags = taskTags.replace('|',',');
+- }
+- if (taskTags.length() == 0){
+- throw new InvalidInputException(Main.bind("configure.invalidTaskTag", token)); //$NON-NLS-1$
+- }
+- this.options.put(
+- CompilerOptions.OPTION_TaskTags,
+- isEnabling ? taskTags : ""); //$NON-NLS-1$
+- } else if (token.equals("assertIdentifier")) { //$NON-NLS-1$
+- this.options.put(
+- CompilerOptions.OPTION_ReportAssertIdentifier,
+- isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
+- } else if (token.equals("enumIdentifier")) { //$NON-NLS-1$
+- this.options.put(
+- CompilerOptions.OPTION_ReportEnumIdentifier,
+- isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
+- } else if (token.equals("finally")) { //$NON-NLS-1$
+- this.options.put(
+- CompilerOptions.OPTION_ReportFinallyBlockNotCompletingNormally,
+- isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
+- } else if (token.equals("unusedThrown")) { //$NON-NLS-1$
+- this.options.put(
+- CompilerOptions.OPTION_ReportUnusedDeclaredThrownException,
+- isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
+- } else if (token.equals("unqualifiedField") //$NON-NLS-1$
+- || token.equals("unqualified-field-access")) { //$NON-NLS-1$
+- this.options.put(
+- CompilerOptions.OPTION_ReportUnqualifiedFieldAccess,
+- isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
+- } else if (token.equals("typeHiding")) { //$NON-NLS-1$
+- this.options.put(
+- CompilerOptions.OPTION_ReportTypeParameterHiding,
+- isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
+- } else if (token.equals("varargsCast")) { //$NON-NLS-1$
+- this.options.put(
+- CompilerOptions.OPTION_ReportVarargsArgumentNeedCast,
+- isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
+- } else if (token.equals("null")) { //$NON-NLS-1$
+- this.options.put(
+- CompilerOptions.OPTION_ReportNullReference,
+- isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
+- } else if (token.equals("boxing")) { //$NON-NLS-1$
+- this.options.put(
+- CompilerOptions.OPTION_ReportAutoboxing,
+- isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
+- } else if (token.equals("over-ann")) { //$NON-NLS-1$
+- this.options.put(
+- CompilerOptions.OPTION_ReportMissingOverrideAnnotation,
+- isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
+- } else if (token.equals("dep-ann")) { //$NON-NLS-1$
+- this.options.put(
+- CompilerOptions.OPTION_ReportMissingDeprecatedAnnotation,
+- isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
+- } else if (token.equals("intfAnnotation")) { //$NON-NLS-1$
+- this.options.put(
+- CompilerOptions.OPTION_ReportAnnotationSuperInterface,
+- isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
+- } else if (token.equals("enumSwitch") //$NON-NLS-1$
+- || token.equals("incomplete-switch")) { //$NON-NLS-1$
+- this.options.put(
+- CompilerOptions.OPTION_ReportIncompleteEnumSwitch,
+- isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
+- } else if (token.equals("hiding")) { //$NON-NLS-1$
+- this.options.put(
+- CompilerOptions.OPTION_ReportHiddenCatchBlock,
+- isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
+- this.options.put(
+- CompilerOptions.OPTION_ReportLocalVariableHiding,
+- isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
+- this.options.put(
+- CompilerOptions.OPTION_ReportFieldHiding,
+- isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
+- this.options.put(
+- CompilerOptions.OPTION_ReportTypeParameterHiding,
+- isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
+- } else if (token.equals("static-access")) { //$NON-NLS-1$
+- this.options.put(
+- CompilerOptions.OPTION_ReportNonStaticAccessToStatic,
+- isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
+- this.options.put(
+- CompilerOptions.OPTION_ReportIndirectStaticAccess,
+- isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
+- } else if (token.equals("unused")) { //$NON-NLS-1$
+- this.options.put(
+- CompilerOptions.OPTION_ReportUnusedLocal,
+- isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
+- this.options.put(
+- CompilerOptions.OPTION_ReportUnusedParameter,
+- isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
+- this.options.put(
+- CompilerOptions.OPTION_ReportUnusedImport,
+- isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
+- this.options.put(
+- CompilerOptions.OPTION_ReportUnusedPrivateMember,
+- isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
+- this.options.put(
+- CompilerOptions.OPTION_ReportUnusedDeclaredThrownException,
+- isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
+- this.options.put(
+- CompilerOptions.OPTION_ReportUnusedLabel,
+- isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
+- } else if (token.equals("paramAssign")) { //$NON-NLS-1$
+- this.options.put(
+- CompilerOptions.OPTION_ReportParameterAssignment,
+- isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
+- } else if (token.equals("discouraged")) { //$NON-NLS-1$
+- this.options.put(
+- CompilerOptions.OPTION_ReportDiscouragedReference,
+- isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
+- } else if (token.equals("forbidden")) { //$NON-NLS-1$
+- this.options.put(
+- CompilerOptions.OPTION_ReportForbiddenReference,
+- isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
+- } else if (token.equals("fallthrough")) { //$NON-NLS-1$
+- this.options.put(
+- CompilerOptions.OPTION_ReportFallthroughCase,
+- isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
+- } else {
+- throw new InvalidInputException(Main.bind("configure.invalidWarning", token)); //$NON-NLS-1$
+- }
++ handleWarningToken(token, isEnabling, useEnableJavadoc);
+ }
+ if (tokenCounter == 0)
+ throw new InvalidInputException(
+@@ -2708,7 +2774,7 @@
+ this.timesCounter = 0;
+ }
+ }
+-private void disableWarnings() {
++protected void disableWarnings() {
+ Object[] entries = this.options.entrySet().toArray();
+ for (int i = 0, max = entries.length; i < max; i++) {
+ Map.Entry entry = (Map.Entry) entries[i];
+Index: batch/org/eclipse/jdt/internal/compiler/batch/GCCMain.java
+===================================================================
+RCS file: batch/org/eclipse/jdt/internal/compiler/batch/GCCMain.java
+diff -N batch/org/eclipse/jdt/internal/compiler/batch/GCCMain.java
+--- /dev/null 1 Jan 1970 00:00:00 -0000
++++ source-tree/plugins/org.eclipse.jdt.core/batch/org/eclipse/jdt/internal/compiler/batch/GCCMain.java 1 Jan 1970 00:00:00 -0000
+@@ -0,0 +1,442 @@
++/**
++ *
++ */
++package org.eclipse.jdt.internal.compiler.batch;
++
++import java.io.BufferedOutputStream;
++import java.io.BufferedReader;
++import java.io.ByteArrayInputStream;
++import java.io.File;
++import java.io.FileOutputStream;
++import java.io.FileReader;
++import java.io.IOException;
++import java.io.InputStreamReader;
++import java.io.OutputStream;
++import java.io.PrintWriter;
++import java.io.UnsupportedEncodingException;
++import java.util.ArrayList;
++import java.util.HashSet;
++import java.util.Iterator;
++import java.util.Map;
++import java.util.StringTokenizer;
++import java.util.zip.CRC32;
++import java.util.zip.ZipEntry;
++import java.util.zip.ZipOutputStream;
++
++import org.eclipse.jdt.core.compiler.InvalidInputException;
++import org.eclipse.jdt.internal.compiler.ClassFile;
++import org.eclipse.jdt.internal.compiler.CompilationResult;
++import org.eclipse.jdt.internal.compiler.env.AccessRule;
++import org.eclipse.jdt.internal.compiler.env.AccessRuleSet;
++import org.eclipse.jdt.internal.compiler.impl.CompilerOptions;
++import org.eclipse.jdt.internal.compiler.util.Messages;
++import org.eclipse.jdt.internal.compiler.util.SuffixConstants;
++
++/**
++ * This is an alternate entry point for the command-line compiler which
++ * is simpler to integrate into GCC. In particular the option processing
++ * is more GNU-like and the recognized options are similar to those supported
++ * by other GCC front ends.
++ */
++public class GCCMain extends Main {
++
++ // All the compilation units specified on the command line.
++ private HashSet commandLineCompilationUnits = new HashSet();
++ // True if we are only checking syntax.
++ private boolean syntaxOnly;
++ // If not null, the name of the output zip file.
++ // If null, we are generating class files in the file system,
++ // not a zip file.
++ private String zipDestination;
++ // The zip stream to which we're writing, or null if it hasn't been opened.
++ private ZipOutputStream zipStream;
++
++ // If not null, the name of the zip file to which dependency class files
++ // should be written.
++ private String zipDependencyDestination;
++ // The zip stream to which dependency files should be written.
++ private ZipOutputStream zipDependencyStream;
++
++ public GCCMain(PrintWriter outWriter, PrintWriter errWriter,
++ boolean systemExitWhenFinished) {
++ super(outWriter, errWriter, systemExitWhenFinished);
++ this.logger.setEmacs();
++ }
++
++ public GCCMain(PrintWriter outWriter, PrintWriter errWriter,
++ boolean systemExitWhenFinished, Map customDefaultOptions) {
++ super(outWriter, errWriter, systemExitWhenFinished,
++ customDefaultOptions);
++ this.logger.setEmacs();
++ }
++
++ private void fail(Exception t) {
++ this.logger.logException(t);
++ System.exit(1);
++ }
++
++ public CompilationUnit[] getCompilationUnits() throws InvalidInputException {
++ CompilationUnit[] units = super.getCompilationUnits();
++ for (int i = 0; i < units.length; ++i)
++ this.commandLineCompilationUnits.add(units[i]);
++ return units;
++ }
++
++ private String combine(char[] one, char[] two) {
++ StringBuffer b = new StringBuffer();
++ b.append(one);
++ b.append(two);
++ return b.toString();
++ }
++
++ private ZipOutputStream getZipOutput() throws IOException {
++ if (this.zipDestination != null && this.zipStream == null) {
++ OutputStream os;
++ if ("-".equals(this.zipDestination)) { //$NON-NLS-1$
++ os = System.out;
++ } else {
++ os = new FileOutputStream(this.zipDestination);
++ }
++ zipStream = new ZipOutputStream(new BufferedOutputStream(os));
++ zipStream.setMethod(ZipOutputStream.STORED);
++ }
++ return zipStream;
++ }
++
++ private ZipOutputStream getDependencyOutput() throws IOException {
++ if (this.zipDependencyDestination != null && this.zipDependencyStream == null) {
++ OutputStream os = new FileOutputStream(zipDependencyDestination);
++ zipDependencyStream = new ZipOutputStream(new BufferedOutputStream(os));
++ zipDependencyStream.setMethod(ZipOutputStream.STORED);
++ }
++ return zipDependencyStream;
++ }
++
++ public void outputClassFiles(CompilationResult unitResult) {
++ if (this.syntaxOnly) {
++ return;
++ }
++ if (this.zipDestination == null) {
++ // Nothing special to do here.
++ super.outputClassFiles(unitResult);
++ return;
++ }
++ if (unitResult == null || unitResult.hasErrors()) {
++ return;
++ }
++
++ // If we are compiling with indirect dispatch, we don't need
++ // any dependent classes. If we are using the C++ ABI, then we
++ // do need the dependencies in order to do proper layout.
++ boolean gcjCompile = this.commandLineCompilationUnits.contains(unitResult.getCompilationUnit());
++ if (this.zipDependencyDestination == null && !gcjCompile) {
++ return;
++ }
++
++ try {
++ ZipOutputStream dest = gcjCompile ? getZipOutput() : getDependencyOutput();
++ ClassFile[] classFiles = unitResult.getClassFiles();
++ for (int i = 0; i < classFiles.length; ++i) {
++ ClassFile classFile = classFiles[i];
++ String filename = combine(classFile.fileName(), SuffixConstants.SUFFIX_class);
++ if (this.verbose)
++ this.out.println(
++ Messages.bind(
++ Messages.compilation_write,
++ new String[] {
++ String.valueOf(this.exportedClassFilesCounter+1),
++ filename
++ }));
++ ZipEntry entry = new ZipEntry(filename);
++ byte[] contents = classFile.getBytes();
++ CRC32 crc = new CRC32();
++ crc.update(contents);
++ entry.setSize(contents.length);
++ entry.setCrc(crc.getValue());
++ dest.putNextEntry(entry);
++ dest.write(contents);
++ dest.closeEntry();
++ }
++ } catch (IOException err) {
++ fail(err);
++ }
++ }
++
++ private String getArgument(String option) {
++ int index = option.indexOf('=');
++ return option.substring(index + 1);
++ }
++
++ private void addPath(ArrayList result, String currentClasspathName) {
++ String customEncoding = null;
++ AccessRule[] accessRules = new AccessRule[0];
++ String templates[] = new String[AccessRuleSet.MESSAGE_TEMPLATES_LENGTH];
++ templates[0] = Main.bind(
++ "template.restrictedAccess.type", //$NON-NLS-1$
++ new String[] {"{0}", currentClasspathName}); //$NON-NLS-1$
++ templates[1] = Main.bind(
++ "template.restrictedAccess.constructor", //$NON-NLS-1$
++ new String[] {"{0}", currentClasspathName}); //$NON-NLS-1$
++ templates[2] = Main.bind(
++ "template.restrictedAccess.method", //$NON-NLS-1$
++ new String[] {"{0}", "{1}", currentClasspathName}); //$NON-NLS-1$ //$NON-NLS-2$
++ templates[3] = Main.bind(
++ "template.restrictedAccess.field", //$NON-NLS-1$
++ new String[] {"{0}", "{1}", currentClasspathName}); //$NON-NLS-1$ //$NON-NLS-2$
++ AccessRuleSet accessRuleSet = new AccessRuleSet(accessRules, templates);
++ FileSystem.Classpath currentClasspath = FileSystem
++ .getClasspath(currentClasspathName,
++ customEncoding, accessRuleSet);
++ if (currentClasspath != null) {
++ result.add(currentClasspath);
++ }
++ }
++
++ private void parsePath(ArrayList result, String path) {
++ StringTokenizer iter = new StringTokenizer(path, File.pathSeparator);
++ while (iter.hasMoreTokens()) {
++ addPath(result, iter.nextToken());
++ }
++ }
++
++ protected void handleWarningToken(String token, boolean isEnabling,
++ boolean useEnableJavadoc) throws InvalidInputException {
++ // Recognize this for compatibility with older versions of gcj.
++ if ("deprecated".equals(token)) //$NON-NLS-1$
++ token = "deprecation"; //$NON-NLS-1$
++ else if ("static-access".equals(token) //$NON-NLS-1$
++ || "dep-ann".equals(token) //$NON-NLS-1$
++ || "over-ann".equals(token)) { //$NON-NLS-1$
++ // Some exceptions to the warning naming rule.
++ } else if ("extraneous-semicolon".equals(token)) { //$NON-NLS-1$
++ // Compatibility with earlier versions of gcj.
++ token = "semicolon"; //$NON-NLS-1$
++ } else {
++ // Turn "foo-bar-baz" into eclipse-style "fooBarBaz".
++ StringBuffer newToken = new StringBuffer(token.length());
++ StringTokenizer t = new StringTokenizer(token, "-"); //$NON-NLS-1$
++ boolean first = true;
++ while (t.hasMoreTokens()) {
++ String next = t.nextToken();
++ if (first) {
++ newToken.append(next);
++ first = false;
++ } else {
++ newToken.append(Character.toUpperCase(next.charAt(0)));
++ newToken.append(next.substring(1));
++ }
++ }
++ token = newToken.toString();
++ }
++ super.handleWarningToken(token, isEnabling, useEnableJavadoc);
++ }
++
++ /**
++ * Set the debug level to the indicated value. The level should be
++ * between 0 and 2, inclusive, but this is not checked.
++ * @param level the debug level
++ */
++ private void setDebugLevel(int level) {
++ this.options.put(
++ CompilerOptions.OPTION_LocalVariableAttribute,
++ level > 1 ? CompilerOptions.GENERATE : CompilerOptions.DO_NOT_GENERATE);
++ this.options.put(
++ CompilerOptions.OPTION_LineNumberAttribute,
++ level > 0 ? CompilerOptions.GENERATE : CompilerOptions.DO_NOT_GENERATE);
++ this.options.put(
++ CompilerOptions.OPTION_SourceFileAttribute,
++ CompilerOptions.GENERATE);
++ }
++
++ private void readFileList(String file, ArrayList result) {
++ try {
++ BufferedReader b = new BufferedReader(new FileReader(file));
++ String line;
++ while ((line = b.readLine()) != null) {
++ if (line.endsWith(SUFFIX_STRING_java))
++ result.add(line);
++ }
++ b.close();
++ } catch (IOException err) {
++ fail(err);
++ }
++ }
++
++ private void readAllFileListFiles(ArrayList fileList, ArrayList result) {
++ Iterator it = fileList.iterator();
++ while (it.hasNext()) {
++ readFileList((String) it.next(), result);
++ }
++ }
++
++ public void configure(String[] argv) throws InvalidInputException {
++ if ((argv == null) || (argv.length == 0)) {
++ // This is a "can't happen".
++ System.exit(1);
++ }
++
++ ArrayList files = new ArrayList();
++ ArrayList otherFiles = new ArrayList();
++ String classpath = null;
++ boolean haveFileList = false;
++
++ for (int i = 0; i < argv.length; ++i) {
++ String currentArg = argv[i];
++
++ if (currentArg.startsWith("-fencoding=")) { //$NON-NLS-1$
++ // Simply accept the last one.
++ String encoding = getArgument(currentArg);
++ try { // ensure encoding is supported
++ new InputStreamReader(new ByteArrayInputStream(new byte[0]), encoding);
++ } catch (UnsupportedEncodingException e) {
++ throw new InvalidInputException(
++ Main.bind("configure.unsupportedEncoding", encoding)); //$NON-NLS-1$
++ }
++ this.options.put(CompilerOptions.OPTION_Encoding, encoding);
++ } else if (currentArg.startsWith("-foutput-class-dir=")) { //$NON-NLS-1$
++ String arg = getArgument(currentArg);
++ if (this.destinationPath != null) {
++ StringBuffer errorMessage = new StringBuffer();
++ errorMessage.append("-d"); //$NON-NLS-1$
++ errorMessage.append(' ');
++ errorMessage.append(arg);
++ throw new InvalidInputException(
++ Main.bind("configure.duplicateOutputPath", errorMessage.toString())); //$NON-NLS-1$
++ }
++ this.destinationPath = arg;
++ this.generatePackagesStructure = true;
++ } else if (currentArg.startsWith("-fbootclasspath=")) { //$NON-NLS-1$
++ classpath = getArgument(currentArg);
++ } else if (currentArg.equals("-fzip-target")) { //$NON-NLS-1$
++ ++i;
++ if (i >= argv.length)
++ // FIXME: i18n.
++ throw new InvalidInputException("-fzip-target requires argument");
++ this.zipDestination = argv[i];
++ } else if (currentArg.equals("-fzip-dependency")) { //$NON-NLS-1$
++ ++i;
++ if (i >= argv.length)
++ // FIXME: i18n.
++ throw new InvalidInputException("-fzip-dependency requires argument");
++ this.zipDependencyDestination = argv[i];
++ } else if (currentArg.startsWith("-g")) { //$NON-NLS-1$
++ if (currentArg.equals("-g0")) { //$NON-NLS-1$
++ setDebugLevel(0);
++ } else if (currentArg.equals("-g2") || currentArg.equals("-g3") //$NON-NLS-1$ //$NON-NLS-2$
++ || currentArg.equals("-g")) { //$NON-NLS-1$
++ setDebugLevel(2);
++ } else {
++ // Handle -g1 but also things like -gstabs.
++ setDebugLevel(1);
++ }
++ } else if (currentArg.startsWith("-Wno-")) { //$NON-NLS-1$
++ handleWarningToken(currentArg.substring(5), false, false);
++ } else if (currentArg.startsWith("-W")) { //$NON-NLS-1$
++ handleWarningToken(currentArg.substring(2), true, false);
++ } else if (currentArg.equals("-w")) { //$NON-NLS-1$
++ disableWarnings();
++ } else if (currentArg.startsWith("-O")) { //$NON-NLS-1$
++ // Ignore.
++ } else if (currentArg.equals("-v")) { //$NON-NLS-1$
++ this.verbose = true;
++ } else if (currentArg.equals("-fsyntax-only")) { //$NON-NLS-1$
++ this.syntaxOnly = true;
++ } else if (currentArg.startsWith("-fsource=")) { //$NON-NLS-1$
++ currentArg = getArgument(currentArg);
++ if (currentArg.equals("1.3")) { //$NON-NLS-1$
++ this.options.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_3);
++ } else if (currentArg.equals("1.4")) { //$NON-NLS-1$
++ this.options.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_4);
++ } else if (currentArg.equals("1.5") || currentArg.equals("5") || currentArg.equals("5.0")) { //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
++ this.options.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
++ } else if (currentArg.equals("1.6") || currentArg.equals("6") || currentArg.equals("6.0")) { //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
++ this.options.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_6);
++ } else {
++ throw new InvalidInputException(Main.bind("configure.source", currentArg)); //$NON-NLS-1$
++ }
++ } else if (currentArg.startsWith("-ftarget=")) { //$NON-NLS-1$
++ currentArg = getArgument(currentArg);
++ if (currentArg.equals("1.1")) { //$NON-NLS-1$
++ this.options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_1);
++ } else if (currentArg.equals("1.2")) { //$NON-NLS-1$
++ this.options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_2);
++ } else if (currentArg.equals("1.3")) { //$NON-NLS-1$
++ this.options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_3);
++ } else if (currentArg.equals("1.4")) { //$NON-NLS-1$
++ this.options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_4);
++ } else if (currentArg.equals("1.5") || currentArg.equals("5") || currentArg.equals("5.0")) { //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
++ this.options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
++ } else if (currentArg.equals("1.6") || currentArg.equals("6") || currentArg.equals("6.0")) { //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
++ this.options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_6);
++ } else if (currentArg.equals("jsr14")) { //$NON-NLS-1$
++ this.options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_JSR14);
++ } else {
++ throw new InvalidInputException(Main.bind("configure.targetJDK", currentArg)); //$NON-NLS-1$
++ }
++ } else if (currentArg.equals("-ffilelist-file")) { //$NON-NLS-1$
++ haveFileList = true;
++ } else if (currentArg.endsWith(SuffixConstants.SUFFIX_STRING_java)) {
++ files.add(currentArg);
++ } else if (currentArg.charAt(0) == '-'){
++ // FIXME: error if not a file?
++ } else {
++ otherFiles.add(currentArg);
++ }
++ }
++
++ // Read the file list file. We read them all, but really there
++ // will only be one.
++ if (haveFileList)
++ readAllFileListFiles(otherFiles, files);
++
++ this.filenames = (String[]) files.toArray(new String[0]);
++ this.encodings = new String[this.filenames.length];
++
++ // Classpath processing.
++ ArrayList result = new ArrayList();
++ if (classpath == null)
++ // FIXME: update resources.
++ throw new InvalidInputException("no classpath specified");
++ parsePath(result, classpath);
++
++ // We must always create both output files, even if one is not used.
++ // That way we will always pass valid zip file on to jc1.
++ try {
++ getZipOutput();
++ getDependencyOutput();
++ } catch (IOException err) {
++ fail(err);
++ }
++
++ this.checkedClasspaths = new FileSystem.Classpath[result.size()];
++ result.toArray(this.checkedClasspaths);
++
++ this.logger.logCommandLineArguments(argv);
++ this.logger.logOptions(this.options);
++ this.logger.logClasspath(this.checkedClasspaths);
++
++ this.repetitions = 1;
++ }
++
++ public boolean compile(String[] argv) {
++ boolean result = super.compile(argv);
++ try {
++ if (zipStream != null) {
++ zipStream.finish();
++ zipStream.close();
++ }
++ if (zipDependencyStream != null) {
++ zipDependencyStream.finish();
++ zipDependencyStream.close();
++ }
++ } catch (IOException err) {
++ fail(err);
++ }
++ return result;
++ }
++
++ public static void main(String[] argv) {
++ boolean result = new GCCMain(new PrintWriter(System.out), new PrintWriter(System.err), false).compile(argv);
++ System.exit(result ? 0 : 1);
++ }
++}
Property changes on: trunk/eclipse/debian/patches/eclipse-ecj-gcj.dpatch
___________________________________________________________________
Name: svn:executable
+ *
Modified: trunk/eclipse/debian/rules
===================================================================
--- trunk/eclipse/debian/rules 2007-01-10 15:37:29 UTC (rev 2926)
+++ trunk/eclipse/debian/rules 2007-01-11 21:46:29 UTC (rev 2927)
@@ -140,6 +140,7 @@
eclipse-swt-x11 \
eclipse-build \
eclipse-disable-motif \
+ eclipse-ecj-gcj \
# eclipse-icon \
# eclipse-efj \
More information about the pkg-java-commits
mailing list