Skip to content

Commit

Permalink
Add Gradle build scripts
Browse files Browse the repository at this point in the history
  • Loading branch information
vlsi committed Jul 19, 2019
1 parent 74143cb commit b84c11b
Show file tree
Hide file tree
Showing 76 changed files with 4,477 additions and 337 deletions.
15 changes: 15 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,13 @@
# Directory trees to ignore
/backups/
/build/
/buildSrc/build/
/buildSrc/subprojects/*/build/**
/buildSrc/subprojects/*/out/**
/src/*/build/
/src/*/out/
/src/protocol/*/build/
/src/protocol/*/out/
/dist/
/docs/
/local/
Expand All @@ -10,6 +17,14 @@
/target/

!/bin/report-template/**/dist
/bin/temp/
/bin/testfiles/testReport*

# Ignore Gradle project-specific cache directory
.gradle

# macOS
.DS_Store

# specific files to ignore
*.log
Expand Down
48 changes: 16 additions & 32 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,54 +1,38 @@
sudo: false
language: java

before_script:
- test "x$RUN_CHECKSTYLE" != 'x' || ant -Djava.awt.headless=true clean download_jars install
- test "x$RUN_CHECKSTYLE" != 'xtrue' || ant -Djava.awt.headless=true download_checkstyle

before_install:
- wget --no-check-certificate https://www.apache.org/dist/ant/binaries/apache-ant-1.10.5-bin.tar.gz
- tar -xzvf apache-ant-1.10.5-bin.tar.gz
- export PATH="$(pwd)/apache-ant-1.10.5/bin:$PATH"
- echo $(ant -version)

# skip default "install" command
install: true

before_cache:
- rm -f $HOME/.gradle/caches/modules-2/modules-2.lock
- rm -fr $HOME/.gradle/caches/*/plugin-resolution/
cache:
directories:
- $HOME/.gradle/caches/
- $HOME/.gradle/wrapper/

env:
global:
- ANT_OPTS="-Ddisable-svnCheck=true -Djava.awt.headless=true -Drmi_force_localhost=true"
- GRADLE_ARGS="-Djava.awt.headless=true"
# Building source and binary distributions takes time, and it does not verify much, so we skip it in CI
- SKIP_DIST_TASKS="$GRADLE_ARGS -PskipDist"

matrix:
include:
- jdk: oraclejdk8
env: RUN_CHECKSTYLE=true
script: ant -Djava.awt.headless=true checkstyle
- name: Coverage on our default build with Oracle Java 8
- name: Tests with OracleJDK 8 + code coverage
jdk: oraclejdk8
script:
- ant coverage-travis
- ./gradlew $GRADLE_ARGS check createDist jacocoReport
after_success:
- bash <(curl -s https://codecov.io/bash)
sudo: true # otherwise TEST_HTTPS.jmx -> analytics.usa.gov does not work
- name: Tests with OpenJDK 8
jdk: openjdk8
script:
- ant test
- bash <(curl -s https://codecov.io/bash)
- name: Tests with OpenJDK 11
jdk: openjdk11
script:
- ant test
sudo: true # otherwise TEST_HTTPS.jmx -> analytics.usa.gov does not work
- ./gradlew $SKIP_DIST_TASKS -PskipCheckstyle build createDist
- name: Tests with OpenJDK EA
jdk: openjdk-ea
script:
- ant test
sudo: true # otherwise TEST_HTTPS.jmx -> analytics.usa.gov does not work
- ./gradlew $SKIP_DIST_TASKS -PskipCheckstyle build createDist
allow_failures:
- jdk: openjdk-ea
# disable building with jdk9 as it has a bug and will not compile JMeter
# see https://bugs.java.com/bugdatabase/view_bug.do?bug_id=8193802
# - jdk: oraclejdk9
# script: ant -Djava.awt.headless=true -Drmi_force_localhost=true -Dskip.bug52310=true test
# sudo: true # otherwise TEST_HTTPS.jmx -> analytics.usa.gov does not work

36 changes: 36 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,42 @@ See:
* https://bz.apache.org/bugzilla/buglist.cgi?bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=NEEDINFO&bug_severity=Blocker&bug_severity=Critical&bug_severity=Major&bug_severity=Normal&bug_severity=Regression&bug_severity=Minor&bug_severity=Trivial&product=JMeter&order=Bug%20Number&list_id=164231
* https://bz.apache.org/bugzilla/buglist.cgi?bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=NEEDINFO&bug_severity=Enhancement&product=JMeter&order=Bug%20Number&list_id=164232

## Development setup

### Gradle

You might find useful Gradle commands in [gradle.md](gradle.md)

### <a name="intellij"></a>IntelliJ IDEA

You require IntelliJ 2018.3.1 or newer.

1. Open the build.gradle.kts file with IntelliJ IDEA and choose "Open as Project"
1. Make sure "Create separate module per source set" is selected
1. Make sure "Use default gradle wrapper" is selected
1. In the "File already exists" dialogue, choose "Yes" to overwrite
1. In the "Open Project" dialogue, choose "Delete Existing Project and Import"

### Eclipse

You can generate the Eclipse projects by running

./gradlew eclipse

Then you can import the generated projects into Eclipse

1. Install Eclipse 4.5 (Mars) at least
1. Install the Groovy Eclipse plugin from http://dist.springsource.org/snapshot/GRECLIPSE/e4.5/
1. Make sure you have a Java 8 compatible JDK configured in your workspace
1. In `Window->Preferences->Groovy->Compiler`, check `Enable Script folder support` and add `**/*.gradle.kts`
1. Import all projects using the "Import Existing Projects into Workspace" wizard

The following files should be excluded from build output:

*.metaprops

See `Project Preferences/Java Compiler/Building/Output Folder/Filtered Resources`

## :star2: Have a patch?
The best way to make sure your issue or feature is addressed is to submit a patch.
We accept patches through:
Expand Down
112 changes: 0 additions & 112 deletions LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -176,115 +176,3 @@
END OF TERMS AND CONDITIONS

============================ End of Apache License V 2.0 ===================

Source and binary distributions of Apache JMeter contain:

- icons from the Open Icon Library http://openiconlibrary.sourceforge.net/
For license details, please see the file: licenses/src/openiconlibrary.txt

Additional source files (also included in binary distributions):
For details, please see the files under: licenses/src

* bootstrap-3.3.4.txt (MIT) | ./bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap
* bootstrap-social.txt (MIT) | ./bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap-social
* datatables-1.10.9.txt (MIT) | ./bin/report-template/sbadmin2-1.0.7/bower_components/datatables
* datatables-plugins.txt (MIT) | ./bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins
* datatables-responsive-1.0.5.txt (MIT) | ./bin/report-template/sbadmin2-1.0.7/bower_components/datatables-responsive
* flot-0.8.3.txt (MIT) | ./bin/report-template/sbadmin2-1.0.7/bower_components/flot
* flot-axislabels.txt (MIT) | ./bin/report-template/sbadmin2-1.0.7/bower_components/flot-axislabels
* flot-tooltip-0.7.1.txt (MIT) | ./bin/report-template/sbadmin2-1.0.7/bower_components/flot.tooltip
* font-awesome-4.2.0.txt (OFL-1.1 | MIT) | ./bin/report-template/sbadmin2-1.0.7/bower_components/font-awesome
* holderjs.txt (MIT) | ./bin/report-template/sbadmin2-1.0.7/bower_components/holderjs
* jquery-2.1.3.txt (MIT | ./bin/report-template/sbadmin2-1.0.7/bower_components/jquery
* metisMenu-1.1.3.txt (MIT) | ./bin/report-template/sbadmin2-1.0.7/bower_components/metisMenu
* mocha-1.17.1.txt (MIT) | ./bin/report-template/sbadmin2-1.0.7/bower_components/mocha
* morrisjs-0.5.0.txt (Simplified BSD) | ./bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs
* raphael-2.1.4.txt (MIT) | ./bin/report-template/sbadmin2-1.0.7/bower_components/raphael
* start-bootstrap-admin2-1.0.7.txt (Apache License V2.0) | ./bin/report-template/sbadmin2-1.0.7 and not in the above folders

Binary distributions additionally contain software included under various licenses,
see below.

The following software is provided under the Apache License V 2.0 (as above):

- Software produced at the ASF:

* apache-bsf-2.4.0.jar
* beanshell-2.0b6.jar
* cglib-nodep-3.2.9.jar
* commons-codec-1.11.jar
* commons-collections-3.2.2.jar
* commons-dbcp2-2.5.0.jar
* commons-io-2.6.jar
* commons-jexl2-2.1.1.jar
* commons-jexl3-3.1.jar
* commons-lang3-3.8.1.jar
* commons-math3-3.6.1.jar
* commons-net-3.6.jar
* commons-pool2-2.6.0.jar
* commons-text-1.6.jar
* dec-0.1.2.jar
* groovy-all-2.4.16.jar
* httpasyncclient-4.1.4.jar
* httpclient-4.5.8.jar
* httpcore-4.4.11.jar
* httpcore-nio-4.4.11.jar
* httpmime-4.5.8.jar
* jakarta-oro-2.0.8.jar
* jms-1.1.1.jar
* log4j-1.2-api-2.11.1.jar
* log4j-api-2.11.1.jar
* log4j-core-2.11.1.jar
* log4j-slf4j-impl-2.11.1.jar
* serializer-2.7.2.jar
* startbootstrap-sb-admin-2-1.0.7
* tika-core-1.21.jar
* tika-parsers-1.21.jar
* xalan-2.7.2.jar
* xerces-2.12.0.jar
* xml-apis-1.4.01.jar
* xmlgraphics-commons-2.3.jar

- Software produced outside the ASF which is available under AL 2.0:

* accessors-smart-1.2.jar
* caffeine-2.6.2.jar
* darcula.jar
* freemarker-2.3.28.jar (AL2.0, see licenses/bin for additional info)
* jackson-annotations-2.9.9.jar
* jackson-core-2.9.9.jar
* jackson-databind-2.9.9.jar
* json-path-2.4.0.jar
* json-smart-2.3.jar
* mongo-java-driver-2.11.3.jar
* objenesis-2.6.jar
* ph-commons-9.2.1.jar
* ph-css-6.1.1.jar
* spock-core-1.2-groovy-2.4.jar

- Software produced outside the ASF which is available under other licenses (not AL 2.0):
For details, please see the files under: licenses/bin

* asm-7.0.jar (BSD)
* dnsjava-2.1.8.jar (BSD)
* hamcrest-core-1.3.jar (BSD)
* javamail-1.5.0-b01.jar (CDDL Version 1.0)
* javax.activation-api-1.2.0.jar (CDDL Version 1.1)
* javax.activation-1.2.0.jar (CDDL Version 1.1)
* jcharts-0.7.5.jar (?)
* jcl-over-slf4j-1.7.25.jar (MIT)
* jsoup-1.11.3.jar (MIT)
* jodd-core-5.0.6.jar (Simplified BSD)
* jodd-lagarto-5.0.6.jar (Simplified BSD)
* jodd-log-5.0.6.jar (Simplified BSD)
* jodd-props-5.0.6.jar (Simplified BSD)
* jtidy-r938.jar (?)
* junit-4.12.jar (BSD)
* rhino-1.7.10.jar (MPL 2.0)
* rsyntaxtextarea-3.0.2.jar (BSD)
* slf4j-api-1.7.25.jar (MIT)
* xmlpull-1.1.3.1.jar (Public Domain)
* xpp3-1.1.4c.jar (Indiana University Extreme! Lab Software License 1.1.1)
* xstream-1.4.11.jar (BSD)
* hamcrest-date-2.0.4.jar (BSD)
* Saxon-HE-9.9.1-1.jar (Mozilla Public License version 2.0)
Loading

0 comments on commit b84c11b

Please sign in to comment.