Bug 500399 - GenDoc Errors and warnings report enhancement
Change-Id: I155aca390bc043bf828bff2b66ae90842b3c51c5
Signed-off-by: Antonio Campesino <antonio.campesino.robles@ericsson.com>
diff --git a/plugins/org.eclipse.gendoc.script.acceleo/src/org/eclipse/gendoc/script/acceleo/Generator.java b/plugins/org.eclipse.gendoc.script.acceleo/src/org/eclipse/gendoc/script/acceleo/Generator.java
index 7288ede..58b32bc 100644
--- a/plugins/org.eclipse.gendoc.script.acceleo/src/org/eclipse/gendoc/script/acceleo/Generator.java
+++ b/plugins/org.eclipse.gendoc.script.acceleo/src/org/eclipse/gendoc/script/acceleo/Generator.java
@@ -33,6 +33,7 @@
import org.eclipse.acceleo.model.mtl.resource.AcceleoResourceFactoryRegistry;
import org.eclipse.acceleo.parser.AcceleoParser;
import org.eclipse.acceleo.parser.AcceleoSourceBuffer;
+import org.eclipse.core.runtime.IStatus;
import org.eclipse.emf.common.util.Monitor;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EClassifier;
@@ -45,6 +46,8 @@
import org.eclipse.emf.ecore.xmi.impl.EcoreResourceFactoryImpl;
import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
import org.eclipse.gendoc.script.acceleo.exception.AcceleoParsingException;
+import org.eclipse.gendoc.services.GendocServices;
+import org.eclipse.gendoc.services.ILogger;
import org.eclipse.gendoc.services.exception.GenerationException;
import org.eclipse.gendoc.services.exception.ParsingException;
import org.eclipse.ocl.ecore.EcoreEnvironment;
@@ -123,7 +126,9 @@
parser.parse(source, r, resources);
if (!source.getProblems().getList().isEmpty())
{
- throw new AcceleoParsingException(source.getProblems().toString());
+ ILogger logger = GendocServices.getDefault().getService(ILogger.class);
+ logger.log(source.getProblems().toString()+":\n"+source.getBuffer().toString(), IStatus.ERROR);
+ throw new AcceleoParsingException(source.getProblems().toString());
}
if (r.getContents().size() > 0)
{
diff --git a/plugins/org.eclipse.gendoc.tags.handlers/src/org/eclipse/gendoc/tags/handlers/AbstractScriptTagHandler.java b/plugins/org.eclipse.gendoc.tags.handlers/src/org/eclipse/gendoc/tags/handlers/AbstractScriptTagHandler.java
index 465ee75..183a91b 100644
--- a/plugins/org.eclipse.gendoc.tags.handlers/src/org/eclipse/gendoc/tags/handlers/AbstractScriptTagHandler.java
+++ b/plugins/org.eclipse.gendoc.tags.handlers/src/org/eclipse/gendoc/tags/handlers/AbstractScriptTagHandler.java
@@ -13,6 +13,9 @@
*****************************************************************************/
package org.eclipse.gendoc.tags.handlers;
+import java.io.PrintWriter;
+import java.io.StringWriter;
+
import org.eclipse.emf.common.util.Diagnostic;
import org.eclipse.gendoc.documents.IDocumentService;
import org.eclipse.gendoc.m2t.IM2TProcessor;
@@ -72,7 +75,10 @@
// ok
gendocDiagnostician.addDiagnostic(Diagnostic.ERROR, message, tag);
e.printStackTrace();
- return " --- ERROR DURING GENERATION OF THIS PART \n Error message: " + this.removeSpecialCharacters(e.getUIMessage()) + " --- " + tag.getRawText() + " --- END ERROR --- ";
+ StringWriter wr = new StringWriter();
+ e.printStackTrace(new PrintWriter(wr,true));
+ return " --- ERROR DURING GENERATION OF THIS PART \n Error message: " + this.removeSpecialCharacters(e.getUIMessage()) + " --- "
+ + wr.toString() + "---" + tag.getRawText() + " --- END ERROR --- ";
}
logger.log("Script result :" + resultBuffer.toString(), ILogger.DEBUG);
return resultBuffer.toString();
diff --git a/plugins/org.eclipse.gendoc.wizard/src/org/eclipse/gendoc/wizard/GendocWizard.java b/plugins/org.eclipse.gendoc.wizard/src/org/eclipse/gendoc/wizard/GendocWizard.java
index 3f1f2ad..a04af62 100644
--- a/plugins/org.eclipse.gendoc.wizard/src/org/eclipse/gendoc/wizard/GendocWizard.java
+++ b/plugins/org.eclipse.gendoc.wizard/src/org/eclipse/gendoc/wizard/GendocWizard.java
@@ -172,6 +172,17 @@
+ resultFilePath);
}
});
+ } else if (resultDiagnostic.getSeverity() == Diagnostic.WARNING) {
+ Display.getDefault().syncExec(new Runnable()
+ {
+ public void run()
+ {
+ ErrorDialog.openError(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), "Document generator",
+ "The document has been generated successfully:\n"
+ + resultFilePath +"\n but contains some warnings:\n",
+ BasicDiagnostic.toIStatus(resultDiagnostic));
+ }
+ });
}
else
{