Uploaded image for project: 'Sling'
  1. Sling
  2. SLING-8060

Sling Testing Mocks: Transitive dependencies necessary at test execution time should be defined with scope "compile"

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: Testing OSGi Mock 2.4.2, Testing Sling Mock 2.3.4
    • Fix Version/s: None
    • Component/s: Testing
    • Labels:
      None

      Description

      Currently Testing OSGi Mock and Testing Sling Mock have a class execution time dependency to e.g. OSGi Configuration Admin and Event Admin (in https://github.com/apache/sling-org-apache-sling-testing-osgi-mock/blob/b04e06522379d32552353304746fbcdb09258460/core/src/main/java/org/apache/sling/testing/mock/osgi/MockOsgi.java#L312 and in https://github.com/apache/sling-org-apache-sling-testing-sling-mock/blob/ef994bfbc9ae2288c66ef8be7fd3997913cc9144/core/src/main/java/org/apache/sling/testing/mock/sling/ResourceResolverFactoryInitializer.java#L42). Still the dependency to it is only defined with scope "provided" in https://github.com/apache/sling-org-apache-sling-testing-osgi-mock/blob/b04e06522379d32552353304746fbcdb09258460/parent/pom.xml#L49 and https://github.com/apache/sling-org-apache-sling-testing-sling-mock/blob/986bdfbbf6c3f5f416d6acc24329eb431f67494a/core/pom.xml#L37.

      That is a problem as transitive dependencies with scope "provided" are not included in the classpath. That may lead to the fact that the ConfigurationAdmin/EventAdmin is not part of the testing classpath (in case it isn't explicitly defined for some other reason) . Please make sure that all dependencies which are actually always necessary at test execution time are included with scope "compile" (https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Dependency_Scope).

      This issue does not happen that often, as in most of the cases the to be tested modules already define an explicit dependency to org.osgi:osgi.cmpn and org.osgi:osgi.core, but since nowadays the OSGi foundation provides not only the aggregate dependencies but also individual ones, this is no longer necessarily the case (compare with https://issues.apache.org/jira/browse/SLING-7384?focusedCommentId=16327433&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-16327433).

      At the same time of converting the dependency scope to "compile" we should switch from the aggregate to the individual osgi artifacts (to be able to more granularly define which OSGi level is used).

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                kwin Konrad Windszus
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:

                  Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 10m
                  10m