Skip to content

Commit

Permalink
Moved reports metadata synchronization to dedicated method.
Browse files Browse the repository at this point in the history
  • Loading branch information
kausandr committed Feb 8, 2022
1 parent b777f89 commit 032ff59
Showing 1 changed file with 52 additions and 33 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -257,40 +257,8 @@ public void run() {
appendMetadataFromClass(aClass, benchmarkReport);
appendMetadataFromAnnotated(benchmarkMethod, benchmarkReport);
appendMetadataFromJavaDoc(aClass, benchmarkMethod, benchmarkReport);
syncReportsMetadata(report, benchmarkReport);
benchmarkSetting.put(Constants.REPORT_VERSION, getRunnerVersion());
try {
if (StringUtils.isNotEmpty(benchmarkReport.getProject())) {
report.setProject(benchmarkReport.getProject());
} else {
LOG.info("* Project name metadata not defined, grabbing it from build files..");
report.setProject(getMetadataFromBuildFile("artifactId"));
benchmarkReport.setProject(getMetadataFromBuildFile("artifactId"));
}

if (StringUtils.isNotEmpty(benchmarkReport.getProjectVersion())) {
report.setProjectVersion(benchmarkReport.getProjectVersion());
} else {
LOG.info("* Project version metadata not defined, grabbing it from build files...");
report.setProjectVersion(getMetadataFromBuildFile("version")); // default
benchmarkReport.setProjectVersion(getMetadataFromBuildFile("version"));
}

if (StringUtils.isEmpty(benchmarkReport.getVersion())) {
benchmarkReport.setVersion(getMetadataFromBuildFile("version"));
}

if (StringUtils.isEmpty(report.getBenchmarkSessionId())) {
Map<String, String> bMetadata = benchmarkReport.getMetadata();
if (bMetadata != null) {
String sessionId = bMetadata.get("benchSession");
if (StringUtils.isNotEmpty(sessionId)) {
report.setBenchmarkSessionId(sessionId);
}
}
}
} catch (Exception e) {
LOG.error("Error while attempting to setProject from runner: ", e);
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
Expand Down Expand Up @@ -463,6 +431,50 @@ public static void appendMetadataFromAnnotated(Optional<? extends AnnotatedEleme
}
}

/**
* Synchronizes overview and benchmark reports metadata.
*
* @param report
* overview report object
* @param benchmarkReport
* report data object
*/
public static void syncReportsMetadata(BenchmarkOverviewReport report, BenchmarkReport benchmarkReport) {
try {
if (StringUtils.isNotEmpty(benchmarkReport.getProject())) {
report.setProject(benchmarkReport.getProject());
} else {
LOG.info("* Project name metadata not defined, grabbing it from build files..");
report.setProject(getMetadataFromBuildFile("artifactId"));
benchmarkReport.setProject(getMetadataFromBuildFile("artifactId"));
}

if (StringUtils.isNotEmpty(benchmarkReport.getProjectVersion())) {
report.setProjectVersion(benchmarkReport.getProjectVersion());
} else {
LOG.info("* Project version metadata not defined, grabbing it from build files...");
report.setProjectVersion(getMetadataFromBuildFile("version")); // default
benchmarkReport.setProjectVersion(getMetadataFromBuildFile("version"));
}

if (StringUtils.isEmpty(benchmarkReport.getVersion())) {
benchmarkReport.setVersion(getMetadataFromBuildFile("version"));
}

if (StringUtils.isEmpty(report.getBenchmarkSessionId())) {
Map<String, String> bMetadata = benchmarkReport.getMetadata();
if (bMetadata != null) {
String sessionId = bMetadata.get("benchSession");
if (StringUtils.isNotEmpty(sessionId)) {
report.setBenchmarkSessionId(sessionId);
}
}
}
} catch (Exception e) {
LOG.error("Error while attempting to setProject from runner: ", e);
}
}

/**
* A method needed in order to support the previous data model. Setting the needed values from annotation to a
* previously defined data model value
Expand Down Expand Up @@ -670,6 +682,13 @@ public static void printGCStats() {
System.out.println("Total Garbage Collection Time (ms): " + garbageCollectionTime);
}

/**
* Resolved metadata property value from set of project configuration files: pom.xml, build.gradle, etc.
*
* @param prop
* metadata property name
* @return metadata property value
*/
public static String getMetadataFromBuildFile(String prop) {
String property = "";
String temp2 = System.getProperty("user.dir");
Expand Down

0 comments on commit 032ff59

Please sign in to comment.