1 |
# Copyright (c) 2000-2005, JPackage Project |
2 |
# All rights reserved. |
3 |
# |
4 |
# Redistribution and use in source and binary forms, with or without |
5 |
# modification, are permitted provided that the following conditions |
6 |
# are met: |
7 |
# |
8 |
# 1. Redistributions of source code must retain the above copyright |
9 |
# notice, this list of conditions and the following disclaimer. |
10 |
# 2. Redistributions in binary form must reproduce the above copyright |
11 |
# notice, this list of conditions and the following disclaimer in the |
12 |
# documentation and/or other materials provided with the |
13 |
# distribution. |
14 |
# 3. Neither the name of the JPackage Project nor the names of its |
15 |
# contributors may be used to endorse or promote products derived |
16 |
# from this software without specific prior written permission. |
17 |
# |
18 |
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
19 |
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
20 |
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
21 |
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
22 |
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
23 |
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
24 |
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
25 |
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
26 |
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
27 |
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
28 |
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
29 |
# |
30 |
|
31 |
%define section devel |
32 |
|
33 |
Summary: AOP for Java |
34 |
Name: aspectwerkz |
35 |
Version: 2.0 |
36 |
Release: %mkrel 2.0.1 |
37 |
Epoch: 0 |
38 |
License: BSD-style License |
39 |
URL: http://aspectwerkz.codehaus.org/ |
40 |
Group: Development/Java |
41 |
Source0: http://dist.codehaus.org/aspectwerkz/distributions/aspectwerkz-2.0.zip |
42 |
Patch0: aspectwerkz2-build_xml.patch |
43 |
Patch1: aspectwerkz2-script.patch |
44 |
BuildRequires: jpackage-utils >= 0:1.6 |
45 |
BuildRequires: java-1.7.0-icedtea |
46 |
BuildRequires: junit |
47 |
BuildRequires: ant >= 0:1.6 |
48 |
BuildRequires: java-devel |
49 |
BuildRequires: asm |
50 |
BuildRequires: concurrent |
51 |
BuildRequires: dom4j |
52 |
BuildRequires: geronimo-j2ee-management-1.0-api |
53 |
BuildRequires: jarjar |
54 |
BuildRequires: javassist |
55 |
BuildRequires: jrexx |
56 |
BuildRequires: piccolo |
57 |
BuildRequires: qdox |
58 |
BuildRequires: gnu.trove |
59 |
BuildRequires: junitperf |
60 |
Requires: concurrent |
61 |
Requires: dom4j |
62 |
Requires: javassist |
63 |
Requires: jrexx |
64 |
Requires: piccolo |
65 |
Requires: qdox |
66 |
Requires: gnu.trove |
67 |
BuildArch: noarch |
68 |
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot |
69 |
|
70 |
%description |
71 |
AspectWerkz is a dynamic, lightweight and |
72 |
high-performant AOP/AOSD framework for Java. |
73 |
AspectWerkz utilizes runtime bytecode modification |
74 |
to weave your classes at runtime. It hooks in and |
75 |
weaves classes loaded by any class loader except |
76 |
the bootstrap class loader. It has a rich join |
77 |
point model. Aspects, advices and introductions |
78 |
are written in plain Java and your target classes |
79 |
can be regular POJOs. You have the possibility to |
80 |
add, remove and re-structure advices as well as |
81 |
swapping the implementation of your introductions at |
82 |
runtime. Your aspects can be defined using either an |
83 |
XML definition file or using Runtime Attributes. |
84 |
|
85 |
|
86 |
%package javadoc |
87 |
Summary: Javadoc for %{name} |
88 |
Group: Development/Java |
89 |
|
90 |
%description javadoc |
91 |
%{summary}. |
92 |
|
93 |
%package manual |
94 |
Summary: Documents for %{name} |
95 |
Group: Development/Java |
96 |
|
97 |
%description manual |
98 |
%{summary}. |
99 |
|
100 |
%package demo |
101 |
Summary: Samples for %{name} |
102 |
Group: Development/Java |
103 |
|
104 |
%description demo |
105 |
%{summary}. |
106 |
|
107 |
%prep |
108 |
%setup -q -n %{name}-%{version} |
109 |
%remove_java_binaries |
110 |
chmod +x bin/aspectwerkz |
111 |
|
112 |
%patch0 -b .sav |
113 |
%patch1 -b .sav |
114 |
|
115 |
# FIXME Remove the BEA JRockit specific code or it will only build on BEA JDK |
116 |
# org/codehaus/aspectwerkz/extension/jrockit/JRockitPreProcessor.class |
117 |
rm -fr src/extensions/org/codehaus/aspectwerkz/extension/jrockit |
118 |
|
119 |
%build |
120 |
export ASPECTWERKZ_HOME=$RPM_BUILD_DIR/%{name}-%{version} |
121 |
build-jar-repository -s -p lib \ |
122 |
jarjar \ |
123 |
asm/asm \ |
124 |
asm/asm-attrs \ |
125 |
asm/asm-util \ |
126 |
dom4j \ |
127 |
gnu.trove \ |
128 |
concurrent \ |
129 |
j2ee-management \ |
130 |
junit \ |
131 |
jrexx \ |
132 |
javassist \ |
133 |
qdox \ |
134 |
piccolo \ |
135 |
junitperf \ |
136 |
|
137 |
export JAVA_HOME=%{_jvmdir}/java-icedtea |
138 |
ant test cleandist |
139 |
|
140 |
%install |
141 |
rm -rf $RPM_BUILD_ROOT |
142 |
|
143 |
# jars |
144 |
mkdir -p $RPM_BUILD_ROOT%{_javadir} |
145 |
cp -p target/%{name}-%{version}.jar \ |
146 |
$RPM_BUILD_ROOT%{_javadir}/%{name}-%{version}.jar |
147 |
cp -p target/%{name}-core-%{version}.jar \ |
148 |
$RPM_BUILD_ROOT%{_javadir}/%{name}-core-%{version}.jar |
149 |
cp -p target/%{name}-extensions-%{version}.jar \ |
150 |
$RPM_BUILD_ROOT%{_javadir}/%{name}-extensions-%{version}.jar |
151 |
cp -p target/%{name}-jdk14-%{version}.jar \ |
152 |
$RPM_BUILD_ROOT%{_javadir}/%{name}-jdk14-%{version}.jar |
153 |
cp -p target/%{name}-nodeps-%{version}.jar \ |
154 |
$RPM_BUILD_ROOT%{_javadir}/%{name}-nodeps-%{version}.jar |
155 |
cp -p target/%{name}-nodeps-jdk14-%{version}.jar \ |
156 |
$RPM_BUILD_ROOT%{_javadir}/%{name}-nodeps-jdk14-%{version}.jar |
157 |
(cd $RPM_BUILD_ROOT%{_javadir} && for jar in *-%{version}.jar; do ln -sf ${jar} `echo $jar| sed "s|-%{version}||g"`; done) |
158 |
mkdir -p $RPM_BUILD_ROOT%{_bindir} |
159 |
cp -p bin/aspectwerkz $RPM_BUILD_ROOT%{_bindir} |
160 |
|
161 |
|
162 |
# javadoc |
163 |
mkdir -p $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version} |
164 |
cp -pr docs/apidocs/* $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version} |
165 |
ln -s %{name}-%{version} $RPM_BUILD_ROOT%{_javadocdir}/%{name} |
166 |
rm -rf docs/apidocs |
167 |
|
168 |
# demo |
169 |
mkdir -p $RPM_BUILD_ROOT%{_datadir}/%{name}-%{version}/src |
170 |
mkdir -p $RPM_BUILD_ROOT%{_datadir}/%{name}-%{version}/classes |
171 |
mkdir -p $RPM_BUILD_ROOT%{_datadir}/%{name}-%{version}/bin |
172 |
# FIXME Can only build samples with a JDK 5 |
173 |
#cp -pr target/samples-classes/* $RPM_BUILD_ROOT%{_datadir}/%{name}-%{version}/classes |
174 |
cp -pr src/samples/* $RPM_BUILD_ROOT%{_datadir}/%{name}-%{version}/src |
175 |
|
176 |
# manual |
177 |
mkdir -p $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version} |
178 |
cp -pr docs/* $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version} |
179 |
cp -p LICENSE.txt $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version} |
180 |
|
181 |
%clean |
182 |
rm -rf $RPM_BUILD_ROOT |
183 |
|
184 |
%post javadoc |
185 |
rm -f %{_javadocdir}/%{name} |
186 |
ln -s %{name}-%{version} %{_javadocdir}/%{name} |
187 |
|
188 |
%postun javadoc |
189 |
if [ "$1" = "0" ]; then |
190 |
rm -f %{_javadocdir}/%{name} |
191 |
fi |
192 |
|
193 |
%files |
194 |
%defattr(0644,root,root,0755) |
195 |
%doc %{_docdir}/%{name}-%{version}/LICENSE.txt |
196 |
%{_javadir}/*.jar |
197 |
%attr(755, root, root) %{_bindir}/aspectwerkz |
198 |
|
199 |
%files javadoc |
200 |
%defattr(0644,root,root,0755) |
201 |
%doc %{_javadocdir}/%{name}-%{version} |
202 |
%doc %{_javadocdir}/%{name} |
203 |
|
204 |
%files manual |
205 |
%defattr(0644,root,root,0755) |
206 |
%doc %{_docdir}/%{name}-%{version} |
207 |
|
208 |
%files demo |
209 |
%defattr(0644,root,root,0755) |
210 |
%{_datadir}/%{name}-%{version} |
211 |
|
212 |
|