d0f821
%bcond_without jpa
d0f821
%bcond_without spring
d0f821
d0f821
%global short_name guice
d0f821
d0f821
Name:           google-%{short_name}
d0f821
Version:        4.1
d0f821
Release:        11%{?dist}
d0f821
Summary:        Lightweight dependency injection framework for Java 5 and above
d0f821
License:        ASL 2.0
d0f821
URL:            https://github.com/google/%{short_name}
d0f821
BuildArch:      noarch
d0f821
d0f821
# ./create-tarball.sh %%{version}
d0f821
Source0:        %{name}-%{version}.tar.xz
d0f821
Source1:        create-tarball.sh
d0f821
d0f821
BuildRequires:  maven-local
d0f821
BuildRequires:  mvn(aopalliance:aopalliance)
d0f821
BuildRequires:  mvn(cglib:cglib)
d0f821
BuildRequires:  mvn(com.google.guava:guava:19.0)
d0f821
BuildRequires:  mvn(javax.inject:javax.inject)
d0f821
BuildRequires:  mvn(javax.servlet:servlet-api)
d0f821
BuildRequires:  mvn(org.apache.felix:maven-bundle-plugin)
d0f821
BuildRequires:  mvn(org.apache.maven.plugins:maven-remote-resources-plugin)
d0f821
BuildRequires:  mvn(org.apache.maven.plugins:maven-source-plugin)
d0f821
BuildRequires:  mvn(org.ow2.asm:asm)
d0f821
BuildRequires:  mvn(org.slf4j:slf4j-api)
d0f821
BuildRequires:  mvn(org.sonatype.plugins:munge-maven-plugin)
d0f821
# xmvn-builddep misses this:
d0f821
BuildRequires:  mvn(org.apache:apache-jar-resource-bundle)
d0f821
d0f821
%if %{with jpa}
d0f821
BuildRequires:  hibernate-jpa-2.0-api
d0f821
%endif
d0f821
%if %{with spring}
d0f821
BuildRequires:  springframework-beans
d0f821
%endif
d0f821
d0f821
# Test dependencies:
d0f821
%if 0
d0f821
BuildRequires:  maven-surefire-provider-testng
d0f821
BuildRequires:  aqute-bnd
d0f821
BuildRequires:  atinject-tck
d0f821
BuildRequires:  easymock2
d0f821
BuildRequires:  felix-framework
d0f821
BuildRequires:  hibernate3-entitymanager
d0f821
BuildRequires:  mvn(org.hsqldb:hsqldb-j5)
d0f821
BuildRequires:  testng
d0f821
%endif
d0f821
d0f821
%description
d0f821
Put simply, Guice alleviates the need for factories and the use of new
d0f821
in your Java code. Think of Guice's @Inject as the new new. You will
d0f821
still need to write factories in some cases, but your code will not
d0f821
depend directly on them. Your code will be easier to change, unit test
d0f821
and reuse in other contexts.
d0f821
d0f821
Guice embraces Java's type safe nature, especially when it comes to
d0f821
features introduced in Java 5 such as generics and annotations. You
d0f821
might think of Guice as filling in missing features for core
d0f821
Java. Ideally, the language itself would provide most of the same
d0f821
features, but until such a language comes along, we have Guice.
d0f821
d0f821
Guice helps you design better APIs, and the Guice API itself sets a
d0f821
good example. Guice is not a kitchen sink. We justify each feature
d0f821
with at least three use cases. When in doubt, we leave it out. We
d0f821
build general functionality which enables you to extend Guice rather
d0f821
than adding every feature to the core framework.
d0f821
d0f821
%package -n %{short_name}-parent
d0f821
Summary:        Guice parent POM
d0f821
d0f821
%description -n %{short_name}-parent
d0f821
Guice is a lightweight dependency injection framework for Java 5
d0f821
and above. This package provides parent POM for Guice modules.
d0f821
d0f821
%package -n %{short_name}-assistedinject
d0f821
Summary:        AssistedInject extension module for Guice
d0f821
d0f821
%description -n %{short_name}-assistedinject
d0f821
Guice is a lightweight dependency injection framework for Java 5
d0f821
and above. This package provides AssistedInject module for Guice.
d0f821
d0f821
%package -n %{short_name}-extensions
d0f821
Summary:        Extensions for Guice
d0f821
d0f821
%description -n %{short_name}-extensions
d0f821
Guice is a lightweight dependency injection framework for Java 5
d0f821
and above. This package provides extensions POM for Guice.
d0f821
d0f821
%package -n %{short_name}-grapher
d0f821
Summary:        Grapher extension module for Guice
d0f821
d0f821
%description -n %{short_name}-grapher
d0f821
Guice is a lightweight dependency injection framework for Java 5
d0f821
and above. This package provides Grapher module for Guice.
d0f821
d0f821
%package -n %{short_name}-jmx
d0f821
Summary:        JMX extension module for Guice
d0f821
d0f821
%description -n %{short_name}-jmx
d0f821
Guice is a lightweight dependency injection framework for Java 5
d0f821
and above. This package provides JMX module for Guice.
d0f821
d0f821
%package -n %{short_name}-jndi
d0f821
Summary:        JNDI extension module for Guice
d0f821
d0f821
%description -n %{short_name}-jndi
d0f821
Guice is a lightweight dependency injection framework for Java 5
d0f821
and above. This package provides JNDI module for Guice.
d0f821
d0f821
%package -n %{short_name}-multibindings
d0f821
Summary:        MultiBindings extension module for Guice
d0f821
d0f821
%description -n %{short_name}-multibindings
d0f821
Guice is a lightweight dependency injection framework for Java 5
d0f821
and above. This package provides MultiBindings module for Guice.
d0f821
d0f821
%if %{with jpa}
d0f821
%package -n %{short_name}-persist
d0f821
Summary:        Persist extension module for Guice
d0f821
d0f821
%description -n %{short_name}-persist
d0f821
Guice is a lightweight dependency injection framework for Java 5
d0f821
and above. This package provides Persist module for Guice.
d0f821
%endif
d0f821
d0f821
%package -n %{short_name}-servlet
d0f821
Summary:        Servlet extension module for Guice
d0f821
d0f821
%description -n %{short_name}-servlet
d0f821
Guice is a lightweight dependency injection framework for Java 5
d0f821
and above. This package provides Servlet module for Guice.
d0f821
d0f821
%if %{with spring}
d0f821
%package -n %{short_name}-spring
d0f821
Summary:        Spring extension module for Guice
d0f821
d0f821
%description -n %{short_name}-spring
d0f821
Guice is a lightweight dependency injection framework for Java 5
d0f821
and above. This package provides Spring module for Guice.
d0f821
%endif
d0f821
d0f821
%package -n %{short_name}-testlib
d0f821
Summary:        TestLib extension module for Guice
d0f821
d0f821
%description -n %{short_name}-testlib
d0f821
Guice is a lightweight dependency injection framework for Java 5
d0f821
and above. This package provides TestLib module for Guice.
d0f821
d0f821
%package -n %{short_name}-throwingproviders
d0f821
Summary:        ThrowingProviders extension module for Guice
d0f821
d0f821
%description -n %{short_name}-throwingproviders
d0f821
Guice is a lightweight dependency injection framework for Java 5
d0f821
and above. This package provides ThrowingProviders module for Guice.
d0f821
d0f821
%package -n %{short_name}-bom
d0f821
Summary:        Bill of Materials for Guice
d0f821
d0f821
%description -n %{short_name}-bom
d0f821
Guice is a lightweight dependency injection framework for Java 5
d0f821
and above. This package provides Bill of Materials module for Guice.
d0f821
d0f821
%package javadoc
d0f821
Summary:        API documentation for Guice
d0f821
d0f821
%description javadoc
d0f821
This package provides %{summary}.
d0f821
d0f821
d0f821
%prep
d0f821
%setup -q -n %{name}-%{version}
d0f821
d0f821
# We don't have struts2 in Fedora yet.
d0f821
%pom_disable_module struts2 extensions
d0f821
# Android-specific extension
d0f821
%pom_disable_module dagger-adapter extensions
d0f821
d0f821
# Remove additional build profiles, which we don't use anyways
d0f821
# and which are only pulling additional dependencies.
d0f821
%pom_xpath_remove "pom:profile[pom:id='guice.with.jarjar']" core
d0f821
d0f821
# Fix OSGi metadata due to not using jarjar
d0f821
%pom_xpath_set "pom:instructions/pom:Import-Package" \
d0f821
  "!com.google.inject.*,*" core
d0f821
d0f821
# Animal sniffer is only causing problems. Disable it for now.
d0f821
%pom_remove_plugin :animal-sniffer-maven-plugin core
d0f821
%pom_remove_plugin :animal-sniffer-maven-plugin extensions
d0f821
d0f821
%pom_remove_plugin :maven-gpg-plugin
d0f821
d0f821
# We don't have the custom doclet used by upstream. Remove
d0f821
# maven-javadoc-plugin to generate javadocs with default style.
d0f821
%pom_remove_plugin -r :maven-javadoc-plugin
d0f821
d0f821
# remove test dependency to make sure we don't produce requires
d0f821
# see #1007498
d0f821
%pom_remove_dep :guava-testlib extensions
d0f821
%pom_xpath_remove "pom:dependency[pom:classifier[text()='tests']]" extensions
d0f821
d0f821
%pom_remove_parent
d0f821
%pom_set_parent com.google.inject:guice-parent:%{version} jdk8-tests
d0f821
d0f821
%if %{without jpa}
d0f821
%pom_disable_module persist extensions
d0f821
%endif
d0f821
%if %{without spring}
d0f821
%pom_disable_module spring extensions
d0f821
%endif
d0f821
d0f821
%pom_disable_module jdk8-tests
d0f821
d0f821
%build
d0f821
%mvn_alias "com.google.inject.extensions:" "org.sonatype.sisu.inject:"
d0f821
d0f821
%mvn_package :::no_aop: guice
d0f821
d0f821
%mvn_file  ":guice-{*}"  %{short_name}/guice-@1
d0f821
%mvn_file  ":guice" %{short_name}/%{name} %{name}
d0f821
%mvn_alias ":guice" "org.sonatype.sisu:sisu-guice"
d0f821
# Skip tests because of missing dependency guice-testlib
d0f821
%mvn_build -f -s
d0f821
d0f821
%install
d0f821
%mvn_install
d0f821
d0f821
%files -f .mfiles-guice
d0f821
%dir %{_javadir}/%{short_name}
d0f821
d0f821
%files -n %{short_name}-parent -f .mfiles-guice-parent
d0f821
%doc COPYING
d0f821
d0f821
%files -n %{short_name}-assistedinject -f .mfiles-guice-assistedinject
d0f821
%files -n %{short_name}-extensions -f .mfiles-extensions-parent
d0f821
%files -n %{short_name}-grapher -f .mfiles-guice-grapher
d0f821
%files -n %{short_name}-jmx -f .mfiles-guice-jmx
d0f821
%files -n %{short_name}-jndi -f .mfiles-guice-jndi
d0f821
%files -n %{short_name}-multibindings -f .mfiles-guice-multibindings
d0f821
%if %{with jpa}
d0f821
%files -n %{short_name}-persist -f .mfiles-guice-persist
d0f821
%endif
d0f821
%files -n %{short_name}-servlet -f .mfiles-guice-servlet
d0f821
%if %{with spring}
d0f821
%files -n %{short_name}-spring -f .mfiles-guice-spring
d0f821
%endif
d0f821
%files -n %{short_name}-testlib -f .mfiles-guice-testlib
d0f821
%files -n %{short_name}-throwingproviders -f .mfiles-guice-throwingproviders
d0f821
d0f821
%files -n %{short_name}-bom -f .mfiles-guice-bom
d0f821
d0f821
%files javadoc -f .mfiles-javadoc
d0f821
%doc COPYING
d0f821
d0f821
d0f821
%changelog
d0f821
* Wed Apr 18 2018 Mikolaj Izdebski <mizdebsk@redhat.com> - 4.1-11
d0f821
- Remove legacy Provides
d0f821
d0f821
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 4.1-10
d0f821
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
d0f821
d0f821
* Mon Feb 05 2018 Michael Simacek <msimacek@redhat.com> - 4.1-9
d0f821
- Use guava20
d0f821
d0f821
* Mon Oct 02 2017 Mat Booth <mat.booth@redhat.com> - 4.1-8
d0f821
- Fix OSGi metadata to import cglib and asm, since we are not bundling them with
d0f821
  jarjar
d0f821
d0f821
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 4.1-7
d0f821
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
d0f821
d0f821
* Fri Jun 23 2017 Mikolaj Izdebski <mizdebsk@redhat.com> - 4.1-6
d0f821
- Remove unused patches
d0f821
d0f821
* Fri Feb 24 2017 Mikolaj Izdebski <mizdebsk@redhat.com> - 4.1-5
d0f821
- Remove maven-javadoc-plugin from all POMs
d0f821
d0f821
* Thu Feb 23 2017 Mikolaj Izdebski <mizdebsk@redhat.com> - 4.1-4
d0f821
- Add missing BR on apache-resource-bundles
d0f821
d0f821
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 4.1-3
d0f821
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
d0f821
d0f821
* Wed Feb  1 2017 Mikolaj Izdebski <mizdebsk@redhat.com> - 4.1-2
d0f821
- Introduce build-conditionals for jpa and spring
d0f821
d0f821
* Thu Aug  4 2016 Mikolaj Izdebski <mizdebsk@redhat.com> - 4.1-1
d0f821
- Update to upstream version 4.1
d0f821
d0f821
* Wed Jun 29 2016 Mikolaj Izdebski <mizdebsk@redhat.com> - 4.0-6
d0f821
- Make aopalliance dependency optional
d0f821
d0f821
* Wed Jun 15 2016 Mikolaj Izdebski <mizdebsk@redhat.com> - 4.0-5
d0f821
- Regenerate build-requires
d0f821
d0f821
* Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 4.0-4
d0f821
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
d0f821
d0f821
* Tue Jan 12 2016 Mikolaj Izdebski <mizdebsk@redhat.com> - 4.0-3
d0f821
- Install BOM even when without extensions
d0f821
d0f821
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.0-2
d0f821
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
d0f821
d0f821
* Thu May 14 2015 Mikolaj Izdebski <mizdebsk@redhat.com> - 4.0-1
d0f821
- Update to upstream version 4.0
d0f821
d0f821
* Mon Apr 27 2015 Mikolaj Izdebski <mizdebsk@redhat.com> - 3.2.6-1
d0f821
- Update to upstream version 3.2.6
d0f821
d0f821
* Fri Mar 6 2015 Alexander Kurtakov <akurtako@redhat.com> 3.2.5-2
d0f821
- Drop gone tomcat-servlet-3.0-api BR, builds fine without it.
d0f821
d0f821
* Fri Jan 23 2015 Michael Simacek <msimacek@redhat.com> - 3.2.5-1
d0f821
- Update to upstream version 3.2.5
d0f821
d0f821
* Mon Sep 29 2014 Mikolaj Izdebski <mizdebsk@redhat.com> - 3.2.4-1
d0f821
- Update to upstream version 3.2.4
d0f821
d0f821
* Fri Jun  6 2014 Mikolaj Izdebski <mizdebsk@redhat.com> - 3.2.2-1
d0f821
- Update to upstream version 3.2.2
d0f821
d0f821
* Wed May 28 2014 Mikolaj Izdebski <mizdebsk@redhat.com> - 3.2.1-2
d0f821
- Rebuild to regenerate Maven auto-requires
d0f821
d0f821
* Wed Apr 16 2014 Mikolaj Izdebski <mizdebsk@redhat.com> - 3.2.1-1
d0f821
- Update to upstream version 3.2.1
d0f821
- Add testlib subpackage
d0f821
d0f821
* Tue Mar  4 2014 Mikolaj Izdebski <mizdebsk@redhat.com> - 3.1.10-3
d0f821
- Fix directory ownership
d0f821
d0f821
* Tue Mar 04 2014 Stanislav Ochotnicky <sochotnicky@redhat.com> - 3.1.10-3
d0f821
- Use Requires: java-headless rebuild (#1067528)
d0f821
d0f821
* Wed Feb 19 2014 Mikolaj Izdebski <mizdebsk@redhat.com> - 3.1.10-2
d0f821
- Fix unowned directory
d0f821
d0f821
* Tue Feb 18 2014 Mikolaj Izdebski <mizdebsk@redhat.com> - 3.1.10-1
d0f821
- Update to upstream version 3.1.10
d0f821
d0f821
* Mon Jan 20 2014 Mikolaj Izdebski <mizdebsk@redhat.com> - 3.1.9-1
d0f821
- Update to upstream version 3.1.9
d0f821
d0f821
* Mon Nov 11 2013 Mikolaj Izdebski <mizdebsk@redhat.com> - 3.1.8-1
d0f821
- Update to upstream version 3.1.8
d0f821
d0f821
* Wed Oct 23 2013 Mikolaj Izdebski <mizdebsk@redhat.com> - 3.1.3-10
d0f821
- Rebuild to regenerate broken POMs
d0f821
- Related: rhbz#1021484
d0f821
d0f821
* Fri Oct 18 2013 Mikolaj Izdebski <mizdebsk@redhat.com> - 3.1.3-9
d0f821
- Don't force generation of pom.properties
d0f821
d0f821
* Wed Sep 25 2013 Mikolaj Izdebski <mizdebsk@redhat.com> - 3.1.3-8
d0f821
- Install no_aop artifact after javapackages update
d0f821
d0f821
* Thu Sep 12 2013 Stanislav Ochotnicky <sochotnicky@redhat.com> - 3.1.3-7
d0f821
- Remove dependency on tests from runtime
d0f821
- Related: rhbz#1007498
d0f821
d0f821
* Tue Sep 10 2013 Mikolaj Izdebski <mizdebsk@redhat.com> - 3.1.3-6
d0f821
- Install no_aop artifact
d0f821
- Resolves: rhbz#1006491
d0f821
d0f821
* Wed Sep  4 2013 Mikolaj Izdebski <mizdebsk@redhat.com> - 3.1.3-5
d0f821
- Enable pom.properties
d0f821
- Resolves: rhbz#1004360
d0f821
d0f821
* Wed Aug 07 2013 Michal Srb <msrb@redhat.com> - 3.1.3-4
d0f821
- Add create-tarball.sh script to SRPM
d0f821
d0f821
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.1.3-3
d0f821
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
d0f821
d0f821
* Wed Apr 24 2013 Michal Srb <msrb@redhat.com> - 3.1.3-2
d0f821
- Revert update to 3.1.4 (uses asm4)
d0f821
d0f821
* Thu Mar 14 2013 Michal Srb <msrb@redhat.com> - 3.1.3-1
d0f821
- Update to upstream version 3.1.3
d0f821
- Remove bundled JARs from tarball
d0f821
d0f821
* Wed Feb 06 2013 Java SIG <java-devel@lists.fedoraproject.org> - 3.1.2-11
d0f821
- Update for https://fedoraproject.org/wiki/Fedora_19_Maven_Rebuild
d0f821
- Replace maven BuildRequires with maven-local
d0f821
d0f821
* Thu Jan 31 2013 Michal Srb <msrb@redhat.com> - 3.1.2-10
d0f821
- Remove all requires
d0f821
- Correct usage of xmvn's macros
d0f821
d0f821
* Mon Jan 28 2013 Michal Srb <msrb@redhat.com> - 3.1.2-9
d0f821
- Build with xmvn
d0f821
d0f821
* Fri Nov 16 2012 Mikolaj Izdebski <mizdebsk@redhat.com> - 3.1.2-8
d0f821
- Remove README
d0f821
d0f821
* Fri Nov 16 2012 Mikolaj Izdebski <mizdebsk@redhat.com> - 3.1.2-7
d0f821
- Repackage tarball
d0f821
d0f821
* Fri Nov  9 2012 Mikolaj Izdebski <mizdebsk@redhat.com> - 3.1.2-6
d0f821
- Don't try to build extension modules unless they are needed
d0f821
d0f821
* Fri Nov  9 2012 Mikolaj Izdebski <mizdebsk@redhat.com> - 3.1.2-5
d0f821
- Conditionalize %%install section too
d0f821
d0f821
* Fri Nov  9 2012 Mikolaj Izdebski <mizdebsk@redhat.com> - 3.1.2-4
d0f821
- Conditionally disable extensions
d0f821
d0f821
* Thu Nov  1 2012 Mikolaj Izdebski <mizdebsk@redhat.com> - 3.1.2-3
d0f821
- Update to new add_maven_depmap macro
d0f821
d0f821
* Wed Oct 31 2012 Stanislav Ochotnicky <sochotnicky@redhat.com> - 3.1.2-2
d0f821
- Use new generated maven filelist feature from javapackages-tools
d0f821
d0f821
* Fri Oct  5 2012 Mikolaj Izdebski <mizdebsk@redhat.com> - 3.1.2-1
d0f821
- Complete rewrite of the spec file
d0f821
- New upstream, to ease future maintenance
d0f821
- Build with maven instead of ant
d0f821
- Split into multiple subpackages
d0f821
d0f821
* Thu Jul 19 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.0-0.7.rc2
d0f821
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
d0f821
d0f821
* Thu Feb  9 2012 Stanislav Ochotnicky <sochotnicky@redhat.com> - 3.0-0.6.rc2
d0f821
- Temporary fix for maven buildroots
d0f821
d0f821
* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.0-0.5.rc2
d0f821
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
d0f821
d0f821
* Wed Oct 12 2011 Stanislav Ochotnicky <sochotnicky@redhat.com> - 3.0-0.4.rc2
d0f821
- Build with aqute-bnd (#745176)
d0f821
- Use new maven macros
d0f821
- Few packaging tweaks
d0f821
d0f821
* Tue May 24 2011 Stanislav Ochotnicky <sochotnicky@redhat.com> - 3.0-0.3.rc2
d0f821
- Add cglib and atinject to R
d0f821
d0f821
* Thu May 12 2011 Stanislav Ochotnicky <sochotnicky@redhat.com> - 3.0-0.2.rc2
d0f821
- Remove test and missing deps from pom.xml
d0f821
d0f821
* Tue Mar  1 2011 Stanislav Ochotnicky <sochotnicky@redhat.com> - 3.0-0.1.rc2
d0f821
- Update to 3.0rc2
d0f821
- Changes according to new guidelines (versionless jars & javadocs)
d0f821
d0f821
* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0-4.1219svn
d0f821
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
d0f821
d0f821
* Thu Oct 14 2010 Stanislav Ochotnicky <sochotnicky@redhat.com> - 2.0-3.1219svn
d0f821
- Add java-devel >= 1:1.6.0 to BR
d0f821
d0f821
* Wed Oct 13 2010 Stanislav Ochotnicky <sochotnicky@redhat.com> - 2.0-2.1219svn
d0f821
- Moved munge repacking to prep
d0f821
- Added -Dversion to change generated manifest version
d0f821
- Removed http part of URL
d0f821
d0f821
* Thu Oct  7 2010 Stanislav Ochotnicky <sochotnicky@redhat.com> - 2.0-1.1219svn
d0f821
- Initial version of the package