Sync from SUSE:SLFO:Main sisu revision a7800150819e67b34dfab51425ce7a58

This commit is contained in:
Adrian Schröter 2024-05-04 00:39:47 +02:00
commit 6367ae5445
13 changed files with 706 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

View File

@ -0,0 +1,20 @@
--- sisu-inject/org.eclipse.sisu.inject/META-INF/MANIFEST.MF~ 2014-04-21 16:32:25.000000000 +0200
+++ sisu-inject/org.eclipse.sisu.inject/META-INF/MANIFEST.MF 2014-04-23 10:53:22.538142253 +0200
@@ -16,6 +16,7 @@
com.google.inject.matcher;version="1.3",
com.google.inject.name;version="1.3",
com.google.inject.spi;version="1.3",
+ com.google.common.base,
org.osgi.framework;version="1.5",
org.osgi.util.tracker;version="1.4",
org.slf4j;resolution:=optional,
--- sisu-inject/org.eclipse.sisu.inject/build.properties~ 2015-02-25 14:46:42.392037463 +0100
+++ sisu-inject/org.eclipse.sisu.inject/build.properties 2015-02-25 14:44:56.626803789 +0100
@@ -17,5 +17,5 @@
.
# build with JSR250 v1.2 and workaround indirect Guava dependency via Guice 4
-extra.. = platform:/plugin/javax.annotation,platform:/plugin/com.google.guava
-additional.bundles = javax.annotation,com.google.guava
+extra.. = platform:/plugin/javax.annotation-api,platform:/plugin/com.google.guava
+additional.bundles = javax.annotation-api,com.google.guava

BIN
sisu-build.tar.xz (Stored with Git LFS) Normal file

Binary file not shown.

205
sisu-ignored-tests.patch Normal file
View File

@ -0,0 +1,205 @@
--- sisu-inject/org.eclipse.sisu.inject.tests/src/org/eclipse/sisu/inject/LocatedBeansTest.java~ 2014-09-12 08:32:32.899725268 +0200
+++ sisu-inject/org.eclipse.sisu.inject.tests/src/org/eclipse/sisu/inject/LocatedBeansTest.java 2014-09-12 08:37:45.656099710 +0200
@@ -128,30 +128,6 @@
assertSame( a, itr2.next().getValue() );
}
- public void testUnrestrictedSearch()
- {
- final LocatedBeans<Annotation, Bean> beans = locate( Key.get( Bean.class ) );
- final Iterator<BeanEntry<Annotation, Bean>> itr = beans.iterator();
-
- assertTrue( itr.hasNext() );
- assertEquals( QualifyingStrategy.DEFAULT_QUALIFIER, itr.next().getKey() );
- assertTrue( itr.hasNext() );
- assertEquals( QualifyingStrategy.BLANK_QUALIFIER, itr.next().getKey() );
- assertTrue( itr.hasNext() );
- assertEquals( Names.named( "Named1" ), itr.next().getKey() );
- assertTrue( itr.hasNext() );
- assertEquals( Names.named( "Named2" ), itr.next().getKey() );
- assertTrue( itr.hasNext() );
- assertEquals( QualifyingStrategy.BLANK_QUALIFIER, itr.next().getKey() );
- assertTrue( itr.hasNext() );
- assertEquals( MarkedBeanImpl1.class.getAnnotation( Marked.class ), itr.next().getKey() );
- assertTrue( itr.hasNext() );
- assertEquals( Names.named( "Marked2" ), itr.next().getKey() );
- assertTrue( itr.hasNext() );
- assertEquals( Names.named( "Marked3" ), itr.next().getKey() );
- assertFalse( itr.hasNext() );
- }
-
public void testNamedSearch()
{
final LocatedBeans<Named, Bean> beans = locate( Key.get( Bean.class, Named.class ) );
@@ -181,20 +156,6 @@
assertFalse( itr.hasNext() );
}
- public void testMarkedSearch()
- {
- final LocatedBeans<Marked, Bean> beans = locate( Key.get( Bean.class, Marked.class ) );
- final Iterator<BeanEntry<Marked, Bean>> itr = beans.iterator();
-
- assertTrue( itr.hasNext() );
- assertEquals( MarkedBeanImpl1.class.getAnnotation( Marked.class ), itr.next().getKey() );
- assertTrue( itr.hasNext() );
- assertEquals( MarkedBeanImpl2.class.getAnnotation( Marked.class ), itr.next().getKey() );
- assertTrue( itr.hasNext() );
- assertEquals( MarkedBeanProvider.class.getAnnotation( Marked.class ), itr.next().getKey() );
- assertFalse( itr.hasNext() );
- }
-
public void testMarkedWithAttributesSearch()
{
final LocatedBeans<Marked, Bean> beans =
--- sisu-plexus/org.eclipse.sisu.plexus.tests/src/org/eclipse/sisu/plexus/PlexusXmlScannerTest.java~ 2014-08-24 01:48:47.000000000 +0200
+++ sisu-plexus/org.eclipse.sisu.plexus.tests/src/org/eclipse/sisu/plexus/PlexusXmlScannerTest.java 2015-02-04 07:06:49.696531924 +0100
@@ -159,83 +159,6 @@
new PlexusXmlScanner( null, plexusXml, null ).scan( space, true );
}
- @SuppressWarnings( "deprecation" )
- public void testComponents()
- {
- final ClassSpace space = new URLClassSpace( PlexusXmlScannerTest.class.getClassLoader() );
-
- final Map<String, PlexusBeanMetadata> metadata = new HashMap<String, PlexusBeanMetadata>();
- final PlexusXmlScanner scanner = new PlexusXmlScanner( null, null, metadata );
-
- final Map<Component, DeferredClass<?>> componentMap = scanner.scan( space, true );
-
- assertEquals( 6, componentMap.size() );
-
- final Component component1 =
- new ComponentImpl( DefaultBean.class, Hints.DEFAULT_HINT, Strategies.PER_LOOKUP, "" );
- assertEquals( DefaultBean.class, componentMap.get( component1 ).load() );
-
- final Component component2 = new ComponentImpl( Bean.class, "debug", Strategies.SINGLETON, "For debugging" );
- assertEquals( DebugBean.class, componentMap.get( component2 ).load() );
-
- final Component component3 = new ComponentImpl( Bean.class, Hints.DEFAULT_HINT, Strategies.SINGLETON, "" );
- assertEquals( AnotherBean.class, componentMap.get( component3 ).load() );
-
- final Component component4 = new ComponentImpl( Bean.class, "clone", Strategies.SINGLETON, "" );
- assertEquals( DefaultBean.class, componentMap.get( component4 ).load().getSuperclass() );
- final Class<?> proxy = CustomTestClassLoader.proxy( componentMap.get( component4 ).load() );
-
- try
- {
- assertNotNull( proxy.getMethod( "TestMe" ) );
- }
- catch ( final NoSuchMethodException e )
- {
- fail( "Proxied class is missing 'TestMe' method" );
- }
-
- final PlexusBeanMetadata metadata1 = metadata.get( DefaultBean.class.getName() );
-
- assertFalse( metadata1.isEmpty() );
-
- assertEquals( new ConfigurationImpl( "someFieldName", "<some-field-name><item>PRIMARY</item></some-field-name>" ),
- metadata1.getConfiguration( new NamedProperty( "someFieldName" ) ) );
-
- assertEquals( new ConfigurationImpl( "simple", "value" ),
- metadata1.getConfiguration( new NamedProperty( "simple" ) ) );
-
- assertEquals( new ConfigurationImpl( "value", "<value with=\"attribute\"></value>" ),
- metadata1.getConfiguration( new NamedProperty( "value" ) ) );
-
- assertEquals( new ConfigurationImpl( "emptyValue1", "<empty-value1 with=\"attribute\" />" ),
- metadata1.getConfiguration( new NamedProperty( "emptyValue1" ) ) );
-
- assertEquals( new ConfigurationImpl( "emptyValue2", "" ),
- metadata1.getConfiguration( new NamedProperty( "emptyValue2" ) ) );
-
- assertFalse( metadata1.isEmpty() );
-
- assertEquals( new RequirementImpl( Bean.class, true, "debug" ),
- metadata1.getRequirement( new NamedProperty( "bean", TypeLiteral.get( Bean.class ) ) ) );
-
- assertFalse( metadata1.isEmpty() );
-
- metadata1.getConfiguration( new NamedProperty( "foo" ) );
-
- assertEquals( new RequirementImpl( Bean.class, false, Hints.DEFAULT_HINT, "debug" ),
- metadata1.getRequirement( new NamedProperty( "beanMap" ) ) );
-
- assertFalse( metadata1.isEmpty() );
-
- assertEquals( new RequirementImpl( Bean.class, false ),
- metadata1.getRequirement( new NamedProperty( "beanField" ) ) );
-
- assertTrue( metadata1.isEmpty() );
-
- assertNotNull( metadata.get( AnotherBean.class.getName() ) );
- assertNull( metadata.get( DebugBean.class.getName() ) );
- }
-
static class FixedClassSpace
implements ClassSpace
{
@@ -392,64 +315,4 @@
}
}
- static final class CustomTestClassLoader
- extends ClassLoader
- {
- private static final String PROXY_MARKER = "$proxy";
-
- CustomTestClassLoader( final ClassLoader parent )
- {
- super( parent );
- }
-
- static Class<?> proxy( final Class<?> clazz )
- {
- try
- {
- return new CustomTestClassLoader( clazz.getClassLoader() ).loadClass( clazz.getName() + PROXY_MARKER );
- }
- catch ( final ClassNotFoundException e )
- {
- throw new TypeNotPresentException( clazz.getName(), e );
- }
- }
-
- @Override
- protected synchronized Class<?> loadClass( final String name, final boolean resolve )
- throws ClassNotFoundException
- {
- return super.loadClass( name, resolve );
- }
-
- @Override
- protected Class<?> findClass( final String name )
- throws ClassNotFoundException
- {
- final String proxyName = name.replace( '.', '/' );
- final String superName = proxyName.substring( 0, proxyName.length() - PROXY_MARKER.length() );
-
- final ClassWriter cw = new ClassWriter( ClassWriter.COMPUTE_MAXS );
- cw.visit( Opcodes.V1_5, Modifier.PUBLIC | Modifier.FINAL, proxyName, null, superName, null );
- MethodVisitor mv = cw.visitMethod( Modifier.PUBLIC, "<init>", "()V", null, null );
-
- mv.visitCode();
- mv.visitVarInsn( Opcodes.ALOAD, 0 );
- mv.visitMethodInsn( Opcodes.INVOKESPECIAL, superName, "<init>", "()V", false );
- mv.visitInsn( Opcodes.RETURN );
- mv.visitMaxs( 0, 0 );
- mv.visitEnd();
-
- mv = cw.visitMethod( Modifier.PUBLIC, "TestMe", "()V", null, null );
-
- mv.visitCode();
- mv.visitInsn( Opcodes.RETURN );
- mv.visitMaxs( 0, 0 );
- mv.visitEnd();
- cw.visitEnd();
-
- final byte[] buf = cw.toByteArray();
-
- return defineClass( name, buf, 0, buf.length );
- }
- }
}

BIN
sisu-inject-0.3.5.tar.gz (Stored with Git LFS) Normal file

Binary file not shown.

72
sisu-inject.pom Normal file
View File

@ -0,0 +1,72 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.eclipse.sisu</groupId>
<artifactId>org.eclipse.sisu.inject</artifactId>
<version>@VERSION@</version>
<dependencies>
<dependency>
<groupId>com.google.inject</groupId>
<artifactId>guice</artifactId>
<classifier>no_aop</classifier>
<version>4.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
<version>1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.enterprise</groupId>
<artifactId>cdi-api</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
<version>1.2</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.google.inject.extensions</groupId>
<artifactId>guice-servlet</artifactId>
<version>4.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.13</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>osgi.core</artifactId>
<version>6.0.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.9.10</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<sourceDirectory>org.eclipse.sisu.inject/src</sourceDirectory>
</build>
</project>

View File

@ -0,0 +1,84 @@
--- sisu-inject/org.eclipse.sisu.inject/src/org/eclipse/sisu/inject/Implementations.java
+++ sisu-inject/org.eclipse.sisu.inject/src/org/eclipse/sisu/inject/Implementations.java
@@ -38,17 +38,6 @@ final class Implementations
static
{
- boolean hasGuiceServlet;
- try
- {
- hasGuiceServlet = BindingTargetVisitor.class.isInstance( ServletFinder.THIS );
- }
- catch ( final LinkageError e )
- {
- hasGuiceServlet = false;
- }
- HAS_GUICE_SERVLET = hasGuiceServlet;
-
boolean hasJsr250Priority;
try
{
@@ -65,8 +54,6 @@ final class Implementations
// Constants
// ----------------------------------------------------------------------
- private static final boolean HAS_GUICE_SERVLET;
-
private static final boolean HAS_JSR250_PRIORITY;
// ----------------------------------------------------------------------
@@ -106,7 +93,7 @@ final class Implementations
// peek behind servlet/filter extension bindings when checking priority, so we can order them by rank
final Class<?> implementation =
- binding.acceptTargetVisitor( HAS_GUICE_SERVLET && isPriority ? ServletFinder.THIS : ClassFinder.THIS );
+ binding.acceptTargetVisitor( ClassFinder.THIS );
T annotation = null;
if ( null != implementation )
@@ -215,45 +202,4 @@ final class Implementations
return binding.getPrivateElements().getInjector().getBinding( binding.getKey() ).acceptTargetVisitor( this );
}
}
-
- /**
- * {@link ClassFinder} that can also peek behind servlet/filter bindings.
- */
- static final class ServletFinder
- extends ClassFinder
- implements com.google.inject.servlet.ServletModuleTargetVisitor<Object, Class<?>>
- {
- // ----------------------------------------------------------------------
- // Constants
- // ----------------------------------------------------------------------
-
- @SuppressWarnings( "hiding" )
- static final BindingTargetVisitor<Object, Class<?>> THIS = new ServletFinder();
-
- // ----------------------------------------------------------------------
- // Public methods
- // ----------------------------------------------------------------------
-
- public Class<?> visit( final com.google.inject.servlet.InstanceFilterBinding binding )
- {
- return binding.getFilterInstance().getClass();
- }
-
- public Class<?> visit( final com.google.inject.servlet.InstanceServletBinding binding )
- {
- return binding.getServletInstance().getClass();
- }
-
- public Class<?> visit( final com.google.inject.servlet.LinkedFilterBinding binding )
- {
- // this assumes only one level of indirection: api-->impl
- return binding.getLinkedKey().getTypeLiteral().getRawType();
- }
-
- public Class<?> visit( final com.google.inject.servlet.LinkedServletBinding binding )
- {
- // this assumes only one level of indirection: api-->impl
- return binding.getLinkedKey().getTypeLiteral().getRawType();
- }
- }
}

11
sisu-osgi-api.patch Normal file
View File

@ -0,0 +1,11 @@
--- sisu-plexus/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/PlexusBundlePlan.java~ 2015-09-13 20:15:37.000000000 +0200
+++ sisu-plexus/org.eclipse.sisu.plexus/src/org/eclipse/sisu/plexus/PlexusBundlePlan.java 2017-01-29 19:56:51.608151337 +0100
@@ -80,7 +80,7 @@
protected static boolean hasPlexusAnnotations( final Bundle bundle )
{
- final String imports = bundle.getHeaders().get( Constants.IMPORT_PACKAGE );
+ final String imports = bundle.getHeaders().get( Constants.IMPORT_PACKAGE ).toString();
return null != imports && imports.contains( "org.codehaus.plexus.component.annotations" );
}

BIN
sisu-plexus-0.3.5.tar.gz (Stored with Git LFS) Normal file

Binary file not shown.

67
sisu-plexus.pom Normal file
View File

@ -0,0 +1,67 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.eclipse.sisu</groupId>
<artifactId>org.eclipse.sisu.plexus</artifactId>
<version>@VERSION@</version>
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>org.eclipse.sisu.inject</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-classworlds</artifactId>
<version>2.5.2</version>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-component-annotations</artifactId>
<version>1.6</version>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-utils</artifactId>
<version>3.0.22</version>
</dependency>
<dependency>
<groupId>com.google.inject</groupId>
<artifactId>guice</artifactId>
<classifier>no_aop</classifier>
<version>4.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.13</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>osgi.core</artifactId>
<version>6.0.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<sourceDirectory>org.eclipse.sisu.plexus/src</sourceDirectory>
<resources>
<resource>
<targetPath>META-INF/plexus</targetPath>
<filtering>false</filtering>
<directory>${basedir}/org.eclipse.sisu.plexus/META-INF/plexus</directory>
<includes>
<include>components.xml</include>
</includes>
</resource>
</resources>
</build>
</project>

View File

@ -0,0 +1,11 @@
--- sisu-0.3.5/sisu-inject/org.eclipse.sisu.inject/src/org/eclipse/sisu/space/AbstractSisuIndex.java 2023-09-05 15:00:59.314655718 +0200
+++ sisu-0.3.5/sisu-inject/org.eclipse.sisu.inject/src/org/eclipse/sisu/space/AbstractSisuIndex.java 2023-09-05 15:04:15.889547023 +0200
@@ -158,7 +158,7 @@
final BufferedWriter writer = new BufferedWriter( getWriter( INDEX_FOLDER + name ) );
try
{
- for ( final String line : table )
+ for ( final String line : new java.util.TreeSet<String>( table ) )
{
writer.write( line );
writer.newLine();

46
sisu.changes Normal file
View File

@ -0,0 +1,46 @@
-------------------------------------------------------------------
Tue Sep 5 13:09:17 UTC 2023 - Fridrich Strba <fstrba@suse.com>
- Added patch:
* sisu-reproducible-index.patch
+ Sort the classes by name in META-INF/sisu/javax.inject.Named
to make the output reproducible
-------------------------------------------------------------------
Wed Apr 27 13:46:14 UTC 2022 - Fridrich Strba <fstrba@suse.com>
- Change to generate maven meta-data using the %%add_maven_depmap
* so that it can be built before the xmvn-tools
-------------------------------------------------------------------
Sun Mar 20 19:45:31 UTC 2022 - Fridrich Strba <fstrba@suse.com>
- Build with java source and target levels 8
-------------------------------------------------------------------
Tue Jan 18 07:16:24 UTC 2022 - Fridrich Strba <fstrba@suse.com>
- Update to upstream version 0.3.5
- Changes of 0.3.5
* beo#539791 - Update cdi-api dependency to 1.2
* beo#575952 - Support turning off URLConnection caching for
container related resources
- Changes of 0.3.4
* beo#552642 - Support reproducible builds by sorting generated
javax.inject.Named index
* beo#546874 - Relax bytecode check in scanner so it can scan up
to and including Java14
- Added patch:
* sisu-no-dependency-on-glassfish-servlet-api.patch
+ remove dependency on glassfish-servlet-api
-------------------------------------------------------------------
Mon Apr 1 23:11:49 UTC 2019 - Jan Engelhardt <jengelh@inai.de>
- Use modern tar options.
-------------------------------------------------------------------
Tue Mar 19 08:49:32 UTC 2019 - Fridrich Strba <fstrba@suse.com>
- Initial packaging of sisu-inject and sisu-plexus 0.3.3
- Generate and customize ant build files

158
sisu.spec Normal file
View File

@ -0,0 +1,158 @@
#
# spec file for package sisu
#
# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%global reltype release
Name: sisu
Version: 0.3.5
Release: 0
Summary: Eclipse dependency injection framework
# sisu is EPL-1.0, bundled asm is BSD
License: BSD-3-Clause AND EPL-1.0
Group: Development/Libraries/Java
URL: https://www.eclipse.org/sisu/
Source0: https://github.com/eclipse/sisu.inject/archive/refs/tags/releases/%{version}.tar.gz#/sisu-inject-%{version}.tar.gz
Source1: https://github.com/eclipse/sisu.plexus/archive/refs/tags/releases/%{version}.tar.gz#/sisu-plexus-%{version}.tar.gz
Source2: %{name}-build.tar.xz
Source100: %{name}-inject.pom
Source101: %{name}-plexus.pom
Patch0: %{name}-OSGi-import-guava.patch
Patch1: %{name}-no-dependency-on-glassfish-servlet-api.patch
Patch2: %{name}-ignored-tests.patch
Patch3: %{name}-osgi-api.patch
Patch4: %{name}-reproducible-index.patch
BuildRequires: ant
BuildRequires: atinject
BuildRequires: cdi-api
BuildRequires: fdupes
BuildRequires: glassfish-annotation-api
BuildRequires: google-guice
BuildRequires: guice-servlet
BuildRequires: javapackages-local
BuildRequires: junit
BuildRequires: osgi-core
BuildRequires: plexus-classworlds
BuildRequires: plexus-containers-component-annotations
BuildRequires: plexus-utils
BuildRequires: slf4j
BuildRequires: testng
BuildRequires: unzip
BuildRequires: xz
Provides: bundled(objectweb-asm)
BuildArch: noarch
%description
Java dependency injection framework with backward support for plexus and bean
style dependency injection.
%package inject
Summary: Sisu inject
Group: Development/Libraries/Java
Requires: mvn(javax.enterprise:cdi-api)
%description inject
This package contains %{summary}.
%package plexus
Summary: Sisu Plexus
Group: Development/Libraries/Java
Requires: mvn(org.codehaus.plexus:plexus-classworlds)
Requires: mvn(org.codehaus.plexus:plexus-component-annotations)
Requires: mvn(org.codehaus.plexus:plexus-utils)
Requires: mvn(org.eclipse.sisu:org.eclipse.sisu.inject) = %{version}
%description plexus
This package contains %{summary}.
%package javadoc
Summary: API documentation for Sisu
Group: Documentation/HTML
%description javadoc
This package contains %{summary}.
%prep
%setup -q -c -T
tar xf %{SOURCE0} && mv sisu.inject-releases-%{version} sisu-inject
tar xf %{SOURCE1} && mv sisu.plexus-releases-%{version} sisu-plexus
tar xf %{SOURCE2}
cp %{SOURCE100} sisu-inject/pom.xml
cp %{SOURCE101} sisu-plexus/pom.xml
%patch0
%patch1
%patch2
%patch3
%patch4 -p1
%pom_remove_dep :servlet-api sisu-inject
for i in inject plexus; do
%pom_xpath_set -r /pom:project/pom:version %{version} %{name}-${i}
%pom_remove_dep :::provided: %{name}-${i}
%pom_xpath_remove pom:project/pom:build %{name}-${i}
done
%pom_change_dep :org.eclipse.sisu.inject org.eclipse.sisu:org.eclipse.sisu.inject:%{version} %{name}-plexus
%build
mkdir -p lib
build-jar-repository -s lib \
glassfish-annotation-api \
google-guice-no_aop \
guice/guice-servlet \
javax.enterprise.inject/cdi-api \
javax.inject/atinject \
junit \
osgi-core/osgi.core \
plexus/utils \
plexus/classworlds \
plexus-containers/plexus-component-annotations \
slf4j/api \
testng
%{ant} package javadoc
%install
# jar
install -dm 0755 %{buildroot}%{_javadir}
install -pm 0644 %{name}-inject/target/org.eclipse.sisu.inject-%{version}.jar %{buildroot}%{_javadir}/org.eclipse.sisu.inject.jar
install -pm 0644 %{name}-plexus/target/org.eclipse.sisu.plexus-%{version}.jar %{buildroot}%{_javadir}/org.eclipse.sisu.plexus.jar
# pom
install -dm 0755 %{buildroot}%{_mavenpomdir}
install -pm 0644 %{name}-inject/pom.xml %{buildroot}%{_mavenpomdir}/org.eclipse.sisu.inject.pom
%add_maven_depmap org.eclipse.sisu.inject.pom org.eclipse.sisu.inject.jar -f inject
install -pm 0644 %{name}-plexus/pom.xml %{buildroot}%{_mavenpomdir}/org.eclipse.sisu.plexus.pom
%add_maven_depmap org.eclipse.sisu.plexus.pom org.eclipse.sisu.plexus.jar -f plexus -a org.sonatype.sisu:sisu-inject-plexus
# javadoc
for i in inject plexus; do
install -dm 0755 %{buildroot}%{_javadocdir}/%{name}/%{name}-${i}
cp -pr %{name}-${i}/target/site/apidocs/* %{buildroot}%{_javadocdir}/%{name}/%{name}-${i}/
done
%fdupes -s %{buildroot}%{_javadocdir}
%files inject -f .mfiles-inject
%license sisu-inject/LICENSE.txt
%files plexus -f .mfiles-plexus
%files javadoc
%license sisu-inject/LICENSE.txt
%{_javadocdir}/%{name}
%changelog