%global __requires_exclude %{?__requires_exclude:%__requires_exclude|}^osgi\\(org\\.sonatype\\.sisu\\.guava\\)$
Name: sisu
Version: 2.3.0
Release: 7%{?dist}
Summary: Sonatype dependency injection framework
Group: Development/Libraries
License: ASL 2.0 and EPL and MIT
URL: http://github.com/sonatype/sisu
# git clone git://github.com/sonatype/%{name} ${name}-%{version}
# cd %{name}-%{version}
# git checkout %{name}-%{version}
# find ./ -name "*.jar" -delete
# find ./ -name "*.class" -delete
# cd ..
# tar czvf %{name}-%{version}.tar.gz %{name}-%{version}
Source0: %{name}-%{version}.tar.gz
BuildArch: noarch
BuildRequires: java-devel
BuildRequires: jpackage-utils
BuildRequires: maven-local >= 0.11.1
BuildRequires: animal-sniffer
BuildRequires: aopalliance
BuildRequires: atinject
BuildRequires: cdi-api
BuildRequires: felix-framework
BuildRequires: geronimo-specs
BuildRequires: google-guice
BuildRequires: junit
BuildRequires: plexus-classworlds
BuildRequires: plexus-containers-component-annotations
BuildRequires: plexus-utils
BuildRequires: geronimo-parent-poms
BuildRequires: sisu
BuildRequires: testng
BuildRequires: weld-parent
Requires: %{name}-bean = %{version}-%{release}
Requires: %{name}-bean-binders = %{version}-%{release}
Requires: %{name}-bean-containers = %{version}-%{release}
Requires: %{name}-bean-converters = %{version}-%{release}
Requires: %{name}-bean-inject = %{version}-%{release}
Requires: %{name}-bean-locators = %{version}-%{release}
Requires: %{name}-bean-reflect = %{version}-%{release}
Requires: %{name}-bean-scanners = %{version}-%{release}
Requires: %{name}-containers = %{version}-%{release}
Requires: %{name}-inject = %{version}-%{release}
Requires: %{name}-inject-bean = %{version}-%{release}
Requires: %{name}-inject-plexus = %{version}-%{release}
Requires: %{name}-osgi-registry = %{version}-%{release}
Requires: %{name}-parent = %{version}-%{release}
Requires: %{name}-plexus = %{version}-%{release}
Requires: %{name}-plexus-binders = %{version}-%{release}
Requires: %{name}-plexus-converters = %{version}-%{release}
Requires: %{name}-plexus-lifecycles = %{version}-%{release}
Requires: %{name}-plexus-locators = %{version}-%{release}
Requires: %{name}-plexus-metadata = %{version}-%{release}
Requires: %{name}-plexus-scanners = %{version}-%{release}
Requires: %{name}-plexus-shim = %{version}-%{release}
Requires: %{name}-registries = %{version}-%{release}
Requires: %{name}-spi-registry = %{version}-%{release}
%description
Java dependency injection framework with backward support for plexus and bean
style dependency injection.
%package parent
Summary: Sisu parent POM
%description parent
This package contains %{summary}.
%package containers
Summary: Sisu containers POM
%description containers
This package contains %{summary}.
%package bean
Summary: Sisu bean POM
%description bean
This package contains %{summary}.
%package plexus
Summary: Sisu Plexus POM
%description plexus
This package contains %{summary}.
%package registries
Summary: Sisu registries POM
%description registries
This package contains %{summary}.
%package inject
Summary: Sisu inject POM
%description inject
This package contains %{summary}.
%package bean-binders
Summary: Guice Bean Binders module for Sisu
%description bean-binders
This package contains %{summary}.
%package bean-containers
Summary: Guice Bean Containers module for Sisu
%description bean-containers
This package contains %{summary}.
%package bean-converters
Summary: Guice Bean Converters module for Sisu
%description bean-converters
This package contains %{summary}.
%package bean-inject
Summary: Guice Bean Inject module for Sisu
%description bean-inject
This package contains %{summary}.
%package bean-locators
Summary: Guice Bean Locators module for Sisu
%description bean-locators
This package contains %{summary}.
%package bean-reflect
Summary: Guice Bean Reflect module for Sisu
%description bean-reflect
This package contains %{summary}.
%package bean-scanners
Summary: Guice Bean Scanners module for Sisu
%description bean-scanners
This package contains %{summary}.
%package plexus-binders
Summary: Guice Plexus Binders module for Sisu
%description plexus-binders
This package contains %{summary}.
%package plexus-converters
Summary: Guice Plexus Converters module for Sisu
%description plexus-converters
This package contains %{summary}.
%package plexus-lifecycles
Summary: Guice Plexus Lifecycles module for Sisu
%description plexus-lifecycles
This package contains %{summary}.
%package plexus-locators
Summary: Guice Plexus Locators module for Sisu
%description plexus-locators
This package contains %{summary}.
%package plexus-metadata
Summary: Guice Plexus Metadata module for Sisu
%description plexus-metadata
This package contains %{summary}.
%package plexus-scanners
Summary: Guice Plexus Scanners module for Sisu
%description plexus-scanners
This package contains %{summary}.
%package plexus-shim
Summary: Guice Plexus Shim module for Sisu
%description plexus-shim
This package contains %{summary}.
%package inject-bean
Summary: Bean Inject bundle for Sisu
%description inject-bean
This package contains %{summary}.
%package inject-plexus
Summary: Plexus Inject bundle for Sisu
%description inject-plexus
This package contains %{summary}.
%package osgi-registry
Summary: OSGi registry for Sisu
%description osgi-registry
This package contains %{summary}.
%package spi-registry
Summary: SPI registry for Sisu
%description spi-registry
This package contains %{summary}.
%package javadoc
Summary: API documentation for Sisu
Group: Documentation
%description javadoc
This package contains %{summary}.
%prep
%setup -q
# Animal sniffer is only causing problems
%pom_remove_plugin :animal-sniffer-maven-plugin
# Don't generate auto-requires for optional dependencies
sed -i "s|true|provided|" \
$(grep -l "" $(find sisu-inject -name pom.xml))
# Remove bundled objectweb-asm library
rm -rf ./sisu-inject/containers/guice-bean/guice-bean-scanners/src/main/java/org/sonatype/guice/bean/scanners/asm
%pom_add_dep asm:asm sisu-inject/containers/guice-bean/guice-bean-scanners
# sisu-inject-bean bundles classes from other modules, so it also needs asm
%pom_add_dep asm:asm sisu-inject/containers/guice-bean/sisu-inject-bean
# Fix namespace of imported asm classes
sed -i 's/org.sonatype.guice.bean.scanners.asm/org.objectweb.asm/g' \
sisu-inject/containers/guice-plexus/guice-plexus-scanners/src/{main,test}/java/org/sonatype/guice/plexus/scanners/*.java \
sisu-inject/containers/guice-bean/guice-bean-scanners/src/{main,test}/java/org/sonatype/guice/bean/scanners/*.java \
# Fix plexus bundling
sed -i -e '/provide these APIs as a convenience/,+2d' \
sisu-inject/containers/guice-bean/sisu-inject-bean/pom.xml
%pom_add_dep javax.inject:javax.inject sisu-inject/containers/guice-bean/sisu-inject-bean
%pom_add_dep javax.enterprise:cdi-api sisu-inject/containers/guice-bean/sisu-inject-bean
# add backward compatible location
cp sisu-inject/containers/guice-plexus/guice-plexus-lifecycles/src/main/java/org/sonatype/guice/plexus/lifecycles/*java \
sisu-inject/containers/guice-plexus/guice-plexus-lifecycles/src/main/java/org/codehaus/plexus/
sed -i 's/org.sonatype.guice.plexus.lifecycles/org.codehaus.plexus/' \
sisu-inject/containers/guice-plexus/guice-plexus-lifecycles/src/main/java/org/codehaus/plexus/*java
# Dependency not available
%pom_disable_module sisu-eclipse-registry sisu-inject/registries
%pom_remove_plugin :maven-surefire-plugin sisu-inject/containers/guice-bean/guice-bean-containers
%pom_remove_plugin :maven-clean-plugin sisu-inject/containers/guice-plexus/guice-plexus-binders
%pom_remove_plugin :maven-dependency-plugin sisu-inject/containers/guice-plexus/guice-plexus-binders
%build
%mvn_package ":{sisu,guice}-{*}" @2
%mvn_build -s -f
%install
%mvn_install
%files
%doc LICENSE-ASL.txt LICENSE-EPL.txt
%dir %{_javadir}/%{name}
%files parent -f .mfiles-parent
%files containers -f .mfiles-containers
%files bean -f .mfiles-bean
%files plexus -f .mfiles-plexus
%files registries -f .mfiles-registries
%files inject -f .mfiles-inject
%files bean-binders -f .mfiles-bean-binders
%files bean-containers -f .mfiles-bean-containers
%files bean-converters -f .mfiles-bean-converters
%files bean-inject -f .mfiles-bean-inject
%files bean-locators -f .mfiles-bean-locators
%files bean-reflect -f .mfiles-bean-reflect
%files bean-scanners -f .mfiles-bean-scanners
%files plexus-binders -f .mfiles-plexus-binders
%files plexus-converters -f .mfiles-plexus-converters
%files plexus-lifecycles -f .mfiles-plexus-lifecycles
%files plexus-locators -f .mfiles-plexus-locators
%files plexus-metadata -f .mfiles-plexus-metadata
%files plexus-scanners -f .mfiles-plexus-scanners
%files plexus-shim -f .mfiles-plexus-shim
%files inject-bean -f .mfiles-inject-bean
%files inject-plexus -f .mfiles-inject-plexus
%files osgi-registry -f .mfiles-osgi-registry
%files spi-registry -f .mfiles-spi-registry
%files javadoc -f .mfiles-javadoc
%doc LICENSE-ASL.txt LICENSE-EPL.txt
%changelog
* Thu Mar 14 2013 Michal Srb - 2.3.0-7
- sisu-inject-bean: add dependency on asm
- Fix dependencies on javax.inject and javax.enterprise.inject
- Remove bundled JARs and .class files from tarball
* Thu Feb 7 2013 Mikolaj Izdebski - 2.3.0-6
- Add ASM dependency only to a single module, not all of them
- Disable animal-sniffer plugin
- Don't generate auto-requires for optional dependencies
* Wed Feb 06 2013 Tomas Radej - 2.3.0-5
- Added BR on animal-sniffer
* Tue Feb 05 2013 Tomas Radej - 2.3.0-4
- Split into subpackages
- Build with new macros
- Unbundled objectweb-asm
* Wed Dec 5 2012 Mikolaj Izdebski - 2.3.0-3
- Fix OSGi __requires_exclude
* Wed Dec 5 2012 Mikolaj Izdebski - 2.3.0-2
- Disable OSGi auto-requires: org.sonatype.sisu.guava
* Mon Dec 3 2012 Mikolaj Izdebski - 2.3.0-1
- Update to upstream version 2.3.0
* Tue Jul 24 2012 Mikolaj Izdebski - 2.2.3-6
- Convert patches to POM macros
* Mon Jul 23 2012 Mikolaj Izdebski - 2.2.3-5
- Fix license tag
* Sat Jul 21 2012 Fedora Release Engineering - 2.2.3-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
* Sat Jan 14 2012 Fedora Release Engineering - 2.2.3-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
* Fri Aug 19 2011 Stanislav Ochotnicky - 2.2.3-2
- Add backward compatible package path for lifecycles
- Remove temporary BRs/Rs
* Thu Jun 23 2011 Stanislav Ochotnicky - 2.2.3-1
- Update to latest upstream 2.2.3 (#683795)
- Add forge-parent to Requires
- Rework spec to be more simple, update patches
* Tue Mar 1 2011 Stanislav Ochotnicky - 2.1.1-2
- Add atinject into poms as dependency
* Mon Feb 28 2011 Stanislav Ochotnicky - 2.1.1-1
- Update to 2.1.1
- Update patch
- Disable guice-eclipse for now
* Wed Feb 09 2011 Fedora Release Engineering - 1.4.3.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
* Wed Feb 2 2011 Stanislav Ochotnicky - 1.4.3.2-1
- Update to latest upstream version
- Versionless jars & javadocs
* Mon Oct 18 2010 Stanislav Ochotnicky - 1.4.2-2
- Add felix-framework BR
* Thu Oct 14 2010 Stanislav Ochotnicky - 1.4.2-1
- Initial version of the package