diff --git a/0001-Remove-support-for-optional-features.patch b/0001-Remove-support-for-optional-features.patch new file mode 100644 index 0000000..d868a99 --- /dev/null +++ b/0001-Remove-support-for-optional-features.patch @@ -0,0 +1,196 @@ +From 24db1069d977dc45c5f6abab667346d35cb4ec3d Mon Sep 17 00:00:00 2001 +From: Mikolaj Izdebski +Date: Wed, 7 Nov 2018 14:26:24 +0100 +Subject: [PATCH] Remove support for optional features + +--- + .../eclipse/sisu/inject/Implementations.java | 94 +------------------ + .../sisu/space/QualifiedTypeBinder.java | 28 ------ + 2 files changed, 2 insertions(+), 120 deletions(-) + +diff --git a/sisu-inject/org.eclipse.sisu.inject/src/org/eclipse/sisu/inject/Implementations.java b/sisu-inject/org.eclipse.sisu.inject/src/org/eclipse/sisu/inject/Implementations.java +index 523c9b2..867f3ce 100644 +--- a/sisu-inject/org.eclipse.sisu.inject/src/org/eclipse/sisu/inject/Implementations.java ++++ b/sisu-inject/org.eclipse.sisu.inject/src/org/eclipse/sisu/inject/Implementations.java +@@ -32,43 +32,6 @@ import com.google.inject.spi.UntargettedBinding; + */ + final class Implementations + { +- // ---------------------------------------------------------------------- +- // Static initialization +- // ---------------------------------------------------------------------- +- +- static +- { +- boolean hasGuiceServlet; +- try +- { +- hasGuiceServlet = BindingTargetVisitor.class.isInstance( ServletFinder.THIS ); +- } +- catch ( final LinkageError e ) +- { +- hasGuiceServlet = false; +- } +- HAS_GUICE_SERVLET = hasGuiceServlet; +- +- boolean hasJsr250Priority; +- try +- { +- hasJsr250Priority = javax.annotation.Priority.class.isAnnotation(); +- } +- catch ( final LinkageError e ) +- { +- hasJsr250Priority = false; +- } +- HAS_JSR250_PRIORITY = hasJsr250Priority; +- } +- +- // ---------------------------------------------------------------------- +- // Constants +- // ---------------------------------------------------------------------- +- +- private static final boolean HAS_GUICE_SERVLET; +- +- private static final boolean HAS_JSR250_PRIORITY; +- + // ---------------------------------------------------------------------- + // Constructors + // ---------------------------------------------------------------------- +@@ -105,8 +68,7 @@ final class Implementations + final boolean isPriority = Priority.class.equals( annotationType ); + + // 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 ); ++ final Class implementation = binding.acceptTargetVisitor( ClassFinder.THIS ); + + T annotation = null; + if ( null != implementation ) +@@ -114,11 +76,7 @@ final class Implementations + annotation = implementation.getAnnotation( annotationType ); + if ( null == annotation ) + { +- if ( HAS_JSR250_PRIORITY && isPriority ) +- { +- annotation = adaptJsr250( binding, implementation ); +- } +- else if ( Description.class.equals( annotationType ) ) ++ if ( Description.class.equals( annotationType ) ) + { + annotation = adaptLegacy( binding, implementation ); + } +@@ -131,13 +89,6 @@ final class Implementations + // Implementation methods + // ---------------------------------------------------------------------- + +- @SuppressWarnings( "unchecked" ) +- private static T adaptJsr250( final Binding binding, final Class clazz ) +- { +- final javax.annotation.Priority jsr250 = clazz.getAnnotation( javax.annotation.Priority.class ); +- return null != jsr250 ? (T) new PrioritySource( binding.getSource(), jsr250.value() ) : null; +- } +- + @SuppressWarnings( { "unchecked", "deprecation" } ) + private static T adaptLegacy( final Binding binding, final Class clazz ) + { +@@ -215,45 +166,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> +- { +- // ---------------------------------------------------------------------- +- // Constants +- // ---------------------------------------------------------------------- +- +- @SuppressWarnings( "hiding" ) +- static final BindingTargetVisitor> 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(); +- } +- } + } +diff --git a/sisu-inject/org.eclipse.sisu.inject/src/org/eclipse/sisu/space/QualifiedTypeBinder.java b/sisu-inject/org.eclipse.sisu.inject/src/org/eclipse/sisu/space/QualifiedTypeBinder.java +index 4b34436..d213e19 100644 +--- a/sisu-inject/org.eclipse.sisu.inject/src/org/eclipse/sisu/space/QualifiedTypeBinder.java ++++ b/sisu-inject/org.eclipse.sisu.inject/src/org/eclipse/sisu/space/QualifiedTypeBinder.java +@@ -39,32 +39,12 @@ import com.google.inject.name.Names; + public final class QualifiedTypeBinder + implements QualifiedTypeListener + { +- // ---------------------------------------------------------------------- +- // Static initialization +- // ---------------------------------------------------------------------- +- +- static +- { +- boolean hasJsr299Typed; +- try +- { +- hasJsr299Typed = javax.enterprise.inject.Typed.class.isAnnotation(); +- } +- catch ( final LinkageError e ) +- { +- hasJsr299Typed = false; +- } +- HAS_JSR299_TYPED = hasJsr299Typed; +- } +- + // ---------------------------------------------------------------------- + // Constants + // ---------------------------------------------------------------------- + + private static final TypeLiteral OBJECT_TYPE_LITERAL = TypeLiteral.get( Object.class ); + +- private static final boolean HAS_JSR299_TYPED; +- + // ---------------------------------------------------------------------- + // Implementation fields + // ---------------------------------------------------------------------- +@@ -377,14 +357,6 @@ public final class QualifiedTypeBinder + { + for ( Class c = clazz; null != c && c != Object.class; c = c.getSuperclass() ) + { +- if ( HAS_JSR299_TYPED ) +- { +- final javax.enterprise.inject.Typed typed = c.getAnnotation( javax.enterprise.inject.Typed.class ); +- if ( null != typed ) +- { +- return typed.value().length > 0 ? typed.value() : c.getInterfaces(); +- } +- } + final org.eclipse.sisu.Typed typed = c.getAnnotation( org.eclipse.sisu.Typed.class ); + if ( null != typed ) + { +-- +2.21.0 + diff --git a/sisu.spec b/sisu.spec index 6b5ede7..43bde96 100644 --- a/sisu.spec +++ b/sisu.spec @@ -16,16 +16,14 @@ Source101: sisu-inject.pom Source102: sisu-plexus.pom Patch0: sisu-OSGi-import-guava.patch -Patch2: sisu-ignored-tests.patch -Patch3: sisu-osgi-api.patch +Patch1: sisu-ignored-tests.patch +Patch2: sisu-osgi-api.patch + +Patch3: 0001-Remove-support-for-optional-features.patch BuildRequires: maven-local BuildRequires: mvn(com.google.inject.extensions:guice-servlet) BuildRequires: mvn(com.google.inject:guice::no_aop:) -BuildRequires: mvn(javax.annotation:javax.annotation-api) -BuildRequires: %{?module_prefix}mvn(javax.enterprise:cdi-api) -BuildRequires: mvn(javax.inject:javax.inject) -BuildRequires: mvn(javax.servlet:servlet-api) BuildRequires: mvn(junit:junit) BuildRequires: %{?module_prefix}mvn(org.codehaus.plexus:plexus-classworlds) BuildRequires: %{?module_prefix}mvn(org.codehaus.plexus:plexus-component-annotations) @@ -53,8 +51,9 @@ cp %{SOURCE101} sisu-inject/pom.xml cp %{SOURCE102} sisu-plexus/pom.xml %patch0 +%patch1 %patch2 -%patch3 +%patch3 -p1 %pom_xpath_set -r /pom:project/pom:version %{version} @@ -63,6 +62,11 @@ cp %{SOURCE102} sisu-plexus/pom.xml %mvn_package : __noinstall %mvn_alias :org.eclipse.sisu.plexus org.sonatype.sisu:sisu-inject-plexus +%pom_remove_dep :javax.inject sisu-inject +%pom_remove_dep :cdi-api sisu-inject +%pom_remove_dep :javax.annotation-api sisu-inject +%pom_remove_dep :servlet-api sisu-inject + %build %mvn_build