diff --git a/.gitignore b/.gitignore
index c2e1295..bc090c9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,3 +6,4 @@
/byteman-3.0.4/
/3.0.6.tar.gz
/byteman-3.0.6/
+/4.0.2.tar.gz
diff --git a/byteman.spec b/byteman.spec
index 76f86e5..6851995 100644
--- a/byteman.spec
+++ b/byteman.spec
@@ -5,21 +5,24 @@
%global bindir %{homedir}/bin
Name: byteman
-Version: 3.0.6
-Release: 5%{?dist}
+Version: 4.0.2
+Release: 1%{?dist}
Summary: Java agent-based bytecode injection tool
License: LGPLv2+
URL: http://www.jboss.org/byteman
-# wget -O 3.0.6.tar.gz https://github.com/bytemanproject/byteman/archive/3.0.6.tar.gz
+# wget -O 4.0.2.tar.gz https://github.com/bytemanproject/byteman/archive/4.0.2.tar.gz
Source0: https://github.com/bytemanproject/byteman/archive/%{version}.tar.gz
BuildArch: noarch
+# Byteman 4.0.2 requires JDK 9+ to build. Require JDK 10 explicitly.
+BuildRequires: java-10-openjdk-devel
BuildRequires: maven-local
BuildRequires: maven-shade-plugin
BuildRequires: maven-source-plugin
BuildRequires: maven-plugin-plugin
BuildRequires: maven-plugin-bundle
+BuildRequires: maven-assembly-plugin
BuildRequires: maven-failsafe-plugin
BuildRequires: maven-jar-plugin
BuildRequires: maven-surefire-plugin
@@ -35,8 +38,11 @@ BuildRequires: testng
# JBoss modules byteman plugin requires it
BuildRequires: mvn(org.jboss.modules:jboss-modules)
-Provides: bundled(objectweb-asm) = 0:5.0.4-2
-Provides: bundled(java_cup) = 1:0.11b-3
+Provides: bundled(objectweb-asm) = 6.1.1
+Provides: bundled(java_cup) = 1:0.11b-8
+
+# Related pieces removed via pom_xpath_remove macros
+Patch1: remove_submit_integration_test_verification.patch
%description
Byteman is a tool which simplifies tracing and testing of Java programs.
@@ -69,6 +75,17 @@ This package contains the Byteman rule check maven plugin.
# Fix the gid:aid for java_cup
sed -i "s|net.sf.squirrel-sql.thirdparty-non-maven|java_cup|" agent/pom.xml
sed -i "s|java-cup|java_cup|" agent/pom.xml
+sed -i "s|net.sf.squirrel-sql.thirdparty-non-maven|java_cup|" tests/pom.xml
+sed -i "s|java-cup|java_cup|" tests/pom.xml
+
+# Remove Submit integration test invocations (agent)
+%pom_xpath_remove "pom:build/pom:plugins/pom:plugin[pom:artifactId='maven-failsafe-plugin']/pom:executions/pom:execution[pom:id='submit.TestSubmit']" agent
+%pom_xpath_remove "pom:build/pom:plugins/pom:plugin[pom:artifactId='maven-failsafe-plugin']/pom:executions/pom:execution[pom:id='submit.TestSubmit.compiled']" agent
+%patch1 -p2
+
+# Remove Submit integration test invocations (tests)
+%pom_xpath_remove "pom:build/pom:plugins/pom:plugin[pom:artifactId='maven-failsafe-plugin']/pom:executions/pom:execution[pom:id='submit.TestSubmit']" tests
+%pom_xpath_remove "pom:build/pom:plugins/pom:plugin[pom:artifactId='maven-failsafe-plugin']/pom:executions/pom:execution[pom:id='submit.TestSubmit.compiled']" tests
# Remove scope=system and systemPath for com.sun:tools
%pom_xpath_remove "pom:profiles/pom:profile/pom:dependencies/pom:dependency[pom:artifactId='tools']/pom:scope" install
@@ -77,7 +94,6 @@ sed -i "s|java-cup|java_cup|" agent/pom.xml
%pom_xpath_remove "pom:profiles/pom:profile/pom:dependencies/pom:dependency[pom:artifactId='tools']/pom:systemPath" contrib/bmunit
# Some tests fail intermittently during builds. Disable them.
-%pom_disable_module tests contrib/jboss-modules-system
%pom_xpath_remove "pom:build/pom:plugins/pom:plugin[pom:artifactId='maven-surefire-plugin']/pom:executions" contrib/bmunit
%pom_xpath_set "pom:build/pom:plugins/pom:plugin[pom:artifactId='maven-surefire-plugin']/pom:configuration" 'true' contrib/bmunit
@@ -89,6 +105,7 @@ sed -i "s|java-cup|java_cup|" agent/pom.xml
%mvn_package ":byteman-rulecheck-maven-plugin" rulecheck-maven-plugin
%build
+export JAVA_HOME=/usr/lib/jvm/java-10-openjdk
%mvn_build
%install
@@ -127,7 +144,7 @@ ln -s %{_javadir}/byteman/byteman.jar $RPM_BUILD_ROOT%{homedir}/lib/byteman.jar
%files -f .mfiles
%{homedir}/*
%{_bindir}/*
-%doc README docs/ProgrammersGuide.pdf
+%doc README
%license docs/copyright.txt
%files javadoc -f .mfiles-javadoc
@@ -137,6 +154,10 @@ ln -s %{_javadir}/byteman/byteman.jar $RPM_BUILD_ROOT%{homedir}/lib/byteman.jar
%license docs/copyright.txt
%changelog
+* Fri Apr 27 2018 Severin Gehwolf - 4.0.2-1
+- Update to latest upstream 4.0.2 release.
+- Adds support for modular JDKs.
+
* Wed Feb 07 2018 Fedora Release Engineering - 3.0.6-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
diff --git a/remove_submit_integration_test_verification.patch b/remove_submit_integration_test_verification.patch
new file mode 100644
index 0000000..dae9507
--- /dev/null
+++ b/remove_submit_integration_test_verification.patch
@@ -0,0 +1,14 @@
+diff --git a/byteman-4.0.2/agent/verification.xml b/byteman-4.0.2/agent/verification.xml
+index f530cfe..52ece06 100644
+--- a/byteman-4.0.2/agent/verification.xml
++++ b/byteman-4.0.2/agent/verification.xml
+@@ -171,9 +171,5 @@
+ target/failsafe-reports/org.jboss.byteman.tests.misc.TestThrowBinding.txt
+
+
+-
+- target/failsafe-reports/org.jboss.byteman.tests.submit.TestSubmit.txt
+-
+-
+
+
diff --git a/sources b/sources
index de5d31f..e276057 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-945cf839a10ce71fdf21fb9992555bcb 3.0.6.tar.gz
+SHA512 (4.0.2.tar.gz) = 50e85cf73d1f820ed42ba43672504edb5057ed8ddcd9d14a2b8c6b92fbf39d382937675ce9e10b3b1336359971909d9f246bd8be5ed08666da14ee3c57abd5f8