You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@shiro.apache.org by "Stuart McCulloch (Jira)" <ji...@apache.org> on 2020/04/27 22:26:00 UTC

[jira] [Created] (SHIRO-761) Bad OSGi import for javax.annotation in shiro-guice

Stuart McCulloch created SHIRO-761:
--------------------------------------

             Summary: Bad OSGi import for javax.annotation in shiro-guice
                 Key: SHIRO-761
                 URL: https://issues.apache.org/jira/browse/SHIRO-761
             Project: Shiro
          Issue Type: Bug
          Components: Integration: Guice
    Affects Versions: 1.5.2
            Reporter: Stuart McCulloch
            Assignee: Jared Bunting


shiro-guice 1.5.2 declares the following OSGi import for javax.annotation:
{code}
javax.annotation;version="[3.0,4)"
{code}
This is incorrect, the latest spec version for javax.annotation is 1.3

This appears to be caused by the javax.annotation dependency appearing below the guice dependency in support/guice/pom.xml. The guice dependency pulls in com.google.code.findbugs:jsr305:jar:3.0.2 and the maven-bundle-plugin takes that as the version to use for the javax.annotation import, rather than the javax.annotation-api dependency (version 1.3.2)

The following minor patch fixes the import range by changing the order of the dependencies:
{code}
diff --git a/support/guice/pom.xml b/support/guice/pom.xml
index 9d9e8b3..8217cfa 100644
--- a/support/guice/pom.xml
+++ b/support/guice/pom.xml
@@ -46,6 +46,10 @@
             <optional>true</optional>
         </dependency>
         <dependency>
+            <groupId>javax.annotation</groupId>
+            <artifactId>javax.annotation-api</artifactId>
+        </dependency>
+        <dependency>
             <groupId>com.google.inject</groupId>
             <artifactId>guice</artifactId>
         </dependency>
@@ -54,10 +58,6 @@
             <artifactId>guice-multibindings</artifactId>
         </dependency>
         <dependency>
-            <groupId>javax.annotation</groupId>
-            <artifactId>javax.annotation-api</artifactId>
-        </dependency>
-        <dependency>
             <groupId>com.google.inject.extensions</groupId>
             <artifactId>guice-servlet</artifactId>
             <optional>true</optional>
{code}

If you build the shiro-guice module before and after this fix then you should see the difference in support/guice/target/classes/META-INF/MANIFEST.MF



--
This message was sent by Atlassian Jira
(v8.3.4#803005)