You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-issues@jackrabbit.apache.org by "Chetan Mehrotra (JIRA)" <ji...@apache.org> on 2015/11/17 07:08:11 UTC

[jira] [Commented] (OAK-3558) oak-core imports every package with the optional resolution policy

    [ https://issues.apache.org/jira/browse/OAK-3558?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15008113#comment-15008113 ] 

Chetan Mehrotra commented on OAK-3558:
--------------------------------------

Below are the bnd reports for oak-core

*With Optional Import*
{noformat}
[IMPEXP]
Import-Package
  com.google.common.base                {resolution:=optional, version=[15.0,16)}
  com.google.common.cache               {resolution:=optional, version=[15.0,16)}
  com.google.common.collect             {resolution:=optional, version=[15.0,16)}
  com.google.common.hash                {resolution:=optional, version=[15.0,16)}
  com.google.common.io                  {resolution:=optional, version=[15.0,16)}
  com.google.common.primitives          {resolution:=optional, version=[15.0,16)}
  com.google.common.util.concurrent     {resolution:=optional, version=[15.0,16)}
  com.mongodb                           {resolution:=optional, version=[2.13,3)}
  com.mongodb.util                      {resolution:=optional, version=[2.13,3)}
  javax.annotation                      {resolution:=optional}
  javax.crypto                          {resolution:=optional}
  javax.crypto.spec                     {resolution:=optional}
  javax.jcr                             {resolution:=optional, version=[2.0,3)}
  javax.jcr.lock                        {resolution:=optional, version=[2.0,3)}
  javax.jcr.nodetype                    {resolution:=optional, version=[2.0,3)}
  javax.jcr.security                    {resolution:=optional, version=[2.0,3)}
  javax.jcr.version                     {resolution:=optional, version=[2.0,3)}
  javax.management                      {resolution:=optional}
  javax.management.openmbean            {resolution:=optional}
  javax.security.auth                   {resolution:=optional}
  javax.security.auth.callback          {resolution:=optional}
  javax.security.auth.login             {resolution:=optional}
  javax.security.auth.spi               {resolution:=optional}
  javax.sql                             {resolution:=optional}
  org.apache.commons.codec.binary       {resolution:=optional, version=[1.5,2)}
  org.apache.commons.io                 {resolution:=optional, version=[1.4,2)}
  org.apache.commons.io.filefilter      {resolution:=optional, version=[1.4,2)}
  org.apache.jackrabbit                 {resolution:=optional}
  org.apache.jackrabbit.api             {resolution:=optional, version=[2.4,3)}
  org.apache.jackrabbit.api.jmx         {resolution:=optional, version=[2.1,3)}
  org.apache.jackrabbit.api.security    {resolution:=optional, version=[2.3,3)}
  org.apache.jackrabbit.api.security.authentication.token{resolution:=optional, version=[2.3,3)}
  org.apache.jackrabbit.api.security.authorization{resolution:=optional, version=[2.3,3)}
  org.apache.jackrabbit.api.security.principal{resolution:=optional, version=[2.3,3)}
  org.apache.jackrabbit.api.security.user{resolution:=optional, version=[2.4,2.5)}
  org.apache.jackrabbit.api.stats       {resolution:=optional, version=[1.2,2)}
  org.apache.jackrabbit.aws.ext.ds      {resolution:=optional}
  org.apache.jackrabbit.commons         {resolution:=optional, version=[2.4,3)}
  org.apache.jackrabbit.commons.cnd     {resolution:=optional, version=[2.3,3)}
  org.apache.jackrabbit.commons.iterator{resolution:=optional, version=[2.4,3)}
  org.apache.jackrabbit.commons.jackrabbit.authorization{resolution:=optional}
  org.apache.jackrabbit.core.data       {resolution:=optional}
  org.apache.jackrabbit.core.data.db    {resolution:=optional}
  org.apache.jackrabbit.core.util.db    {resolution:=optional}
  org.apache.jackrabbit.oak.api         {resolution:=optional, version=[3.0,3.1)}
  org.apache.jackrabbit.oak.api.jmx     {resolution:=optional, version=[3.0,3.1)}
  org.apache.jackrabbit.oak.blob.cloud.aws.s3{resolution:=optional}
  org.apache.jackrabbit.oak.commons     {resolution:=optional, version=[2.4,3)}
  org.apache.jackrabbit.oak.commons.concurrent{resolution:=optional, version=[1.0,2)}
  org.apache.jackrabbit.oak.commons.jmx {resolution:=optional, version=[1.0,2)}
  org.apache.jackrabbit.oak.commons.json{resolution:=optional, version=[1.0,2)}
  org.apache.jackrabbit.oak.commons.sort{resolution:=optional, version=[1.1,2)}
  org.apache.jackrabbit.oak.json        {resolution:=optional, version=[1.0,1.1)}
  org.apache.jackrabbit.oak.namepath    {resolution:=optional, version=[2.0,2.1)}
  org.apache.jackrabbit.oak.osgi        {resolution:=optional, version=[2.0,2.1)}
  org.apache.jackrabbit.oak.plugins.identifier{resolution:=optional, version=[1.0,1.1)}
  org.apache.jackrabbit.oak.plugins.index{resolution:=optional, version=[3.0,3.1)}
  org.apache.jackrabbit.oak.plugins.index.fulltext{resolution:=optional, version=[1.0,1.1)}
  org.apache.jackrabbit.oak.plugins.index.nodetype{resolution:=optional, version=[1.0,1.1)}
  org.apache.jackrabbit.oak.plugins.lock{resolution:=optional, version=[1.0,1.1)}
  org.apache.jackrabbit.oak.plugins.memory{resolution:=optional, version=[2.0,2.1)}
  org.apache.jackrabbit.oak.plugins.name{resolution:=optional, version=[1.0,1.1)}
  org.apache.jackrabbit.oak.plugins.value{resolution:=optional, version=[1.0,1.1)}
  org.apache.jackrabbit.oak.spi.blob    {resolution:=optional, version=[1.2,1.3)}
  org.apache.jackrabbit.oak.spi.blob.split{resolution:=optional, version=[1.4,2)}
  org.apache.jackrabbit.oak.spi.commit  {resolution:=optional, version=[1.0,1.1)}
  org.apache.jackrabbit.oak.spi.lifecycle{resolution:=optional, version=[1.0,1.1)}
  org.apache.jackrabbit.oak.spi.security{resolution:=optional, version=[1.2,1.3)}
  org.apache.jackrabbit.oak.spi.security.authentication.callback{resolution:=optional, version=[1.0,1.1)}
  org.apache.jackrabbit.oak.spi.security.authentication.token{resolution:=optional, version=[1.3,1.4)}
  org.apache.jackrabbit.oak.spi.security.authorization{resolution:=optional, version=[1.0,1.1)}
  org.apache.jackrabbit.oak.spi.security.authorization.accesscontrol{resolution:=optional, version=[1.4,1.5)}
  org.apache.jackrabbit.oak.spi.security.authorization.permission{resolution:=optional, version=[4.0,4.1)}
  org.apache.jackrabbit.oak.spi.security.authorization.restriction{resolution:=optional, version=[1.1,1.2)}
  org.apache.jackrabbit.oak.spi.security.principal{resolution:=optional, version=[1.2,1.3)}
  org.apache.jackrabbit.oak.spi.security.privilege{resolution:=optional, version=[1.1,1.2)}
  org.apache.jackrabbit.oak.spi.security.user{resolution:=optional, version=[2.1,2.2)}
  org.apache.jackrabbit.oak.spi.security.user.action{resolution:=optional, version=[1.0,1.1)}
  org.apache.jackrabbit.oak.spi.security.user.util{resolution:=optional, version=[1.2,1.3)}
  org.apache.jackrabbit.oak.spi.state   {resolution:=optional, version=[1.2,1.3)}
  org.apache.jackrabbit.oak.spi.whiteboard{resolution:=optional, version=[1.0,1.1)}
  org.apache.jackrabbit.oak.spi.xml     {resolution:=optional, version=[1.0,1.1)}
  org.apache.jackrabbit.oak.stats       {resolution:=optional, version=[1.1,1.2)}
  org.apache.jackrabbit.stats           {resolution:=optional, version=[2.7,3)}
  org.apache.jackrabbit.stats.jmx       {resolution:=optional}
  org.apache.jackrabbit.util            {resolution:=optional, version=[2.4,3)}
  org.apache.jackrabbit.value           {resolution:=optional, version=[2.2,3)}
  org.bson                              {resolution:=optional, version=[2.13,3)}
  org.h2.mvstore                        {resolution:=optional, version=[1.4,2)}
  org.h2.mvstore.type                   {resolution:=optional, version=[1.4,2)}
  org.jclouds                           {resolution:=optional}
  org.jclouds.blobstore                 {resolution:=optional, version=[1.7,2)}
  org.jclouds.blobstore.domain          {resolution:=optional, version=[1.7,2)}
  org.jclouds.blobstore.options         {resolution:=optional, version=[1.7,2)}
  org.jclouds.domain                    {resolution:=optional, version=[1.7,2)}
  org.jclouds.io                        {resolution:=optional, version=[1.7,2)}
  org.osgi.framework                    {resolution:=optional, version=[1.5,2)}
  org.osgi.service.component            {resolution:=optional, version=[1.1,2)}
  org.osgi.util.tracker                 {resolution:=optional, version=[1.4,2)}
  org.slf4j                             {resolution:=optional, version=[1.7,2)}
  org.slf4j.helpers                     {resolution:=optional, version=[1.7,2)}
{noformat}

*Without Optional Import*

{noformat}
[IMPEXP]
Import-Package
  com.google.common.base                {version=[15.0,16)}
  com.google.common.cache               {version=[15.0,16)}
  com.google.common.collect             {version=[15.0,16)}
  com.google.common.hash                {version=[15.0,16)}
  com.google.common.io                  {version=[15.0,16)}
  com.google.common.primitives          {version=[15.0,16)}
  com.google.common.util.concurrent     {version=[15.0,16)}
  com.mongodb                           {version=[2.13,3), resolution:=optional}
  com.mongodb.util                      {version=[2.13,3), resolution:=optional}
  javax.annotation                      
  javax.crypto                          
  javax.crypto.spec                     
  javax.jcr                             {version=[2.0,3)}
  javax.jcr.lock                        {version=[2.0,3)}
  javax.jcr.nodetype                    {version=[2.0,3)}
  javax.jcr.security                    {version=[2.0,3)}
  javax.jcr.version                     {version=[2.0,3)}
  javax.management                      
  javax.management.openmbean            
  javax.security.auth                   
  javax.security.auth.callback          
  javax.security.auth.login             
  javax.security.auth.spi               
  javax.sql                             
  org.apache.commons.codec.binary       {version=[1.5,2)}
  org.apache.commons.io                 {version=[1.4,2)}
  org.apache.commons.io.filefilter      {version=[1.4,2)}
  org.apache.jackrabbit                 
  org.apache.jackrabbit.api             {version=[2.4,3)}
  org.apache.jackrabbit.api.jmx         {version=[2.1,3)}
  org.apache.jackrabbit.api.security    {version=[2.3,3)}
  org.apache.jackrabbit.api.security.authentication.token{version=[2.3,3)}
  org.apache.jackrabbit.api.security.authorization{version=[2.3,3)}
  org.apache.jackrabbit.api.security.principal{version=[2.3,3)}
  org.apache.jackrabbit.api.security.user{version=[2.4,2.5)}
  org.apache.jackrabbit.api.stats       {version=[1.2,2)}
  org.apache.jackrabbit.aws.ext.ds      {resolution:=optional}
  org.apache.jackrabbit.commons         {version=[2.4,3)}
  org.apache.jackrabbit.commons.cnd     {version=[2.3,3)}
  org.apache.jackrabbit.commons.iterator{version=[2.4,3)}
  org.apache.jackrabbit.commons.jackrabbit.authorization
  org.apache.jackrabbit.core.data       {resolution:=optional}
  org.apache.jackrabbit.core.data.db    {resolution:=optional}
  org.apache.jackrabbit.core.util.db    {resolution:=optional}
  org.apache.jackrabbit.oak.api         {version=[3.0,3.1)}
  org.apache.jackrabbit.oak.api.jmx     {version=[3.0,3.1)}
  org.apache.jackrabbit.oak.blob.cloud.aws.s3{resolution:=optional}
  org.apache.jackrabbit.oak.commons     {version=[2.4,3)}
  org.apache.jackrabbit.oak.commons.concurrent{version=[1.0,2)}
  org.apache.jackrabbit.oak.commons.jmx {version=[1.0,2)}
  org.apache.jackrabbit.oak.commons.json{version=[1.0,2)}
  org.apache.jackrabbit.oak.commons.sort{version=[1.1,2)}
  org.apache.jackrabbit.oak.json        {version=[1.0,1.1)}
  org.apache.jackrabbit.oak.namepath    {version=[2.0,2.1)}
  org.apache.jackrabbit.oak.osgi        {version=[2.0,2.1)}
  org.apache.jackrabbit.oak.plugins.identifier{version=[1.0,1.1)}
  org.apache.jackrabbit.oak.plugins.index{version=[3.0,3.1)}
  org.apache.jackrabbit.oak.plugins.index.fulltext{version=[1.0,1.1)}
  org.apache.jackrabbit.oak.plugins.index.nodetype{version=[1.0,1.1)}
  org.apache.jackrabbit.oak.plugins.lock{version=[1.0,1.1)}
  org.apache.jackrabbit.oak.plugins.memory{version=[2.0,2.1)}
  org.apache.jackrabbit.oak.plugins.name{version=[1.0,1.1)}
  org.apache.jackrabbit.oak.plugins.value{version=[1.0,1.1)}
  org.apache.jackrabbit.oak.spi.blob    {version=[1.2,1.3)}
  org.apache.jackrabbit.oak.spi.blob.split{version=[1.4,2)}
  org.apache.jackrabbit.oak.spi.commit  {version=[1.0,1.1)}
  org.apache.jackrabbit.oak.spi.lifecycle{version=[1.0,1.1)}
  org.apache.jackrabbit.oak.spi.security{version=[1.2,1.3)}
  org.apache.jackrabbit.oak.spi.security.authentication.callback{version=[1.0,1.1)}
  org.apache.jackrabbit.oak.spi.security.authentication.token{version=[1.3,1.4)}
  org.apache.jackrabbit.oak.spi.security.authorization{version=[1.0,1.1)}
  org.apache.jackrabbit.oak.spi.security.authorization.accesscontrol{version=[1.4,1.5)}
  org.apache.jackrabbit.oak.spi.security.authorization.permission{version=[4.0,4.1)}
  org.apache.jackrabbit.oak.spi.security.authorization.restriction{version=[1.1,1.2)}
  org.apache.jackrabbit.oak.spi.security.principal{version=[1.2,1.3)}
  org.apache.jackrabbit.oak.spi.security.privilege{version=[1.1,1.2)}
  org.apache.jackrabbit.oak.spi.security.user{version=[2.1,2.2)}
  org.apache.jackrabbit.oak.spi.security.user.action{version=[1.0,1.1)}
  org.apache.jackrabbit.oak.spi.security.user.util{version=[1.2,1.3)}
  org.apache.jackrabbit.oak.spi.state   {version=[1.2,1.3)}
  org.apache.jackrabbit.oak.spi.whiteboard{version=[1.0,1.1)}
  org.apache.jackrabbit.oak.spi.xml     {version=[1.0,1.1)}
  org.apache.jackrabbit.oak.stats       {version=[1.1,1.2)}
  org.apache.jackrabbit.stats           {version=[2.7,3)}
  org.apache.jackrabbit.stats.jmx       
  org.apache.jackrabbit.util            {version=[2.4,3)}
  org.apache.jackrabbit.value           {version=[2.2,3)}
  org.bson                              {version=[2.13,3), resolution:=optional}
  org.h2.mvstore                        {version=[1.4,2), resolution:=optional}
  org.h2.mvstore.type                   {version=[1.4,2), resolution:=optional}
  org.jclouds                           {resolution:=optional}
  org.jclouds.blobstore                 {version=[1.7,2), resolution:=optional}
  org.jclouds.blobstore.domain          {version=[1.7,2), resolution:=optional}
  org.jclouds.blobstore.options         {version=[1.7,2), resolution:=optional}
  org.jclouds.domain                    {version=[1.7,2), resolution:=optional}
  org.jclouds.io                        {version=[1.7,2), resolution:=optional}
  org.osgi.framework                    {version=[1.5,2)}
  org.osgi.service.component            {version=[1.1,2)}
  org.osgi.util.tracker                 {version=[1.4,2)}
  org.slf4j                             {version=[1.7,2)}
  org.slf4j.helpers                     {version=[1.7,2)}
{noformat}

> oak-core imports every package with the optional resolution policy
> ------------------------------------------------------------------
>
>                 Key: OAK-3558
>                 URL: https://issues.apache.org/jira/browse/OAK-3558
>             Project: Jackrabbit Oak
>          Issue Type: Bug
>          Components: core
>            Reporter: Francesco Mari
>            Assignee: Chetan Mehrotra
>             Fix For: 1.3.11
>
>
> The oak-core bundle declares that every imported package has an optional resolution policy. Because of this, the OSGi framework will not attempt to resolve any imported package, but will happily resolve the bundle even if some dependencies are missing. This may generate {{NoClassDefFoundError}} at runtime.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)