Bug 321028 - make eclipse.convert available
diff --git a/bundles/org.eclipse.build.tools/.classpath b/bundles/org.eclipse.build.tools/.classpath
index 83e2f97..96c9dd9 100644
--- a/bundles/org.eclipse.build.tools/.classpath
+++ b/bundles/org.eclipse.build.tools/.classpath
@@ -1,12 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="src" path="src_rss"/>
- <classpathentry kind="src" path="src_bugzilla"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry exported="true" kind="lib" path="buildTools.jar"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="var" path="ECLIPSE_HOME/plugins/org.eclipse.osgi_3.8.0.v20120123-1419.jar"/>
- <classpathentry kind="var" path="ECLIPSE_HOME/plugins/org.apache.ant_1.8.2.v20120109-1030/lib/ant.jar"/>
- <classpathentry kind="var" path="ECLIPSE_HOME/plugins/org.apache.ant_1.8.2.v20120109-1030/lib/ant-launcher.jar"/>
+ <classpathentry kind="src" path="src"/>
<classpathentry kind="output" path="bin"/>
</classpath>
diff --git a/bundles/org.eclipse.build.tools/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.build.tools/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..6e8427d
--- /dev/null
+++ b/bundles/org.eclipse.build.tools/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,111 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.builder.cleanOutputFolder=clean
+org.eclipse.jdt.core.builder.duplicateResourceTask=warning
+org.eclipse.jdt.core.builder.invalidClasspath=abort
+org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
+org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=
+org.eclipse.jdt.core.circularClasspath=error
+org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
+org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
+org.eclipse.jdt.core.classpath.outputOverlappingAnotherSource=error
+org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
+org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
+org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
+org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
+org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
+org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
+org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.incompatibleJDKLevel=warning
+org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/bundles/org.eclipse.build.tools/.settings/org.eclipse.jdt.launching.prefs b/bundles/org.eclipse.build.tools/.settings/org.eclipse.jdt.launching.prefs
new file mode 100644
index 0000000..b2e4c49
--- /dev/null
+++ b/bundles/org.eclipse.build.tools/.settings/org.eclipse.jdt.launching.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=error
diff --git a/bundles/org.eclipse.build.tools/META-INF/MANIFEST.MF b/bundles/org.eclipse.build.tools/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..da8edbc
--- /dev/null
+++ b/bundles/org.eclipse.build.tools/META-INF/MANIFEST.MF
@@ -0,0 +1,11 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %Bundle-Name
+Bundle-SymbolicName: org.eclipse.build.tools; singleton:=true
+Bundle-Version: 1.0.0
+Bundle-Localization: plugin
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Require-Bundle: org.apache.ant,
+ org.eclipse.osgi
+Bundle-ClassPath: buildTools.jar
diff --git a/bundles/org.eclipse.build.tools/build.properties b/bundles/org.eclipse.build.tools/build.properties
new file mode 100644
index 0000000..ab89df4
--- /dev/null
+++ b/bundles/org.eclipse.build.tools/build.properties
@@ -0,0 +1,5 @@
+bin.includes = plugin.properties,\
+ META-INF/,\
+ plugin.xml,\
+ buildTools.jar,\
+ about.html
diff --git a/bundles/org.eclipse.build.tools/buildTools.jar b/bundles/org.eclipse.build.tools/buildTools.jar
index 77ee760..8ea9c38 100644
--- a/bundles/org.eclipse.build.tools/buildTools.jar
+++ b/bundles/org.eclipse.build.tools/buildTools.jar
Binary files differ
diff --git a/bundles/org.eclipse.build.tools/buildTools.jar.MANIFEST.MF b/bundles/org.eclipse.build.tools/buildTools.jar.MANIFEST.MF
new file mode 100644
index 0000000..58630c0
--- /dev/null
+++ b/bundles/org.eclipse.build.tools/buildTools.jar.MANIFEST.MF
@@ -0,0 +1,2 @@
+Manifest-Version: 1.0
+
diff --git a/bundles/org.eclipse.build.tools/buildTools.jar.jardesc b/bundles/org.eclipse.build.tools/buildTools.jar.jardesc
new file mode 100644
index 0000000..e6a0295
--- /dev/null
+++ b/bundles/org.eclipse.build.tools/buildTools.jar.jardesc
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?><jardesc>
+ <jar path="org.eclipse.build.tools/buildTools.jar"/>
+ <options buildIfNeeded="true" compress="true" descriptionLocation="/org.eclipse.build.tools/buildTools.jar.jardesc" exportErrors="true" exportWarnings="true" includeDirectoryEntries="false" overwrite="false" saveDescription="true" storeRefactorings="false" useSourceFolders="false"/>
+ <storedRefactorings deprecationInfo="true" structuralOnly="false"/>
+ <selectedProjects/>
+ <manifest generateManifest="false" manifestLocation="/org.eclipse.build.tools/buildTools.jar.MANIFEST.MF" manifestVersion="1.0" reuseManifest="true" saveManifest="true" usesManifest="true">
+ <sealing sealJar="false">
+ <packagesToSeal/>
+ <packagesToUnSeal/>
+ </sealing>
+ </manifest>
+ <selectedElements exportClassFiles="true" exportJavaFiles="true" exportOutputFolder="false">
+ <file path="/org.eclipse.build.tools/.classpath"/>
+ <folder path="/org.eclipse.build.tools/META-INF"/>
+ <file path="/org.eclipse.build.tools/build.properties"/>
+ <file path="/org.eclipse.build.tools/.project"/>
+ <file path="/org.eclipse.build.tools/about.html"/>
+ <file path="/org.eclipse.build.tools/plugin.xml"/>
+ <file path="/org.eclipse.build.tools/.gitignore"/>
+ <folder path="/org.eclipse.build.tools/scripts"/>
+ <javaElement handleIdentifier="=org.eclipse.build.tools/src"/>
+ <file path="/org.eclipse.build.tools/plugin.properties"/>
+ </selectedElements>
+</jardesc>
\ No newline at end of file
diff --git a/bundles/org.eclipse.build.tools/data/_README.txt b/bundles/org.eclipse.build.tools/data/_README.txt
deleted file mode 100644
index ab54702..0000000
--- a/bundles/org.eclipse.build.tools/data/_README.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-These files are sample data to get you started, generated using
-the feedPublish.*.properties files in the properties/ folder.
\ No newline at end of file
diff --git a/bundles/org.eclipse.build.tools/data/builds-eclipse-3.3.xml b/bundles/org.eclipse.build.tools/data/builds-eclipse-3.3.xml
deleted file mode 100644
index 3ee1147..0000000
--- a/bundles/org.eclipse.build.tools/data/builds-eclipse-3.3.xml
+++ /dev/null
@@ -1,50 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?>
-
-<feed xmlns="http://www.w3.org/2005/Atom">
- <title>Eclipse Builds</title>
- <link href="http://download.eclipse.org/eclipse/downloads/builds-eclipse.xml" rel="self" type="application/atom+xml"/>
- <updated>2006-11-14T23:54:27Z</updated>
- <author>
- <name>Eclipse Build Team</name>
- </author>
- <id>http://download.eclipse.org/eclipse/downloads/builds-eclipse.xml</id>
- <entry>
- <title>[announce] Eclipse I20060922-0010 (3.3.0.I20060922-0010) is available</title>
- <link href="http://download.eclipse.org/eclipse/downloads/drops/I20060922-0010"/>
- <id>http://download.eclipse.org/eclipse/downloads/drops/I20060922-0010</id>
- <updated>2006-11-14T23:54:27Z</updated>
- <summary>
- <build xmlns="http://www.eclipse.org/2006/BuildFeed" branch="HEAD" datetime="20060922-0010" href="http://download.eclipse.org/eclipse/downloads/drops/I20060922-0010" type="I" version="3.3.0">
- <detail href="http://www.eclipse.org/downloads/download.php?r=1&file=/eclipse/downloads/drops/I20060922-0010/" map="directory.txt"/>
- <downloads>http://download.eclipse.org/eclipse/downloads/</downloads>
- <releasenotes>http://download.eclipse.org/eclipse/downloads/drops/I20060922-0010/buildNotes.php
- </releasenotes>
- <releases>
- <release arch="x86" os="win32" type="SDK" ws="win">eclipse-SDK-I20060922-0010-win32.zip</release>
- <release arch="x86" os="linux" type="SDK" ws="gtk">eclipse-SDK-I20060922-0010-linux-gtk.tar.gz</release>
- </releases>
- <tests>
- <test href="http://download.eclipse.org/eclipse/downloads/drops/I20060922-0010/testResults.php" type="junit">
- <result arch="x86" os="win32" ws="win">UNKNOWN</result>
- <result arch="x86" os="linux" ws="gtk">UNKNOWN</result>
- <result arch="x86_64" os="linux" ws="gtk">UNKNOWN</result>
- <result arch="ppc" os="linux" ws="gtk">UNKNOWN</result>
- <result arch="x86" os="linux" ws="motif">UNKNOWN</result>
- <result arch="x86" os="solaris8" ws="gtk">UNKNOWN</result>
- <result arch="x86" os="aix" ws="motif">UNKNOWN</result>
- <result arch="x86" os="hp-ux" ws="motif">UNKNOWN</result>
- <result arch="ppc" os="macosx" ws="carbon">UNKNOWN</result>
- </test>
- <test href="http://download.eclipse.org/eclipse/downloads/drops/I20060922-0010/performance/performance.php" type="performance">
- <result arch="x86" id="RHEL4-3GHz-2.5GB" os="linux" ws="gtk">PENDING</result>
- <result arch="x86" id="winxp-3GHz-2GB" os="win32" ws="win">UNKNOWN</result>
- <result arch="x86" id="RHEL3-3GHz-2GB" os="linux" ws="gtk">UNKNOWN</result>
- <result arch="x86" id="winxp-2GHz-512MB" os="win32" ws="win">UNKNOWN</result>
- </test>
- </tests>
- <coordinated status="COMPLETE"/>
- </build>
- </summary>
- </entry>
-</feed>
diff --git a/bundles/org.eclipse.build.tools/data/builds-emf-2.3.xml b/bundles/org.eclipse.build.tools/data/builds-emf-2.3.xml
deleted file mode 100644
index 4b3f599..0000000
--- a/bundles/org.eclipse.build.tools/data/builds-emf-2.3.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?>
-
-<feed xmlns="http://www.w3.org/2005/Atom">
- <title>EMF Builds</title>
- <link href="http://download.eclipse.org/tools/emf/feeds/builds.xml" rel="self" type="application/atom+xml"/>
- <updated>2006-11-14T23:07:56Z</updated>
- <author>
- <name>EMF Build Team</name>
- </author>
- <id>http://download.eclipse.org/tools/emf/feeds/builds.xml</id>
- <entry>
- <title>[announce] EMF 2.3.0M3 (S200611091546) is available</title>
- <link href="http://www.eclipse.org/emf/downloads/?showAll=1&hlbuild=S200611091546#S200611091546"/>
- <id>http://www.eclipse.org/emf/downloads/?showAll=1&hlbuild=S200611091546#S200611091546</id>
- <updated>2006-11-14T23:07:56Z</updated>
- <summary>
- <build xmlns="http://www.eclipse.org/2006/BuildFeed" branch="HEAD" datetime="200611091546" href="http://www.eclipse.org/emf/downloads/?showAll=1&hlbuild=S200611091546#S200611091546" type="S" version="2.3.0">
- <detail config="build.cfg" href="http://www.eclipse.org/downloads/download.php?r=1&file=/tools/emf/downloads/drops/2.3.0/S200611091546/" log="buildlog.txt" map="directory.txt"/>
- <update>http://download.eclipse.org/tools/emf/updates/</update>
- <downloads>http://www.eclipse.org/emf/downloads/</downloads>
- <releasenotes>http://www.eclipse.org/emf/news/release-notes.php?version=2.3.0
- </releasenotes>
- <releases>
- <release arch="ALL" os="ALL" type="SDK" ws="ALL">emf-sdo-xsd-SDK-2.3.0M3.zip</release>
- </releases>
- <tests>
- <test href="http://www.eclipse.org/downloads/download.php?r=1&file=/tools/emf/downloads/drops/2.3.0/S200611091546/testResults.php" type="junit">
- <result arch="ALL" os="ALL" ws="ALL">PASS</result>
- </test>
- </tests>
- <dependencies>
- <dependency>http://www.eclipse.org/downloads/download.php?file=/eclipse/downloads/drops/M20060919-1045/eclipse-SDK-M20060919-1045-linux-gtk.tar.gz</dependency>
- </dependencies>
- <coordinated status="COMPLETE"/>
- </build>
- </summary>
- </entry>
-</feed>
diff --git a/bundles/org.eclipse.build.tools/data/builds-uml2-uml-2.1.xml b/bundles/org.eclipse.build.tools/data/builds-uml2-uml-2.1.xml
deleted file mode 100644
index 0ae3ea4..0000000
--- a/bundles/org.eclipse.build.tools/data/builds-uml2-uml-2.1.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?>
-
-<feed xmlns="http://www.w3.org/2005/Atom">
- <title>UML2 Builds</title>
- <link href="http://download.eclipse.org/modeling/mdt/feeds/builds-uml2-uml-2.0.xml" rel="self" type="application/atom+xml"/>
- <updated>2006-11-14T23:12:21Z</updated>
- <author>
- <name>UML2 Build Team</name>
- </author>
- <id>http://download.eclipse.org/modeling/mdt/feeds/builds-uml2-uml-2.0.xml</id>
- <entry>
- <title>[announce] UML2 2.0.1 M200609210850 is available</title>
- <link href="http://www.eclipse.org/modeling/mdt/downloads/?project=uml2-uml&showAll=1&hlbuild=M200609210850#M200609210850"/>
- <id>http://www.eclipse.org/modeling/mdt/downloads/?project=uml2-uml&showAll=1&hlbuild=M200609210850#M200609210850</id>
- <updated>2006-11-14T23:12:21Z</updated>
- <summary>
- <build xmlns="http://www.eclipse.org/2006/BuildFeed" branch="HEAD" datetime="200609210850" href="http://www.eclipse.org/modeling/mdt/downloads/?project=uml2-uml&showAll=1&hlbuild=M200609210850#M200609210850" type="M" version="2.0.1">
- <detail config="build.cfg" href="http://www.eclipse.org/downloads/download.php?r=1&file=/modeling/mdt/uml2-uml/downloads/drops/2.0.1/M200609210850/" log="buildlog.txt" map="directory.txt"/>
- <update>http://download.eclipse.org/modeling/mdt/updates/?project=uml2-uml</update>
- <downloads>http://www.eclipse.org/modeling/mdt/downloads/?project=uml2-uml#uml2-uml</downloads>
- <releasenotes>http://www.eclipse.org/modeling/mdt/news/release-notes.php?project=uml2-uml&amp;version=2.0.1
- </releasenotes>
- <releases>
- <release arch="ALL" os="ALL" type="SDK" ws="ALL">uml2-SDK-.zip</release>
- </releases>
- <tests>
- <test href="http://www.eclipse.org/downloads/download.php?r=1&file=/modeling/mdt/uml2-uml/downloads/drops/2.0.1/M200609210850/testResults.php" type="junit">
- <result arch="ALL" os="ALL" ws="ALL">PASS</result>
- </test>
- </tests>
- <dependencies>
- <dependency>http://www.eclipse.org/downloads/download.php?file=/eclipse/downloads/drops/M20060919-1045/eclipse-SDK-M20060919-1045-linux-gtk.tar.gz</dependency>
- <dependency>http://www.eclipse.org/downloads/download.php?file=/tools/emf/downloads/drops/2.2.1/S200609210005/emf-sdo-xsd-SDK-2.2.1RC2.zip</dependency>
- </dependencies>
- <coordinated status="COMPLETE"/>
- </build>
- </summary>
- </entry>
-</feed>
diff --git a/bundles/org.eclipse.build.tools/plugin.properties b/bundles/org.eclipse.build.tools/plugin.properties
new file mode 100644
index 0000000..1f7af99
--- /dev/null
+++ b/bundles/org.eclipse.build.tools/plugin.properties
@@ -0,0 +1,2 @@
+
+Bundle-Name = Ant tasks used during platform builds
\ No newline at end of file
diff --git a/bundles/org.eclipse.build.tools/plugin.xml b/bundles/org.eclipse.build.tools/plugin.xml
index 734b71f..ed29b43 100644
--- a/bundles/org.eclipse.build.tools/plugin.xml
+++ b/bundles/org.eclipse.build.tools/plugin.xml
@@ -1,18 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.0"?>
-<plugin
- id="org.eclipse.build.tools"
- name="org.eclipse.build.tools"
- version="1.0.0">
-
- <runtime>
- </runtime>
+<plugin>
<extension
point="org.eclipse.ant.core.extraClasspathEntries">
<extraClasspathEntry
library="buildTools.jar">
- </extraClasspathEntry>
+ </extraClasspathEntry>
</extension>
<!-- Tasks -->
<extension point="org.eclipse.ant.core.antTasks">
diff --git a/bundles/org.eclipse.build.tools/properties/UpdateBugStateTask.properties b/bundles/org.eclipse.build.tools/properties/UpdateBugStateTask.properties
deleted file mode 100644
index b6c21ad..0000000
--- a/bundles/org.eclipse.build.tools/properties/UpdateBugStateTask.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-#this file should be loaded by UpdateBugStateTask.xml when running
-#it is expected to contain login and logincookie, run BugzillaLogin.sh to generate these
-#see below for sample syntax
-
-login=8130
-logincookie=982276000
\ No newline at end of file
diff --git a/bundles/org.eclipse.build.tools/properties/_README.txt b/bundles/org.eclipse.build.tools/properties/_README.txt
deleted file mode 100644
index 959c36c..0000000
--- a/bundles/org.eclipse.build.tools/properties/_README.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-These files are examples to get you started. Since you cannot commit
-your files into CVS here, just point the scripts at your own properties
-files, similar in content to these, and run accordingly.
-
-You can also run the Ant scripts without properties files if you set
-the attributes statically in your ant script.
-
-Or, you can call the Tasks themselves within another Java class.
-RSSFeedAddEntryTask is an example of this, in that it optionally
-calls RSSFeedCreateFeedTask if no existing feed file already exists.
-RSSFeedGetPropertyTask is a wrapper for RSSFeedUpdateEntryTask, which
-also queries for an attribute value, but instead of changing it,
-simply returns it.
\ No newline at end of file
diff --git a/bundles/org.eclipse.build.tools/properties/feedPublish.eclipse.properties b/bundles/org.eclipse.build.tools/properties/feedPublish.eclipse.properties
deleted file mode 100644
index 3629240..0000000
--- a/bundles/org.eclipse.build.tools/properties/feedPublish.eclipse.properties
+++ /dev/null
@@ -1,108 +0,0 @@
-###############################################################################
-# Copyright (c) 2005, 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# IBM Corporation - initial API and implementation
-###############################################################################
-# properties for: RSSFeedCreateFeedTask.java, RSSFeedAddEntryTask.java, RSSFeedGetPropertyTask.java, RSSFeedUpdateEntryTask.java, RSSFeedPublisherTask.java
-
-# NOTE: if values are commented out (#), they must be passed in to Ant via commandline instead (eg., from emf's promoteToEclipse.sh when promoting a build)
-
-# one of 0|1|2
-debug=1
-
-# if file does not exist, it will be created; if it does, it will be modified
-#file=/builds/transfer/files/master/downloads/builds-eclipse-3.3.xml
-file=../data/builds-eclipse-3.4.xml
-
-# required
-project=Eclipse
-branch=HEAD
-version=3.3.0
-buildID=I20060922-0010
-feedURL=http://download.eclipse.org/eclipse/downloads/builds-eclipse.xml
-buildURL=http://download.eclipse.org/eclipse/downloads/drops/%%buildID%%
-
-# optional build alias, like 3.3M3
-buildAlias=I20060922-0010
-
-# optional build type; one of: N, I, M, S, R; if not provided, will be pulled from buildID above
-buildType=
-
-# optional
-buildDetailURL=http://www.eclipse.org/downloads/download.php?r=1&file=/eclipse/downloads/drops/%%buildID%%/
-buildConfigURL=
-buildLogURL=
-buildMapURL=directory.txt
-
-# optional
-releaseNotesURL=http://download.eclipse.org/eclipse/downloads/drops/%%buildID%%/buildNotes.php
-updateManagerURL=
-downloadsURL=http://download.eclipse.org/eclipse/downloads/
-
-# optional: one of NONE|UNSIGNED|SIGNREADY|BUILDREADY|SIGNED
-jarSigningStatus=
-
-# optional: one of NONE|BUILDCOMPLETE|UMSITEREADY|CALLISTOSITEREADY|COMPLETE, or
-coordinatedStatus=
-# optional: timestamp when will be ready (eg., 2006-05-02T20:50:00Z), or
-# project on which you're waiting (eg., TPTP)
-coordinatedDetails=
-
-# comma or space separated values
-dependencyURLs=
-
-#optional
-JUnitTestURL=http://download.eclipse.org/eclipse/downloads/drops/%%buildID%%/testResults.php
-performanceTestURL=http://download.eclipse.org/eclipse/downloads/drops/%%buildID%%/performance/performance.php
-APITestURL=
-
-# values to set for test results in quints of id,os,ws,arch,status,id,os,ws,arch,status,...
-JUnitTestResults=\
-0,win32,win,x86,UNKNOWN,\
-0,linux,gtk,x86,UNKNOWN,\
-0,linux,gtk,x86_64,UNKNOWN,\
-0,linux,gtk,ppc,UNKNOWN,\
-0,solaris8,gtk,x86,UNKNOWN,\
-0,aix,motif,x86,UNKNOWN,\
-0,hp-ux,motif,x86,UNKNOWN,\
-0,macosx,carbon,ppc,UNKNOWN
-performanceTestResults=\
-RHEL4-3GHz-2.5GB,linux,gtk,x86,UNKNOWN,\
-winxp-3GHz-2GB,win32,win,x86,UNKNOWN,\
-RHEL3-3GHz-2GB,linux,gtk,x86,UNKNOWN,\
-winxp-2GHz-512MB,win32,win,x86,UNKNOWN
-APITestResults=
-
-# values to set for release bundles in quints of os,ws,arch,name/type,filename,os,ws,arch,name/type,filename...
-# only need the filename; the full http URL can be assembled from buildURL + "/download.php?dropFile=" + filename or buildURL (switched to ftp://) + "/" + filename
-# eg., win32,win,SDK,eclipse-SDK-%%buildAlias%%-win32.zip,linux,gtk,SDK,eclipse-SDK-%%buildAlias%%-linux-gtk.tar.gz
-Releases=\
-win32,win,x86,SDK,eclipse-SDK-%%buildAlias%%-win32.zip,\
-linux,gtk,x86,SDK,eclipse-SDK-%%buildAlias%%-linux-gtk.tar.gz
-
-########################################
-
-# options for publishing files - need either an scp target or a cvs root/path, or both
-# file (above) is required too
-
-# /path/to/cvs/executable
-cvsExec=/usr/bin/cvs
-# user@cvsServer:/path/to/cvs/root
-cvsRoot=
-# cvs/module/path
-cvsPath=www/news
-# /tmp/folder/path/for/checkout
-cvsTemp=
-
-# /path/to/scp/executable
-scpExec=/usr/bin/scp
-# user@server:/path/to/destination/file.xml - destintion folder MUST ALREADY EXIST
-scpTarget=
-
-# optionally, if the target folder might not exist, you can use ssh to create it before scp'ing the file - only runs if sshMakeDirCommand is defined
-sshExec=/usr/bin/ssh
diff --git a/bundles/org.eclipse.build.tools/properties/feedPublish.emf.properties b/bundles/org.eclipse.build.tools/properties/feedPublish.emf.properties
deleted file mode 100644
index 314e027..0000000
--- a/bundles/org.eclipse.build.tools/properties/feedPublish.emf.properties
+++ /dev/null
@@ -1,100 +0,0 @@
-###############################################################################
-# Copyright (c) 2005, 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# IBM Corporation - initial API and implementation
-###############################################################################
-# properties for: RSSFeedCreateFeedTask.java, RSSFeedAddEntryTask.java, RSSFeedGetPropertyTask.java, RSSFeedUpdateEntryTask.java, RSSFeedPublisherTask.java
-
-# NOTE: if values are commented out (#), they must be passed in to Ant via commandline instead (eg., from emf's promoteToEclipse.sh when promoting a build)
-
-# one of 0|1|2
-debug=0
-
-# if file does not exist, it will be created; if it does, it will be modified
-#file=/var/www/emf/feeds/builds-emf-2.3.xml
-file=../data/builds-emf-2.3.xml
-
-# required
-project=EMF
-branch=HEAD
-version=2.3.0
-buildID=S200611091546
-feedURL=http://download.eclipse.org/tools/emf/feeds/builds-emf-2.3.xml
-buildURL=http://www.eclipse.org/emf/downloads/?showAll=1&hlbuild=%%buildID%%#%%buildID%%
-
-# optional build alias, like 2.2.1RC2
-buildAlias=2.3.0M3
-
-# optional build type; one of: N, I, M, S, R; if not provided, will be pulled from buildID above
-buildType=
-
-# optional
-buildDetailURL=http://www.eclipse.org/downloads/download.php?r=1&file=/tools/emf/downloads/drops/%%version%%/%%buildID%%/
-buildConfigURL=build.cfg
-buildLogURL=buildlog.txt
-buildMapURL=directory.txt
-
-# optional
-releaseNotesURL=http://www.eclipse.org/emf/news/release-notes.php?version=%%version%%
-updateManagerURL=http://download.eclipse.org/tools/emf/updates/
-downloadsURL=http://www.eclipse.org/emf/downloads/
-
-# optional: one of NONE|UNSIGNED|SIGNREADY|BUILDREADY|SIGNED
-jarSigningStatus=
-
-# optional: one of NONE|BUILDCOMPLETE|UMSITEREADY|CALLISTOSITEREADY|COMPLETE
-coordinatedStatus=CALLISTOSITEREADY
-# optional: timestamp when will be ready (eg., 2006-05-02T20:50:00Z), or
-# project on which you're waiting (eg., TPTP)
-coordinatedDetails=
-
-# comma or space separated values
-dependencyURLs=http://www.eclipse.org/downloads/download.php?file=/eclipse/downloads/drops/M20060919-1045/eclipse-SDK-M20060919-1045-linux-gtk.tar.gz
-
-# optional
-JUnitTestURL=http://www.eclipse.org/downloads/download.php?r=1&file=/tools/emf/downloads/drops/%%version%%/%%buildID%%/testResults.php
-performanceTestURL=
-APITestURL=
-
-# values to set for test results in quints of id,os,ws,arch,status,id,os,ws,arch,status,...
-JUnitTestResults=0,ALL,ALL,ALL,PASS
-performanceTestResults=
-APITestResults=
-
-# values to set for release bundles in quints of os,ws,arch,name/type,filename,os,ws,arch,name/type,filename...
-# only need the filename; the full http URL can be assembled from buildURL + "/download.php?dropFile=" + filename or buildURL (switched to ftp://) + "/" + filename
-# eg., ALL,ALL,ALL,SDK,emf-sdo-xsd-SDK-%%buildAlias%%.zip
-Releases=ALL,ALL,ALL,SDK,emf-sdo-xsd-SDK-%%buildAlias%%.zip
-
-########################################
-
-# options for publishing files - need either an scp target or a cvs root/path, or both
-# file (above) is required too
-
-# /path/to/cvs/executable
-cvsExec=/usr/bin/cvs
-# user@cvsServer:/path/to/cvs/root
-cvsRoot=nickb@dev.eclipse.org:/cvsroot/org.eclipse
-# cvs/module/path
-cvsPath=www/emf/feeds
-# /tmp/folder/path/for/checkout
-cvsTemp=/tmp/tmp-RSSFeedPublisherTask-emf-nickb
-
-# /path/to/scp/executable
-scpExec=/usr/bin/scp
-# user@server:/path/to/destination/folder/ - destination folder MUST ALREADY EXIST
-scpTarget=nickb@download1.eclipse.org:/home/data/httpd/download.eclipse.org/tools/emf/feeds/
-
-# optionally, if the target folder might not exist, you can use ssh to create it before scp'ing the file
-sshExec=/usr/bin/ssh
-
-# for local testing purposes only
-#cvsRoot=nickb@dbzi:/home/cvs
-#cvsPath=tmp/foo
-#scpTarget=nickb@dbzi:/tmp/foo/
-
diff --git a/bundles/org.eclipse.build.tools/properties/feedPublish.uml2.properties b/bundles/org.eclipse.build.tools/properties/feedPublish.uml2.properties
deleted file mode 100644
index 7ca324f..0000000
--- a/bundles/org.eclipse.build.tools/properties/feedPublish.uml2.properties
+++ /dev/null
@@ -1,94 +0,0 @@
-###############################################################################
-# Copyright (c) 2005, 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# IBM Corporation - initial API and implementation
-###############################################################################
-# properties for: RSSFeedCreateFeedTask.java, RSSFeedAddEntryTask.java, RSSFeedGetPropertyTask.java, RSSFeedUpdateEntryTask.java, RSSFeedPublisherTask.java
-
-# NOTE: if values are commented out (#), they must be passed in to Ant via commandline instead (eg., from emf's promoteToEclipse.sh when promoting a build)
-
-# one of 0|1|2
-debug=0
-
-# if file does not exist, it will be created; if it does, it will be modified
-#file=/var/www/modeling/mdt/feeds/builds-uml2-uml-2.1.xml
-file=../data/builds-uml2-uml-2.1.xml
-
-# required
-project=UML2
-branch=HEAD
-version=2.1.0
-buildID=I200611141702
-feedURL=http://download.eclipse.org/modeling/mdt/feeds/builds-uml2-uml-2.1.xml
-buildURL=http://www.eclipse.org/modeling/mdt/downloads/?project=uml2-uml&showAll=1&hlbuild=%%buildID%%#%%buildID%%
-
-# optional build alias, like 2.0.1RC1
-buildAlias=
-
-# optional build type; one of: N, I, M, S, R; if not provided, will be pulled from buildID above
-buildType=
-
-# optional
-buildDetailURL=http://www.eclipse.org/downloads/download.php?r=1&file=/modeling/mdt/uml2-uml/downloads/drops/%%version%%/%%buildID%%/
-buildConfigURL=build.cfg
-buildLogURL=buildlog.txt
-buildMapURL=directory.txt
-
-# optional
-releaseNotesURL=http://www.eclipse.org/modeling/mdt/news/release-notes.php?project=uml2-uml&version=%%version%%
-updateManagerURL=http://download.eclipse.org/modeling/mdt/updates/?project=uml2-uml
-downloadsURL=http://www.eclipse.org/modeling/mdt/downloads/?project=uml2-uml#uml2-uml
-
-# optional: one of NONE|UNSIGNED|SIGNREADY|BUILDREADY|SIGNED
-jarSigningStatus=
-
-# optional: one of NONE|BUILDCOMPLETE|UMSITEREADY|CALLISTOSITEREADY|COMPLETE
-coordinatedStatus=
-# optional: timestamp when will be ready (eg., 2006-05-02T20:50:00Z), or
-# project on which you're waiting (eg., TPTP)
-coordinatedDetails=
-
-# comma or space separated values
-dependencyURLs=http://www.eclipse.org/downloads/download.php?file=/eclipse/downloads/drops/M20060919-1045/eclipse-SDK-M20060919-1045-linux-gtk.tar.gz http://www.eclipse.org/downloads/download.php?file=/tools/emf/downloads/drops/2.2.1/S200609210005/emf-sdo-xsd-SDK-2.2.1RC2.zip
-
-# optional
-JUnitTestURL=http://www.eclipse.org/downloads/download.php?r=1&file=/modeling/mdt/uml2-uml/downloads/drops/%%version%%/%%buildID%%/testResults.php
-performanceTestURL=
-APITestURL=
-
-# values to set for test results in quints of id,os,ws,arch,status,id,os,ws,arch,status,...
-JUnitTestResults=0,ALL,ALL,ALL,PASS
-performanceTestResults=
-APITestResults=
-
-# values to set for release bundles in quints of os,ws,arch,name/type,filename,os,ws,arch,name/type,filename...
-# only need the filename; the full http URL can be assembled from buildURL + "/download.php?dropFile=" + filename or buildURL (switched to ftp://) + "/" + filename
-# eg., ALL,ALL,ALL,SDK,uml2-SDK-%%buildAlias%%.zip
-Releases=ALL,ALL,ALL,SDK,uml2-SDK-%%buildAlias%%.zip
-
-########################################
-
-# options for publishing files - need either an scp target or a cvs root/path, or both
-# file (above) is required too
-
-# /path/to/cvs/executable
-cvsExec=/usr/bin/cvs
-# user@cvsServer:/path/to/cvs/root
-cvsRoot=khussey@dev.eclipse.org:/cvsroot/org.eclipse
-# cvs/module/path
-cvsPath=www/uml2/feeds
-# /tmp/folder/path/for/checkout
-cvsTemp=/tmp/RSSFeedPublisherTask-uml2-khussey
-
-# /path/to/scp/executable
-scpExec=/usr/bin/scp
-# user@server:/path/to/destination/folder/ - destination folder MUST ALREADY EXIST
-scpTarget=khussey@download1.eclipse.org:/home/data/httpd/download.eclipse.org/tools/uml2/feeds/
-
-# optionally, if the target folder might not exist, you can use ssh to create it before scp'ing the file - only runs if sshMakeDirCommand is defined
-sshExec=/usr/bin/ssh
diff --git a/bundles/org.eclipse.build.tools/properties/feedWatch.emf.properties b/bundles/org.eclipse.build.tools/properties/feedWatch.emf.properties
deleted file mode 100644
index ad8f528..0000000
--- a/bundles/org.eclipse.build.tools/properties/feedWatch.emf.properties
+++ /dev/null
@@ -1,96 +0,0 @@
-###############################################################################
-# Copyright (c) 2005, 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# IBM Corporation - initial API and implementation
-###############################################################################
-# properties for RSSFeedWatcherTask.java
-
-# one of 0|1|2
-debug=0
-
-# if file does not exist, it will be created; if it does, it will be modified
-file=../data/builds-eclipse-3.4.xml
-
-# required URL for the feed to check
-feedURL=http://download.eclipse.org/downloads/builds-eclipse.xml
-
-# Feed Watch Actions - must be defined as triplets of [xpath0]; [script0]; [commandline0]; [xpath1]; [script1]; [commandline1]; ...
-# must be separated by semi-colons. Line breaks are permitted for clarity and will be String.trim()'d
-feedWatchActions=\
-//*[name()='entry'][1]/*/*[name()='build']/@href;null;null;\
-//*[name()='entry'][1]/*/*[name()='build']/*[name()='releases']/*[@os='linux'][@ws='gtk'][@type='SDK']/text();null;null;\
-//*[name()='entry'][1]/*/*[name()='build']/@type;null;null;\
-
-# PASSING ANT TASK RESULTS TO EXTERNAL SCRIPT AS COMMANDLINE ARGUMENTS
-######################################################################
-
-# The <exec> task that is run within RSSFeedWatcherTask.java, eg.
-# <exec executable="/path/to/executable"><arg line="-somearg value -someotherarg anothervalue"/></exec>
-# will be passed some default commandline arguments BEFORE any you might want to specify as well (so that you can override them if you wish).
-
-# For example, if you have these properties set in this file:
-# debug=1
-# feedWatchActions=//*[name() = 'entry'][1]/*[name() = 'updated']/text(); ../scripts_rss/sendEmailAlert.sh; -debug 0
-# you will execute the following under the covers of the org.eclipse.releng.services.RSSFeedWatcherTask:
-# <exec executable="../scripts_rss/sendEmailAlert.sh">
-# <arg line="-debug 1 -feedURL http://www.eclipse.org/emf/feeds/builds.xml
-# -xpath "/*[name() = 'feed']/*[name() = 'updated']/text()"
-# -oldvalue "2006-05-04T12:14:33Z" -newvalue "2006-05-11T12:14:33Z" -debug 0"/>
-# </exec>
-
-# Therefore, you can use these values in the script that you execute (be it sending an email or starting a build or whatever).
-# If you do NOT want to pass arguments to your executable, use the word "null" instead. This will NOT be passed to your script.
-
-
-# CHECKING ANT TASK RESULTS WITHIN ANT SCRIPT
-#############################################
-
-# If you want to run some <exec> and then check the results of that execution, you can do so in the ant script that calls RSSFeedWatcherTask.
-# The following properties will be set after you run the task:
-
-# feedWatchAction.Result.0 - The result returned from the <exec> task; if set, something bad happened
-# feedWatchAction.Error.0 - Details about the error that occurred, if set, something bad happened
-# feedWatchAction.Output.0 - Console output from your <exec>, if any;
-# this will depend on what you run in response to a feed change, and if that process produces console output
-# feedWatchAction.OldValue.0 - The original value of the node you asked for, from the previous cached version of the feed
-# feedWatchAction.NewValue.0 - The changed value of the node you asked for, from the latest version of the feed;
-# if you asked for changes to the test status for performance tests, this could be "PASS";
-# if you asked for any changes to the feed, this will be the XML datestamp of the last update, eg: 2006-05-04T12:14:33Z
-#
-# If you are watching for more than one condition, you can check for feedWatchAction.Result.0, feedWatchAction.Result.1, feedWatchAction.Result.2, etc.
-
-
-# RUNNING NO EXTERNAL <exec>
-#############################################
-
-# If you only want to check for changes to the feed and handle the response yourself within Ant instead of an <exec>,
-# simply pass in the executable as "null" to prevent any shell execution from occurring. For example:
-
-# feedWatchActions=//*[name() = 'entry'][1]/*[name() = 'updated']/text(); null; null
-
-# If the node is found and the feed has been changed, the property feedWatchAction.NewValue.0
-# (and/or feedWatchAction.NewValue.1, feedWatchAction.NewValue.2, etc.) will be set to the new changed value.
-
-
-# XPATH EXAMPLES - SAMPLE NODES TO WATCH FOR CHANGES
-####################################################
-
-# 1. to watch for ANY change in the feed, check the <feed>'s <updated> node (and respond with an email, passing -debug 1 to the mail script)
-# feedWatchActions=/*[name() = 'feed']/*[name() = 'updated']/text(); ../scripts_rss/sendEmailAlert.sh; -debug 1
-
-# 2. to watch for ANY changes in the current build, check the first <entry>'s <updated> node (and respond with an email, no commandline flags)
-# feedWatchActions=//*[name() = 'entry'][1]/*[name() = 'updated']/text(); ../scripts_rss/sendEmailAlert.sh; null
-
-# 3a. to watch for coordinated status changes, check the first <entry>'s <build> node's coordinated="" attribute (and respond using some custom Ant script)
-# feedWatchActions=//*[name() = 'entry'][1]/*/*/*[name() = 'coordinated']/@status; null; null
-
-# 3b. to watch for jar signing status changes, check the first <entry>'s <build> node's jars="" attribute (and respond using some custom Ant script)
-# feedWatchActions=//*[name() = 'entry'][1]/*/*[name() = 'build']/@jars; null; null
-
-# 3c. to watch for changes in the current build's performance test results on linux-gtk (and respond using some custom Ant script)
-# feedWatchActions=//*[name() = 'entry'][1]/*/*/*/*[@type = 'performance']/*[name() = 'result'][@os = 'linux'][@ws = 'gtk']/text(); null; null
diff --git a/bundles/org.eclipse.build.tools/properties/feedWatch.uml2.properties b/bundles/org.eclipse.build.tools/properties/feedWatch.uml2.properties
deleted file mode 100644
index 8f76d74..0000000
--- a/bundles/org.eclipse.build.tools/properties/feedWatch.uml2.properties
+++ /dev/null
@@ -1,93 +0,0 @@
-###############################################################################
-# Copyright (c) 2005, 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# IBM Corporation - initial API and implementation
-###############################################################################
-# properties for RSSFeedWatcherTask.java
-
-# one of 0|1|2
-debug=2
-
-# if file does not exist, it will be created; if it does, it will be modified
-file=../data/builds-emf-2.3.xml
-
-# required URL for the feed to check
-feedURL=http://www.eclipse.org/emf/feeds/builds-emf-2.3.xml
-
-# Feed Watch Actions - must be defined as triplets of [xpath0]; [script0]; [commandline0]; [xpath1]; [script1]; [commandline1]; ...
-# must be separated by semi-colons. Line breaks are permitted for clarity and will be String.trim()'d
-feedWatchActions=/*[name() = 'feed']/*[name() = 'updated']/text(); null; null
-
-# PASSING ANT TASK RESULTS TO EXTERNAL SCRIPT AS COMMANDLINE ARGUMENTS
-######################################################################
-
-# The <exec> task that is run within RSSFeedWatcherTask.java, eg.
-# <exec executable="/path/to/executable"><arg line="-somearg value -someotherarg anothervalue"/></exec>
-# will be passed some default commandline arguments BEFORE any you might want to specify as well (so that you can override them if you wish).
-
-# For example, if you have these properties set in this file:
-# debug=1
-# feedWatchActions=//*[name() = 'entry'][1]/*[name() = 'updated']/text(); ../scripts_rss/sendEmailAlert.sh; -debug 0
-# you will execute the following under the covers of the org.eclipse.releng.services.RSSFeedWatcherTask:
-# <exec executable="../scripts_rss/sendEmailAlert.sh">
-# <arg line="-debug 1 -feedURL http://www.eclipse.org/emf/feeds/builds.xml
-# -xpath "/*[name() = 'feed']/*[name() = 'updated']/text()"
-# -oldvalue "2006-05-04T12:14:33Z" -newvalue "2006-05-11T12:14:33Z" -debug 0"/>
-# </exec>
-
-# Therefore, you can use these values in the script that you execute (be it sending an email or starting a build or whatever).
-# If you do NOT want to pass arguments to your executable, use the word "null" instead. This will NOT be passed to your script.
-
-
-# CHECKING ANT TASK RESULTS WITHIN ANT SCRIPT
-#############################################
-
-# If you want to run some <exec> and then check the results of that execution, you can do so in the ant script that calls RSSFeedWatcherTask.
-# The following properties will be set after you run the task:
-
-# feedWatchAction.Result.0 - The result returned from the <exec> task; if set, something bad happened
-# feedWatchAction.Error.0 - Details about the error that occurred, if set, something bad happened
-# feedWatchAction.Output.0 - Console output from your <exec>, if any;
-# this will depend on what you run in response to a feed change, and if that process produces console output
-# feedWatchAction.OldValue.0 - The original value of the node you asked for, from the previous cached version of the feed
-# feedWatchAction.NewValue.0 - The changed value of the node you asked for, from the latest version of the feed;
-# if you asked for changes to the test status for performance tests, this could be "PASS";
-# if you asked for any changes to the feed, this will be the XML datestamp of the last update, eg: 2006-05-04T12:14:33Z
-#
-# If you are watching for more than one condition, you can check for feedWatchAction.Result.0, feedWatchAction.Result.1, feedWatchAction.Result.2, etc.
-
-
-# RUNNING NO EXTERNAL <exec>
-#############################################
-
-# If you only want to check for changes to the feed and handle the response yourself within Ant instead of an <exec>,
-# simply pass in the executable as "null" to prevent any shell execution from occurring. For example:
-
-# feedWatchActions=//*[name() = 'entry'][1]/*[name() = 'updated']/text(); null; null
-
-# If the node is found and the feed has been changed, the property feedWatchAction.NewValue.0
-# (and/or feedWatchAction.NewValue.1, feedWatchAction.NewValue.2, etc.) will be set to the new changed value.
-
-
-## XPATH EXAMPLES - SAMPLE NODES TO WATCH FOR CHANGES
-####################################################
-
-# 1. to watch for ANY change in the feed, check the <feed>'s <updated> node (and respond with an email, passing -debug 1 to the mail script)
-# feedWatchActions=/*[name() = 'feed']/*[name() = 'updated']/text(); ../scripts_rss/sendEmailAlert.sh; -debug 1
-
-# 2. to watch for ANY changes in the current build, check the first <entry>'s <updated> node (and respond with an email, no commandline flags)
-# feedWatchActions=//*[name() = 'entry'][1]/*[name() = 'updated']/text(); ../scripts_rss/sendEmailAlert.sh; null
-
-# 3a. to watch for coordinated status changes, check the first <entry>'s <build> node's coordinated="" attribute (and respond using some custom Ant script)
-# feedWatchActions=//*[name() = 'entry'][1]/*/*/*[name() = 'coordinated']/@status; null; null
-
-# 3b. to watch for jar signing status changes, check the first <entry>'s <build> node's jars="" attribute (and respond using some custom Ant script)
-# feedWatchActions=//*[name() = 'entry'][1]/*/*[name() = 'build']/@jars; null; null
-
-# 3c. to watch for changes in the current build's performance test results on linux-gtk (and respond using some custom Ant script)
-# feedWatchActions=//*[name() = 'entry'][1]/*/*/*/*[@type = 'performance']/*[name() = 'result'][@os = 'linux'][@ws = 'gtk']/text(); null; null
diff --git a/bundles/org.eclipse.build.tools/schema/_README.txt b/bundles/org.eclipse.build.tools/schema/_README.txt
deleted file mode 100644
index 8da3676..0000000
--- a/bundles/org.eclipse.build.tools/schema/_README.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-These files are for reference, but are not required to run the
-Ant scripts + tasks.
\ No newline at end of file
diff --git a/bundles/org.eclipse.build.tools/schema/atom10_build.xsd b/bundles/org.eclipse.build.tools/schema/atom10_build.xsd
deleted file mode 100644
index 93b3ed5..0000000
--- a/bundles/org.eclipse.build.tools/schema/atom10_build.xsd
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsd:schema xmlns:atom="http://www.w3.org/2005/Atom" xmlns:bf="http://www.eclipse.org/2006/BuildFeed" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://www.w3.org/2005/Atom">
- <xsd:import namespace="http://www.eclipse.org/2006/BuildFeed" schemaLocation="build.xsd"/>
- <xsd:element name="feed">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element ref="atom:title"/>
- <xsd:element ref="atom:link"/>
- <xsd:element ref="atom:updated"/>
- <xsd:element ref="atom:author"/>
- <xsd:element ref="atom:id"/>
- <xsd:element maxOccurs="unbounded" ref="atom:entry"/>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="author">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element ref="atom:name"/>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="name" type="xsd:string"/>
- <xsd:element name="entry">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element ref="atom:title"/>
- <xsd:element ref="atom:link"/>
- <xsd:element ref="atom:id"/>
- <xsd:element ref="atom:updated"/>
- <xsd:element ref="atom:summary"/>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="summary">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element maxOccurs="1" minOccurs="1" ref="bf:build"/>
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
-
- <xsd:element name="title" type="xsd:string"/>
- <xsd:element name="link">
- <xsd:complexType>
- <xsd:attribute name="href" type="xsd:anyURI" use="required"/>
- <xsd:attribute name="rel" type="xsd:NCName"/>
- <xsd:attribute name="type"/>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="updated" type="xsd:dateTime"/>
- <xsd:element name="id" type="xsd:anyURI"/>
-</xsd:schema>
diff --git a/bundles/org.eclipse.build.tools/schema/build.xsd b/bundles/org.eclipse.build.tools/schema/build.xsd
deleted file mode 100644
index fc5e9d3..0000000
--- a/bundles/org.eclipse.build.tools/schema/build.xsd
+++ /dev/null
@@ -1,223 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.eclipse.org/2006/BuildFeed" elementFormDefault="qualified" targetNamespace="http://www.eclipse.org/2006/BuildFeed">
-
- <xs:element name="build">
- <xs:complexType>
- <xs:sequence>
- <xs:element maxOccurs="1" minOccurs="0" ref="detail"/>
- <xs:element maxOccurs="1" minOccurs="0" ref="update"/>
- <xs:element maxOccurs="1" minOccurs="0" ref="downloads"/>
- <xs:element maxOccurs="1" minOccurs="0" ref="releasenotes"/>
-
- <xs:element maxOccurs="1" minOccurs="0" ref="releases"/>
-
- <xs:element maxOccurs="1" minOccurs="0" ref="tests"/>
-
- <xs:element maxOccurs="1" minOccurs="0" ref="dependencies"/>
- <xs:element maxOccurs="1" minOccurs="0" ref="coordinated"/>
- </xs:sequence>
- <xs:attribute name="version" type="buildVersion" use="required"/>
- <xs:attribute name="type" type="enumBuildType" use="required"/>
- <xs:attribute name="datetime" type="buildDatetime" use="required"/>
- <xs:attribute name="href" type="xs:anyURI" use="required"/>
- <xs:attribute name="branch" type="xs:token" use="optional"/>
- <xs:attribute name="jars" type="enumJarSigningStatus" use="optional"/>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="detail">
- <xs:complexType>
- <xs:attribute name="href" type="xs:anyURI" use="required"/>
- <xs:attribute name="config" type="xs:token" use="optional"/>
- <xs:attribute name="log" type="xs:token" use="optional"/>
- <xs:attribute name="map" type="xs:token" use="optional"/>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="update" type="xs:anyURI"/>
- <xs:element name="downloads" type="xs:anyURI"/>
- <xs:element name="releasenotes" type="xs:anyURI"/>
-
- <xs:element name="releases">
- <xs:complexType>
- <xs:sequence>
- <xs:element maxOccurs="unbounded" minOccurs="1" ref="release"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="release">
- <xs:complexType>
- <xs:simpleContent>
- <xs:extension base="xs:anyURI">
- <xs:attribute name="os" type="enumOS" use="required"/>
- <xs:attribute name="ws" type="enumWS" use="required"/>
- <xs:attribute name="arch" type="enumArch" use="optional"/>
- <xs:attribute name="type" type="enumReleaseType" use="required"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="tests">
- <xs:complexType>
- <xs:sequence>
- <xs:element maxOccurs="unbounded" minOccurs="1" ref="test"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="test">
- <xs:complexType>
- <xs:sequence>
- <xs:element maxOccurs="unbounded" minOccurs="1" ref="result"/>
- </xs:sequence>
- <xs:attribute name="href" type="xs:anyURI" use="optional"/>
- <xs:attribute name="type" type="enumTestType" use="required"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="result">
- <xs:complexType>
- <xs:simpleContent>
- <xs:extension base="enumTestStatus">
- <xs:attribute name="id" type="xs:token" use="optional"/>
- <xs:attribute name="os" type="enumOS" use="required"/>
- <xs:attribute name="ws" type="enumWS" use="required"/>
- <xs:attribute name="arch" type="enumArch" use="optional"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="dependencies">
- <xs:complexType>
- <xs:sequence>
- <xs:element maxOccurs="unbounded" minOccurs="1" ref="dependency"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="dependency" type="xs:anyURI"/>
-
- <xs:element name="coordinated">
- <xs:complexType>
- <xs:simpleContent>
- <xs:extension base="xs:string">
- <xs:attribute name="status" type="enumCoordinatedStatus" use="optional"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- </xs:element>
-
- <xs:simpleType name="enumBuildType">
- <xs:restriction base="xs:token">
- <xs:enumeration value="N"/>
- <xs:enumeration value="I"/>
- <xs:enumeration value="M"/>
- <xs:enumeration value="S"/>
- <xs:enumeration value="R"/>
- </xs:restriction>
- </xs:simpleType>
-
- <xs:simpleType name="enumTestType">
- <xs:restriction base="xs:token">
- <xs:enumeration value="junit"/>
- <xs:enumeration value="performance"/>
- <xs:enumeration value="api"/>
- </xs:restriction>
- </xs:simpleType>
-
- <xs:simpleType name="enumJarSigningStatus">
- <xs:restriction base="xs:token">
- <xs:enumeration value=""/>
- <xs:enumeration value="NONE"/>
- <xs:enumeration value="UNSIGNED"/>
- <xs:enumeration value="SIGNREADY"/>
- <xs:enumeration value="BUILDREADY"/>
- <xs:enumeration value="SIGNED"/>
- </xs:restriction>
- </xs:simpleType>
-
- <xs:simpleType name="enumCoordinatedStatus">
- <xs:restriction base="xs:token">
- <xs:enumeration value=""/>
- <xs:enumeration value="NONE"/>
- <xs:enumeration value="BUILDCOMPLETE"/>
- <xs:enumeration value="UMSITEREADY"/>
- <xs:enumeration value="CALLISTOSITEREADY"/>
- <xs:enumeration value="COMPLETE"/>
- </xs:restriction>
- </xs:simpleType>
-
- <xs:simpleType name="enumTestStatus">
- <xs:restriction base="xs:token">
- <xs:enumeration value=""/>
- <xs:enumeration value="PASS"/>
- <xs:enumeration value="PENDING"/>
- <xs:enumeration value="FAIL"/>
- <xs:enumeration value="AVAILABLE"/>
- <xs:enumeration value="SKIPPED"/>
- <xs:enumeration value="UNKNOWN"/>
- </xs:restriction>
- </xs:simpleType>
-
- <xs:simpleType name="enumOS">
- <xs:restriction base="xs:token">
- <xs:enumeration value="aix"/>
- <xs:enumeration value="hp-ux"/>
- <xs:enumeration value="linux"/>
- <xs:enumeration value="macosx"/>
- <xs:enumeration value="qnx"/>
- <xs:enumeration value="solaris8"/>
- <xs:enumeration value="wce"/>
- <xs:enumeration value="win32"/>
- <xs:enumeration value="ALL"/>
- <xs:enumeration value="OTHER"/>
- </xs:restriction>
- </xs:simpleType>
-
- <xs:simpleType name="enumWS">
- <xs:restriction base="xs:token">
- <xs:enumeration value="carbon"/>
- <xs:enumeration value="gtk"/>
- <xs:enumeration value="motif"/>
- <xs:enumeration value="photon"/>
- <xs:enumeration value="win"/>
- <xs:enumeration value="ALL"/>
- <xs:enumeration value="OTHER"/>
- </xs:restriction>
- </xs:simpleType>
-
- <xs:simpleType name="enumArch">
- <xs:restriction base="xs:token">
- <xs:enumeration value="arm"/>
- <xs:enumeration value="hp9000"/>
- <xs:enumeration value="ppc"/>
- <xs:enumeration value="sparc"/>
- <xs:enumeration value="x86"/>
- <xs:enumeration value="x86_64"/>
- <xs:enumeration value="ALL"/>
- <xs:enumeration value="OTHER"/>
- </xs:restriction>
- </xs:simpleType>
-
- <xs:simpleType name="enumReleaseType">
- <xs:restriction base="xs:token">
- <xs:enumeration value="SDK"/>
- <xs:enumeration value="runtime"/>
- <xs:enumeration value="tests"/>
- <xs:enumeration value="examples"/>
- <xs:enumeration value="OTHER"/>
- </xs:restriction>
- </xs:simpleType>
-
- <xs:simpleType name="buildDatetime">
- <xs:restriction base="xs:token">
- <xs:pattern value="\d{8}-{0,1}\d{0,4}"/>
- </xs:restriction>
- </xs:simpleType>
-
- <xs:simpleType name="buildVersion">
- <xs:restriction base="xs:token">
- <xs:pattern value="\d{1,2}.\d{1,2}.\d{1,2}"/>
- </xs:restriction>
- </xs:simpleType>
-
-</xs:schema>
diff --git a/bundles/org.eclipse.build.tools/src/org/eclipse/releng/CompileErrorCheck.java b/bundles/org.eclipse.build.tools/src/org/eclipse/releng/CompileErrorCheck.java
index 187f3c5..daf3dab 100644
--- a/bundles/org.eclipse.build.tools/src/org/eclipse/releng/CompileErrorCheck.java
+++ b/bundles/org.eclipse.build.tools/src/org/eclipse/releng/CompileErrorCheck.java
@@ -21,7 +21,6 @@
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
-import java.util.Enumeration;
import java.util.Vector;
import javax.xml.parsers.ParserConfigurationException;
@@ -80,7 +79,7 @@
public void execute() throws BuildException {
if (parser == null) return;
findLogs(new File(install));
- sendNotice();
+ //sendNotice();
}
// test
@@ -186,39 +185,39 @@
}
}
- private void sendNotice() {
- //send email notification that there are compile errors in the build
- //send the logs as attachments
- Enumeration enumeration = logsWithErrors.elements();
-
- if (logsWithErrors.size() > 0) {
- try{
-
- Mailer mailer = new Mailer();
- String [] logFiles = new String [logsWithErrors.size()];
-
- int i=0;
-
- while (enumeration.hasMoreElements()) {
- logFiles[i++]=((File) enumeration.nextElement()).getAbsolutePath();
- }
-
- mailer.sendMultiPartMessage("Compile errors in build", "Compile errors in build. See attached compile logs.", logFiles);
- } catch (NoClassDefFoundError e){
- while (enumeration.hasMoreElements()) {
- String path=((File) enumeration.nextElement()).getAbsolutePath();
- String nameWithPlugin=path.substring(path.indexOf("plugins"),path.length());
- System.out.println("Compile errors detected in "+nameWithPlugin);
- }
-
- System.out.println("Unable to send email notice of compile errors.");
- System.out.println("The j2ee.jar may not be on the Ant classpath.");
-
- }
-
- }
-
- }
+// private void sendNotice() {
+// //send email notification that there are compile errors in the build
+// //send the logs as attachments
+// Enumeration enumeration = logsWithErrors.elements();
+//
+// if (logsWithErrors.size() > 0) {
+// try{
+//
+// Mailer mailer = new Mailer();
+// String [] logFiles = new String [logsWithErrors.size()];
+//
+// int i=0;
+//
+// while (enumeration.hasMoreElements()) {
+// logFiles[i++]=((File) enumeration.nextElement()).getAbsolutePath();
+// }
+//
+// mailer.sendMultiPartMessage("Compile errors in build", "Compile errors in build. See attached compile logs.", logFiles);
+// } catch (NoClassDefFoundError e){
+// while (enumeration.hasMoreElements()) {
+// String path=((File) enumeration.nextElement()).getAbsolutePath();
+// String nameWithPlugin=path.substring(path.indexOf("plugins"),path.length());
+// System.out.println("Compile errors detected in "+nameWithPlugin);
+// }
+//
+// System.out.println("Unable to send email notice of compile errors.");
+// System.out.println("The j2ee.jar may not be on the Ant classpath.");
+//
+// }
+//
+// }
+//
+// }
/**
* Gets the install.
diff --git a/bundles/org.eclipse.build.tools/src/org/eclipse/releng/CvsDiffParser.java b/bundles/org.eclipse.build.tools/src/org/eclipse/releng/CvsDiffParser.java
index 9fdc204..d26f0d9 100644
--- a/bundles/org.eclipse.build.tools/src/org/eclipse/releng/CvsDiffParser.java
+++ b/bundles/org.eclipse.build.tools/src/org/eclipse/releng/CvsDiffParser.java
@@ -52,7 +52,7 @@
public void execute() throws BuildException {
parseMapDiffFile();
- sendNotice();
+ //sendNotice();
}
/**
@@ -109,25 +109,25 @@
}
}
- private void sendNotice(){
-
- if (updatedMaps==null || updatedMaps.size()==0){
- throw new BuildException("Build cancelled - map files unchanged.");
- }
-
- Mailer mailer = new Mailer();
-
- String subject="updated map file listing";
- String message ="these map files have been updated for the build:\n\n";
-
- for (int i=0; i<updatedMaps.size();i++){
- message=message.concat(updatedMaps.elementAt(i).toString()+"\n");
- }
-
- try {
- mailer.sendMessage(subject,message);
- } catch (NoClassDefFoundError e){
- System.out.println(message);
- }
- }
+// private void sendNotice(){
+//
+// if (updatedMaps==null || updatedMaps.size()==0){
+// throw new BuildException("Build cancelled - map files unchanged.");
+// }
+//
+// Mailer mailer = new Mailer();
+//
+// String subject="updated map file listing";
+// String message ="these map files have been updated for the build:\n\n";
+//
+// for (int i=0; i<updatedMaps.size();i++){
+// message=message.concat(updatedMaps.elementAt(i).toString()+"\n");
+// }
+//
+// try {
+// mailer.sendMessage(subject,message);
+// } catch (NoClassDefFoundError e){
+// System.out.println(message);
+// }
+// }
}
diff --git a/bundles/org.eclipse.build.tools/src/org/eclipse/releng/Mailer.java b/bundles/org.eclipse.build.tools/src/org/eclipse/releng/Mailer.java
deleted file mode 100644
index ab83b38..0000000
--- a/bundles/org.eclipse.build.tools/src/org/eclipse/releng/Mailer.java
+++ /dev/null
@@ -1,257 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.releng;
-
-/**
- * A Class that sends build related email messages. host, sender, recipient and
- * build related information set in monitor.properties
- */
-
-import javax.activation.DataHandler;
-import javax.activation.FileDataSource;
-import javax.mail.*;
-import javax.mail.internet.*;
-
-import java.io.File;
-import java.util.StringTokenizer;
-import java.util.Properties;
-
-public class Mailer {
-
- // flag that determines whether or not to send mail
- boolean sendMail = true;
-
- // the Object that holds the key value pairs in monitor.properties
- private BuildProperties buildProperties;
-
- //convert the comma separated list of email addressed into an array of Address objects
- private Address[] getAddresses(String recipientList) {
- int i = 0;
- StringTokenizer recipients = new StringTokenizer(recipientList, ",");
- Address[] addresses = new Address[recipients.countTokens()];
-
- while (recipients.hasMoreTokens()) {
- try {
- addresses[i++] = new InternetAddress(recipients.nextToken());
- } catch (AddressException e) {
- System.out.println("Unable to create address");
- }
- }
- return addresses;
- }
-
- public Mailer(){
- this("monitor.properties");
- }
- public Mailer(String buildPropertiesPath){
- buildProperties = new BuildProperties(buildPropertiesPath);
- if (buildProperties.getHost().equals("")||buildProperties.getSender().equals("")||buildProperties.getToRecipientList().equals("")){
- sendMail=false;
- }
- }
-
-
- public static void main(String args[]) {
- Mailer mailer=new Mailer(args[0]);
- mailer.sendTextMessage(args[1],args[2]);
- }
-
- public void sendMessage(String aSubject, String aMessage) {
- if (aSubject == null || aMessage == null || sendMail == false){
- printEmailFailureNotice(aSubject,aMessage);
- }
-
- // Get system properties
- Properties props = System.getProperties();
-
- // Setup mail server
- props.put("mail.smtp.host", buildProperties.getHost());
-
- // Get session
- Session session = Session.getDefaultInstance(props, null);
-
- // Define message
- MimeMessage message = new MimeMessage(session);
-
- try {
-
- // Set the from address
- message.setFrom(new InternetAddress(buildProperties.getSender()));
-
- // Set the to address
- message.addRecipients(Message.RecipientType.TO, getAddresses(buildProperties.getToRecipientList()));
-
- // Set the subject
- message.setSubject(buildProperties.getBuildSubjectPrefix()+
- "Build "
- + buildProperties.getBuildid()
- + " (Timestamp: "
- + buildProperties.getTimestamp()
- + "):"
- + aSubject);
-
- // Set the content
- message.setText(
- "Build "
- + buildProperties.getBuildid()
- + " (Timestamp: "
- + buildProperties.getTimestamp()
- + "): "
- + aMessage);
-
- // Send message
- Transport.send(message);
-
- } catch (AddressException e) {
- e.printStackTrace();
- } catch (MessagingException e) {
- e.printStackTrace();
- }
- }
-
- public void sendTextMessage(String aSubject, String aMessage) {
- if (aSubject == null || aMessage == null || sendMail == false){
- printEmailFailureNotice(aSubject,aMessage);
- }
-
- // Get system properties
- Properties props = System.getProperties();
-
- // Setup mail server
- props.put("mail.smtp.host", buildProperties.getHost());
-
- // Get session
- Session session = Session.getDefaultInstance(props, null);
-
- // Define message
- MimeMessage message = new MimeMessage(session);
-
- try {
-
- // Set the from address
- message.setFrom(new InternetAddress(buildProperties.getSender()));
-
- // Set the to address
- message.addRecipients(Message.RecipientType.BCC, getAddresses(buildProperties.getTextRecipientList()));
-
- // Set the subject
- message.setSubject(buildProperties.getBuildSubjectPrefix()+
- "Build "
- + buildProperties.getBuildid()
- + ":"
- + aSubject);
-
- // Set the content
- message.setText(aMessage);
-
- // Send message
- Transport.send(message);
-
- } catch (AddressException e) {
- e.printStackTrace();
- } catch (MessagingException e) {
- e.printStackTrace();
- }
- }
-
- public void sendMultiPartMessage(
- // a method for sending mail with attachments
- String aSubject, String aMessage, String[] attachments) {
- if (aSubject == null || aMessage == null || sendMail == false){
- printEmailFailureNotice(aSubject,aMessage);
- }
-
- // Get system properties
- Properties props = System.getProperties();
-
- // Setup mail server
- props.put("mail.smtp.host", buildProperties.getHost());
-
- // Get session
- Session session = Session.getDefaultInstance(props, null);
-
- // Define message
- MimeMessage message = new MimeMessage(session);
-
- Multipart mp = new MimeMultipart();
-
- try {
- // Set the from address
- message.setFrom(new InternetAddress(buildProperties.getSender()));
-
- // Set the to address
- message.addRecipients(Message.RecipientType.TO, getAddresses(buildProperties.getToRecipientList()));
-
- // Set the subject
- message.setSubject(buildProperties.getBuildSubjectPrefix()+
- "Build "
- + buildProperties.getBuildid()
- + " (Timestamp: "
- + buildProperties.getTimestamp()
- + "):"
- + aSubject);
-
- // create and fill the first message part
- MimeBodyPart part = new MimeBodyPart();
- part.setText(
- "Build "
- + buildProperties.getBuildid()
- + " (Timestamp: "
- + buildProperties.getTimestamp()
- + "): "
- + aMessage);
- mp.addBodyPart(part);
-
- //for each attachment create new message part
- for (int i = 0; i < attachments.length; i++) {
- MimeBodyPart attachmentPart = new MimeBodyPart();
- // attach the file to the message
- FileDataSource attachment = new FileDataSource(attachments[i]);
- attachmentPart.setDataHandler(new DataHandler(attachment));
- File attachmentFile=new File(attachments[i]);
- attachmentPart.setFileName(attachmentFile.getParent()+"-"+attachmentFile.getName());
- mp.addBodyPart(attachmentPart);
- }
-
- // add the Multipart to the message
- message.setContent(mp);
-
- Transport.send(message);
-
- } catch (AddressException e) {
- } catch (MessagingException e) {
- }
- }
-
- private void printEmailFailureNotice(String aSubject, String aMessage){
- System.out.println("Email failed. Settings:");
- System.out.println("\nhost="+buildProperties.getHost()+"\nsender="+buildProperties.getSender()+"\nrecipients="+buildProperties.getToRecipientList());
- System.out.println("\nSubject="+aSubject+"\nMessage="+aMessage);
- return;
- }
-
- /**
- * Returns the buildProperties.
- * @return BuildProperties
- */
- public BuildProperties getBuildProperties() {
- return buildProperties;
- }
-
- /**
- * Sets the buildProperties.
- * @param buildProperties The buildProperties to set
- */
- public void setBuildProperties(BuildProperties buildProperties) {
- this.buildProperties = buildProperties;
- }
-
-}
diff --git a/bundles/org.eclipse.build.tools/src/org/eclipse/releng/generators/EclipseTestResultsGeneratorNoMail.java b/bundles/org.eclipse.build.tools/src/org/eclipse/releng/generators/EclipseTestResultsGeneratorNoMail.java
index 98be942..2347cef 100644
--- a/bundles/org.eclipse.build.tools/src/org/eclipse/releng/generators/EclipseTestResultsGeneratorNoMail.java
+++ b/bundles/org.eclipse.build.tools/src/org/eclipse/releng/generators/EclipseTestResultsGeneratorNoMail.java
@@ -5,7 +5,6 @@
* Window>Preferences>Java>Code Generation>Code and Comments
*/
package org.eclipse.releng.generators;
-import java.io.File;
diff --git a/bundles/org.eclipse.build.tools/src/org/eclipse/releng/generators/FileCounter.java b/bundles/org.eclipse.build.tools/src/org/eclipse/releng/generators/FileCounter.java
index 9490c66..ed46201 100644
--- a/bundles/org.eclipse.build.tools/src/org/eclipse/releng/generators/FileCounter.java
+++ b/bundles/org.eclipse.build.tools/src/org/eclipse/releng/generators/FileCounter.java
@@ -53,10 +53,6 @@
System.out.println("Filter String: " + this.getFilterString());
File aDirectory = new File(this.getSourceDirectory());
- if (aDirectory == null) {
- throw new BuildException("Directory " + this.getSourceDirectory() + " not found.");
- }
-
String[] names = aDirectory.list();
if (names == null) {
throw new BuildException("Directory " + this.getSourceDirectory() + " not found.");
diff --git a/bundles/org.eclipse.build.tools/src/org/eclipse/releng/generators/TestVersionTracker.java b/bundles/org.eclipse.build.tools/src/org/eclipse/releng/generators/TestVersionTracker.java
index 7ed4ac3..006d4fb 100644
--- a/bundles/org.eclipse.build.tools/src/org/eclipse/releng/generators/TestVersionTracker.java
+++ b/bundles/org.eclipse.build.tools/src/org/eclipse/releng/generators/TestVersionTracker.java
@@ -245,15 +245,11 @@
NamedNodeMap map = node.getAttributes();
Node namedItem = map.getNamedItem("plugin");
String name = namedItem.getNodeValue();
- if (namedItem == null) {
- continue;
- } else {
- if (elements.containsKey(name)) {
- if (!prerequisitePlugins.contains(name)) {
- boolean prereqAdded = prerequisitePlugins.add(name);
- if (prereqAdded) {
- getPrerequisitePlugins(name);
- }
+ if (elements.containsKey(name)) {
+ if (!prerequisitePlugins.contains(name)) {
+ boolean prereqAdded = prerequisitePlugins.add(name);
+ if (prereqAdded) {
+ getPrerequisitePlugins(name);
}
}
}
@@ -310,13 +306,9 @@
NamedNodeMap map = node.getAttributes();
Node namedItem = map.getNamedItem("name");
String name = namedItem.getNodeValue();
- if (namedItem == null) {
- continue;
- } else {
- if (name.equals("performance")){
- hasPerformanceTarget=true;
- return;
- }
+ if (name.equals("performance")){
+ hasPerformanceTarget=true;
+ return;
}
}
}
diff --git a/bundles/org.eclipse.releng.build.tools.convert/.classpath b/bundles/org.eclipse.releng.build.tools.convert/.classpath
new file mode 100644
index 0000000..472ee29
--- /dev/null
+++ b/bundles/org.eclipse.releng.build.tools.convert/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/bundles/org.eclipse.releng.build.tools.convert/.gitignore b/bundles/org.eclipse.releng.build.tools.convert/.gitignore
new file mode 100644
index 0000000..5e56e04
--- /dev/null
+++ b/bundles/org.eclipse.releng.build.tools.convert/.gitignore
@@ -0,0 +1 @@
+/bin
diff --git a/bundles/org.eclipse.releng.build.tools.convert/.project b/bundles/org.eclipse.releng.build.tools.convert/.project
new file mode 100644
index 0000000..ad59a92
--- /dev/null
+++ b/bundles/org.eclipse.releng.build.tools.convert/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.releng.build.tools.convert</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/bundles/org.eclipse.releng.build.tools.convert/.settings/org.eclipse.core.resources.prefs b/bundles/org.eclipse.releng.build.tools.convert/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..99f26c0
--- /dev/null
+++ b/bundles/org.eclipse.releng.build.tools.convert/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/bundles/org.eclipse.releng.build.tools.convert/.settings/org.eclipse.core.runtime.prefs b/bundles/org.eclipse.releng.build.tools.convert/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000..5a0ad22
--- /dev/null
+++ b/bundles/org.eclipse.releng.build.tools.convert/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/bundles/org.eclipse.releng.build.tools.convert/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.releng.build.tools.convert/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..d66b8b9
--- /dev/null
+++ b/bundles/org.eclipse.releng.build.tools.convert/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,99 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
+org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
+org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
+org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
+org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
+org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
+org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/bundles/org.eclipse.releng.build.tools.convert/META-INF/MANIFEST.MF b/bundles/org.eclipse.releng.build.tools.convert/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..f7fd639
--- /dev/null
+++ b/bundles/org.eclipse.releng.build.tools.convert/META-INF/MANIFEST.MF
@@ -0,0 +1,14 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %Bundle-Name
+Bundle-SymbolicName: org.eclipse.releng.build.tools.convert;singleton:=true
+Bundle-Version: 1.0.0
+Bundle-ClassPath: convert.jar
+Bundle-Vendor: %Bundle-Vendor
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Require-Bundle: org.apache.ant,
+ org.eclipse.equinox.app
+Export-Package: org.eclipse.releng.build.tools.convert.ant,
+ org.eclipse.releng.build.tools.convert.application,
+ org.eclipse.releng.build.tools.convert.dom
diff --git a/bundles/org.eclipse.releng.build.tools.convert/about.html b/bundles/org.eclipse.releng.build.tools.convert/about.html
new file mode 100644
index 0000000..96494d2
--- /dev/null
+++ b/bundles/org.eclipse.releng.build.tools.convert/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>May 11, 2006</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, "Program" will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party ("Redistributor") and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.releng.build.tools.convert/build.properties b/bundles/org.eclipse.releng.build.tools.convert/build.properties
new file mode 100644
index 0000000..6e916cf
--- /dev/null
+++ b/bundles/org.eclipse.releng.build.tools.convert/build.properties
@@ -0,0 +1,7 @@
+bin.includes = META-INF/,\
+ about.html,\
+ src/,\
+ plugin.properties,\
+ plugin.xml,\
+ convert.jar
+source.convert.jar = src/
diff --git a/bundles/org.eclipse.releng.build.tools.convert/plugin.properties b/bundles/org.eclipse.releng.build.tools.convert/plugin.properties
new file mode 100644
index 0000000..50cf2a7
--- /dev/null
+++ b/bundles/org.eclipse.releng.build.tools.convert/plugin.properties
@@ -0,0 +1,2 @@
+Bundle-Vendor = Eclipse Platform Releng
+Bundle-Name = Convert Build Tool
\ No newline at end of file
diff --git a/bundles/org.eclipse.releng.build.tools.convert/plugin.xml b/bundles/org.eclipse.releng.build.tools.convert/plugin.xml
new file mode 100644
index 0000000..331ede4
--- /dev/null
+++ b/bundles/org.eclipse.releng.build.tools.convert/plugin.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+<plugin>
+
+ <extension point="org.eclipse.ant.core.extraClasspathEntries">
+ <extraClasspathEntry library="convert.jar">
+ </extraClasspathEntry>
+ </extension>
+
+ <extension point="org.eclipse.ant.core.antTasks">
+ <antTask
+ name="eclipse.convert"
+ class="org.eclipse.releng.build.tools.convert.ant.LogConverterTask"
+ library="convert.jar">
+ </antTask>
+ </extension>
+ <extension
+ id="logConverter"
+ point="org.eclipse.core.runtime.applications">
+ <application>
+ <run class="org.eclipse.releng.build.tools.convert.application.LogConverter" />
+ </application>
+ </extension>
+
+</plugin>
\ No newline at end of file
diff --git a/bundles/org.eclipse.releng.build.tools.convert/src/org/eclipse/releng/build/tools/convert/ant/Converter.java b/bundles/org.eclipse.releng.build.tools.convert/src/org/eclipse/releng/build/tools/convert/ant/Converter.java
new file mode 100644
index 0000000..cdb0418
--- /dev/null
+++ b/bundles/org.eclipse.releng.build.tools.convert/src/org/eclipse/releng/build/tools/convert/ant/Converter.java
@@ -0,0 +1,360 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2007 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.releng.build.tools.convert.ant;
+
+import java.io.File;
+import java.io.FileFilter;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashMap;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.eclipse.releng.build.tools.convert.dom.AbstractDOMConverter;
+import org.eclipse.releng.build.tools.convert.dom.IDOMConverter;
+import org.eclipse.releng.build.tools.convert.dom.LogDocumentNode;
+import org.eclipse.releng.build.tools.convert.dom.ProblemNode;
+import org.eclipse.releng.build.tools.convert.dom.ProblemSummaryNode;
+import org.eclipse.releng.build.tools.convert.dom.ProblemsNode;
+import org.w3c.dom.Document;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+import org.xml.sax.SAXParseException;
+import org.xml.sax.helpers.DefaultHandler;
+
+public class Converter {
+ private static final String HTML_EXTENSION = ".html"; //$NON-NLS-1$
+
+ private static final String TXT_EXTENSION = ".txt"; //$NON-NLS-1$
+
+ private static final String XML_EXTENSION = ".xml"; //$NON-NLS-1$
+
+ public static final String INPUT_SOURCE = "inputSource";//$NON-NLS-1$
+
+ public static final String CONVERTER_ID = "converterID";//$NON-NLS-1$
+
+ public static final String OUTPUT_FILE_NAME = "outputFileName";//$NON-NLS-1$
+
+ public static final String ENABLE_VALIDATION = "enableValidation";//$NON-NLS-1$
+
+ public static final String RECURSIVE = "recurse";//$NON-NLS-1$
+
+ public static final int FORMAT_VERSION_2 = 2;
+
+ public static final int CURRENT_FORMAT_VERSION = FORMAT_VERSION_2;
+
+ private static final FileFilter XML_FILTER = new FileFilter() {
+ /*
+ * (non-Javadoc)
+ *
+ * @see java.io.FileFilter#accept(java.io.File)
+ */
+ public boolean accept(File pathname) {
+ String path = pathname.getAbsolutePath().toLowerCase();
+ return path.endsWith(XML_EXTENSION) || pathname.isDirectory();
+ }
+ };
+
+ private HashMap options;
+
+ public static File[] getAllFiles(File root, FileFilter fileFilter) {
+ ArrayList files = new ArrayList();
+ if (root.isDirectory()) {
+ collectAllFiles(root, files, fileFilter);
+ File[] result = new File[files.size()];
+ files.toArray(result);
+ return result;
+ }
+ return null;
+ }
+
+ private static void collectAllFiles(File root, ArrayList collector, FileFilter fileFilter) {
+ File[] files = root.listFiles(fileFilter);
+ for (int i = 0; i < files.length; i++) {
+ final File currentFile = files[i];
+ if (currentFile.isDirectory()) {
+ collectAllFiles(currentFile, collector, fileFilter);
+ } else {
+ collector.add(currentFile);
+ }
+ }
+ }
+
+ public Converter() {
+ this.options = new HashMap();
+ }
+
+ public void configure(String[] args) {
+ if (args == null || args.length == 0) {
+ throw new IllegalArgumentException("Arguments cannot be empty");//$NON-NLS-1$
+ }
+
+ // set default options
+ this.options.put(ENABLE_VALIDATION, "false"); //$NON-NLS-1$
+ int converterID = ConverterFactory.HTML;
+
+ int argCount = args.length;
+ int index = 0;
+ boolean setOutputFile = false;
+ boolean setValidation = false;
+ boolean setInputFile = false;
+
+ final int DEFAULT_MODE = 0;
+ final int OUTPUT_FILE_MODE = 1;
+ final int INPUT_FILE_MODE = 2;
+
+ int mode = DEFAULT_MODE;
+
+ loop: while (index < argCount) {
+ String currentArg = args[index++];
+
+ switch (mode) {
+ case INPUT_FILE_MODE:
+ this.options.put(INPUT_SOURCE, currentArg);
+ mode = DEFAULT_MODE;
+ break;
+ case OUTPUT_FILE_MODE:
+ if (currentArg.toLowerCase().endsWith(TXT_EXTENSION)) {
+ converterID = ConverterFactory.TXT;
+ }
+ this.options.put(OUTPUT_FILE_NAME, currentArg);
+ mode = DEFAULT_MODE;
+ continue loop;
+ case DEFAULT_MODE:
+ if (currentArg.equals("-v")) { //$NON-NLS-1$
+ if (setValidation) {
+ throw new IllegalArgumentException("Duplicate validation flag"); //$NON-NLS-1$
+ }
+ setValidation = true;
+ this.options.put(ENABLE_VALIDATION, "true"); //$NON-NLS-1$
+ mode = DEFAULT_MODE;
+ continue loop;
+ }
+ if (currentArg.equals("-o")) { //$NON-NLS-1$
+ if (setOutputFile) {
+ throw new IllegalArgumentException("Duplicate output file"); //$NON-NLS-1$
+ }
+ setOutputFile = true;
+ mode = OUTPUT_FILE_MODE;
+ continue loop;
+ }
+ if (currentArg.equals("-i")) { //$NON-NLS-1$
+ if (setInputFile) {
+ throw new IllegalArgumentException("Duplicate input file"); //$NON-NLS-1$
+ }
+ setInputFile = true;
+ mode = INPUT_FILE_MODE;
+ continue loop;
+ }
+ if (currentArg.equals("-r")) { //$NON-NLS-1$
+ this.options.put(RECURSIVE, "true"); //$NON-NLS-1$
+ mode = DEFAULT_MODE;
+ continue loop;
+ }
+ }
+ }
+ final String input = (String) this.options.get(INPUT_SOURCE);
+ if (input == null) {
+ throw new IllegalArgumentException("An input file or directorty is required"); //$NON-NLS-1$
+ }
+ if (this.options.get(RECURSIVE) == null) {
+ if (!input.toLowerCase().endsWith(".xml")) { //$NON-NLS-1$
+ throw new IllegalArgumentException("Input file must be an xml file"); //$NON-NLS-1$
+ }
+ }
+ this.options.put(CONVERTER_ID, String.valueOf(converterID));
+ }
+
+ public void parse2() throws ParserConfigurationException {
+ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+ boolean validation = Boolean.valueOf((String) this.options.get(ENABLE_VALIDATION)).booleanValue();
+ factory.setValidating(validation);
+ factory.setIgnoringElementContentWhitespace(true);
+ DocumentBuilder builder = factory.newDocumentBuilder();
+
+ final String inputSourceOption = (String) this.options.get(INPUT_SOURCE);
+ if (this.options.get(RECURSIVE) != null) {
+ // collect all xml files and iterate over them
+ File sourceDir = new File(inputSourceOption);
+ if (!sourceDir.exists()) {
+ throw new IllegalArgumentException("Directory " + inputSourceOption + " doesn't exist");//$NON-NLS-1$//$NON-NLS-2$
+ }
+ if (!sourceDir.isDirectory()) {
+ throw new IllegalArgumentException(inputSourceOption + " must be a directory in recursive mode");//$NON-NLS-1$
+ }
+ File[] xmlFiles = getAllFiles(sourceDir, XML_FILTER);
+ for (int i = 0, max = xmlFiles.length; i < max; i++) {
+ final String inputFileName = xmlFiles[i].getAbsolutePath();
+ InputSource inputSource = new InputSource(inputFileName);
+ final String outputFileName = extractNameFrom(inputFileName);
+ this.options.put(INPUT_SOURCE, inputFileName);
+ this.options.put(OUTPUT_FILE_NAME, outputFileName);
+ try {
+ builder.setErrorHandler(new DefaultHandler() {
+ public void error(SAXParseException e) throws SAXException {
+ reportError(inputFileName, e);
+ throw e;
+ }
+ });
+ Document document = builder.parse(inputSource);
+ LogDocumentNode documentNode = process(document);
+ dump(documentNode);
+ } catch (SAXException e) {
+ System.out.println(e);
+ } catch (IOException e) {
+ // ignore
+ }
+ }
+ } else {
+ // Parse
+ if (inputSourceOption != null) {
+ InputSource inputSource = new InputSource(inputSourceOption);
+ if (this.options.get(OUTPUT_FILE_NAME) == null) {
+ this.options.put(OUTPUT_FILE_NAME, extractNameFrom(inputSourceOption));
+ }
+ try {
+ builder.setErrorHandler(new DefaultHandler() {
+ public void error(SAXParseException e) throws SAXException {
+ reportError(inputSourceOption, e);
+ throw e;
+ }
+ });
+ Document document = builder.parse(inputSource);
+ LogDocumentNode documentNode = process(document);
+ dump(documentNode);
+ } catch (SAXException e) {
+ // ignore
+ } catch (IOException e) {
+ // ignore
+ }
+ }
+ }
+ }
+ private void dump(LogDocumentNode documentNode) {
+ IDOMConverter converter = ConverterFactory.createDOMConverter(Integer.parseInt((String) this.options.get(Converter.CONVERTER_ID)));
+ converter.dump(CURRENT_FORMAT_VERSION, this.options, documentNode);
+ }
+
+ private LogDocumentNode process(Document document) {
+ LogDocumentNode documentNode = new LogDocumentNode();
+ NodeList nodeList=document.getElementsByTagName("problem_summary"); //$NON-NLS-1$
+ if (nodeList.getLength() == 1) {
+ Node problemSummaryNode = nodeList.item(0);
+ NamedNodeMap problemSummaryMap = problemSummaryNode.getAttributes();
+ ProblemSummaryNode summaryNode = new ProblemSummaryNode();
+ documentNode.setProblemSummary(summaryNode);
+ summaryNode.numberOfProblems = Integer.parseInt(problemSummaryMap.getNamedItem("problems").getNodeValue()); //$NON-NLS-1$
+ summaryNode.numberOfErrors = Integer.parseInt(problemSummaryMap.getNamedItem("errors").getNodeValue()); //$NON-NLS-1$
+ summaryNode.numberOfWarnings = Integer.parseInt(problemSummaryMap.getNamedItem("warnings").getNodeValue()); //$NON-NLS-1$
+ }
+
+ nodeList=document.getElementsByTagName("problems"); //$NON-NLS-1$
+ if (nodeList == null) return null;
+
+ final int length = nodeList.getLength();
+ int globalErrorNumber = 1;
+ for (int i = 0; i < length; i++) {
+ Node problemsNode = nodeList.item(i);
+ ProblemsNode node = new ProblemsNode();
+ documentNode.addProblemsNode(node);
+ Node sourceNode = problemsNode.getParentNode();
+ NamedNodeMap sourceNodeMap = sourceNode.getAttributes();
+ final String sourceFileName = sourceNodeMap.getNamedItem("path").getNodeValue();//$NON-NLS-1$
+ node.sourceFileName = sourceFileName;
+ NamedNodeMap problemsNodeMap = problemsNode.getAttributes();
+ node.numberOfErrors = Integer.parseInt(problemsNodeMap.getNamedItem("errors").getNodeValue());//$NON-NLS-1$
+ node.numberOfWarnings = Integer.parseInt(problemsNodeMap.getNamedItem("warnings").getNodeValue());//$NON-NLS-1$
+ node.numberOfProblems = Integer.parseInt(problemsNodeMap.getNamedItem("problems").getNodeValue());//$NON-NLS-1$
+
+ NodeList children = problemsNode.getChildNodes();
+ int childrenLength = children.getLength();
+ for (int j = 0; j < childrenLength; j++) {
+ Node problemNode = children.item(j);
+ NamedNodeMap problemNodeMap = problemNode.getAttributes();
+ String severity = problemNodeMap.getNamedItem("severity").getNodeValue();//$NON-NLS-1$
+ ProblemNode problem = new ProblemNode();
+ final boolean isError = "ERROR".equals(severity);//$NON-NLS-1$
+ problem.isError = isError;
+ problem.id = problemNodeMap.getNamedItem("id").getNodeValue();//$NON-NLS-1$
+ if (isError) {
+ node.addError(problem);
+ } else if (AbstractDOMConverter.FILTERED_WARNINGS_IDS.contains(problem.id)) {
+ if (AbstractDOMConverter.FORBIDDEN_REFERENCE.equals(problem.id)) {
+ node.addForbiddenWarning(problem);
+ } else {
+ node.addDiscouragedWarning(problem);
+ }
+ } else {
+ node.addOtherWarning(problem);
+ }
+ problem.charStart = Integer.parseInt(problemNodeMap.getNamedItem("charStart").getNodeValue());//$NON-NLS-1$
+ problem.charEnd = Integer.parseInt(problemNodeMap.getNamedItem("charEnd").getNodeValue());//$NON-NLS-1$
+ problem.line = Integer.parseInt(problemNodeMap.getNamedItem("line").getNodeValue());//$NON-NLS-1$
+ problem.globalProblemNumber = globalErrorNumber;
+ problem.problemNumber = j;
+ problem.sourceFileName = sourceFileName;
+ globalErrorNumber++;
+ NodeList problemChildren = problemNode.getChildNodes();
+ int problemChildrenLength = problemChildren.getLength();
+ for (int n = 0; n < problemChildrenLength; n++) {
+ Node child = problemChildren.item(n);
+ final String nodeName = child.getNodeName();
+ if ("message".equals(nodeName)) {//$NON-NLS-1$
+ NamedNodeMap childNodeMap = child.getAttributes();
+ problem.message = childNodeMap.getNamedItem("value").getNodeValue();//$NON-NLS-1$
+ } else if ("source_context".equals(nodeName)) {//$NON-NLS-1$
+ NamedNodeMap childNodeMap = child.getAttributes();
+ problem.sourceStart = Integer.parseInt(childNodeMap.getNamedItem("sourceStart").getNodeValue());//$NON-NLS-1$
+ problem.sourceEnd = Integer.parseInt(childNodeMap.getNamedItem("sourceEnd").getNodeValue());//$NON-NLS-1$
+ problem.contextValue = childNodeMap.getNamedItem("value").getNodeValue();//$NON-NLS-1$
+ }
+ }
+ }
+ }
+ return documentNode;
+ }
+
+ private String extractNameFrom(String inputFileName) {
+ int index = inputFileName.lastIndexOf('.');
+ switch (Integer.parseInt((String) this.options.get(Converter.CONVERTER_ID))) {
+ case ConverterFactory.TXT:
+ return inputFileName.substring(0, index) + TXT_EXTENSION;
+ case ConverterFactory.HTML:
+ return inputFileName.substring(0, index) + HTML_EXTENSION;
+ default:
+ return inputFileName.substring(0, index) + HTML_EXTENSION;
+ }
+ }
+
+ void reportError(final String inputFileName, SAXParseException e) {
+ System.err.println("Error in " + inputFileName + " at line " + e.getLineNumber() + " and column " + e.getColumnNumber()); //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$
+ System.err.println(e.getMessage());
+ }
+
+ public static void run(String[] args) throws ParserConfigurationException {
+ Converter converter = new Converter();
+ converter.configure(args);
+ converter.parse2();
+ }
+
+ public static void main(String[] args) {
+ try {
+ run(args);
+ } catch (ParserConfigurationException e) {
+ e.printStackTrace();
+ }
+ }
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.releng.build.tools.convert/src/org/eclipse/releng/build/tools/convert/ant/ConverterFactory.java b/bundles/org.eclipse.releng.build.tools.convert/src/org/eclipse/releng/build/tools/convert/ant/ConverterFactory.java
new file mode 100644
index 0000000..610a7fa
--- /dev/null
+++ b/bundles/org.eclipse.releng.build.tools.convert/src/org/eclipse/releng/build/tools/convert/ant/ConverterFactory.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2007 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.releng.build.tools.convert.ant;
+
+import org.eclipse.releng.build.tools.convert.dom.DOMHtmlConverter;
+import org.eclipse.releng.build.tools.convert.dom.DOMTxtConverter;
+import org.eclipse.releng.build.tools.convert.dom.IDOMConverter;
+
+
+public class ConverterFactory {
+ public static final String EMPTY = ""; //$NON-NLS-1$
+ public static final int TXT = 0;
+ public static final int HTML = 1;
+
+ public static IDOMConverter createDOMConverter(int id) {
+ switch(id) {
+ case TXT :
+ return new DOMTxtConverter();
+ case HTML :
+ return new DOMHtmlConverter();
+ default:
+ return new DOMHtmlConverter();
+ }
+ }
+}
diff --git a/bundles/org.eclipse.releng.build.tools.convert/src/org/eclipse/releng/build/tools/convert/ant/LogConverterTask.java b/bundles/org.eclipse.releng.build.tools.convert/src/org/eclipse/releng/build/tools/convert/ant/LogConverterTask.java
new file mode 100644
index 0000000..376e9fb
--- /dev/null
+++ b/bundles/org.eclipse.releng.build.tools.convert/src/org/eclipse/releng/build/tools/convert/ant/LogConverterTask.java
@@ -0,0 +1,60 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2007 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.releng.build.tools.convert.ant;
+
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.Task;
+
+/**
+ * This ant task is used to convert all xml files inside the given <code>logDirectory</code> and
+ * into html or txt files.
+ *
+ * <p>The resulting files are written in the same directory than the corresponding xml file.</p>
+ *
+ * <p>This is not intended to be subclassed by users.</p>
+ */
+public class LogConverterTask extends Task {
+
+ private String input;
+
+ private boolean validation;
+
+ public String getInput() {
+ return this.input;
+ }
+
+ public void setInput(String logDirectory) {
+ this.input = logDirectory;
+ }
+
+ public boolean isValidation() {
+ return this.validation;
+ }
+
+ public void setValidation(boolean validation) {
+ this.validation = validation;
+ }
+
+ public void execute() throws BuildException {
+ if (this.input == null) {
+ throw new BuildException("No input is specified");//$NON-NLS-1$
+ }
+ try {
+ if (isValidation()) {
+ Converter.run(new String[] {"-v", "-r", "-i", this.input}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ } else {
+ Converter.run(new String[] {"-r", "-i", this.input}); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ } catch (Exception e) {
+ throw new BuildException("Exception during conversion", e);//$NON-NLS-1$
+ }
+ }
+}
diff --git a/bundles/org.eclipse.releng.build.tools.convert/src/org/eclipse/releng/build/tools/convert/ant/Messages.java b/bundles/org.eclipse.releng.build.tools.convert/src/org/eclipse/releng/build/tools/convert/ant/Messages.java
new file mode 100644
index 0000000..9565378
--- /dev/null
+++ b/bundles/org.eclipse.releng.build.tools.convert/src/org/eclipse/releng/build/tools/convert/ant/Messages.java
@@ -0,0 +1,30 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2007 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.releng.build.tools.convert.ant;
+
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+
+public class Messages {
+ private final ResourceBundle resourceBundle;
+
+ public Messages(String bundleName) {
+ this.resourceBundle = ResourceBundle.getBundle(bundleName);
+ }
+
+ public String getString(String key) {
+ try {
+ return this.resourceBundle.getString(key);
+ } catch (MissingResourceException e) {
+ return '!' + key + '!';
+ }
+ }
+}
diff --git a/bundles/org.eclipse.releng.build.tools.convert/src/org/eclipse/releng/build/tools/convert/ant/html_messages.properties b/bundles/org.eclipse.releng.build.tools.convert/src/org/eclipse/releng/build/tools/convert/ant/html_messages.properties
new file mode 100644
index 0000000..a4807e9
--- /dev/null
+++ b/bundles/org.eclipse.releng.build.tools.convert/src/org/eclipse/releng/build/tools/convert/ant/html_messages.properties
@@ -0,0 +1,205 @@
+###############################################################################
+# Copyright (c) 2000, 2007 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# IBM Corporation - initial API and implementation
+###############################################################################
+# {0} plugin name
+# {1} xml log file name
+dom_header=<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\n\
+<html>\n\
+<head>\n\
+\ \ \ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">\n\
+\ \ \ <title>Compiler log for {0}</title>\n\
+</head>\n\
+<body>\n\
+<h2>Compiler log for {0} : <a href="{1}">{1}</a></h2>\n
+
+header=<\!doctype html public "-//w3c//dtd html 4.0 transitional//en">\n\
+<html>\n\
+<head>\n\
+\ \ \ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">\n\
+\ \ \ <title>Compiler log</title>\n\
+</head>\n\
+<body>\n
+
+footer=</body>\n</html>\n
+
+# {0] source file name
+# {1} number of problems
+# {2} number of errors
+# {3} number of warnings
+problems.footer=
+
+errors.title_anchor=<a name="ERROR"></a><h1>ERRORS</h1>\n
+
+# {0] source file name
+# {1} number of errors
+errors.header=<h4>{0} : {1} :</h4>\n<table width="60%" style="border-bottom-color: #FF0000; border-left-color: #FF0000; border-color: #FF0000; border-right-color: #FF0000; border-top-color: #FF0000;" border="2" cellpadding="5">\n
+errors.footer=</table>\n
+
+other_warnings.title_anchor=<a name="OTHER_WARNINGS"></a><h1>OTHER WARNINGS</h1>\n
+
+# {0] source file name
+# {1} number of warnings
+other_warnings.header=<h4>{0} : {1} :</h4>\n<table width="60%" style="border-color: #000000;" border="1" cellpadding="5">\n<caption><b><font color="#CC6633">OTHER WARNINGS</font></b></caption>\n
+other_warnings.footer=</table>\n
+
+forbidden_warnings.title_anchor=<a name="FORBIDDEN_WARNINGS"></a><h1>FORBIDDEN ACCESS WARNINGS</h1>\n
+# {0] source file name
+# {1} number of warnings
+forbidden_warnings.header=<h4>{0} : {1} :</h4>\n<table width="60%" style="border-color: #000000;" border="1" cellpadding="5">\n<caption><b><font color="#CC6633">FORBIDDEN ACCESS WARNINGS</font></b></caption>\n
+forbidden_warnings.footer=</table>\n
+
+discouraged_warnings.title_anchor=<a name="DISCOURAGED_WARNINGS"></a><h1>DISCOURAGED ACCESS WARNINGS</h1>\n
+# {0] source file name
+# {1} number of warnings
+discouraged_warnings.header=<h4>{0} : {1} :</h4>\n<table width="60%" style="border-color: #000000;" border="1" cellpadding="5">\n<caption><b><font color="#CC6633">DISCOURAGED ACCESS WARNINGS</font></b></caption>\n
+discouraged_warnings.footer=</table>\n
+
+# {0} source file name
+# {1} global error number
+# {2} error number
+# {3} error id
+# {4} line number of the error
+# {5} error message
+# {6} source code before this error
+# {7} source code corresponding to this error
+# {8} source code after this error
+# {9} complement to underline the problem
+# {10} starting position of the error
+# {11} ending position of the error
+errors.entry.even=<tr>\n\
+\ <td align=left valign=top style="border-bottom-color: #FF0000; border-left-color: #FF0000; border-color: #FF0000; border-right-color: #FF0000; border-top-color: #FF0000;">{2}. ERROR in {0}<br/>\n\
+\ (at line {4})<br/>\n\
+\ {6}<b>{7}</b>{8}<br/>\n\
+\ <i>{5}</i>\n\
+\ </td>\n\
+\</tr>\n
+
+# {0} source file name
+# {1} global error number
+# {2} error number
+# {3} error id
+# {4} line number of the error
+# {5} error message
+# {6} source code before this error
+# {7} source code corresponding to this error
+# {8} source code after this error
+# {9} complement to underline the problem
+# {10} starting position of the error
+# {11} ending position of the error
+errors.entry.odd=<tr>\n\
+\ <td align=left valign=top style="border-bottom-color: #FF0000; border-left-color: #FF0000; border-color: #FF0000; border-right-color: #FF0000; border-top-color: #FF0000;">{2}. ERROR in {0}<br/>\n\
+\ (at line {4})<br/>\n\
+\ {6}<b>{7}</b>{8}<br/>\n\
+\ <i>{5}</i>\n\
+\ </td>\n\
+\</tr>\n
+
+# {0} source file name
+# {1} global error number
+# {2} error number
+# {3} error id
+# {4} line number of the error
+# {5} error message
+# {6} source code before this error
+# {7} source code corresponding to this error
+# {8} source code after this error
+# {9} complement to underline the problem
+# {10} starting position of the error
+# {11} ending position of the error
+warnings.entry.even=<tr>\n\
+\ <td align=left valign=top>{2}. WARNING in {0}<br/>\n\
+\ (at line {4})<br/>\n\
+\ {6}<b>{7}</b>{8}<br/>\n\
+\ <i>{5}</i>\n\
+\ </td>\n\
+\</tr>\n
+
+# {0} source file name
+# {1} global error number
+# {2} error number
+# {3} error id
+# {4} line number of the error
+# {5} error message
+# {6} source code before this error
+# {7} source code corresponding to this error
+# {8} source code after this error
+# {9} complement to underline the problem
+# {10} starting position of the error
+# {11} ending position of the error
+warnings.entry.odd=<tr>\n\
+\ <td align=left valign=top>{2}. WARNING in {0}<br/>\n\
+\ (at line {4})<br/>\n\
+\ {6}<b>{7}</b>{8}<br/>\n\
+\ <i>{5}</i>\n\
+\ </td>\n\
+\</tr>\n
+
+# {0} global number of problems
+# {1} global number of errors
+# {2} global number of warnings
+problem.summary=<h3><u><b>TOTAL</b></u> : ERRORS: {1}, WARNINGS: {2}</h3>\n
+
+problem.summary.title_anchor=<a name="TOP"></a>\n
+
+anchors.references.no_top=\n\
+<table>\n\
+<tr>\n\
+<td><a href="#ERROR">errors</a></td>\n\
+<td><a href="#OTHER_WARNINGS">others warnings</a></td>\n\
+<td><a href="#FORBIDDEN_WARNINGS">forbidden warnings</a></td>\n\
+<td><a href="#DISCOURAGED_WARNINGS">discouraged warnings</a></td>\n\
+</tr>\n\
+</table>\n
+
+anchors.references.no_errors=\n\
+<table>\n\
+<tr>\n\
+<td><a href="#TOP">top</a></td>\n\
+<td><a href="#OTHER_WARNINGS">others warnings</a></td>\n\
+<td><a href="#FORBIDDEN_WARNINGS">forbidden warnings</a></td>\n\
+<td><a href="#DISCOURAGED_WARNINGS">discouraged warnings</a></td>\n\
+</tr>\n\
+</table>\n
+
+anchors.references.no_other_warnings=\n\
+<table>\n\
+<tr>\n\
+<td><a href="#TOP">top</a></td>\n\
+<td><a href="#ERROR">errors</a></td>\n\
+<td><a href="#FORBIDDEN_WARNINGS">forbidden warnings</a></td>\n\
+<td><a href="#DISCOURAGED_WARNINGS">discouraged warnings</a></td>\n\
+</tr>\n\
+</table>\n
+
+anchors.references.no_forbidden_warnings=\n\
+<table>\n\
+<tr>\n\
+<td><a href="#TOP">top</a></td>\n\
+<td><a href="#ERROR">errors</a></td>\n\
+<td><a href="#OTHER_WARNINGS">others warnings</a></td>\n\
+<td><a href="#DISCOURAGED_WARNINGS">discouraged warnings</a></td>\n\
+</tr>\n\
+</table>\n
+
+anchors.references.no_discouraged_warnings=\n\
+<table>\n\
+<tr>\n\
+<td><a href="#TOP">top</a></td>\n\
+<td><a href="#ERROR">errors</a></td>\n\
+<td><a href="#OTHER_WARNINGS">others warnings</a></td>\n\
+<td><a href="#FORBIDDEN_WARNINGS">forbidden warnings</a></td>\n\
+</tr>\n\
+</table>\n
+
+one_warning=1 warning
+multiple_warnings={1,number} warnings
+
+one_error=1 error
+multiple_errors={1,number} errors
\ No newline at end of file
diff --git a/bundles/org.eclipse.releng.build.tools.convert/src/org/eclipse/releng/build/tools/convert/ant/txt_messages.properties b/bundles/org.eclipse.releng.build.tools.convert/src/org/eclipse/releng/build/tools/convert/ant/txt_messages.properties
new file mode 100644
index 0000000..99b2974
--- /dev/null
+++ b/bundles/org.eclipse.releng.build.tools.convert/src/org/eclipse/releng/build/tools/convert/ant/txt_messages.properties
@@ -0,0 +1,110 @@
+###############################################################################
+# Copyright (c) 2000, 2007 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# IBM Corporation - initial API and implementation
+###############################################################################
+header=
+# {0} plugin name
+# {1} xml log file name
+dom_header= log for {0}
+footer=
+# {0] source file name
+# {1} number of problems
+# {2} number of errors
+# {3} number of warnings
+
+problems.header=----------\n
+# {0] source file name
+# {1} number of problems
+# {2} number of errors
+# {3} number of warnings
+problems.footer={1} problem(s) ({2} error(s), {3} warning(s))
+
+errors.header=
+errors.footer=
+
+warnings.header=
+warnings.footer=
+
+# {0} source file name
+# {1} global error number
+# {2} error number
+# {3} error id
+# {4} line number of the error
+# {5} error message
+# {6} source code before this error
+# {7} source code corresponding to this error
+# {8} source code after this error
+# {9} complement to underline the problem
+# {10} starting position of the error
+# {11} ending position of the error
+errors.entry.odd={1}. ERROR in {0}\n\
+ (at line {4})\n\
+\ {6}{7}{8}\n\ {9}\n\
+{5}\n\
+----------\n
+
+# {0} source file name
+# {1} global error number
+# {2} error number
+# {3} error id
+# {4} line number of the error
+# {5} error message
+# {6} source code before this error
+# {7} source code corresponding to this error
+# {8} source code after this error
+# {9} complement to underline the problem
+# {10} starting position of the error
+# {11} ending position of the error
+errors.entry.even={1}. ERROR in {0}\n\
+ (at line {4})\n\
+\ {6}{7}{8}\n\ {9}\n\
+{5}\n\
+----------\n
+
+# {0} source file name
+# {1} global error number
+# {2} error number
+# {3} error id
+# {4} line number of the error
+# {5} error message
+# {6} source code before this error
+# {7} source code corresponding to this error
+# {8} source code after this error
+# {9} complement to underline the problem
+# {10} starting position of the error
+# {11} ending position of the error
+warnings.entry.odd={1}. WARNING in {0}\n\
+ (at line {4})\n\
+\ {6}{7}{8}\n\ {9}\n\
+{5}\n\
+----------\n
+
+# {0} source file name
+# {1} global error number
+# {2} error number
+# {3} error id
+# {4} line number of the error
+# {5} error message
+# {6} source code before this error
+# {7} source code corresponding to this error
+# {8} source code after this error
+# {9} complement to underline the problem
+# {10} starting position of the error
+# {11} ending position of the error
+warnings.entry.even={1}. WARNING in {0}\n\
+ (at line {4})\n\
+\ {6}{7}{8}\n\ {9}\n\
+{5}\n\
+----------\n
+
+# {0} global number of problems
+# {1} global number of errors
+# {2} global number of warnings
+# {3} global number of tasks
+problem_summary={0} problem(s) ({1} error(s), {2} warning(s))
\ No newline at end of file
diff --git a/bundles/org.eclipse.releng.build.tools.convert/src/org/eclipse/releng/build/tools/convert/application/LogConverter.java b/bundles/org.eclipse.releng.build.tools.convert/src/org/eclipse/releng/build/tools/convert/application/LogConverter.java
new file mode 100644
index 0000000..fc0ae9c
--- /dev/null
+++ b/bundles/org.eclipse.releng.build.tools.convert/src/org/eclipse/releng/build/tools/convert/application/LogConverter.java
@@ -0,0 +1,18 @@
+package org.eclipse.releng.build.tools.convert.application;
+
+import org.eclipse.equinox.app.IApplication;
+import org.eclipse.equinox.app.IApplicationContext;
+import org.eclipse.releng.build.tools.convert.ant.Converter;
+
+public class LogConverter implements IApplication {
+
+ public Object start(IApplicationContext context) throws Exception {
+ String[] args = (String[]) context.getArguments().get(IApplicationContext.APPLICATION_ARGS);
+ Converter.main(args);
+ return IApplication.EXIT_OK;
+ }
+
+ public void stop() {
+ // nothing to do
+ }
+}
diff --git a/bundles/org.eclipse.releng.build.tools.convert/src/org/eclipse/releng/build/tools/convert/dom/AbstractDOMConverter.java b/bundles/org.eclipse.releng.build.tools.convert/src/org/eclipse/releng/build/tools/convert/dom/AbstractDOMConverter.java
new file mode 100644
index 0000000..fa757cb
--- /dev/null
+++ b/bundles/org.eclipse.releng.build.tools.convert/src/org/eclipse/releng/build/tools/convert/dom/AbstractDOMConverter.java
@@ -0,0 +1,353 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2007 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.releng.build.tools.convert.dom;
+
+import java.io.BufferedWriter;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.Writer;
+import java.text.ChoiceFormat;
+import java.text.MessageFormat;
+import java.util.HashSet;
+import java.util.Map;
+
+import org.eclipse.releng.build.tools.convert.ant.Converter;
+import org.eclipse.releng.build.tools.convert.ant.Messages;
+
+public abstract class AbstractDOMConverter implements IDOMConverter {
+ public static final HashSet FILTERED_WARNINGS_IDS;
+
+ public static final String FORBIDDEN_REFERENCE = "ForbiddenReference"; //$NON-NLS-1$
+ public static final String DISCOURAGED_REFERENCE = "DiscouragedReference"; //$NON-NLS-1$
+
+ static {
+ FILTERED_WARNINGS_IDS = new HashSet();
+ FILTERED_WARNINGS_IDS.add(FORBIDDEN_REFERENCE);
+ FILTERED_WARNINGS_IDS.add(DISCOURAGED_REFERENCE);
+ }
+
+ protected Messages messages;
+
+
+ private String convertToHTML(String s) {
+ StringBuffer buffer = new StringBuffer();
+ for (int i = 0, max = s.length(); i < max; i++) {
+ final char c = s.charAt(i);
+ switch(c) {
+ case '<' :
+ buffer.append("<"); //$NON-NLS-1$
+ break;
+ case '>' :
+ buffer.append(">"); //$NON-NLS-1$
+ break;
+ case '\"' :
+ buffer.append("""); //$NON-NLS-1$
+ break;
+ case '&' :
+ buffer.append("&"); //$NON-NLS-1$
+ break;
+ case '^' :
+ buffer.append("∧"); //$NON-NLS-1$
+ break;
+ default:
+ buffer.append(c);
+ }
+ }
+ return String.valueOf(buffer);
+ }
+
+ public void dump(int formatVersion, Map options, LogDocumentNode documentNode) {
+ switch(formatVersion) {
+ case Converter.FORMAT_VERSION_2 :
+ dumpVersion2(options, documentNode);
+ }
+ }
+
+ private void dumpVersion2(Map options, LogDocumentNode documentNode) {
+ String fileName = (String) options.get(Converter.OUTPUT_FILE_NAME);
+ final ProblemSummaryNode summaryNode = documentNode.getSummaryNode();
+ if (summaryNode == null ||
+ (summaryNode.numberOfErrors == 0 && summaryNode.numberOfWarnings == 0)) return;
+ try {
+ Writer writer = new BufferedWriter(new FileWriter(fileName));
+ final String pluginName = extractPluginName(fileName);
+ if (pluginName == null) {
+ writer.write(this.messages.getString("header")); //$NON-NLS-1$
+ } else {
+ String pattern = this.messages.getString("dom_header"); //$NON-NLS-1$
+ writer.write(
+ MessageFormat.format(pattern,
+ new Object[] {
+ pluginName,
+ extractXmlFileName((String) options.get(Converter.INPUT_SOURCE))
+ }
+ ));
+ }
+ ProblemSummaryNode problemSummaryNode = summaryNode;
+ writeTopAnchor(writer);
+ String pattern = this.messages.getString("problem.summary"); //$NON-NLS-1$
+ writer.write(MessageFormat.format(pattern,
+ new Object[] {
+ Integer.toString(problemSummaryNode.numberOfProblems),
+ Integer.toString(problemSummaryNode.numberOfErrors),
+ Integer.toString(problemSummaryNode.numberOfWarnings)
+ }));
+
+ writeAnchorsReferences(writer);
+ ProblemsNode[] problemsNodes = documentNode.getProblems();
+ int globalErrorNumber = 1;
+
+ writeErrorAnchor(writer);
+ writeAnchorsReferencesErrors(writer);
+ // dump errors
+ for (int i = 0, max = problemsNodes.length; i < max; i++) {
+ final ProblemsNode problemsNode = problemsNodes[i];
+ ProblemNode[] problemNodes = problemsNode.getErrors();
+ int length = problemNodes.length;
+ if (length == 0) continue;
+ pattern = this.messages.getString("errors.header"); //$NON-NLS-1$
+
+ MessageFormat form = new MessageFormat(pattern);
+ double[] warningsLimits = {1,2};
+ String[] warningParts = {
+ this.messages.getString("one_error"), //$NON-NLS-1$
+ this.messages.getString("multiple_errors") //$NON-NLS-1$
+ };
+ ChoiceFormat warningForm = new ChoiceFormat(warningsLimits, warningParts);
+ final String sourceFileName = extractRelativePath(problemsNode.sourceFileName, pluginName);
+ form.setFormatByArgumentIndex(1, warningForm);
+ Object[] arguments = new Object[] {
+ sourceFileName,
+ new Integer(problemsNode.numberOfErrors),
+ };
+ writer.write(form.format(arguments));
+ for (int j = 0; j < length; j++) {
+ ProblemNode problemNode = problemNodes[j];
+ if ((j & 1) != 0) {
+ pattern = this.messages.getString("errors.entry.odd"); //$NON-NLS-1$
+ } else {
+ pattern = this.messages.getString("errors.entry.even"); //$NON-NLS-1$
+ }
+ problemNode.setSources();
+ writer.write(MessageFormat.format(pattern,
+ new Object[] {
+ sourceFileName,
+ Integer.toString(globalErrorNumber),
+ Integer.toString(j + 1),
+ problemNode.id,
+ Integer.toString(problemNode.line),
+ convertToHTML(problemNode.message),
+ convertToHTML(problemNode.sourceCodeBefore),
+ convertToHTML(problemNode.sourceCode),
+ convertToHTML(problemNode.sourceCodeAfter),
+ getUnderLine(problemNode.sourceCodeBefore, problemNode.sourceCodeAfter),
+ Integer.toString(problemNode.charStart),
+ Integer.toString(problemNode.charEnd),
+ }));
+ globalErrorNumber++;
+ }
+ writer.write(this.messages.getString("errors.footer")); //$NON-NLS-1$
+ }
+
+ writeOtherWarningsAnchor(writer);
+ writeAnchorsReferencesOtherWarnings(writer);
+ // dump other warnings
+ for (int i = 0, max = problemsNodes.length; i < max; i++) {
+ final ProblemsNode problemsNode = problemsNodes[i];
+ ProblemNode[] problemNodes = problemsNode.getOtherWarnings();
+ int length = problemNodes.length;
+ if (length == 0) continue;
+
+ pattern = this.messages.getString("other_warnings.header"); //$NON-NLS-1$
+ MessageFormat form = new MessageFormat(pattern);
+ double[] warningsLimits = {1,2};
+ String[] warningParts = {
+ this.messages.getString("one_warning"),//$NON-NLS-1$
+ this.messages.getString("multiple_warnings")//$NON-NLS-1$
+ };
+ ChoiceFormat warningForm = new ChoiceFormat(warningsLimits, warningParts);
+ final String sourceFileName = extractRelativePath(problemsNode.sourceFileName, pluginName);
+ form.setFormatByArgumentIndex(1, warningForm);
+ Object[] arguments = new Object[] {
+ sourceFileName,
+ new Integer(problemsNode.numberOfWarnings),
+ };
+ writer.write(form.format(arguments));
+ for (int j = 0; j < length; j++) {
+ ProblemNode problemNode = problemNodes[j];
+ if ((j & 1) != 0) {
+ pattern = this.messages.getString("warnings.entry.odd"); //$NON-NLS-1$
+ } else {
+ pattern = this.messages.getString("warnings.entry.even"); //$NON-NLS-1$
+ }
+ problemNode.setSources();
+ writer.write(MessageFormat.format(pattern,
+ new Object[] {
+ sourceFileName,
+ Integer.toString(globalErrorNumber),
+ Integer.toString(j + 1),
+ problemNode.id,
+ Integer.toString(problemNode.line),
+ convertToHTML(problemNode.message),
+ convertToHTML(problemNode.sourceCodeBefore),
+ convertToHTML(problemNode.sourceCode),
+ convertToHTML(problemNode.sourceCodeAfter),
+ getUnderLine(problemNode.sourceCodeBefore, problemNode.sourceCodeAfter),
+ Integer.toString(problemNode.charStart),
+ Integer.toString(problemNode.charEnd),
+ }));
+ globalErrorNumber++;
+ }
+ writer.write(this.messages.getString("other_warnings.footer")); //$NON-NLS-1$
+ }
+
+ // dump forbidden accesses warnings
+ writeForbiddenRulesWarningsAnchor(writer);
+ writeAnchorsReferencesForbiddenRulesWarnings(writer);
+ for (int i = 0, max = problemsNodes.length; i < max; i++) {
+ final ProblemsNode problemsNode = problemsNodes[i];
+ ProblemNode[] problemNodes = problemsNode.getForbiddenWarnings();
+ int length = problemNodes.length;
+ if (length == 0) continue;
+
+ pattern = this.messages.getString("forbidden_warnings.header"); //$NON-NLS-1$
+ MessageFormat form = new MessageFormat(pattern);
+ double[] warningsLimits = {1,2};
+ String[] warningParts = {
+ this.messages.getString("one_warning"),//$NON-NLS-1$
+ this.messages.getString("multiple_warnings")//$NON-NLS-1$
+ };
+ ChoiceFormat warningForm = new ChoiceFormat(warningsLimits, warningParts);
+ final String sourceFileName = extractRelativePath(problemsNode.sourceFileName, pluginName);
+ form.setFormatByArgumentIndex(1, warningForm);
+ Object[] arguments = new Object[] {
+ sourceFileName,
+ new Integer(problemsNode.numberOfWarnings),
+ };
+ writer.write(form.format(arguments));
+ for (int j = 0; j < length; j++) {
+ ProblemNode problemNode = problemNodes[j];
+ if ((j & 1) != 0) {
+ pattern = this.messages.getString("warnings.entry.odd"); //$NON-NLS-1$
+ } else {
+ pattern = this.messages.getString("warnings.entry.even"); //$NON-NLS-1$
+ }
+ problemNode.setSources();
+ writer.write(MessageFormat.format(pattern,
+ new Object[] {
+ sourceFileName,
+ Integer.toString(globalErrorNumber),
+ Integer.toString(j + 1),
+ problemNode.id,
+ Integer.toString(problemNode.line),
+ convertToHTML(problemNode.message),
+ convertToHTML(problemNode.sourceCodeBefore),
+ convertToHTML(problemNode.sourceCode),
+ convertToHTML(problemNode.sourceCodeAfter),
+ getUnderLine(problemNode.sourceCodeBefore, problemNode.sourceCodeAfter),
+ Integer.toString(problemNode.charStart),
+ Integer.toString(problemNode.charEnd),
+ }));
+ globalErrorNumber++;
+ }
+ writer.write(this.messages.getString("forbidden_warnings.footer")); //$NON-NLS-1$
+ }
+
+ // dump discouraged accesses warnings
+ writeDiscouragedRulesWarningsAnchor(writer);
+ writeAnchorsReferencesDiscouragedRulesWarnings(writer);
+ for (int i = 0, max = problemsNodes.length; i < max; i++) {
+ final ProblemsNode problemsNode = problemsNodes[i];
+ ProblemNode[] problemNodes = problemsNode.getDiscouragedWarnings();
+ int length = problemNodes.length;
+ if (length == 0) continue;
+
+ pattern = this.messages.getString("discouraged_warnings.header"); //$NON-NLS-1$
+ MessageFormat form = new MessageFormat(pattern);
+ double[] warningsLimits = {1,2};
+ String[] warningParts = {
+ this.messages.getString("one_warning"),//$NON-NLS-1$
+ this.messages.getString("multiple_warnings")//$NON-NLS-1$
+ };
+ ChoiceFormat warningForm = new ChoiceFormat(warningsLimits, warningParts);
+ final String sourceFileName = extractRelativePath(problemsNode.sourceFileName, pluginName);
+ form.setFormatByArgumentIndex(1, warningForm);
+ Object[] arguments = new Object[] {
+ sourceFileName,
+ new Integer(problemsNode.numberOfWarnings),
+ };
+ writer.write(form.format(arguments));
+ for (int j = 0; j < length; j++) {
+ ProblemNode problemNode = problemNodes[j];
+ if ((j & 1) != 0) {
+ pattern = this.messages.getString("warnings.entry.odd"); //$NON-NLS-1$
+ } else {
+ pattern = this.messages.getString("warnings.entry.even"); //$NON-NLS-1$
+ }
+ problemNode.setSources();
+ writer.write(MessageFormat.format(pattern,
+ new Object[] {
+ sourceFileName,
+ Integer.toString(globalErrorNumber),
+ Integer.toString(j + 1),
+ problemNode.id,
+ Integer.toString(problemNode.line),
+ convertToHTML(problemNode.message),
+ convertToHTML(problemNode.sourceCodeBefore),
+ convertToHTML(problemNode.sourceCode),
+ convertToHTML(problemNode.sourceCodeAfter),
+ getUnderLine(problemNode.sourceCodeBefore, problemNode.sourceCodeAfter),
+ Integer.toString(problemNode.charStart),
+ Integer.toString(problemNode.charEnd),
+ }));
+ globalErrorNumber++;
+ }
+ writer.write(this.messages.getString("discouraged_warnings.footer")); //$NON-NLS-1$
+ }
+
+ writer.write(this.messages.getString("footer")); //$NON-NLS-1$
+ writer.flush();
+ writer.close();
+ } catch (IOException e) {
+ // ignore
+ }
+ }
+
+ private String extractPluginName(String fileName) {
+ // fileName is fully qualified and we want to extract the segment before the log file name
+ // file name contains only '/'
+ String logName = fileName.replace('\\', '/');
+ int index = logName.lastIndexOf('/');
+ if (index == -1) return null;
+ int index2 = logName.lastIndexOf('/', index - 1);
+ if (index2 == -1) return null;
+ return logName.substring(index2 + 1, index);
+ }
+
+ private String extractRelativePath(String sourceFileName, String pluginName) {
+ if (pluginName == null) return sourceFileName;
+ int index = pluginName.indexOf('_');
+ if (index == -1) return sourceFileName;
+ String pluginShortName = pluginName.substring(0, index);
+ int index2 = sourceFileName.indexOf(pluginShortName);
+ if (index2 == -1) return sourceFileName;
+ return sourceFileName.substring(index2 + pluginShortName.length(), sourceFileName.length());
+ }
+
+ private String extractXmlFileName(String fileName) {
+ // fileName is fully qualified and we want to extract the segment before the log file name
+ // file name contains only '/'
+ String logName = fileName.replace('\\', '/');
+ int index = logName.lastIndexOf('/');
+ if (index == -1) return null;
+ return logName.substring(index + 1, logName.length());
+ }
+}
diff --git a/bundles/org.eclipse.releng.build.tools.convert/src/org/eclipse/releng/build/tools/convert/dom/DOMHtmlConverter.java b/bundles/org.eclipse.releng.build.tools.convert/src/org/eclipse/releng/build/tools/convert/dom/DOMHtmlConverter.java
new file mode 100644
index 0000000..d54203c
--- /dev/null
+++ b/bundles/org.eclipse.releng.build.tools.convert/src/org/eclipse/releng/build/tools/convert/dom/DOMHtmlConverter.java
@@ -0,0 +1,69 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2007 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.releng.build.tools.convert.dom;
+
+import java.io.IOException;
+import java.io.Writer;
+
+import org.eclipse.releng.build.tools.convert.ant.ConverterFactory;
+import org.eclipse.releng.build.tools.convert.ant.Messages;
+
+public class DOMHtmlConverter extends AbstractDOMConverter {
+
+ public DOMHtmlConverter() {
+ //this.messages = new Messages("org.eclipse.releng.build.tools.convert.ant.html_messages"); //$NON-NLS-1$
+ this.messages = new Messages("org.eclipse.releng.build.tools.convert.ant.html_messages"); //$NON-NLS-1$
+ }
+
+ public String getUnderLine(String sourceBefore, String sourceOfError) {
+ return ConverterFactory.EMPTY;
+ }
+
+ public void writeAnchorsReferences(Writer writer) throws IOException {
+ writer.write(this.messages.getString("anchors.references.no_top"));//$NON-NLS-1$
+ }
+
+ public void writeAnchorsReferencesErrors(Writer writer) throws IOException {
+ writer.write(this.messages.getString("anchors.references.no_errors"));//$NON-NLS-1$
+ }
+
+ public void writeAnchorsReferencesOtherWarnings(Writer writer) throws IOException {
+ writer.write(this.messages.getString("anchors.references.no_other_warnings"));//$NON-NLS-1$
+ }
+
+ public void writeAnchorsReferencesForbiddenRulesWarnings(Writer writer) throws IOException {
+ writer.write(this.messages.getString("anchors.references.no_forbidden_warnings"));//$NON-NLS-1$
+ }
+
+ public void writeAnchorsReferencesDiscouragedRulesWarnings(Writer writer) throws IOException {
+ writer.write(this.messages.getString("anchors.references.no_discouraged_warnings"));//$NON-NLS-1$
+ }
+
+ public void writeErrorAnchor(Writer writer) throws IOException {
+ writer.write(this.messages.getString("errors.title_anchor"));//$NON-NLS-1$
+ }
+
+ public void writeOtherWarningsAnchor(Writer writer) throws IOException {
+ writer.write(this.messages.getString("other_warnings.title_anchor"));//$NON-NLS-1$
+ }
+
+ public void writeForbiddenRulesWarningsAnchor(Writer writer) throws IOException {
+ writer.write(this.messages.getString("forbidden_warnings.title_anchor"));//$NON-NLS-1$
+ }
+
+ public void writeDiscouragedRulesWarningsAnchor(Writer writer) throws IOException {
+ writer.write(this.messages.getString("discouraged_warnings.title_anchor"));//$NON-NLS-1$
+ }
+
+ public void writeTopAnchor(Writer writer) throws IOException {
+ writer.write(this.messages.getString("problem.summary.title_anchor"));//$NON-NLS-1$
+ }
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.releng.build.tools.convert/src/org/eclipse/releng/build/tools/convert/dom/DOMTxtConverter.java b/bundles/org.eclipse.releng.build.tools.convert/src/org/eclipse/releng/build/tools/convert/dom/DOMTxtConverter.java
new file mode 100644
index 0000000..b0103c7
--- /dev/null
+++ b/bundles/org.eclipse.releng.build.tools.convert/src/org/eclipse/releng/build/tools/convert/dom/DOMTxtConverter.java
@@ -0,0 +1,82 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2007 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.releng.build.tools.convert.dom;
+
+import java.io.IOException;
+import java.io.Writer;
+
+import org.eclipse.releng.build.tools.convert.ant.Messages;
+
+public class DOMTxtConverter extends AbstractDOMConverter {
+
+ public DOMTxtConverter() {
+ this.messages = new Messages("org.eclipse.releng.build.tools.convert.ant.txt_messages"); //$NON-NLS-1$
+ }
+
+ public String getUnderLine(String sourceBefore, String sourceOfError) {
+ StringBuffer buffer = new StringBuffer();
+ char[] chars = sourceBefore.toCharArray();
+ for (int i = 0, max = chars.length; i < max; i++) {
+ switch(chars[i]) {
+ case '\t' :
+ buffer.append('\t');
+ break;
+ default:
+ buffer.append(' ');
+ }
+ }
+ chars = sourceOfError.toCharArray();
+ for (int i = 0, max = chars.length; i < max; i++) {
+ buffer.append('^');
+ }
+ return String.valueOf(buffer);
+ }
+
+ public void writeAnchorsReferences(Writer writer) throws IOException {
+ // do nothing
+ }
+
+ public void writeAnchorsReferencesErrors(Writer writer) throws IOException {
+ // do nothing
+ }
+
+ public void writeAnchorsReferencesOtherWarnings(Writer writer) throws IOException {
+ // do nothing
+ }
+
+ public void writeAnchorsReferencesForbiddenRulesWarnings(Writer writer) throws IOException {
+ // do nothing
+ }
+
+ public void writeAnchorsReferencesDiscouragedRulesWarnings(Writer writer) throws IOException {
+ // do nothing
+ }
+
+ public void writeErrorAnchor(Writer writer) throws IOException {
+ // do nothing
+ }
+
+ public void writeOtherWarningsAnchor(Writer writer) throws IOException {
+ // do nothing
+ }
+
+ public void writeForbiddenRulesWarningsAnchor(Writer writer) throws IOException {
+ // do nothing
+ }
+
+ public void writeDiscouragedRulesWarningsAnchor(Writer writer) throws IOException {
+ // do nothing
+ }
+
+ public void writeTopAnchor(Writer writer) throws IOException {
+ // do nothing
+ }
+}
diff --git a/bundles/org.eclipse.releng.build.tools.convert/src/org/eclipse/releng/build/tools/convert/dom/IDOMConverter.java b/bundles/org.eclipse.releng.build.tools.convert/src/org/eclipse/releng/build/tools/convert/dom/IDOMConverter.java
new file mode 100644
index 0000000..e8b4ef4
--- /dev/null
+++ b/bundles/org.eclipse.releng.build.tools.convert/src/org/eclipse/releng/build/tools/convert/dom/IDOMConverter.java
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2007 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.releng.build.tools.convert.dom;
+
+import java.io.IOException;
+import java.io.Writer;
+import java.util.Map;
+
+public interface IDOMConverter {
+
+ String getUnderLine(String sourceBefore, String sourceOfError);
+
+ void dump(int formatVersion, Map options, LogDocumentNode documentNode);
+
+ void writeAnchorsReferences(Writer writer) throws IOException;
+
+ void writeAnchorsReferencesErrors(Writer writer) throws IOException;
+
+ void writeAnchorsReferencesOtherWarnings(Writer writer) throws IOException;
+
+ void writeAnchorsReferencesForbiddenRulesWarnings(Writer writer) throws IOException;
+
+ void writeAnchorsReferencesDiscouragedRulesWarnings(Writer writer) throws IOException;
+
+ void writeTopAnchor(Writer writer) throws IOException;
+
+ void writeErrorAnchor(Writer writer) throws IOException;
+
+ void writeOtherWarningsAnchor(Writer writer) throws IOException;
+
+ void writeForbiddenRulesWarningsAnchor(Writer writer) throws IOException;
+
+ void writeDiscouragedRulesWarningsAnchor(Writer writer) throws IOException;
+}
diff --git a/bundles/org.eclipse.releng.build.tools.convert/src/org/eclipse/releng/build/tools/convert/dom/LogDocumentNode.java b/bundles/org.eclipse.releng.build.tools.convert/src/org/eclipse/releng/build/tools/convert/dom/LogDocumentNode.java
new file mode 100644
index 0000000..ceb86bc
--- /dev/null
+++ b/bundles/org.eclipse.releng.build.tools.convert/src/org/eclipse/releng/build/tools/convert/dom/LogDocumentNode.java
@@ -0,0 +1,43 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2007 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.releng.build.tools.convert.dom;
+
+import java.util.ArrayList;
+
+public class LogDocumentNode {
+ private static final ProblemsNode[] NO_PROBLEM_NODES = new ProblemsNode[0];
+ private ArrayList problems;
+ private ProblemSummaryNode summaryNode;
+ private ProblemsNode[] problemsNodes;
+
+ public void addProblemsNode(ProblemsNode node) {
+ if (this.problems == null) this.problems = new ArrayList();
+ this.problems.add(node);
+ }
+
+ public void setProblemSummary(ProblemSummaryNode node) {
+ this.summaryNode = node;
+ }
+
+ public ProblemsNode[] getProblems() {
+ if (this.problemsNodes != null) return this.problemsNodes;
+ if (this.problems == null) {
+ return this.problemsNodes = NO_PROBLEM_NODES;
+ }
+ this.problemsNodes = new ProblemsNode[this.problems.size()];
+ this.problems.toArray(this.problemsNodes);
+ return this.problemsNodes;
+ }
+
+ public ProblemSummaryNode getSummaryNode() {
+ return this.summaryNode;
+ }
+}
diff --git a/bundles/org.eclipse.releng.build.tools.convert/src/org/eclipse/releng/build/tools/convert/dom/ProblemNode.java b/bundles/org.eclipse.releng.build.tools.convert/src/org/eclipse/releng/build/tools/convert/dom/ProblemNode.java
new file mode 100644
index 0000000..82e8c07
--- /dev/null
+++ b/bundles/org.eclipse.releng.build.tools.convert/src/org/eclipse/releng/build/tools/convert/dom/ProblemNode.java
@@ -0,0 +1,64 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2007 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.releng.build.tools.convert.dom;
+
+public class ProblemNode {
+ protected static final String EMPTY = ""; //$NON-NLS-1$
+
+ public boolean isError;
+ public int charStart;
+ public int charEnd;
+ public int line;
+ public String id;
+ public String message;
+ public int sourceStart;
+ public int sourceEnd;
+ public String contextValue;
+ public int globalProblemNumber;
+ public int problemNumber;
+ public String sourceFileName;
+
+ public String sourceCodeBefore;
+ public String sourceCodeAfter;
+ public String sourceCode;
+
+ public String toString() {
+ StringBuffer buffer = new StringBuffer();
+ buffer.append(this.isError ? "ERROR " : "WARNING "); //$NON-NLS-1$//$NON-NLS-2$
+ buffer.append("line : ").append(this.line).append(" message = ").append(this.message);//$NON-NLS-1$//$NON-NLS-2$
+ return buffer.toString();
+ }
+
+ public void setSources() {
+ if (this.sourceStart == -1 || this.sourceEnd == -1) {
+ this.sourceCodeBefore = EMPTY;
+ this.sourceCode = this.contextValue;
+ this.sourceCodeAfter = EMPTY;
+ } else {
+ int length = this.contextValue.length();
+ if (this.sourceStart < length) {
+ this.sourceCodeBefore = this.contextValue.substring(0, this.sourceStart);
+ int end = this.sourceEnd + 1;
+ if (end < length) {
+ this.sourceCode = this.contextValue.substring(this.sourceStart, end);
+ this.sourceCodeAfter = this.contextValue.substring(end, length);
+ } else {
+ this.sourceCode = this.contextValue.substring(this.sourceStart, length);
+ this.sourceCodeAfter = EMPTY;
+ }
+ } else {
+ this.sourceCodeBefore = EMPTY;
+ this.sourceCode = EMPTY;
+ this.sourceCodeAfter = EMPTY;
+ }
+ }
+ }
+}
diff --git a/bundles/org.eclipse.releng.build.tools.convert/src/org/eclipse/releng/build/tools/convert/dom/ProblemSummaryNode.java b/bundles/org.eclipse.releng.build.tools.convert/src/org/eclipse/releng/build/tools/convert/dom/ProblemSummaryNode.java
new file mode 100644
index 0000000..85ffcce
--- /dev/null
+++ b/bundles/org.eclipse.releng.build.tools.convert/src/org/eclipse/releng/build/tools/convert/dom/ProblemSummaryNode.java
@@ -0,0 +1,30 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2007 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.releng.build.tools.convert.dom;
+
+public class ProblemSummaryNode {
+
+ public int numberOfProblems;
+ public int numberOfErrors;
+ public int numberOfWarnings;
+
+ public String toString() {
+ StringBuffer buffer = new StringBuffer();
+ buffer
+ .append("problems : ") //$NON-NLS-1$
+ .append(this.numberOfProblems)
+ .append(" errors : ") //$NON-NLS-1$
+ .append(this.numberOfErrors)
+ .append(" warnings : ") //$NON-NLS-1$
+ .append(this.numberOfWarnings);
+ return buffer.toString();
+ }
+}
diff --git a/bundles/org.eclipse.releng.build.tools.convert/src/org/eclipse/releng/build/tools/convert/dom/ProblemsNode.java b/bundles/org.eclipse.releng.build.tools.convert/src/org/eclipse/releng/build/tools/convert/dom/ProblemsNode.java
new file mode 100644
index 0000000..c679a24
--- /dev/null
+++ b/bundles/org.eclipse.releng.build.tools.convert/src/org/eclipse/releng/build/tools/convert/dom/ProblemsNode.java
@@ -0,0 +1,83 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2007 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.releng.build.tools.convert.dom;
+
+import java.util.ArrayList;
+
+public class ProblemsNode {
+ private static final ProblemNode[] EMPTY_NODES = new ProblemNode[0];
+
+ public String sourceFileName;
+ public int numberOfProblems;
+ public int numberOfErrors;
+ public int numberOfWarnings;
+
+ private ArrayList errorNodes;
+ private ArrayList otherWarningNodes;
+ private ArrayList discouragedWarningsNodes;
+ private ArrayList forbiddenWarningsNodes;
+ private ProblemNode[] errors;
+ private ProblemNode[] otherWarnings;
+ private ProblemNode[] discouragedWarnings;
+ private ProblemNode[] forbiddenWarnings;
+
+ public void addError(ProblemNode node) {
+ if (this.errorNodes == null) this.errorNodes = new ArrayList();
+ this.errorNodes.add(node);
+ }
+
+ public void addForbiddenWarning(ProblemNode node) {
+ if (this.forbiddenWarningsNodes == null) this.forbiddenWarningsNodes = new ArrayList();
+ this.forbiddenWarningsNodes.add(node);
+ }
+
+ public void addDiscouragedWarning(ProblemNode node) {
+ if (this.discouragedWarningsNodes == null) this.discouragedWarningsNodes = new ArrayList();
+ this.discouragedWarningsNodes.add(node);
+ }
+
+ public void addOtherWarning(ProblemNode node) {
+ if (this.otherWarningNodes == null) this.otherWarningNodes= new ArrayList();
+ this.otherWarningNodes.add(node);
+ }
+
+ public ProblemNode[] getErrors() {
+ if (this.errors != null) return this.errors;
+ if (this.errorNodes == null) return this.errors = EMPTY_NODES;
+ this.errors = new ProblemNode[this.errorNodes.size()];
+ this.errorNodes.toArray(this.errors);
+ return this.errors;
+ }
+
+ public ProblemNode[] getOtherWarnings() {
+ if (this.otherWarnings != null) return this.otherWarnings;
+ if (this.otherWarningNodes == null) return this.otherWarnings = EMPTY_NODES;
+ this.otherWarnings = new ProblemNode[this.otherWarningNodes.size()];
+ this.otherWarningNodes.toArray(this.otherWarnings);
+ return this.otherWarnings;
+ }
+
+ public ProblemNode[] getDiscouragedWarnings() {
+ if (this.discouragedWarnings != null) return this.discouragedWarnings;
+ if (this.discouragedWarningsNodes == null) return this.discouragedWarnings = EMPTY_NODES;
+ this.discouragedWarnings = new ProblemNode[this.discouragedWarningsNodes.size()];
+ this.discouragedWarningsNodes.toArray(this.discouragedWarnings);
+ return this.discouragedWarnings;
+ }
+
+ public ProblemNode[] getForbiddenWarnings() {
+ if (this.forbiddenWarnings != null) return this.forbiddenWarnings;
+ if (this.forbiddenWarningsNodes == null) return this.forbiddenWarnings = EMPTY_NODES;
+ this.forbiddenWarnings = new ProblemNode[this.forbiddenWarningsNodes.size()];
+ this.forbiddenWarningsNodes.toArray(this.forbiddenWarnings);
+ return this.forbiddenWarnings;
+ }
+}