diff --git a/.gitignore b/.gitignore
index acc83fa..d9c4a38 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,15 +1,2 @@
/byteman-1.5.2-full-clean.tar.gz
/byteman-2.0.4.tar.xz
-/2.1.2.tar.gz
-/373601b4e608ea622b2fec947824b99cd0edb124.tar.gz
-/3.0.4.tar.gz
-/byteman-3.0.4/
-/3.0.6.tar.gz
-/byteman-3.0.6/
-/4.0.2.tar.gz
-/4.0.3.tar.gz
-/4.0.4.tar.gz
-/4.0.5.tar.gz
-/4.0.15.tar.gz
-/4.0.16.tar.gz
-/4.0.26.tar.gz
diff --git a/byteman.spec b/byteman.spec
index 6cbe24c..fd6ecb7 100644
--- a/byteman.spec
+++ b/byteman.spec
@@ -1,62 +1,45 @@
-# Note to the interested reader:
-# fedpkg mockbuild --without tests
-# will make mvn_build macro skip tests.
-# See: https://github.com/fedora-java/javapackages/issues/62
-
-%global javacup_or_asm java_cup:java_cup|org\\.ow2\\.asm:asm.*
-# Don't have generated mvn()-style requires for java_cup or asm
-%global mvn_javacup_or_asm_matcher .*mvn\\(%{javacup_or_asm}\\)
-# Don't have generated requires for java-headless >= 1:1.9
-%global java_headless_matcher java-headless >= 1:(1\\.9|9)
-%global __requires_exclude ^%{mvn_javacup_or_asm_matcher}|%{java_headless_matcher}$
-
%global homedir %{_datadir}/%{name}
%global bindir %{homedir}/bin
Name: byteman
-Version: 4.0.26
-Release: 1%{?dist}
+Version: 2.0.4
+Release: 3%{?dist}
Summary: Java agent-based bytecode injection tool
-# Automatically converted from old format: LGPLv2+ - review is highly recommended.
-License: LicenseRef-Callaway-LGPLv2+
+Group: Development/Libraries
+License: LGPLv2+
URL: http://www.jboss.org/byteman
-# wget -O 4.0.16.tar.gz https://github.com/bytemanproject/byteman/archive/4.0.16.tar.gz
-Source0: https://github.com/bytemanproject/byteman/archive/%{version}.tar.gz
+
+# git clone git://github.com/bytemanproject/byteman.git
+# cd byteman/ && git archive --format=tar --prefix=byteman-2.0.4/ 2.0.4 | xz > byteman-2.0.4.tar.xz
+Source0: byteman-%{version}.tar.xz
BuildArch: noarch
-ExclusiveArch: %{java_arches} noarch
-# Byteman 4.x requires JDK 9+ to build. Require JDK 10 explicitly.
-BuildRequires: java-25-devel >= 1:11
-BuildRequires: maven-local-openjdk25
+BuildRequires: jpackage-utils
+BuildRequires: javapackages-tools
+BuildRequires: java-devel
+BuildRequires: maven-local
BuildRequires: maven-shade-plugin
-BuildRequires: maven-source-plugin
-BuildRequires: maven-plugin-plugin
-BuildRequires: maven-bundle-plugin
-BuildRequires: maven-assembly-plugin
BuildRequires: maven-failsafe-plugin
BuildRequires: maven-jar-plugin
BuildRequires: maven-surefire-plugin
BuildRequires: maven-surefire-provider-testng
-BuildRequires: maven-surefire-provider-junit
-BuildRequires: maven-surefire-provider-junit5
+BuildRequires: maven-surefire-provider-junit4
BuildRequires: maven-verifier-plugin
-BuildRequires: maven-dependency-plugin
BuildRequires: java_cup
+BuildRequires: jarjar
BuildRequires: objectweb-asm
-BuildRequires: junit
-BuildRequires: junit5
+BuildRequires: junit4
BuildRequires: testng
-Provides: bundled(objectweb-asm) = 9.1
-Provides: bundled(java_cup) = 1:0.11b-17
-# We are filtering java-headless >= 1:1.9 requirement. Add
-# JDK 8 requirement here explicitly which shouldn't match the filter.
-Requires: java-25-headless >= 1:1.8
+Requires: jpackage-utils
+Requires: java-devel
-# Related pieces removed via pom_xpath_remove macros
-Patch1: remove_submit_integration_test_verification.patch
-Patch2: testng7_port.patch
+# Bundling
+#BuildRequires: java_cup = 1:0.11a-12
+#BuildRequires: objectweb-asm = 0:3.3.1-7
+Provides: bundled(java_cup) = 1:0.11a-12
+Provides: bundled(objectweb-asm) = 0:3.3.1-7
%description
Byteman is a tool which simplifies tracing and testing of Java programs.
@@ -70,97 +53,27 @@ repackage or redeploy your application. In fact you can remove injected
code and reinstall different code while the application continues to execute.
%package javadoc
-Summary: Javadoc for %{name}
+Summary: Javadocs for %{name}
+Group: Documentation
+Requires: jpackage-utils
%description javadoc
This package contains the API documentation for %{name}.
-%package rulecheck-maven-plugin
-Summary: Maven plugin for checking Byteman rules.
-
-%description rulecheck-maven-plugin
-This package contains the Byteman rule check maven plugin.
-
-%package bmunit
-Summary: TestNG and JUnit integration for Byteman.
-
-%description bmunit
-The Byteman bmunit jar provides integration of Byteman into
-TestNG and JUnit tests.
-
-%package dtest
-Summary: Remote byteman instrumented testing.
-
-%description dtest
-The Byteman dtest jar supports instrumentation of test code executed on
-remote server hosts and validation of assertions describing the expected
-operation of the instrumented methods.
-
%prep
-%setup -q -n byteman-%{version}
+%setup -q
# 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
-%patch -P1 -p2
-%patch -P2 -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
-%pom_xpath_remove "pom:profiles/pom:profile/pom:dependencies/pom:dependency[pom:artifactId='tools']/pom:systemPath" install
-%pom_xpath_remove "pom:profiles/pom:profile/pom:dependencies/pom:dependency[pom:artifactId='tools']/pom:scope" contrib/bmunit
-%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_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
-
-# source/target 1.6 is not supported by 17; default is now 1.8
-%pom_xpath_remove "pom:build/pom:plugins/pom:plugin[pom:artifactId='maven-compiler-plugin']/pom:configuration/pom:source" pom.xml
-%pom_xpath_remove "pom:build/pom:plugins/pom:plugin[pom:artifactId='maven-compiler-plugin']/pom:configuration/pom:target" pom.xml
-
-# Don't build download, docs modules
-%pom_disable_module download
-
-
-# Don't use javadoc plugin, use XMvn for javadocs
-%pom_remove_plugin -r :maven-javadoc-plugin
-%pom_remove_plugin -r :central-publishing-maven-plugin
-%pom_remove_dep 'org.apache.maven:maven-project' contrib/rulecheck-maven-plugin
-%pom_xpath_remove 'pom:execution[pom:id="make-javadoc-assembly"]' byteman
-
-# Put byteman-rulecheck-maven-plugin into a separate package
-%mvn_package ":byteman-rulecheck-maven-plugin" rulecheck-maven-plugin
-
-# CNFE being thrown without this for bmunit5 in rawhide and with tests enabled
-%pom_add_dep "org.apache.commons:commons-lang3" contrib/bmunit5
-# Put byteman-bmunit/byteman-dtest into a separate packages since they
-# runtime require junit
-%mvn_package ":byteman-bmunit" bmunit
-%mvn_package ":byteman-dtest" dtest
%build
-export JAVA_HOME=/usr/lib/jvm/java-openjdk
-# Use --xmvn-javadoc so as to avoid maven-javadoc-plugin issue
-# (fixed in 3.1.0, fedora has 3.0.1):
-# See https://issues.apache.org/jira/browse/MJAVADOC-555
-# https://bugs.openjdk.java.net/browse/JDK-8212233
-%mvn_build --xmvn-javadoc -f
+%mvn_build
%install
-%mvn_install
-
install -d -m 755 $RPM_BUILD_ROOT%{_bindir}
+install -d -m 755 $RPM_BUILD_ROOT%{_javadir}/%{name}
+install -d -m 755 $RPM_BUILD_ROOT%{_mavenpomdir}
install -d -m 755 $RPM_BUILD_ROOT%{homedir}
install -d -m 755 $RPM_BUILD_ROOT%{homedir}/lib
@@ -184,42 +97,84 @@ done
chmod 755 $RPM_BUILD_ROOT%{_bindir}/*
+for m in install sample submit; do
+ # JAR
+ install -pm 644 ${m}/target/%{name}-${m}-%{version}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/%{name}-${m}.jar
+ # POM
+ install -pm 644 ${m}/pom.xml $RPM_BUILD_ROOT%{_mavenpomdir}/JPP.%{name}-%{name}-${m}.pom
+ # DEPMAP
+ %add_maven_depmap JPP.%{name}-%{name}-${m}.pom %{name}/%{name}-${m}.jar
+done
+
+# Contrib
+for m in bmunit dtest; do
+ # JAR
+ install -pm 644 contrib/${m}/target/%{name}-${m}-%{version}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/%{name}-${m}.jar
+ # POM
+ install -pm 644 contrib/${m}/pom.xml $RPM_BUILD_ROOT%{_mavenpomdir}/JPP.%{name}-%{name}-${m}.pom
+ # DEPMAP
+ %add_maven_depmap JPP.%{name}-%{name}-${m}.pom %{name}/%{name}-${m}.jar
+done
+
+# JAR
+install -pm 644 agent/target/%{name}-%{version}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/%{name}.jar
+# POM
+install -pm 644 agent/pom.xml $RPM_BUILD_ROOT%{_mavenpomdir}/JPP.%{name}-%{name}.pom
+# DEPMAP
+%add_maven_depmap JPP.%{name}-%{name}.pom %{name}/%{name}.jar
+
+# APIDOCS
+install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir}/%{name}
+cp -rp target/site/apidocs/* $RPM_BUILD_ROOT%{_javadocdir}/%{name}
+
for m in bmunit dtest install sample submit; do
ln -s %{_javadir}/byteman/byteman-${m}.jar $RPM_BUILD_ROOT%{homedir}/lib/byteman-${m}.jar
done
-# Create contrib/jboss-module-system structure since bminstall expects it
-# for the -m option.
-install -d -m 755 $RPM_BUILD_ROOT%{homedir}/contrib
-install -d -m 755 $RPM_BUILD_ROOT%{homedir}/contrib/jboss-modules-system
-ln -s %{_javadir}/byteman/byteman-jboss-modules-plugin.jar $RPM_BUILD_ROOT%{homedir}/contrib/jboss-modules-system/byteman-jboss-modules-plugin.jar
-
ln -s %{_javadir}/byteman/byteman.jar $RPM_BUILD_ROOT%{homedir}/lib/byteman.jar
-%files -f .mfiles
-%{homedir}/lib/byteman.jar
-%{homedir}/lib/byteman-install.jar
-%{homedir}/lib/byteman-sample.jar
-%{homedir}/lib/byteman-submit.jar
-%{homedir}/contrib/*
-%{bindir}/*
+%files
+%{_mavenpomdir}/*
+%{_mavendepmapfragdir}/*
+%{homedir}/*
%{_bindir}/*
-%doc README
-%license docs/copyright.txt
+%{_javadir}/*
+%doc README docs/ProgrammersGuide.pdf docs/copyright.txt
-%files javadoc -f .mfiles-javadoc
-%license docs/copyright.txt
-
-%files rulecheck-maven-plugin -f .mfiles-rulecheck-maven-plugin
-%license docs/copyright.txt
-
-%files bmunit -f .mfiles-bmunit
-%license docs/copyright.txt
-%{homedir}/lib/byteman-bmunit.jar
-
-%files dtest -f .mfiles-dtest
-%license docs/copyright.txt
-%{homedir}/lib/byteman-dtest.jar
+%files javadoc
+%{_javadocdir}/%{name}
+%doc docs/copyright.txt
%changelog
-%autochangelog
+* Thu Apr 25 2013 Marek Goldmann - 2.0.4-3
+- Fixes to the launch scripts
+
+* Wed Apr 24 2013 Marek Goldmann - 2.0.4-2
+- Added bmsubmit, bminstall and bmjava scripts, RHBZ#951560
+
+* Thu Feb 21 2013 Marek Goldmann - 2.0.4-1
+- Upstream release 2.0.4
+- Switched to Maven
+- Bundling java_cup and objectweb-asm (fpc#226)
+
+* Wed Feb 13 2013 Fedora Release Engineering - 1.5.2-6
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
+
+* Wed Jul 18 2012 Fedora Release Engineering - 1.5.2-5
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
+
+* Thu Jan 12 2012 Fedora Release Engineering - 1.5.2-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
+
+* Tue Sep 20 2011 Marek Goldmann 1.5.2-3
+- Removed binary files from src.rpm
+
+* Mon Sep 19 2011 Marek Goldmann 1.5.2-2
+- Cleaned spec file
+
+* Wed Jul 27 2011 Marek Goldmann 1.5.2-1
+- Upstream release: 1.5.2
+
+* Thu Jul 21 2011 Marek Goldmann 1.5.1-1
+- Initial packaging
+
diff --git a/remove_submit_integration_test_verification.patch b/remove_submit_integration_test_verification.patch
deleted file mode 100644
index dae9507..0000000
--- a/remove_submit_integration_test_verification.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-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 1a074db..bae5cc1 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (4.0.26.tar.gz) = 06c8bf688d237d8dbac1e4558a8e2916f1212d2746d81a64e8bc44f9074f5b1c205bb98ac3a8e835f0c8b225df665e40c93c8b60ff5ff77f6ce8272c25679d76
+75bf4c1694817939f2f6f1e7d9df8a37 byteman-2.0.4.tar.xz
diff --git a/testng7_port.patch b/testng7_port.patch
deleted file mode 100644
index 16e43e9..0000000
--- a/testng7_port.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff --git a/byteman-4.0.15/contrib/bmunit/src/org/jboss/byteman/contrib/bmunit/BMNGListener.java b/byteman-4.0.15/contrib/bmunit/src/org/jboss/byteman/contrib/bmunit/BMNGListener.java
-index 2f784bc..9e4fec9 100644
---- a/byteman-4.0.15/contrib/bmunit/src/org/jboss/byteman/contrib/bmunit/BMNGListener.java
-+++ b/byteman-4.0.15/contrib/bmunit/src/org/jboss/byteman/contrib/bmunit/BMNGListener.java
-@@ -61,7 +61,7 @@ public class BMNGListener extends BMNGAbstractRunner implements IInvokedMethodLi
- }
-
- public void beforeInvocation(IInvokedMethod method, ITestResult testResult) {
-- Method javaMethod = method.getTestMethod().getMethod();
-+ Method javaMethod = method.getTestMethod().getConstructorOrMethod().getMethod();
- Class clazz = javaMethod.getDeclaringClass();
- if (!checkBMNGListener(clazz)) {
- return;
-@@ -81,7 +81,7 @@ public class BMNGListener extends BMNGAbstractRunner implements IInvokedMethodLi
- }
-
- public void afterInvocation(IInvokedMethod method, ITestResult testResult) {
-- Method javaMethod = method.getTestMethod().getMethod();
-+ Method javaMethod = method.getTestMethod().getConstructorOrMethod().getMethod();
- Class clazz = javaMethod.getDeclaringClass();
- if (!checkBMNGListener(clazz)) {
- return;
diff --git a/tests/smoke/test-smoke.sh b/tests/smoke/test-smoke.sh
deleted file mode 100644
index 24e4322..0000000
--- a/tests/smoke/test-smoke.sh
+++ /dev/null
@@ -1,147 +0,0 @@
-#!/bin/bash
-#
-set -e
-
-##############################################################
-#
-# Test 1: bmjava
-#
-##############################################################
-test1_dir=$(mktemp -d)
-pushd $test1_dir
-#####
-## The Java program under test (via bmjava)
-#####
-cat > HelloWait.java < trace1.btm < out1.log
-grep -q "argument was: World!" out1.log
-grep -q "Hello bar" out1.log
-output=$(tail -n1 out1.log)
-if [ ! "${output}_" == "Hello bar_" ]; then
- echo Test FAILED!
- exit 1
-fi
-
-echo Test 1 PASSED!
-
-popd
-rm -rf $test1_dir
-
-
-##############################################################
-#
-# Test 2: bminstall + bmsubmit
-#
-##############################################################
-test2_dir=$(mktemp -d)
-pushd $test2_dir
-#####
-## The Java program under test
-#####
-cat > HelloWait.java < out2.log 2>&1 &
-pid_of_java=$$
-echo "Forked java process with pid $pid_of_java"
-sleep 2
-#####
-## The byteman rule(s) (used via bmsubmit)
-#####
-cat > change_arg.btm < throw_excptn.btm <