%global tag bd0d620 Name: sisu-guice Version: 3.1.2 Release: 1%{?dist} Summary: Lightweight dependency injection framework for Java 5 and above Group: Development/Libraries License: ASL 2.0 URL: https://github.com/sonatype/%{name} Source: https://github.com/sonatype/%{name}/tarball/%{name}-%{version}#/%{name}-%{version}.tar.gz BuildArch: noarch BuildRequires: java-devel BuildRequires: jpackage-utils BuildRequires: maven BuildRequires: maven-remote-resources-plugin BuildRequires: apache-resource-bundles BuildRequires: aopalliance BuildRequires: atinject BuildRequires: cglib BuildRequires: guava BuildRequires: hibernate-jpa-2.0-api BuildRequires: slf4j BuildRequires: springframework-beans BuildRequires: tomcat-servlet-3.0-api # Test dependencies: %if 0 BuildRequires: maven-surefire-provider-testng BuildRequires: aqute-bnd BuildRequires: atinject-tck BuildRequires: easymock2 BuildRequires: felix-framework BuildRequires: hibernate3-entitymanager BuildRequires: mvn(org.hsqldb:hsqldb-j5) BuildRequires: testng %endif Requires: java Requires: jpackage-utils Requires: aopalliance Requires: atinject Requires: cglib Requires: guava Requires: slf4j Provides: google-guice = %{version}-%{release} Obsoletes: google-guice < %{version}-%{release} %description Put simply, Guice alleviates the need for factories and the use of new in your Java code. Think of Guice's @Inject as the new new. You will still need to write factories in some cases, but your code will not depend directly on them. Your code will be easier to change, unit test and reuse in other contexts. Guice embraces Java's type safe nature, especially when it comes to features introduced in Java 5 such as generics and annotations. You might think of Guice as filling in missing features for core Java. Ideally, the language itself would provide most of the same features, but until such a language comes along, we have Guice. Guice helps you design better APIs, and the Guice API itself sets a good example. Guice is not a kitchen sink. We justify each feature with at least three use cases. When in doubt, we leave it out. We build general functionality which enables you to extend Guice rather than adding every feature to the core framework. %package -n guice-assistedinject Summary: AssistedInject extension module for Sisu Guice Requires: java Requires: jpackage-utils Requires: %{name} = %{version}-%{release} %description -n guice-assistedinject Sisu Guice is a lightweight dependency injection framework for Java 5 and above. This package provides AssistedInject module for Sisu Guice. %package -n guice-extensions Summary: Extensions for Sisu Guice Requires: jpackage-utils Requires: %{name} = %{version}-%{release} %description -n guice-extensions Sisu Guice is a lightweight dependency injection framework for Java 5 and above. This package provides extensions for Sisu Guice. %package -n guice-grapher Summary: Grapher extension module for Sisu Guice Requires: java Requires: jpackage-utils Requires: %{name} = %{version}-%{release} Requires: guice-assistedinject = %{version}-%{release} Requires: guice-multibindings = %{version}-%{release} %description -n guice-grapher Sisu Guice is a lightweight dependency injection framework for Java 5 and above. This package provides Grapher module for Sisu Guice. %package -n guice-jmx Summary: Sisu Guice - Extensions - JMX Requires: java Requires: jpackage-utils Requires: %{name} = %{version}-%{release} %description -n guice-jmx Sisu Guice is a lightweight dependency injection framework for Java 5 and above. This package provides JMX module for Sisu Guice. %package -n guice-jndi Summary: JNDI extension module for Sisu Guice Requires: java Requires: jpackage-utils Requires: %{name} = %{version}-%{release} %description -n guice-jndi Sisu Guice is a lightweight dependency injection framework for Java 5 and above. This package provides JNDI module for Sisu Guice. %package -n guice-multibindings Summary: MultiBindings extension module for Sisu Guice Requires: java Requires: jpackage-utils Requires: %{name} = %{version}-%{release} %description -n guice-multibindings Sisu Guice is a lightweight dependency injection framework for Java 5 and above. This package provides MultiBindings module for Sisu Guice. %package -n guice-parent Summary: Sisu Guice parent POM Requires: jpackage-utils %description -n guice-parent Sisu Guice is a lightweight dependency injection framework for Java 5 and above. This package provides parent POM for Sisu Guice modules. %package -n guice-persist Summary: Persist extension module for Sisu Guice Requires: java Requires: jpackage-utils Requires: %{name} = %{version}-%{release} Requires: hibernate-jpa-2.0-api Requires: tomcat-servlet-3.0-api %description -n guice-persist Sisu Guice is a lightweight dependency injection framework for Java 5 and above. This package provides Persist module for Sisu Guice. %package -n guice-servlet Summary: Servlet extension module for Sisu Guice Requires: java Requires: jpackage-utils Requires: %{name} = %{version}-%{release} Requires: tomcat-servlet-3.0-api %description -n guice-servlet Sisu Guice is a lightweight dependency injection framework for Java 5 and above. This package provides Servlet module for Sisu Guice. %package -n guice-spring Summary: Spring extension module for Sisu Guice Requires: java Requires: jpackage-utils Requires: %{name} = %{version}-%{release} Requires: springframework-beans %description -n guice-spring Sisu Guice is a lightweight dependency injection framework for Java 5 and above. This package provides Spring module for Sisu Guice. %package -n guice-throwingproviders Summary: ThrowingProviders extension module for Sisu Guice Requires: java Requires: jpackage-utils Requires: %{name} = %{version}-%{release} %description -n guice-throwingproviders Sisu Guice is a lightweight dependency injection framework for Java 5 and above. This package provides ThrowingProviders module for Sisu Guice. %package javadoc Summary: API documentation for Sisu Guice Group: Documentation Requires: jpackage-utils Provides: google-guice-javadoc = %{version}-%{release} Obsoletes: google-guice-javadoc < %{version}-%{release} %description javadoc This package provides %{summary}. %prep %setup -q -n sonatype-%{name}-%{tag} find -name '*.jar' -delete # We don't have struts2 in Fedora yet. %pom_disable_module struts2 extensions # Remove additional build profiles, which we don't use anyways # and which are only pulling additional dependencies. %pom_xpath_remove pom:project/pom:profiles core # Animal sniffer is only causing problems. Disable it for now. %pom_remove_plugin :animal-sniffer-maven-plugin core %pom_remove_plugin :animal-sniffer-maven-plugin extensions # We don't have the custom doclet used by upstream. Remove # maven-javadoc-plugin to generate javadocs with default style. %pom_remove_plugin :maven-javadoc-plugin %build # Skip tests because of missing dependency (hsqldb-j5). mvn-rpmbuild -e -Dmaven.test.skip=true verify javadoc:aggregate %install # directories install -d -m 755 %{buildroot}%{_javadir}/%{name} install -d -m 755 %{buildroot}%{_mavenpomdir} install -d -m 755 %{buildroot}%{_javadocdir}/%{name} # JARs install -p -m 644 extensions/assistedinject/target/guice-assistedinject-%{version}.jar %{buildroot}%{_javadir}/%{name}/guice-assistedinject.jar install -p -m 644 extensions/grapher/target/guice-grapher-%{version}.jar %{buildroot}%{_javadir}/%{name}/guice-grapher.jar install -p -m 644 extensions/jmx/target/guice-jmx-%{version}.jar %{buildroot}%{_javadir}/%{name}/guice-jmx.jar install -p -m 644 extensions/jndi/target/guice-jndi-%{version}.jar %{buildroot}%{_javadir}/%{name}/guice-jndi.jar install -p -m 644 extensions/multibindings/target/guice-multibindings-%{version}.jar %{buildroot}%{_javadir}/%{name}/guice-multibindings.jar install -p -m 644 extensions/persist/target/guice-persist-%{version}.jar %{buildroot}%{_javadir}/%{name}/guice-persist.jar install -p -m 644 extensions/servlet/target/guice-servlet-%{version}.jar %{buildroot}%{_javadir}/%{name}/guice-servlet.jar install -p -m 644 extensions/spring/target/guice-spring-%{version}.jar %{buildroot}%{_javadir}/%{name}/guice-spring.jar install -p -m 644 extensions/throwingproviders/target/guice-throwingproviders-%{version}.jar %{buildroot}%{_javadir}/%{name}/guice-throwingproviders.jar install -p -m 644 core/target/%{name}-%{version}.jar %{buildroot}%{_javadir}/%{name}/%{name}.jar # POMs install -p -m 644 extensions/assistedinject/pom.xml %{buildroot}%{_mavenpomdir}/JPP.%{name}-guice-assistedinject.pom install -p -m 644 extensions/pom.xml %{buildroot}%{_mavenpomdir}/JPP.%{name}-guice-extensions.pom install -p -m 644 extensions/grapher/pom.xml %{buildroot}%{_mavenpomdir}/JPP.%{name}-guice-grapher.pom install -p -m 644 extensions/jmx/pom.xml %{buildroot}%{_mavenpomdir}/JPP.%{name}-guice-jmx.pom install -p -m 644 extensions/jndi/pom.xml %{buildroot}%{_mavenpomdir}/JPP.%{name}-guice-jndi.pom install -p -m 644 extensions/multibindings/pom.xml %{buildroot}%{_mavenpomdir}/JPP.%{name}-guice-multibindings.pom install -p -m 644 pom.xml %{buildroot}%{_mavenpomdir}/JPP.%{name}-guice-parent.pom install -p -m 644 extensions/persist/pom.xml %{buildroot}%{_mavenpomdir}/JPP.%{name}-guice-persist.pom install -p -m 644 extensions/servlet/pom.xml %{buildroot}%{_mavenpomdir}/JPP.%{name}-guice-servlet.pom install -p -m 644 extensions/spring/pom.xml %{buildroot}%{_mavenpomdir}/JPP.%{name}-guice-spring.pom install -p -m 644 extensions/throwingproviders/pom.xml %{buildroot}%{_mavenpomdir}/JPP.%{name}-guice-throwingproviders.pom install -p -m 644 core/pom.xml %{buildroot}%{_mavenpomdir}/JPP.%{name}-%{name}.pom # depmaps %add_maven_depmap JPP.%{name}-guice-assistedinject.pom %{name}/guice-assistedinject.jar -f assistedinject %add_maven_depmap JPP.%{name}-guice-extensions.pom -f extensions %add_maven_depmap JPP.%{name}-guice-grapher.pom %{name}/guice-grapher.jar -f grapher %add_maven_depmap JPP.%{name}-guice-jmx.pom %{name}/guice-jmx.jar -f jmx %add_maven_depmap JPP.%{name}-guice-jndi.pom %{name}/guice-jndi.jar -f jndi %add_maven_depmap JPP.%{name}-guice-multibindings.pom %{name}/guice-multibindings.jar -f multibindings %add_maven_depmap JPP.%{name}-guice-parent.pom -f parent %add_maven_depmap JPP.%{name}-guice-persist.pom %{name}/guice-persist.jar -f persist %add_maven_depmap JPP.%{name}-guice-servlet.pom %{name}/guice-servlet.jar -f servlet %add_maven_depmap JPP.%{name}-guice-spring.pom %{name}/guice-spring.jar -f spring %add_maven_depmap JPP.%{name}-guice-throwingproviders.pom %{name}/guice-throwingproviders.jar -f throwingproviders %add_maven_depmap JPP.%{name}-%{name}.pom %{name}/%{name}.jar # javadoc cp -pr target/site/apidocs/* %{buildroot}%{_javadocdir}/%{name} %files %doc README COPYING %{_javadir}/%{name}/%{name}.jar %{_mavenpomdir}/JPP.%{name}-%{name}.pom %{_mavendepmapfragdir}/%{name} %files -n guice-assistedinject %{_javadir}/%{name}/guice-assistedinject.jar %{_mavenpomdir}/JPP.%{name}-guice-assistedinject.pom %{_mavendepmapfragdir}/%{name}-assistedinject %files -n guice-extensions %{_mavenpomdir}/JPP.%{name}-guice-extensions.pom %{_mavendepmapfragdir}/%{name}-extensions %files -n guice-grapher %{_javadir}/%{name}/guice-grapher.jar %{_mavenpomdir}/JPP.%{name}-guice-grapher.pom %{_mavendepmapfragdir}/%{name}-grapher %files -n guice-jmx %{_javadir}/%{name}/guice-jmx.jar %{_mavenpomdir}/JPP.%{name}-guice-jmx.pom %{_mavendepmapfragdir}/%{name}-jmx %files -n guice-jndi %{_javadir}/%{name}/guice-jndi.jar %{_mavenpomdir}/JPP.%{name}-guice-jndi.pom %{_mavendepmapfragdir}/%{name}-jndi %files -n guice-multibindings %{_javadir}/%{name}/guice-multibindings.jar %{_mavenpomdir}/JPP.%{name}-guice-multibindings.pom %{_mavendepmapfragdir}/%{name}-multibindings %files -n guice-parent %doc COPYING %{_mavenpomdir}/JPP.%{name}-guice-parent.pom %{_mavendepmapfragdir}/%{name}-parent %files -n guice-persist %{_javadir}/%{name}/guice-persist.jar %{_mavenpomdir}/JPP.%{name}-guice-persist.pom %{_mavendepmapfragdir}/%{name}-persist %files -n guice-servlet %{_javadir}/%{name}/guice-servlet.jar %{_mavenpomdir}/JPP.%{name}-guice-servlet.pom %{_mavendepmapfragdir}/%{name}-servlet %files -n guice-spring %{_javadir}/%{name}/guice-spring.jar %{_mavenpomdir}/JPP.%{name}-guice-spring.pom %{_mavendepmapfragdir}/%{name}-spring %files -n guice-throwingproviders %{_javadir}/%{name}/guice-throwingproviders.jar %{_mavenpomdir}/JPP.%{name}-guice-throwingproviders.pom %{_mavendepmapfragdir}/%{name}-throwingproviders %files javadoc %doc COPYING %{_javadocdir}/%{name} %changelog * Fri Oct 5 2012 Mikolaj Izdebski - 3.1.2-1 - Initial packaging