Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Initial push

  • Loading branch information...
commit 4168e13350ef47d634644eb7d32daea5d95f2f74 1 parent b0a27ff
Stephane Landelle slandelle authored
Showing with 28,916 additions and 0 deletions.
  1. +29 −0 .gitignore
  2. +87 −0 gatling-charts-highcharts/pom.xml
  3. +3 −0  gatling-charts-highcharts/src/etc/header.txt
  4. +12,600 −0 gatling-charts-highcharts/src/main/assembly/assembly-structure/assets/js/highcharts.js
  5. +15,124 −0 gatling-charts-highcharts/src/main/assembly/assembly-structure/assets/js/highstock.js
  6. +31 −0 gatling-charts-highcharts/src/main/assembly/assembly.xml
  7. +1 −0  gatling-charts-highcharts/src/main/resources/META-INF/LICENCE
  8. +1 −0  gatling-charts-highcharts/src/main/resources/templates/active_sessions.html.ssp
  9. +52 −0 gatling-charts-highcharts/src/main/resources/templates/active_sessions.js.ssp
  10. +1 −0  gatling-charts-highcharts/src/main/resources/templates/req_details_indic.html.ssp
  11. +55 −0 gatling-charts-highcharts/src/main/resources/templates/req_details_indic.js.ssp
  12. +1 −0  gatling-charts-highcharts/src/main/resources/templates/req_details_resp_time.html.ssp
  13. +75 −0 gatling-charts-highcharts/src/main/resources/templates/req_details_resp_time.js.ssp
  14. +1 −0  gatling-charts-highcharts/src/main/resources/templates/req_details_scatter.html.ssp
  15. +74 −0 gatling-charts-highcharts/src/main/resources/templates/req_details_scatter.js.ssp
  16. +1 −0  gatling-charts-highcharts/src/main/resources/templates/requests.html.ssp
  17. +82 −0 gatling-charts-highcharts/src/main/resources/templates/requests.js.ssp
  18. +24 −0 ...g-charts-highcharts/src/main/scala/com/excilys/ebi/gatling/charts/component/impl/ComponentLibraryImpl.scala
  19. +15 −0 ...charts-highcharts/src/main/scala/com/excilys/ebi/gatling/highcharts/component/ActiveSessionsComponent.scala
  20. +17 −0 ...ing-charts-highcharts/src/main/scala/com/excilys/ebi/gatling/highcharts/component/HighchartsComponent.scala
  21. +24 −0 ...ghcharts/src/main/scala/com/excilys/ebi/gatling/highcharts/component/RequestDetailsIndicatorComponent.scala
  22. +20 −0 ...harts/src/main/scala/com/excilys/ebi/gatling/highcharts/component/RequestDetailsResponseTimeComponent.scala
  23. +13 −0 ...highcharts/src/main/scala/com/excilys/ebi/gatling/highcharts/component/RequestDetailsScatterComponent.scala
  24. +22 −0 gatling-charts-highcharts/src/main/scala/com/excilys/ebi/gatling/highcharts/component/RequestsComponent.scala
  25. +28 −0 gatling-charts-highcharts/src/main/scala/com/excilys/ebi/gatling/highcharts/config/HighchartsFiles.scala
  26. +12 −0 gatling-charts-highcharts/src/main/scala/com/excilys/ebi/gatling/highcharts/series/ColumnSeries.scala
  27. +8 −0 gatling-charts-highcharts/src/main/scala/com/excilys/ebi/gatling/highcharts/series/HighchartsSeries.scala
  28. +16 −0 gatling-charts-highcharts/src/main/scala/com/excilys/ebi/gatling/highcharts/series/NumberPerSecondSeries.scala
  29. +21 −0 gatling-charts-highcharts/src/main/scala/com/excilys/ebi/gatling/highcharts/series/PieSeries.scala
  30. +18 −0 gatling-charts-highcharts/src/main/scala/com/excilys/ebi/gatling/highcharts/series/ResponseTimeSeries.scala
  31. +17 −0 gatling-charts-highcharts/src/main/scala/com/excilys/ebi/gatling/highcharts/series/ScatterSeries.scala
  32. +17 −0 gatling-charts-highcharts/src/main/scala/com/excilys/ebi/gatling/highcharts/series/StackedColumnSeries.scala
  33. +19 −0 ...g-charts-highcharts/src/main/scala/com/excilys/ebi/gatling/highcharts/template/ActiveSessionsTemplate.scala
  34. +21 −0 ...highcharts/src/main/scala/com/excilys/ebi/gatling/highcharts/template/RequestDetailsIndicatorTemplate.scala
  35. +21 −0 ...hcharts/src/main/scala/com/excilys/ebi/gatling/highcharts/template/RequestDetailsResponseTimeTemplate.scala
  36. +17 −0 ...s-highcharts/src/main/scala/com/excilys/ebi/gatling/highcharts/template/RequestDetailsScatterTemplate.scala
  37. +22 −0 gatling-charts-highcharts/src/main/scala/com/excilys/ebi/gatling/highcharts/template/RequestsTemplate.scala
  38. +12 −0 gatling-charts-highcharts/src/main/scala/com/excilys/ebi/gatling/highcharts/template/Template.scala
  39. +106 −0 gatling-with-highcharts-bundle/pom.xml
  40. +205 −0 pom.xml
  41. +3 −0  src/etc/header.txt
29 .gitignore
View
@@ -0,0 +1,29 @@
+# eclipse conf file
+.settings
+.classpath
+.project
+.manager
+.scala_dependencies
+.cache
+
+# idea conf files
+.idea
+*.iml
+*.ipr
+*.iws
+
+# building
+target
+build
+null
+tmp
+temp
+dist
+test-output
+build.log
+
+# misc
+.DS_Store
+
+# project files to ignore
+!/results/.gitkeep
87 gatling-charts-highcharts/pom.xml
View
@@ -0,0 +1,87 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>gatling-highcharts</artifactId>
+ <groupId>com.excilys.ebi.gatling.highcharts</groupId>
+ <version>1.0.0-SNAPSHOT</version>
+ </parent>
+ <artifactId>gatling-charts-highcharts</artifactId>
+
+ <dependencies>
+ <dependency>
+ <groupId>com.excilys.ebi.gatling</groupId>
+ <artifactId>gatling-charts</artifactId>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <configuration>
+ <descriptors>
+ <descriptor>src/main/assembly/assembly.xml</descriptor>
+ </descriptors>
+ </configuration>
+ <executions>
+ <execution>
+ <id>make-assembly</id>
+ <phase>package</phase>
+ <goals>
+ <goal>single</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.scala-tools</groupId>
+ <artifactId>maven-scala-plugin</artifactId>
+ <executions>
+ <execution>
+ <goals>
+ <goal>compile</goal>
+ <goal>testCompile</goal>
+ </goals>
+ <configuration>
+ <args>
+ <arg>-make:transitive</arg>
+ <arg>-dependencyfile</arg>
+ <arg>${project.build.directory}/.scala_dependencies</arg>
+ </args>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>truezip-maven-plugin</artifactId>
+ <version>1.0-beta-5</version>
+ <executions>
+ <execution>
+ <id>merge-zip</id>
+ <goals>
+ <goal>cp</goal>
+ </goals>
+ <phase>package</phase>
+ <configuration>
+ <from>${settings.localRepository}/com/excilys/ebi/gatling/gatling-bundle/${gatling.version}/gatling-bundle-${gatling.version}-bundle.zip/gatling-bundle-${gatling.version}</from>
+ <to>${project.build.directory}/gatling-charts-highcharts-${project.version}-bundle.zip/gatling-charts-highcharts-${project.version}</to>
+ </configuration>
+ </execution>
+ <execution>
+ <id>merge-targz</id>
+ <goals>
+ <goal>cp</goal>
+ </goals>
+ <phase>package</phase>
+ <configuration>
+ <from>${settings.localRepository}/com/excilys/ebi/gatling/gatling-bundle/${gatling.version}/gatling-bundle-${gatling.version}-bundle.zip/gatling-bundle-${gatling.version}</from>
+ <to>${project.build.directory}/gatling-charts-highcharts-${project.version}-bundle.tar.gz/gatling-charts-highcharts-${project.version}</to>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+</project>
3  gatling-charts-highcharts/src/etc/header.txt
View
@@ -0,0 +1,3 @@
+Copyright 2011 eBusiness Information, Groupe Excilys (www.excilys.com)
+
+Licensed under the Gatling Highcharts License
12,600 gatling-charts-highcharts/src/main/assembly/assembly-structure/assets/js/highcharts.js
View
12,600 additions, 0 deletions not shown
15,124 gatling-charts-highcharts/src/main/assembly/assembly-structure/assets/js/highstock.js
View
15,124 additions, 0 deletions not shown
31 gatling-charts-highcharts/src/main/assembly/assembly.xml
View
@@ -0,0 +1,31 @@
+<!--
+
+ Copyright 2011 eBusiness Information, Groupe Excilys (www.excilys.com)
+
+ Licensed under the Gatling Highcharts License
+
+-->
+<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
+ <id>bundle</id>
+ <formats>
+ <format>tar.gz</format>
+ <format>zip</format>
+ </formats>
+ <includeBaseDirectory>true</includeBaseDirectory>
+ <dependencySets>
+ <dependencySet>
+ <unpack>false</unpack>
+ <outputDirectory>lib/</outputDirectory>
+ <includes>
+ <include>com.excilys.ebi.gatling.highcharts:gatling-charts-highcharts</include>
+ </includes>
+ </dependencySet>
+ </dependencySets>
+ <fileSets>
+ <fileSet>
+ <directory>src/main/assembly/assembly-structure</directory>
+ <outputDirectory>/</outputDirectory>
+ </fileSet>
+ </fileSets>
+</assembly>
1  gatling-charts-highcharts/src/main/resources/META-INF/LICENCE
View
@@ -0,0 +1 @@
+TODO
1  gatling-charts-highcharts/src/main/resources/templates/active_sessions.html.ssp
View
@@ -0,0 +1 @@
+<div id="container" class="chart_block"></div>
52 gatling-charts-highcharts/src/main/resources/templates/active_sessions.js.ssp
View
@@ -0,0 +1,52 @@
+<% import com.excilys.ebi.gatling.charts.util.Colors._ %>
+<%@ val chartTitle: String %>
+<%@ val series: Seq[com.excilys.ebi.gatling.highcharts.series.NumberPerSecondSeries] %>
+var response_time_chart = new Highcharts.StockChart({
+ chart: {
+ renderTo: 'container',
+ zoomType: 'x'
+ },
+ credits: {
+ enabled: false
+ },
+ legend: {
+ enabled: true,
+ floating: true,
+ y: -345,
+ borderWidth: 0
+ },
+ rangeSelector: {
+ buttons : [{
+ type : 'minute',
+ count : 1,
+ text : '1m'
+ }, {
+ type : 'minute',
+ count : 10,
+ text : '10m'
+ }, {
+ type : 'hour',
+ count : 1,
+ text : '1h'
+ }, {
+ type : 'all',
+ count : 1,
+ text : 'All'
+ }],
+ selected : 3,
+ inputEnabled : false
+ },
+ xAxis: {
+ type: 'datetime',
+ maxZoom: 10000 // three days
+ },
+ yAxis: {
+ title: {
+ text: 'Number of Active Sessions'
+ }
+ },
+ title: {
+ text: '<%= chartTitle %>'
+ },
+ series: [<%= series.mkString("{", "},{", "}") %>]
+});
1  gatling-charts-highcharts/src/main/resources/templates/req_details_indic.html.ssp
View
@@ -0,0 +1 @@
+<div id="container_indicators" class="chart_block"></div>
55 gatling-charts-highcharts/src/main/resources/templates/req_details_indic.js.ssp
View
@@ -0,0 +1,55 @@
+<%@ val pieSeries: com.excilys.ebi.gatling.highcharts.series.PieSeries %>
+<%@ val categories: List[String] %>
+<%@ val series: List[com.excilys.ebi.gatling.highcharts.series.StackedColumnSeries] %>
+var chart = new Highcharts.Chart({
+ chart: {
+ renderTo: 'container_indicators',
+ marginRight: 160
+ },
+ credits: {
+ enabled: false
+ },
+ legend: {
+ enabled: false
+ },
+ title: {
+ text: 'Indicators'
+ },
+ xAxis: {
+ categories: [<%= categories.mkString("'", "', '", "'") %>]
+ },
+ yAxis: {
+ title: {
+ text: 'Number of Requests'
+ }
+ },
+ tooltip: {
+ formatter: function() {
+ var s;
+ if (this.point.name) { // the pie chart
+ s = ''+ this.point.name +': '+ this.y +' requests';
+ } else {
+ s = ''+ this.y + ' requests';
+ }
+ return s;
+ }
+ },
+ plotOptions: {
+ series: {
+ stacking: 'normal'
+ }
+ },
+ series: [
+ <%= series.mkString("{", "}, {", "}") %>,
+ {
+ <%= pieSeries %>,
+ center: [500, 60],
+ size: 100,
+ showInLegend: false,
+ dataLabels: {
+ enabled: false
+ }
+ }]
+});
+
+
1  gatling-charts-highcharts/src/main/resources/templates/req_details_resp_time.html.ssp
View
@@ -0,0 +1 @@
+<div id="container" class="chart_block"></div>
75 gatling-charts-highcharts/src/main/resources/templates/req_details_resp_time.js.ssp
View
@@ -0,0 +1,75 @@
+<% import com.excilys.ebi.gatling.charts.util.Colors._ %>
+<%@ val chartTitle: String %>
+<%@ val successSeries: com.excilys.ebi.gatling.highcharts.series.ResponseTimeSeries %>
+<%@ val failureSeries: com.excilys.ebi.gatling.highcharts.series.ResponseTimeSeries %>
+<%@ val activeSessionsSeries: com.excilys.ebi.gatling.highcharts.series.NumberPerSecondSeries %>
+var req_details_resp_time_chart = new Highcharts.StockChart({
+ chart: {
+ renderTo: 'container',
+ zoomType: 'x'
+ },
+ credits: {
+ enabled: false
+ },
+ legend: {
+ enabled: true,
+ floating: true,
+ y: -345,
+ borderWidth: 0
+ },
+ rangeSelector: {
+ buttons : [{
+ type : 'minute',
+ count : 1,
+ text : '1m'
+ }, {
+ type : 'minute',
+ count : 10,
+ text : '10m'
+ }, {
+ type : 'hour',
+ count : 1,
+ text : '1h'
+ }, {
+ type : 'all',
+ count : 1,
+ text : 'All'
+ }],
+ selected : 3,
+ inputEnabled : false
+ },
+ xAxis: {
+ type: 'datetime',
+ maxZoom: 10000 // three days
+ },
+ yAxis:[
+ {
+ min: 0,
+ title: {
+ text: 'Response Time',
+ style: {
+ color: '<%= BLUE %>'
+ }
+ }
+ }, {
+ min: 0,
+ title: {
+ text: 'Active Sessions',
+ style: {
+ color: '<%= ORANGE %>'
+ }
+ },
+ opposite: true
+ }],
+ title: {
+ text: '<%= chartTitle %>'
+ },
+ series: [
+ <% if(!successSeries.data.isEmpty){ %>
+ {<%= successSeries %>, yAxis: 0},
+ <% } %>
+ <% if(!failureSeries.data.isEmpty){ %>
+ {<%= failureSeries %>, yAxis: 0, marker: { radius: 3, enabled: true }},
+ <% } %>
+ {<%= activeSessionsSeries %>, yAxis: 1}]
+});
1  gatling-charts-highcharts/src/main/resources/templates/req_details_scatter.html.ssp
View
@@ -0,0 +1 @@
+<div id="container_dispersion" class="chart_block"></div>
74 gatling-charts-highcharts/src/main/resources/templates/req_details_scatter.js.ssp
View
@@ -0,0 +1,74 @@
+<%@ val successes: com.excilys.ebi.gatling.highcharts.series.ScatterSeries %>
+<%@ val failures: com.excilys.ebi.gatling.highcharts.series.ScatterSeries %>
+
+var req_details_scatter_chart;
+
+if(<%= successes.data.size.toString %> > 50000){
+ $("#container_dispersion").attr("style", "background-color:white");
+ $("#container_dispersion").append('<div style="height:100px;width:400px;margin:0 auto;padding:150px"><p>There are more than 50 000 points to draw.<br/>This could take a long time or even crash your browser.<br/>Do you want to display the chart anyway?</p><input type="button" value="Display" id="disp_chart" style="width:100px;margin:20px auto;display:block" /></div>');
+ $("#disp_chart").click(function(){display_chart()});
+} else {
+ display_chart();
+}
+
+function display_chart(){
+ req_details_scatter_chart = new Highcharts.Chart({
+ chart: {
+ renderTo: 'container_dispersion',
+ defaultSeriesType: 'scatter',
+ zoomType: 'xy'
+ },
+ credits: {
+ enabled: false
+ },
+ title: {
+ text: 'Response time against the global number of requests per second'
+ },
+ xAxis: {
+ title: {
+ enabled: true,
+ text: 'Global number of requests per second'
+ },
+ startOnTick: true,
+ endOnTick: true,
+ showLastLabel: true
+ },
+ yAxis: {
+ title: {
+ text: 'Response time'
+ }
+ },
+ tooltip: {
+ formatter: function() {
+ return ''+
+ this.y +' ms at ' + this.x + ' allreq/s';
+ }
+ },
+ legend: {
+ enabled: false
+ },
+ plotOptions: {
+ scatter: {
+ marker: {
+ radius: 3,
+ states: {
+ hover: {
+ enabled: true,
+ lineColor: 'rgb(100,100,100)'
+ }
+ }
+ },
+ states: {
+ hover: {
+ marker: {
+ enabled: false
+ }
+ }
+ }
+ }
+ },
+ series: [{ <%= successes %> }, { <%= failures %> } ]
+ });
+}
+
+
1  gatling-charts-highcharts/src/main/resources/templates/requests.html.ssp
View
@@ -0,0 +1 @@
+<div id="container" class="chart_block"></div>
82 gatling-charts-highcharts/src/main/resources/templates/requests.js.ssp
View
@@ -0,0 +1,82 @@
+<% import com.excilys.ebi.gatling.charts.util.Colors._ %>
+<%@ val yAxisTitle: String %>
+<%@ val chartTitle: String %>
+<%@ val series: List[com.excilys.ebi.gatling.highcharts.series.NumberPerSecondSeries] %>
+<%@ val pieSeries: com.excilys.ebi.gatling.highcharts.series.PieSeries %>
+<%@ val activeSessions: com.excilys.ebi.gatling.highcharts.series.NumberPerSecondSeries %>
+var chart = new Highcharts.StockChart({
+ chart: {
+ renderTo: 'container',
+ zoomType: 'x'
+ },
+ credits: {
+ enabled: false
+ },
+ legend: {
+ enabled: true,
+ floating: true,
+ y: -345,
+ borderWidth: 0
+ },
+ rangeSelector: {
+ buttons : [{
+ type : 'minute',
+ count : 1,
+ text : '1m'
+ }, {
+ type : 'minute',
+ count : 10,
+ text : '10m'
+ }, {
+ type : 'hour',
+ count : 1,
+ text : '1h'
+ }, {
+ type : 'all',
+ count : 1,
+ text : 'All'
+ }],
+ selected : 3,
+ inputEnabled : false
+ },
+ xAxis: {
+ type: 'datetime',
+ maxZoom: 10000 // three days
+ },
+ yAxis:[
+ {
+ min: 0,
+ title: {
+ text: 'Number of Requests',
+ style: {
+ color: '<%= BLUE %>'
+ }
+ }
+ }, {
+ title: {
+ text: 'Active Sessions',
+ style: {
+ color: '<%= ORANGE %>'
+ }
+ },
+ opposite: true
+ }],
+ title: {
+ text: '<%= chartTitle %>'
+ },
+ series:
+ [
+ <%= series.mkString("{", "},{", "}") %>,
+ { <%= activeSessions %>, yAxis: 1 }
+ ,
+ {
+ <%= pieSeries %>,
+ center: [920, -20],
+ size: 70,
+ showInLegend: false,
+ dataLabels: {
+ enabled: false
+ }
+ }
+ ]
+});
24 ...harts-highcharts/src/main/scala/com/excilys/ebi/gatling/charts/component/impl/ComponentLibraryImpl.scala
View
@@ -0,0 +1,24 @@
+/**
+ * Copyright 2011 eBusiness Information, Groupe Excilys (www.excilys.com)
+ *
+ * Licensed under the Gatling Highcharts License
+ */
+package com.excilys.ebi.gatling.charts.component.impl
+
+import com.excilys.ebi.gatling.charts.component.ComponentLibrary
+import com.excilys.ebi.gatling.charts.component.Component
+import com.excilys.ebi.gatling.charts.series.Series
+import org.joda.time.DateTime
+import com.excilys.ebi.gatling.highcharts.component.RequestDetailsResponseTimeComponent
+import com.excilys.ebi.gatling.highcharts.component.ActiveSessionsComponent
+import com.excilys.ebi.gatling.highcharts.component.RequestDetailsScatterComponent
+import com.excilys.ebi.gatling.highcharts.component.RequestsComponent
+import com.excilys.ebi.gatling.highcharts.component.RequestDetailsIndicatorComponent
+
+class ComponentLibraryImpl extends ComponentLibrary {
+ def getActiveSessionsChartComponent(series: Series[DateTime, Int]*): Component = new ActiveSessionsComponent(series: _*)
+ def getRequestsChartComponent(allRequests: Series[DateTime, Int], failedRequests: Series[DateTime, Int], succeededRequests: Series[DateTime, Int], pieSeries: Series[String, Int], allActiveSessions: Series[DateTime, Int]): Component = new RequestsComponent(allRequests, failedRequests, succeededRequests, pieSeries, allActiveSessions)
+ def getRequestDetailsResponseTimeChartComponent(responseTimesSuccess: Series[DateTime, Int], responseTimesFailures: Series[DateTime, Int], allActiveSessions: Series[DateTime, Int]): Component = new RequestDetailsResponseTimeComponent(responseTimesSuccess, responseTimesFailures, allActiveSessions)
+ def getRequestDetailsScatterChartComponent(successes: Series[Int, Int], failures: Series[Int, Int]): Component = new RequestDetailsScatterComponent(successes, failures)
+ def getRequestDetailsIndicatorChartComponent(columnSeries: Series[String, Int], pieSeries: Series[String, Int]): Component = new RequestDetailsIndicatorComponent(columnSeries, pieSeries)
+}
15 ...rts-highcharts/src/main/scala/com/excilys/ebi/gatling/highcharts/component/ActiveSessionsComponent.scala
View
@@ -0,0 +1,15 @@
+/**
+ * Copyright 2011 eBusiness Information, Groupe Excilys (www.excilys.com)
+ *
+ * Licensed under the Gatling Highcharts License
+ */
+package com.excilys.ebi.gatling.highcharts.component
+
+import org.joda.time.DateTime
+import com.excilys.ebi.gatling.charts.series.Series
+import com.excilys.ebi.gatling.highcharts.series.ResponseTimeSeries
+import com.excilys.ebi.gatling.highcharts.template.ActiveSessionsTemplate
+import com.excilys.ebi.gatling.highcharts.series.NumberPerSecondSeries
+
+class ActiveSessionsComponent(series: Series[DateTime, Int]*)
+ extends HighchartsComponent(new ActiveSessionsTemplate("Active Sessions along the simulation", series.map { s => new NumberPerSecondSeries(s.name, s.data, s.colors.head) }))
17 ...-charts-highcharts/src/main/scala/com/excilys/ebi/gatling/highcharts/component/HighchartsComponent.scala
View
@@ -0,0 +1,17 @@
+/**
+ * Copyright 2011 eBusiness Information, Groupe Excilys (www.excilys.com)
+ *
+ * Licensed under the Gatling Highcharts License
+ */
+package com.excilys.ebi.gatling.highcharts.component
+import com.excilys.ebi.gatling.charts.component.Component
+import com.excilys.ebi.gatling.highcharts.config.HighchartsFiles.{ HIGHSTOCK_FILE, HIGHCHARTS_FILE }
+import com.excilys.ebi.gatling.highcharts.template.Template
+
+abstract class HighchartsComponent(template: Template) extends Component {
+ def getHTMLContent: String = template.getHTMLContent
+
+ def getJavascriptContent: String = template.getJSContent
+
+ def getJavascriptFiles: Seq[String] = Seq(HIGHCHARTS_FILE, HIGHSTOCK_FILE)
+}
24 ...harts/src/main/scala/com/excilys/ebi/gatling/highcharts/component/RequestDetailsIndicatorComponent.scala
View
@@ -0,0 +1,24 @@
+/**
+ * Copyright 2011 eBusiness Information, Groupe Excilys (www.excilys.com)
+ *
+ * Licensed under the Gatling Highcharts License
+ */
+package com.excilys.ebi.gatling.highcharts.component
+import com.excilys.ebi.gatling.charts.component.Component
+import com.excilys.ebi.gatling.charts.series.Series
+import com.excilys.ebi.gatling.highcharts.template.RequestDetailsIndicatorTemplate
+import com.excilys.ebi.gatling.highcharts.series.StackedColumnSeries
+import com.excilys.ebi.gatling.highcharts.series.PieSeries
+
+class RequestDetailsIndicatorComponent(columnSeries: Series[String, Int], pieSeries: Series[String, Int])
+ extends HighchartsComponent({
+ val d = columnSeries.data
+ val colors = columnSeries.colors
+ val d0 = d.map { entry => (entry._1, 0) };
+ new RequestDetailsIndicatorTemplate(
+ new StackedColumnSeries("OK", List(d(0), d0(1), d0(2), d0(3)), colors(0)),
+ new StackedColumnSeries("Acceptable", List(d0(0), d(1), d0(2), d0(3)), colors(1)),
+ new StackedColumnSeries("Off Boundaries", List(d0(0), d0(1), d(2), d0(3)), colors(2)),
+ new StackedColumnSeries("Failed", List(d0(0), d0(1), d0(2), d(3)), colors(3)),
+ new PieSeries("Percentages", pieSeries.data, pieSeries.colors))
+ })
20 ...ts/src/main/scala/com/excilys/ebi/gatling/highcharts/component/RequestDetailsResponseTimeComponent.scala
View
@@ -0,0 +1,20 @@
+/**
+ * Copyright 2011 eBusiness Information, Groupe Excilys (www.excilys.com)
+ *
+ * Licensed under the Gatling Highcharts License
+ */
+package com.excilys.ebi.gatling.highcharts.component
+import org.joda.time.DateTime
+import com.excilys.ebi.gatling.charts.component.Component
+import com.excilys.ebi.gatling.charts.series.Series
+import com.excilys.ebi.gatling.highcharts.template.RequestDetailsResponseTimeTemplate
+import com.excilys.ebi.gatling.highcharts.series.ResponseTimeSeries
+import com.excilys.ebi.gatling.highcharts.series.NumberPerSecondSeries
+
+class RequestDetailsResponseTimeComponent(responseTimesSuccess: Series[DateTime, Int], responseTimesFailures: Series[DateTime, Int], allActiveSessions: Series[DateTime, Int])
+ extends HighchartsComponent(
+ new RequestDetailsResponseTimeTemplate(
+ "Response time during simulation",
+ new ResponseTimeSeries(responseTimesSuccess.name, responseTimesSuccess.data, responseTimesSuccess.colors.head),
+ new ResponseTimeSeries(responseTimesFailures.name, responseTimesFailures.data, responseTimesFailures.colors.head),
+ new NumberPerSecondSeries(allActiveSessions.name, allActiveSessions.data, allActiveSessions.colors.head)))
13 ...hcharts/src/main/scala/com/excilys/ebi/gatling/highcharts/component/RequestDetailsScatterComponent.scala
View
@@ -0,0 +1,13 @@
+/**
+ * Copyright 2011 eBusiness Information, Groupe Excilys (www.excilys.com)
+ *
+ * Licensed under the Gatling Highcharts License
+ */
+package com.excilys.ebi.gatling.highcharts.component
+import com.excilys.ebi.gatling.charts.component.Component
+import com.excilys.ebi.gatling.charts.series.Series
+import com.excilys.ebi.gatling.highcharts.template.RequestDetailsScatterTemplate
+import com.excilys.ebi.gatling.highcharts.series.ScatterSeries
+
+class RequestDetailsScatterComponent(success: Series[Int, Int], failures: Series[Int, Int])
+ extends HighchartsComponent(new RequestDetailsScatterTemplate("Active Sessions along the simulation", new ScatterSeries(success.name, success.data, success.colors.head), new ScatterSeries(failures.name, failures.data, failures.colors.head)))
22 ...ng-charts-highcharts/src/main/scala/com/excilys/ebi/gatling/highcharts/component/RequestsComponent.scala
View
@@ -0,0 +1,22 @@
+/**
+ * Copyright 2011 eBusiness Information, Groupe Excilys (www.excilys.com)
+ *
+ * Licensed under the Gatling Highcharts License
+ */
+package com.excilys.ebi.gatling.highcharts.component
+import org.joda.time.DateTime
+import com.excilys.ebi.gatling.charts.component.Component
+import com.excilys.ebi.gatling.charts.series.Series
+import com.excilys.ebi.gatling.highcharts.template.RequestsTemplate
+import com.excilys.ebi.gatling.highcharts.series.PieSeries
+import com.excilys.ebi.gatling.highcharts.series.ResponseTimeSeries
+import com.excilys.ebi.gatling.highcharts.series.NumberPerSecondSeries
+
+class RequestsComponent(allRequests: Series[DateTime, Int], failedRequests: Series[DateTime, Int], succeededRequests: Series[DateTime, Int], pieSeries: Series[String, Int], allActiveSessions: Series[DateTime, Int])
+ extends HighchartsComponent(
+ new RequestsTemplate("Number of requests per second",
+ Seq(new NumberPerSecondSeries(allRequests.name, allRequests.data, allRequests.colors.head),
+ new NumberPerSecondSeries(failedRequests.name, failedRequests.data, failedRequests.colors.head),
+ new NumberPerSecondSeries(succeededRequests.name, succeededRequests.data, succeededRequests.colors.head)),
+ new PieSeries(pieSeries.name, pieSeries.data, pieSeries.colors),
+ new NumberPerSecondSeries(allActiveSessions.name, allActiveSessions.data, allActiveSessions.colors.head)))
28 gatling-charts-highcharts/src/main/scala/com/excilys/ebi/gatling/highcharts/config/HighchartsFiles.scala
View
@@ -0,0 +1,28 @@
+/**
+ * Copyright 2011 eBusiness Information, Groupe Excilys (www.excilys.com)
+ *
+ * Licensed under the Gatling Highcharts License
+ */
+package com.excilys.ebi.gatling.highcharts.config
+
+import org.joda.time.DateTime
+import scala.tools.nsc.io.Path.string2path
+import com.excilys.ebi.gatling.charts.config.ChartsFiles._
+
+object HighchartsFiles {
+ val ACTIVE_SESSIONS_HTML_TEMPLATE = GATLING_TEMPLATE / "active_sessions.html.ssp"
+ val ACTIVE_SESSIONS_JS_TEMPLATE = GATLING_TEMPLATE / "active_sessions.js.ssp"
+ val REQUEST_DETAILS_INDICATORS_HTML_TEMPLATE = GATLING_TEMPLATE / "req_details_indic.html.ssp"
+ val REQUEST_DETAILS_INDICATORS_JS_TEMPLATE = GATLING_TEMPLATE / "req_details_indic.js.ssp"
+ val REQUEST_DETAILS_RESPONSE_TIME_HTML_TEMPLATE = GATLING_TEMPLATE / "req_details_resp_time.html.ssp"
+ val REQUEST_DETAILS_RESPONSE_TIME_JS_TEMPLATE = GATLING_TEMPLATE / "req_details_resp_time.js.ssp"
+ val REQUEST_DETAILS_SCATTER_HTML_TEMPLATE = GATLING_TEMPLATE / "req_details_scatter.html.ssp"
+ val REQUEST_DETAILS_SCATTER_JS_TEMPLATE = GATLING_TEMPLATE / "req_details_scatter.js.ssp"
+ val REQUESTS_HTML_TEMPLATE = GATLING_TEMPLATE / "requests.html.ssp"
+ val REQUESTS_JS_TEMPLATE = GATLING_TEMPLATE / "requests.js.ssp"
+
+ val HIGHCHARTS_FILE = "highcharts.js"
+ val HIGHSTOCK_FILE = "highstock.js"
+
+ def printHighChartsDate(dateTime: DateTime) = dateTime.getMillis.toString
+}
12 gatling-charts-highcharts/src/main/scala/com/excilys/ebi/gatling/highcharts/series/ColumnSeries.scala
View
@@ -0,0 +1,12 @@
+/**
+ * Copyright 2011 eBusiness Information, Groupe Excilys (www.excilys.com)
+ *
+ * Licensed under the Gatling Highcharts License
+ */
+package com.excilys.ebi.gatling.highcharts.series
+
+class ColumnSeries(name: String, data: List[(String, Int)], colors: List[String]) extends HighchartsSeries[String, Int](name, data, colors) {
+ val getXValues = data.map(_._1)
+
+ val getYValues = data.map(_._2)
+}
8 gatling-charts-highcharts/src/main/scala/com/excilys/ebi/gatling/highcharts/series/HighchartsSeries.scala
View
@@ -0,0 +1,8 @@
+/**
+ * Copyright 2011 eBusiness Information, Groupe Excilys (www.excilys.com)
+ *
+ * Licensed under the Gatling Highcharts License
+ */
+package com.excilys.ebi.gatling.highcharts.series
+
+class HighchartsSeries[X, Y](val name: String, val data: List[(X, Y)], val colors: List[String])
16 ...g-charts-highcharts/src/main/scala/com/excilys/ebi/gatling/highcharts/series/NumberPerSecondSeries.scala
View
@@ -0,0 +1,16 @@
+/**
+ * Copyright 2011 eBusiness Information, Groupe Excilys (www.excilys.com)
+ *
+ * Licensed under the Gatling Highcharts License
+ */
+package com.excilys.ebi.gatling.highcharts.series
+import org.joda.time.DateTime
+import com.excilys.ebi.gatling.core.util.StringHelper._
+
+class NumberPerSecondSeries(name: String, data: List[(DateTime, Int)], color: String) extends HighchartsSeries[DateTime, Int](name, data, List(color)) {
+ override def toString = new StringBuilder()
+ .append("name: '").append(name).append("',").append(END_OF_LINE)
+ .append("color: '").append(color).append("',").append(END_OF_LINE)
+ .append("data: [").append(data.map { entry => "[" + entry._1.getMillis + "," + entry._2 + "]" }.mkString(",")).append("],").append(END_OF_LINE)
+ .append("tooltip: { yDecimals: 0, ySuffix: '' }").toString
+}
21 gatling-charts-highcharts/src/main/scala/com/excilys/ebi/gatling/highcharts/series/PieSeries.scala
View
@@ -0,0 +1,21 @@
+/**
+ * Copyright 2011 eBusiness Information, Groupe Excilys (www.excilys.com)
+ *
+ * Licensed under the Gatling Highcharts License
+ */
+package com.excilys.ebi.gatling.highcharts.series
+
+import com.excilys.ebi.gatling.core.util.StringHelper.END_OF_LINE
+
+class PieSeries(name: String, data: List[(String, Int)], seriesColors: List[String]) extends HighchartsSeries[String, Int](name, data, seriesColors) {
+
+ private val dataWithColors =
+ data.zip(seriesColors).map { entry =>
+ (entry._1._1, entry._1._2, entry._2)
+ }
+
+ override def toString = new StringBuilder()
+ .append("type: 'pie',").append(END_OF_LINE)
+ .append("name: '").append(name).append("',").append(END_OF_LINE)
+ .append("data: [").append(dataWithColors.map { entry => "name: '" + entry._1 + "', y: " + entry._2 + ", color: '" + entry._3 + "'" }.mkString("{", "}, {", "}")).append("]").toString
+}
18 gatling-charts-highcharts/src/main/scala/com/excilys/ebi/gatling/highcharts/series/ResponseTimeSeries.scala
View
@@ -0,0 +1,18 @@
+/**
+ * Copyright 2011 eBusiness Information, Groupe Excilys (www.excilys.com)
+ *
+ * Licensed under the Gatling Highcharts License
+ */
+package com.excilys.ebi.gatling.highcharts.series
+import org.joda.time.DateTime
+import com.excilys.ebi.gatling.core.util.StringHelper.END_OF_LINE
+
+class ResponseTimeSeries(name: String, data: List[(DateTime, Int)], color: String) extends HighchartsSeries[DateTime, Int](name, data, List(color)) {
+ override def toString = new StringBuilder()
+ .append("name: '").append(name).append("',").append(END_OF_LINE)
+ .append("color: '").append(color).append("',").append(END_OF_LINE)
+ .append("pointInterval: 1000,").append(END_OF_LINE)
+ .append("data: [").append(data.map { entry => "[" + entry._1.getMillis + "," + (if (entry._2 == -1) "null" else entry._2) + "]" }.mkString(",")).append("],").append(END_OF_LINE)
+ .append("tooltip: { yDecimals: 0, ySuffix: 'ms' }")
+ .toString
+}
17 gatling-charts-highcharts/src/main/scala/com/excilys/ebi/gatling/highcharts/series/ScatterSeries.scala
View
@@ -0,0 +1,17 @@
+/**
+ * Copyright 2011 eBusiness Information, Groupe Excilys (www.excilys.com)
+ *
+ * Licensed under the Gatling Highcharts License
+ */
+package com.excilys.ebi.gatling.highcharts.series
+
+import com.excilys.ebi.gatling.core.util.StringHelper.END_OF_LINE
+
+class ScatterSeries(name: String, data: List[(Int, Int)], color: String) extends HighchartsSeries[Int, Int](name, data, List(color)) {
+ override def toString = new StringBuilder()
+ .append("type: 'scatter',").append(END_OF_LINE)
+ .append("color: '").append(color).append("',").append(END_OF_LINE)
+ .append("name: '").append(name).append("',").append(END_OF_LINE)
+ .append("data: [").append(data.map { entry => entry._1 + "," + entry._2 }.mkString("[", "], [", "]")).append("]")
+ .toString
+}
17 ...ing-charts-highcharts/src/main/scala/com/excilys/ebi/gatling/highcharts/series/StackedColumnSeries.scala
View
@@ -0,0 +1,17 @@
+/**
+ * Copyright 2011 eBusiness Information, Groupe Excilys (www.excilys.com)
+ *
+ * Licensed under the Gatling Highcharts License
+ */
+package com.excilys.ebi.gatling.highcharts.series
+
+import com.excilys.ebi.gatling.core.util.StringHelper.END_OF_LINE
+
+class StackedColumnSeries(name: String, data: List[(String, Int)], color: String) extends ColumnSeries(name, data, List(color)) {
+ override def toString = new StringBuilder()
+ .append("type: 'column',").append(END_OF_LINE)
+ .append("color: '").append(colors(0)).append("',").append(END_OF_LINE)
+ .append("name: '").append(name).append("',").append(END_OF_LINE)
+ .append("data: ").append(data.map { entry => entry._2 }.mkString("[", ",", "]")).append(",").append(END_OF_LINE)
+ .append("tooltip: { yDecimals: 0, ySuffix: 'ms' }").toString
+}
19 ...harts-highcharts/src/main/scala/com/excilys/ebi/gatling/highcharts/template/ActiveSessionsTemplate.scala
View
@@ -0,0 +1,19 @@
+/**
+ * Copyright 2011 eBusiness Information, Groupe Excilys (www.excilys.com)
+ *
+ * Licensed under the Gatling Highcharts License
+ */
+package com.excilys.ebi.gatling.highcharts.template
+import com.excilys.ebi.gatling.charts.template.PageTemplate
+import com.excilys.ebi.gatling.core.util.PathHelper.path2string
+import com.excilys.ebi.gatling.highcharts.config.HighchartsFiles.{ACTIVE_SESSIONS_JS_TEMPLATE, ACTIVE_SESSIONS_HTML_TEMPLATE}
+import com.excilys.ebi.gatling.highcharts.series.NumberPerSecondSeries
+
+class ActiveSessionsTemplate(chartTitle: String, series: Seq[NumberPerSecondSeries]) extends Template {
+
+ def getJSContent = PageTemplate.TEMPLATE_ENGINE.layout(ACTIVE_SESSIONS_JS_TEMPLATE, Map("chartTitle" -> chartTitle,
+ "series" -> series))
+
+ def getHTMLContent = PageTemplate.TEMPLATE_ENGINE.layout(ACTIVE_SESSIONS_HTML_TEMPLATE)
+}
+
21 ...hcharts/src/main/scala/com/excilys/ebi/gatling/highcharts/template/RequestDetailsIndicatorTemplate.scala
View
@@ -0,0 +1,21 @@
+/**
+ * Copyright 2011 eBusiness Information, Groupe Excilys (www.excilys.com)
+ *
+ * Licensed under the Gatling Highcharts License
+ */
+package com.excilys.ebi.gatling.highcharts.template
+import com.excilys.ebi.gatling.charts.template.PageTemplate
+import com.excilys.ebi.gatling.core.util.PathHelper.path2string
+import com.excilys.ebi.gatling.highcharts.config.HighchartsFiles.{ REQUEST_DETAILS_INDICATORS_JS_TEMPLATE, REQUEST_DETAILS_INDICATORS_HTML_TEMPLATE }
+import com.excilys.ebi.gatling.highcharts.series.{ StackedColumnSeries, PieSeries }
+
+class RequestDetailsIndicatorTemplate(okColumnSeries: StackedColumnSeries, mediumColumnSeries: StackedColumnSeries, koColumnSeries: StackedColumnSeries, failedColumnSeries: StackedColumnSeries, pieSeries: PieSeries) extends Template {
+
+ def getJSContent = {
+ PageTemplate.TEMPLATE_ENGINE.layout(REQUEST_DETAILS_INDICATORS_JS_TEMPLATE, Map("pieSeries" -> pieSeries,
+ "categories" -> okColumnSeries.getXValues,
+ "series" -> List(okColumnSeries, mediumColumnSeries, koColumnSeries, failedColumnSeries)))
+ }
+ def getHTMLContent = PageTemplate.TEMPLATE_ENGINE.layout(REQUEST_DETAILS_INDICATORS_HTML_TEMPLATE)
+}
+
21 ...arts/src/main/scala/com/excilys/ebi/gatling/highcharts/template/RequestDetailsResponseTimeTemplate.scala
View
@@ -0,0 +1,21 @@
+/**
+ * Copyright 2011 eBusiness Information, Groupe Excilys (www.excilys.com)
+ *
+ * Licensed under the Gatling Highcharts License
+ */
+package com.excilys.ebi.gatling.highcharts.template
+import com.excilys.ebi.gatling.charts.template.PageTemplate
+import com.excilys.ebi.gatling.core.util.PathHelper.path2string
+import com.excilys.ebi.gatling.highcharts.config.HighchartsFiles.{ REQUEST_DETAILS_RESPONSE_TIME_JS_TEMPLATE, REQUEST_DETAILS_RESPONSE_TIME_HTML_TEMPLATE }
+import com.excilys.ebi.gatling.highcharts.series.{ ResponseTimeSeries, NumberPerSecondSeries }
+
+class RequestDetailsResponseTimeTemplate(chartTitle: String, successSeries: ResponseTimeSeries, failuresSeries: ResponseTimeSeries, activeSessionSeries: NumberPerSecondSeries) extends Template {
+
+ def getJSContent = PageTemplate.TEMPLATE_ENGINE.layout(REQUEST_DETAILS_RESPONSE_TIME_JS_TEMPLATE, Map("chartTitle" -> chartTitle,
+ "successSeries" -> successSeries,
+ "failureSeries" -> failuresSeries,
+ "activeSessionsSeries" -> activeSessionSeries))
+
+ def getHTMLContent = PageTemplate.TEMPLATE_ENGINE.layout(REQUEST_DETAILS_RESPONSE_TIME_HTML_TEMPLATE)
+}
+
17 ...ighcharts/src/main/scala/com/excilys/ebi/gatling/highcharts/template/RequestDetailsScatterTemplate.scala
View
@@ -0,0 +1,17 @@
+/**
+ * Copyright 2011 eBusiness Information, Groupe Excilys (www.excilys.com)
+ *
+ * Licensed under the Gatling Highcharts License
+ */
+package com.excilys.ebi.gatling.highcharts.template
+import com.excilys.ebi.gatling.charts.template.PageTemplate
+import com.excilys.ebi.gatling.core.util.PathHelper.path2string
+import com.excilys.ebi.gatling.highcharts.config.HighchartsFiles.{ REQUEST_DETAILS_SCATTER_JS_TEMPLATE, REQUEST_DETAILS_SCATTER_HTML_TEMPLATE }
+import com.excilys.ebi.gatling.highcharts.series.ScatterSeries
+
+class RequestDetailsScatterTemplate(chartTitle: String, success: ScatterSeries, failures: ScatterSeries) extends Template {
+
+ def getJSContent = PageTemplate.TEMPLATE_ENGINE.layout(REQUEST_DETAILS_SCATTER_JS_TEMPLATE, Map("successes" -> success, "failures" -> failures))
+
+ def getHTMLContent = PageTemplate.TEMPLATE_ENGINE.layout(REQUEST_DETAILS_SCATTER_HTML_TEMPLATE)
+}
22 gatling-charts-highcharts/src/main/scala/com/excilys/ebi/gatling/highcharts/template/RequestsTemplate.scala
View
@@ -0,0 +1,22 @@
+/**
+ * Copyright 2011 eBusiness Information, Groupe Excilys (www.excilys.com)
+ *
+ * Licensed under the Gatling Highcharts License
+ */
+package com.excilys.ebi.gatling.highcharts.template
+
+import com.excilys.ebi.gatling.charts.template.PageTemplate
+import com.excilys.ebi.gatling.core.util.PathHelper.path2string
+import com.excilys.ebi.gatling.highcharts.config.HighchartsFiles.{REQUESTS_JS_TEMPLATE, REQUESTS_HTML_TEMPLATE}
+import com.excilys.ebi.gatling.highcharts.series.{PieSeries, NumberPerSecondSeries}
+
+class RequestsTemplate(chartTitle: String, series: Seq[NumberPerSecondSeries], pieSeries: PieSeries, activeSessionsSeries: NumberPerSecondSeries) extends Template {
+
+ def getJSContent = PageTemplate.TEMPLATE_ENGINE.layout(REQUESTS_JS_TEMPLATE, Map("yAxisTitle" -> "Number of Requests /s",
+ "chartTitle" -> chartTitle,
+ "series" -> series,
+ "pieSeries" -> pieSeries,
+ "activeSessions" -> activeSessionsSeries))
+
+ def getHTMLContent = PageTemplate.TEMPLATE_ENGINE.layout(REQUESTS_HTML_TEMPLATE)
+}
12 gatling-charts-highcharts/src/main/scala/com/excilys/ebi/gatling/highcharts/template/Template.scala
View
@@ -0,0 +1,12 @@
+/**
+ * Copyright 2011 eBusiness Information, Groupe Excilys (www.excilys.com)
+ *
+ * Licensed under the Gatling Highcharts License
+ */
+package com.excilys.ebi.gatling.highcharts.template
+
+trait Template {
+ def getJSContent: String
+
+ def getHTMLContent: String
+}
106 gatling-with-highcharts-bundle/pom.xml
View
@@ -0,0 +1,106 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>gatling-highcharts</artifactId>
+ <groupId>com.excilys.ebi.gatling.highcharts</groupId>
+ <version>1.0.0-SNAPSHOT</version>
+ </parent>
+ <artifactId>gatling-with-highcharts-bundle</artifactId>
+ <packaging>pom</packaging>
+
+ <properties>
+ <gatling-bundle>${settings.localRepository}/com/excilys/ebi/gatling/gatling-bundle/${gatling.version}/gatling-bundle-${gatling.version}-bundle.zip</gatling-bundle>
+ <gatling-charts-bundle>${settings.localRepository}/com/excilys/ebi/gatling/gatling-highcharts/${project.version}/gatling-highcharts-${project.version}-bundle.zip</gatling-charts-bundle>
+ <gatling-with-highcharts.rootDir>${project.build.directory}/gatling-with-highcharts-${project.version}</gatling-with-highcharts.rootDir>
+ <gatling-with-highcharts.innerDir>${gatling-with-highcharts.rootDir}/gatling-with-highcharts-${project.version}</gatling-with-highcharts.innerDir>
+ </properties>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>truezip-maven-plugin</artifactId>
+ <version>1.0-beta-5</version>
+ <executions>
+ <execution>
+ <id>unpack-gatling</id>
+ <goals>
+ <goal>cp</goal>
+ </goals>
+ <phase>package</phase>
+ <configuration>
+ <from>${gatling-bundle}</from>
+ <to>${project.build.directory}</to>
+ </configuration>
+ </execution>
+ <execution>
+ <id>unpack-highcharts</id>
+ <goals>
+ <goal>cp</goal>
+ </goals>
+ <phase>package</phase>
+ <configuration>
+ <from>${gatling-charts-bundle}</from>
+ <to>${project.build.directory}</to>
+ </configuration>
+ </execution>
+ <execution>
+ <id>copy-gatling</id>
+ <goals>
+ <goal>copy</goal>
+ </goals>
+ <phase>package</phase>
+ <configuration>
+ <fileset>
+ <directory>${project.build.directory}/gatling-bundle-${gatling.version}</directory>
+ <includes>
+ <include>**/*</include>
+ </includes>
+ <outputDirectory>${gatling-with-highcharts.innerDir}</outputDirectory>
+ </fileset>
+ </configuration>
+ </execution>
+ <execution>
+ <id>copy-highcharts</id>
+ <goals>
+ <goal>copy</goal>
+ </goals>
+ <phase>package</phase>
+ <configuration>
+ <fileset>
+ <directory>${project.build.directory}/gatling-highcharts-${gatling.version}</directory>
+ <includes>
+ <include>**/*</include>
+ </includes>
+ <outputDirectory>${gatling-with-highcharts.innerDir}</outputDirectory>
+ </fileset>
+ </configuration>
+ </execution>
+ <execution>
+ <id>pack-zip</id>
+ <goals>
+ <goal>cp</goal>
+ </goals>
+ <phase>package</phase>
+ <configuration>
+ <from>${gatling-with-highcharts.rootDir}</from>
+ <to>${gatling-with-highcharts.rootDir}.zip</to>
+ </configuration>
+ </execution>
+ <execution>
+ <id>pack-tar.gz</id>
+ <goals>
+ <goal>cp</goal>
+ </goals>
+ <phase>package</phase>
+ <configuration>
+ <from>${gatling-with-highcharts.rootDir}</from>
+ <to>${gatling-with-highcharts.rootDir}.tar.gz</to>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+</project>
205 pom.xml
View
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>com.excilys.ebi.gatling.highcharts</groupId>
+ <artifactId>gatling-highcharts</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ <packaging>pom</packaging>
+ <inceptionYear>2011</inceptionYear>
+
+ <modules>
+ <module>gatling-charts-highcharts</module>
+
+ </modules>
+
+ <licenses>
+ <license>
+ <name>Gatling Highcharts License</name>
+ <url>http://no-url-at-the-moment</url>
+ <distribution>repo</distribution>
+ </license>
+ </licenses>
+
+ <scm>
+ <connection>scm:git:git://github.com/excilys/gatling-highcharts.git</connection>
+ <developerConnection>scm:git@github.com:excilys/gatling-highcharts.git</developerConnection>
+ <url>https://github.com/excilys/gatling-highcharts</url>
+ </scm>
+
+ <distributionManagement>
+ <repository>
+ <id>excilys-release</id>
+ <url>http://repository.excilys.com/content/repositories/releases</url>
+ </repository>
+ </distributionManagement>
+
+ <developers>
+ <developer>
+ <id>slandelle@excilys.com</id>
+ <name>Stephane Landelle</name>
+ <organization>eBusiness Information, Excilys Group</organization>
+ </developer>
+ <developer>
+ <id>rsertelon@excilys.com</id>
+ <name>Romain Sertelon</name>
+ <organization>eBusiness Information, Excilys Group</organization>
+ </developer>
+ </developers>
+
+ <repositories>
+ <repository>
+ <id>excilys-thirdparty</id>
+ <name>Excilys Third Party Repository</name>
+ <url>http://repository.excilys.com/content/repositories/thirdparty</url>
+ </repository>
+ </repositories>
+
+ <pluginRepositories>
+ <pluginRepository>
+ <id>scala-tools.org</id>
+ <name>Scala-tools Maven2 Repository</name>
+ <url>http://scala-tools.org/repo-releases</url>
+ </pluginRepository>
+ </pluginRepositories>
+
+ <properties>
+ <maven.compiler.source>1.6</maven.compiler.source>
+ <maven.compiler.target>1.6</maven.compiler.target>
+ <encoding>UTF-8</encoding>
+ <scala.version>2.9.1</scala.version>
+ <gatling.version>1.0.0-SNAPSHOT</gatling.version>
+
+ <maven-assembly-plugin.version>2.2.2</maven-assembly-plugin.version>
+ <maven-jar-plugin.version>2.3.2</maven-jar-plugin.version>
+ <maven-scala-plugin.version>2.15.2</maven-scala-plugin.version>
+ <maven-surefire-plugin.version>2.10</maven-surefire-plugin.version>
+ <maven-release-plugin.version>2.2.1</maven-release-plugin.version>
+ <maven-scalate-plugin.version>1.5.2</maven-scalate-plugin.version>
+ <maven-licence-plugin.version>1.9.0</maven-licence-plugin.version>
+ </properties>
+
+ <dependencyManagement>
+ <dependencies>
+ <dependency>
+ <groupId>com.excilys.ebi.gatling</groupId>
+ <artifactId>gatling-charts</artifactId>
+ <version>${gatling.version}</version>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
+
+ <dependencies>
+ <dependency>
+ <groupId>com.excilys.ebi.gatling</groupId>
+ <artifactId>gatling-charts</artifactId>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <artifactId>maven-jar-plugin</artifactId>
+ <version>${maven-jar-plugin.version}</version>
+ </plugin>
+ <plugin>
+ <groupId>org.fusesource.scalate</groupId>
+ <artifactId>maven-scalate-plugin</artifactId>
+ <version>${maven-scalate-plugin.version}</version>
+ </plugin>
+ <plugin>
+ <groupId>org.scala-tools</groupId>
+ <artifactId>maven-scala-plugin</artifactId>
+ <version>${maven-scala-plugin.version}</version>
+ </plugin>
+ <plugin>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>${maven-surefire-plugin.version}</version>
+ </plugin>
+ <plugin>
+ <artifactId>maven-release-plugin</artifactId>
+ <version>${maven-release-plugin.version}</version><!--$NO-MVN-MAN-VER$ -->
+ </plugin>
+ <plugin>
+ <groupId>com.mycila.maven-license-plugin</groupId>
+ <artifactId>maven-license-plugin</artifactId>
+ <version>${maven-licence-plugin.version}</version>
+ </plugin>
+ <!--This plugin's configuration is used to store Eclipse m2e settings
+ only. It has no influence on the Maven build itself. -->
+ <plugin>
+ <groupId>org.eclipse.m2e</groupId>
+ <artifactId>lifecycle-mapping</artifactId>
+ <version>1.0.0</version>
+ <configuration>
+ <lifecycleMappingMetadata>
+ <pluginExecutions>
+ <pluginExecution>
+ <pluginExecutionFilter>
+ <groupId>com.mycila.maven-license-plugin</groupId>
+ <artifactId>maven-license-plugin</artifactId>
+ <versionRange>[1.9.0,)</versionRange>
+ <goals>
+ <goal>format</goal>
+ </goals>
+ </pluginExecutionFilter>
+ <action>
+ <ignore></ignore>
+ </action>
+ </pluginExecution>
+ </pluginExecutions>
+ </lifecycleMappingMetadata>
+ </configuration>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+ <plugins>
+ <plugin>
+ <groupId>org.scala-tools</groupId>
+ <artifactId>maven-scala-plugin</artifactId>
+ <executions>
+ <execution>
+ <goals>
+ <goal>compile</goal>
+ <goal>testCompile</goal>
+ </goals>
+ <configuration>
+ <args>
+ <arg>-make:transitive</arg>
+ <arg>-dependencyfile</arg>
+ <arg>${project.build.directory}/.scala_dependencies</arg>
+ </args>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <artifactId>maven-release-plugin</artifactId>
+ <configuration>
+ <autoVersionSubmodules>true</autoVersionSubmodules>
+ <tagNameFormat>@{project.version}</tagNameFormat>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>com.mycila.maven-license-plugin</groupId>
+ <artifactId>maven-license-plugin</artifactId>
+ <configuration>
+ <header>src/etc/header.txt</header>
+ <excludes>
+ <exclude>**/highcharts.js</exclude>
+ <exclude>**/highstock.js</exclude>
+ </excludes>
+ </configuration>
+ <executions>
+ <execution>
+ <phase>process-sources</phase>
+ <goals>
+ <goal>format</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+</project>
3  src/etc/header.txt
View
@@ -0,0 +1,3 @@
+Copyright 2011 eBusiness Information, Groupe Excilys (www.excilys.com)
+
+TODO
Please sign in to comment.
Something went wrong with that request. Please try again.