From: <rpe...@us...> - 2010-01-16 13:49:10
|
Revision: 1337 http://xradar.svn.sourceforge.net/xradar/?rev=1337&view=rev Author: rpelisse Date: 2010-01-16 13:49:02 +0000 (Sat, 16 Jan 2010) Log Message: ----------- upgrade/change of implementation to follow the new defined API Modified Paths: -------------- trunk/xradar/src/main/java/org/sourceforge/xradar/XRadar.java trunk/xradar/src/main/java/org/sourceforge/xradar/statics/Statics.java trunk/xradar/src/main/java/org/sourceforge/xradar/statics/renderers/XslHtmlWebsite.java Modified: trunk/xradar/src/main/java/org/sourceforge/xradar/XRadar.java =================================================================== --- trunk/xradar/src/main/java/org/sourceforge/xradar/XRadar.java 2010-01-16 13:46:31 UTC (rev 1336) +++ trunk/xradar/src/main/java/org/sourceforge/xradar/XRadar.java 2010-01-16 13:49:02 UTC (rev 1337) @@ -70,9 +70,9 @@ * @throws XRadarException */ @Deprecated - public String generateHtmlReport(MergeProduct products,Map<String,Param> params) throws XRadarException; + public void generateHtmlReport(MergeProduct products,Map<String,Param> params) throws XRadarException; // Should be replaced by : - public String generateHtmlReport(AggregatedMetrics products,WebsiteParameters parameters) throws XRadarException; + public void generateHtmlReport(AggregatedMetrics products,WebsiteParameters parameters) throws XRadarException; Modified: trunk/xradar/src/main/java/org/sourceforge/xradar/statics/Statics.java =================================================================== --- trunk/xradar/src/main/java/org/sourceforge/xradar/statics/Statics.java 2010-01-16 13:46:31 UTC (rev 1336) +++ trunk/xradar/src/main/java/org/sourceforge/xradar/statics/Statics.java 2010-01-16 13:49:02 UTC (rev 1337) @@ -16,6 +16,7 @@ import javax.xml.transform.stream.StreamResult; +import org.sourceforge.xradar.AggregatedMetrics; import org.sourceforge.xradar.DefaultReportValues; import org.sourceforge.xradar.Param; import org.sourceforge.xradar.ReleaseData; @@ -37,11 +38,11 @@ { private static final Logger logger = Logger.getLogger(Statics.class.getSimpleName()); // Parameters name for XSLT stylesheets - public static final String TEST_ENABLED = "test-enabled"; + public static final String TEST_ENABLED = "test-enabled"; public static final String XML_REPORT_DIRECTORY = "target-directory"; - public static final String JAVADOC_ENABLED = "java-doc-configured"; - public static final String JAVADOC_ROOT = "java-doc-root"; - public static final String JAVA2HTML_ROOT = "java2html-root"; + public static final String JAVADOC_ENABLED = "java-doc-configured"; + public static final String JAVADOC_ROOT = "java-doc-root"; + public static final String JAVA2HTML_ROOT = "java2html-root"; // Internal XSLT stylesheet definition private static final String POSTPROCESS = DefaultReportValues.getString("radar.internal.postprocessor"); @@ -73,18 +74,48 @@ public void setDocsHome(String docsHome) throws XRadarException { super.setDocsHome(docsHome); - systemQuality = this.getDocsHome() + SYSTEM_FILE_SEPARATOR + XML_DIRECTORY + SYSTEM_FILE_SEPARATOR + QUALITY_DIRECTORY + SYSTEM_FILE_SEPARATOR + SYSTEM_QUALITY_REPORT; - normalizedReport = this.getDocsHome() + SYSTEM_FILE_SEPARATOR + XML_DIRECTORY + SYSTEM_FILE_SEPARATOR + NORMALIZED_REPORT_NAME; - masterReport = this.getDocsHome() + SYSTEM_FILE_SEPARATOR + XML_DIRECTORY + SYSTEM_FILE_SEPARATOR + MASTER_REPORT_NAME; + init(docsHome); +// initAggregatedMetrics(docsHome); + logTargetFiles(); + createDirectory(); + } + + @Override + public void setDocsHome(URL docsHome) throws XRadarException { + super.setDocsHome(docsHome.getFile()); + init(docsHome.getFile()); + initAggregatedMetrics(docsHome.toString()); + logTargetFiles(); + createDirectory(); + super.workingDirectory = docsHome; + } + + private void logTargetFiles() { if ( this.isDebug() ) { logger.fine("Target files:"); + logger.fine("\tMaster Report:" + masterReport); logger.fine("\tQuality System:" + systemQuality); logger.fine("\tNormalized report:" + normalizedReport); } - createDirectory(); + } + + private void init(String docsHome) throws XRadarException { + systemQuality = docsHome + SYSTEM_FILE_SEPARATOR + XML_DIRECTORY + SYSTEM_FILE_SEPARATOR + QUALITY_DIRECTORY + SYSTEM_FILE_SEPARATOR + SYSTEM_QUALITY_REPORT; + normalizedReport = docsHome + SYSTEM_FILE_SEPARATOR + XML_DIRECTORY + SYSTEM_FILE_SEPARATOR + NORMALIZED_REPORT_NAME; + masterReport = docsHome + SYSTEM_FILE_SEPARATOR + XML_DIRECTORY + SYSTEM_FILE_SEPARATOR + MASTER_REPORT_NAME; + } + + private void initAggregatedMetrics(String docsHome) throws XRadarException { + if ( metrics == null ) + metrics = new AggregatedMetrics(); + metrics.setMasterReport(URLUtils.createURL(docsHome + SYSTEM_FILE_SEPARATOR + XML_DIRECTORY + SYSTEM_FILE_SEPARATOR + MASTER_REPORT_NAME)); + metrics.setRadarNormalized(URLUtils.createURL(docsHome + SYSTEM_FILE_SEPARATOR + XML_DIRECTORY + SYSTEM_FILE_SEPARATOR + NORMALIZED_REPORT_NAME)); + metrics.setSystemQuality(URLUtils.createURL(docsHome + SYSTEM_FILE_SEPARATOR + XML_DIRECTORY + SYSTEM_FILE_SEPARATOR + QUALITY_DIRECTORY + SYSTEM_FILE_SEPARATOR + SYSTEM_QUALITY_REPORT)); + } + private void createDirectory() throws XRadarException { FileUtils.createDir(this.getDocsHome()); @@ -113,7 +144,7 @@ preambule.getParams().put(DOCS_HOME,new Param(DOCS_HOME,this.getDocsHome())); return preambule; } - + /** * Do the xradar post processing and generate the 3 files xradar requires to build the website * <ol> @@ -129,7 +160,6 @@ */ public MergeProduct executePostProcessing(String inputXml,ReleaseData releaseData, Param radarConfig) throws XRadarException { - String currentTargetFile = masterReport; try { MergeProduct products = new MergeProduct(); @@ -146,7 +176,6 @@ createPostProcessPreambule(releaseData,radarConfig), normalizedReport)); products.setRadarNormalizedFilename(normalizedReport); - currentTargetFile = normalizedReport; FileUtils.checkFileNotEmpty(normalizedReport); Preambule preambule = createPostProcessPreambule(releaseData,radarConfig); // TODO: I don't really remember why this next part is necessary... @@ -154,24 +183,26 @@ if (XRadarUtils.isRunningOnWindowsOS()) preambule.getParams().put(XML_REPORT_DIRECTORY,new Param(XML_REPORT_DIRECTORY,SYSTEM_FILE_SEPARATOR + getDocsHome() + SYSTEM_FILE_SEPARATOR + XML_DIRECTORY + SYSTEM_FILE_SEPARATOR + QUALITY_DIRECTORY)); else - preambule.getParams().put(XML_REPORT_DIRECTORY,new Param(XML_REPORT_DIRECTORY,getDocsHome() + SYSTEM_FILE_SEPARATOR + XML_DIRECTORY + SYSTEM_FILE_SEPARATOR + QUALITY_DIRECTORY)); + preambule.getParams().put(XML_REPORT_DIRECTORY,new Param(XML_REPORT_DIRECTORY,SYSTEM_FILE_SEPARATOR + getDocsHome() + SYSTEM_FILE_SEPARATOR + XML_DIRECTORY + SYSTEM_FILE_SEPARATOR + QUALITY_DIRECTORY)); // ... maybe it has become useless ? // Generate system quality - products.setSystemQuality( processStep(new InputSource(new FileInputStream(normalizedReport)), + radarConfig.setName(XRADAR_CONFIG_FILE); + preambule.getParams().put(XRADAR_CONFIG_FILE,radarConfig); + products.setSystemQuality(processStep(new InputSource(new FileInputStream(normalizedReport)), QUALITY, preambule, systemQuality)); products.setSystemQuality(StreamUtils.openInputStream(systemQuality)); products.setSystemQualityFilename(systemQuality); - currentTargetFile = systemQuality; FileUtils.checkFileNotEmpty(systemQuality); return products; } catch ( FileNotFoundException e ) { - throw new XRadarException("Post merge treatement ended up with file" + currentTargetFile + " not created.",e); + throw new XRadarException("Post merge treatement ended up with file" + /*currentTargetFile + */ " not created.",e); } } + /** * <p>This method copy all the statics resources needed by xradar website from the xradar package distribution * to the website folder. Statics resources includes stuff like xradar logos,...</p> @@ -233,7 +264,7 @@ File target = new File(targetFile); merger.setXmlResult(new StreamResult(target)); merger.setPreambule(preambule); - merger.merge(input,URLUtils.openStream(step)); + merger.merge(input,URLUtils.openStream(step)); try { out = new FileInputStream(target); Modified: trunk/xradar/src/main/java/org/sourceforge/xradar/statics/renderers/XslHtmlWebsite.java =================================================================== --- trunk/xradar/src/main/java/org/sourceforge/xradar/statics/renderers/XslHtmlWebsite.java 2010-01-16 13:46:31 UTC (rev 1336) +++ trunk/xradar/src/main/java/org/sourceforge/xradar/statics/renderers/XslHtmlWebsite.java 2010-01-16 13:49:02 UTC (rev 1337) @@ -3,6 +3,8 @@ */ package org.sourceforge.xradar.statics.renderers; +import java.io.FileInputStream; +import java.io.FileNotFoundException; import java.io.InputStream; import java.io.StringWriter; import java.net.URL; @@ -13,12 +15,11 @@ import java.util.logging.Logger; import org.sourceforge.xradar.AggregatedMetrics; -import org.sourceforge.xradar.AggregationParameters; import org.sourceforge.xradar.DefaultReportValues; import org.sourceforge.xradar.Param; import org.sourceforge.xradar.WebsiteParameters; +import org.sourceforge.xradar.XRadar; import org.sourceforge.xradar.XRadarException; -import org.sourceforge.xradar.XRadar; import org.sourceforge.xradar.config.loaders.RadarConfigLoader; import org.sourceforge.xradar.radarconfig.Threshold; import org.sourceforge.xradar.radarconfig.website.Logo; @@ -27,6 +28,7 @@ import org.sourceforge.xradar.statics.Preambule; import org.sourceforge.xradar.statics.Statics; import org.sourceforge.xradar.util.StreamUtils; +import org.sourceforge.xradar.util.URLUtils; import org.sourceforge.xradar.util.XRadarUtils; import org.xml.sax.InputSource; @@ -57,7 +59,7 @@ * @return * @throws XRadarException */ - public String generateHtmlReport(MergeProduct products,Map<String,Param> params) throws XRadarException + public void generateHtmlReport(MergeProduct products,Map<String,Param> params) throws XRadarException { logger.log(Level.FINE,"Params are:" + params.toString()); this.params = params; @@ -84,7 +86,6 @@ // TODO: Replace the distance graph from 'old style' by the new one ! generateGraph(products.getMasterReport(),GENERATE_STATICS_OLD_STYLE_SVG,"Generating statics svg (old style)",preambule,this.getDocsHome() + SYSTEM_FILE_SEPARATOR + "statics-svg.xml"); // Customizing website - return ""; } private Preambule preparePreambule() { @@ -176,7 +177,7 @@ logger.finer("called with " + radarConfigFile); logger.warning("Customize logo feature disabled for now !!!"); RadarConfigLoader loader = new RadarConfigLoader(); - loader.setPathToRadarConfig(radarConfigFile); + loader.setPathToRadarConfig(URLUtils.createURL(radarConfigFile).getFile()); Website website = loader.loadDataFromRadarConfig().getWebsite(); if ( website == null ) logger.fine("no data on website in " + radarConfigFile); @@ -198,18 +199,44 @@ new UnsupportedOperationException(); } - public String generateHtmlReport(AggregatedMetrics products, - Map<String, Param> params) throws XRadarException { - throw new UnsupportedOperationException("not implemented yet!"); - } - - public AggregatedMetrics aggregatesMetrics(AggregationParameters parameters) - throws XRadarException { - throw new UnsupportedOperationException("not implemented yet!"); - } - - public String generateHtmlReport(AggregatedMetrics products, + public void generateHtmlReport(AggregatedMetrics agregatedMetrics, WebsiteParameters parameters) throws XRadarException { - throw new UnsupportedOperationException("not implemented yet!"); + if ( getConfig() == null ) + setConfig(parameters.getRadarConfig().getFile()); + params = new HashMap<String,Param>(); + params.put(Statics.JAVADOC_ENABLED,new Param(Statics.JAVADOC_ENABLED,String.valueOf(parameters.isJavadoc()))); + params.put(Statics.JAVADOC_ROOT,new Param(Statics.JAVADOC_ROOT,parameters.getJavadocRoot().toString())); + params.put(Statics.JAVA2HTML_ROOT,new Param(Statics.JAVA2HTML_ROOT,parameters.getJava2htmlRoot().toString())); + params.put(Statics.XRADAR_CONFIG_FILE,new Param(XRADAR_CONFIG_FILE,parameters.getRadarConfig().toString())); + params.put(Statics.LOG,new Param(Statics.LOG,String.valueOf(parameters.isLog()))); + logger.log(Level.FINE,"Params are:" + params.toString()); + // Adding generic parameters + Preambule preambule = this.preparePreambule(); + logger.log(Level.FINEST,"XML input is (MasterReport) \n" + agregatedMetrics.getMasterReport()); + logger.log(Level.FINE,"Processing radar normalized with " + MASTER_REPORT_DETAIL); + merger.setXmlResult(StreamUtils.createOuput(new StringWriter())); + try { + // Generate website + // products.getMasterReport() + StreamUtils.closeStream(processStep(new InputSource(new FileInputStream(agregatedMetrics.getMasterReport().getFile().toString())), MASTER_REPORT_DETAIL, preambule, this.getDocsHome() + SYSTEM_FILE_SEPARATOR + "generating-website.xml")); + } catch (FileNotFoundException ex) { + Logger.getLogger(XslHtmlWebsite.class.getName()).log(Level.SEVERE, null, ex); + } + // generate_plugin_api + generateGraph(URLUtils.openStream(agregatedMetrics.getRadarNormalized()),MASTER_REPORT_XML_PLUGIN,"Master XML plugin",preambule,this.getDocsHome() + SYSTEM_FILE_SEPARATOR + "master-xml-plugin.xml"); + // generate_statics_svgs + generateGraph(URLUtils.openStream(agregatedMetrics.getRadarNormalized()),GENERATE_STATICS_SVG,"Generating statics svg",preambule,this.getDocsHome() + SYSTEM_FILE_SEPARATOR + "statics-svg.xml"); + // duplication graphics + generateGraph(URLUtils.openStream(agregatedMetrics.getRadarNormalized()),GENERATE_DUPLICATION_GRAPH,"Generating duplication graphics",preambule,this.getDocsHome() + SYSTEM_FILE_SEPARATOR + "duplication-graphics.xml"); + // Coupling graphics generation + generateGraph(URLUtils.openStream(agregatedMetrics.getRadarNormalized()),GENERATE_COUPLING_GRAPH,"Generating coupling graphics",preambule,this.getDocsHome() + SYSTEM_FILE_SEPARATOR + "coupling-graphics.xml"); + // Package graphics generation + generateGraph(URLUtils.openStream(agregatedMetrics.getRadarNormalized()),GENERATE_PACKAGE_GRAPH,"Generating package graphics",preambule,this.getDocsHome() + SYSTEM_FILE_SEPARATOR + "package-graphics.xml"); + // Module graphics generation + generateGraph(URLUtils.openStream(agregatedMetrics.getRadarNormalized()),GENERATE_MODULE_GRAPH,"Generating module graphics",preambule,this.getDocsHome() + SYSTEM_FILE_SEPARATOR + "module-graphics.xml"); + // generate_statics_svgs (old style) + // TODO: Replace the distance graph from 'old style' by the new one ! + generateGraph(URLUtils.openStream(agregatedMetrics.getMasterReport()),GENERATE_STATICS_OLD_STYLE_SVG,"Generating statics svg (old style)",preambule,this.getDocsHome() + SYSTEM_FILE_SEPARATOR + "statics-svg.xml"); + // Customizing website } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |