5 Star 0 Fork 8

src-openEuler / byteman

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
byteman.spec 6.33 KB
一键复制 编辑 原始数据 按行查看 历史
maminjie 提交于 2021-04-16 16:07 . Move the test to the %check stage
Name: byteman
Version: 4.0.4
Release: 6
Summary: Injection of track and test into Java programs
License: LGPLv2+
URL: https://byteman.jboss.org/
Source0: https://github.com/bytemanproject/byteman/archive/%{version}.tar.gz
BuildArch: noarch
BuildRequires: java-11-openjdk-devel maven-local maven-shade-plugin
BuildRequires: maven-source-plugin maven-plugin-plugin maven-plugin-bundle
BuildRequires: maven-assembly-plugin maven-failsafe-plugin maven-jar-plugin
BuildRequires: maven-surefire-plugin maven-surefire-provider-testng
BuildRequires: maven-surefire-provider-junit maven-verifier-plugin
BuildRequires: maven-dependency-plugin java_cup jarjar objectweb-asm junit testng
BuildRequires: mvn(org.jboss.modules:jboss-modules)
Provides: bundled(objectweb-asm) = 6.2 bundled(java_cup) = 1:0.11b-8
Requires: java-headless >= 1:1.8
Patch0000: remove_submit_integration_test_verification.patch
Patch0001: 0001-update-ASM-to-eat-jdk12-bytecode.patch
%description
Byteman is a tool which makes it easy to trace, monitor and test the behaviour \
of Java application and JDK runtime code. It injects Java code into your application \
methods or into Java runtime methods without the need for you to recompile, repackage \
or even redeploy your application. Injection can be performed at JVM startup or after \
startup while the application is still running. Injected code can access any of your data \
and call any application methods, including where they are private. You can inject code \
almost anywhere you want and there is no need to prepare the original source code in advance.
%package help
Summary: API help documentation for byteman
Provides: byteman-javadoc = %{version}-%{release}
Obsoletes: byteman-javadoc < %{version}-%{release}
%description help
This package contains the API help documentation for byteman.
%package rulecheck-maven-plugin
Summary: Plugin for checking rules
%description rulecheck-maven-plugin
This package contains the rule check maven plugin.
%package bmunit
Summary: Integration of TestNG and JUnit integration
%description bmunit
The Byteman BMUnit package integrates Byteman with JUnit and TestNG making it easy for you \
to use Byteman to extend the range of your unit and integration tests.
%package dtest
Summary: Remote instrumented testing.
%description dtest
This package provides The Byteman dtest jar, which 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}
for p in agent/pom.xml tests/pom.xml;
do
for s in "s|net.sf.squirrel-sql.thirdparty-non-maven|java_cup|" "s|java-cup|java_cup|"; do
sed -i ${s} ${p}
done
done
for id in submit.TestSubmit submit.TestSubmit.compiled; do
%pom_xpath_remove "pom:build/pom:plugins/pom:plugin[pom:artifactId='maven-failsafe-plugin']/pom:executions/pom:execution[pom:id='${id}']" agent
done
%patch0000 -p2
%patch0001 -p1
for id in submit.TestSubmit submit.TestSubmit.compiled; do
%pom_xpath_remove "pom:build/pom:plugins/pom:plugin[pom:artifactId='maven-failsafe-plugin']/pom:executions/pom:execution[pom:id='${id}']" tests
done
for p in scope systemPath; do
%pom_xpath_remove "pom:profiles/pom:profile/pom:dependencies/pom:dependency[pom:artifactId='tools']/pom:${p}" install
done
for p in "pom:profiles/pom:profile/pom:dependencies/pom:dependency[pom:artifactId='tools']/pom:scope" \
"pom:profiles/pom:profile/pom:dependencies/pom:dependency[pom:artifactId='tools']/pom:systemPath" \
"pom:build/pom:plugins/pom:plugin[pom:artifactId='maven-surefire-plugin']/pom:executions";
do
%pom_xpath_remove "${p}" contrib/bmunit
done
%pom_xpath_set "pom:build/pom:plugins/pom:plugin[pom:artifactId='maven-surefire-plugin']/pom:configuration" '<skip>true</skip>' contrib/bmunit
for d in download docs; do
%pom_disable_module ${d}
done
%pom_remove_plugin -r :maven-javadoc-plugin
%pom_xpath_remove 'pom:execution[pom:id="make-javadoc-assembly"]' byteman
%mvn_package ":byteman-rulecheck-maven-plugin" rulecheck-maven-plugin
%mvn_package ":byteman-bmunit" bmunit
%mvn_package ":byteman-dtest" dtest
%build
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk
%mvn_build --xmvn-javadoc --skipTests
%install
%mvn_install
mkdir -p -m 755 $RPM_BUILD_ROOT%{_bindir}
mkdir -p -m 755 $RPM_BUILD_ROOT%{_datadir}/byteman
mkdir -p -m 755 $RPM_BUILD_ROOT%{_datadir}/byteman/{lib,bin}
for f in bmsubmit bmjava bminstall bmcheck; do
install -m 755 bin/${f}.sh $RPM_BUILD_ROOT%{_datadir}/byteman/bin/${f}
cat > $RPM_BUILD_ROOT%{_bindir}/${f} << EOF
#!/bin/sh
export BYTEMAN_HOME=/usr/share/byteman
export JAVA_HOME=/usr/lib/jvm/java
\$BYTEMAN_HOME/bin/${f} \$*
EOF
done
chmod 755 $RPM_BUILD_ROOT%{_bindir}/*
for m in bmunit dtest install sample submit; do
ln -s %{_javadir}/byteman/byteman-${m}.jar $RPM_BUILD_ROOT%{_datadir}/byteman/lib/byteman-${m}.jar
done
mkdir -p -m 755 $RPM_BUILD_ROOT%{_datadir}/byteman/contrib
mkdir -p -m 755 $RPM_BUILD_ROOT%{_datadir}/byteman/contrib/jboss-modules-system
ln -s %{_javadir}/byteman/byteman-jboss-modules-plugin.jar $RPM_BUILD_ROOT%{_datadir}/byteman/contrib/jboss-modules-system/byteman-jboss-modules-plugin.jar
ln -s %{_javadir}/byteman/byteman.jar $RPM_BUILD_ROOT%{_datadir}/byteman/lib/byteman.jar
%check
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk
xmvn test --batch-mode --offline verify
%files -f .mfiles
%{_datadir}/byteman/lib/*
%exclude %{_datadir}/byteman/lib/byteman-bmunit.jar
%exclude %{_datadir}/byteman/lib/byteman-dtest.jar
%{_datadir}/byteman/contrib/*
%{_datadir}/byteman/bin/*
%{_bindir}/*
%license docs/copyright.txt
%files help -f .mfiles-javadoc
%doc README
%files rulecheck-maven-plugin -f .mfiles-rulecheck-maven-plugin
%files bmunit -f .mfiles-bmunit
%{_datadir}/byteman/lib/byteman-bmunit.jar
%files dtest -f .mfiles-dtest
%{_datadir}/byteman/lib/byteman-dtest.jar
%changelog
* Fri Apr 16 2021 maminjie <maminjie1@huawei.com> - 4.0.4-6
- Move the test to the %check stage
* Mon Sep 14 2020 huanghaitao <huanghaitao8@huawei.com> - 4.0.4-5
- update ASM to eat jdk bytecode
* Mon May 11 2020 Senlin Xia <xiasenlin1@huawei.com> - 4.0.4-4
- update openjdk and use xmvn-javadoc for maven-javadoc-plugin
* Tue Feb 25 2020 Songshuaishuai <songshuaishuai2@huawei.com> - 4.0.4-3
- Package init
1
https://gitee.com/src-openeuler/byteman.git
git@gitee.com:src-openeuler/byteman.git
src-openeuler
byteman
byteman
openEuler-22.03-LTS

搜索帮助