Uploaded image for project: 'ShrinkWrap'
  1. ShrinkWrap
  2. SHRINKWRAP-408

org.jboss.shrinkwrap.resolver:shrinkwrap-resolver-bom:1.0.0-beta-6 specifies scope in dependency management section

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: Critical Critical
    • None
    • 1.0.0-beta-6
    • None
    • None

      org.jboss.shrinkwrap.resolver:shrinkwrap-resolver-bom:1.0.0-beta-6 specifies scope runtime in dependency management section.

          <dependencies>
            <dependency>
              <groupId>org.jboss.shrinkwrap.resolver</groupId>
              <artifactId>shrinkwrap-resolver-api</artifactId>
              <version>${project.version}</version>
            </dependency>
            <dependency>
              <groupId>org.jboss.shrinkwrap.resolver</groupId>
              <artifactId>shrinkwrap-resolver-api-maven</artifactId>
              <version>${project.version}</version>
            </dependency>
            <dependency>
              <groupId>org.jboss.shrinkwrap.resolver</groupId>
              <artifactId>shrinkwrap-resolver-impl-maven</artifactId>
              <version>${project.version}</version>
              <scope>runtime</scope> <!-- NO REASON WHY TO SPECIFY SCOPE -->
            </dependency>
          </dependencies>
      

      BOM generally shouldn't specify scope of managed dependency at all.

      Right now Seam2 which uses org.jboss.arquillian:arquillian-bom:1.0.0.Final has got in dependency hierarchy that shrinkwrap-resolver-bom which changes scopes of its dependencies from test to runtime and that causes conflicts in application test war/ear with other libraries which are there in archive for functionality purposes.

      One example of affection is this conflict between google-collections from shrinkwrap dependency tree and guava from other runtime dependency hierarchy:

      19:30:33,910 SEVERE [javax.enterprise.resource.webcontainer.jsf.config] (MSC service thread 1-3) Critical error during deployment: : java.lang.NoSuchMethodError: com.google.common.base.Platform.precomputeCharMatcher(Lcom/google/common/base/CharMatcher;)Lcom/google/common/base/CharMatcher;
      	at com.google.common.base.CharMatcher.precomputed(CharMatcher.java:657) [guava-11.0.2.jar:]
      	at com.google.common.base.CharMatcher.<clinit>(CharMatcher.java:75) [guava-11.0.2.jar:]
      	at com.google.common.base.Splitter.on(Splitter.java:125) [guava-11.0.2.jar:]
      	at org.richfaces.resource.ResourceLibraryFactoryImpl.<clinit>(ResourceLibraryFactoryImpl.java:43) [richfaces-core-impl-4.2.2.Final.jar:4.2.2.Final]
      	at org.richfaces.application.DefaultModule.configure(DefaultModule.java:32) [richfaces-core-impl-4.2.2.Final.jar:4.2.2.Final]
      	at org.richfaces.application.ServicesFactoryImpl.init(ServicesFactoryImpl.java:27) [richfaces-core-impl-4.2.2.Final.jar:4.2.2.Final]
      	at org.richfaces.application.InitializationListener.createFactory(InitializationListener.java:129) [richfaces-core-impl-4.2.2.Final.jar:4.2.2.Final]
      	at org.richfaces.application.InitializationListener.onStart(InitializationListener.java:67) [richfaces-core-impl-4.2.2.Final.jar:4.2.2.Final]
      	at org.richfaces.application.InitializationListener.processEvent(InitializationListener.java:147) [richfaces-core-impl-4.2.2.Final.jar:4.2.2.Final]
      	at javax.faces.event.SystemEvent.processListener(SystemEvent.java:106) [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
      	at com.sun.faces.application.ApplicationImpl.processListeners(ApplicationImpl.java:2168) [jsf-impl-2.1.7-jbossorg-2.jar:]
      	at com.sun.faces.application.ApplicationImpl.invokeListenersFor(ApplicationImpl.java:2144) [jsf-impl-2.1.7-jbossorg-2.jar:]
      	at com.sun.faces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:302) [jsf-impl-2.1.7-jbossorg-2.jar:]
      	at org.jboss.seam.jsf.SeamApplication.publishEvent(SeamApplication.java:458) [jboss-seam.jar:2.3.0.CR1-SNAPSHOT]
      	at com.sun.faces.config.ConfigManager.publishPostConfigEvent(ConfigManager.java:601) [jsf-impl-2.1.7-jbossorg-2.jar:]
      	at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:370) [jsf-impl-2.1.7-jbossorg-2.jar:]
      	at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:225) [jsf-impl-2.1.7-jbossorg-2.jar:]
      	at org.apache.catalina.core.StandardContext.contextListenerStart(StandardContext.java:3392) [jbossweb-7.0.13.Final.jar:]
      	at org.apache.catalina.core.StandardContext.start(StandardContext.java:3850) [jbossweb-7.0.13.Final.jar:]
      	at org.jboss.as.web.deployment.WebDeploymentService.start(WebDeploymentService.java:90) [jboss-as-web-7.1.1.Final.jar:7.1.1.Final]
      	at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811)
      	at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [rt.jar:1.6.0_30]
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [rt.jar:1.6.0_30]
      	at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_30]
      
      19:30:33,964 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/seam-blog]] (MSC service thread 1-3) Exception sending context initialized event to listener instance of class com.sun.faces.config.ConfigureListener: java.lang.RuntimeException: java.lang.NoSuchMethodError: com.google.common.base.Platform.precomputeCharMatcher(Lcom/google/common/base/CharMatcher;)Lcom/google/common/base/CharMatcher;
      	at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:292) [jsf-impl-2.1.7-jbossorg-2.jar:]
      	at org.apache.catalina.core.StandardContext.contextListenerStart(StandardContext.java:3392) [jbossweb-7.0.13.Final.jar:]
      	at org.apache.catalina.core.StandardContext.start(StandardContext.java:3850) [jbossweb-7.0.13.Final.jar:]
      	at org.jboss.as.web.deployment.WebDeploymentService.start(WebDeploymentService.java:90) [jboss-as-web-7.1.1.Final.jar:7.1.1.Final]
      	at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811)
      	at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [rt.jar:1.6.0_30]
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [rt.jar:1.6.0_30]
      	at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_30]
      Caused by: java.lang.NoSuchMethodError: com.google.common.base.Platform.precomputeCharMatcher(Lcom/google/common/base/CharMatcher;)Lcom/google/common/base/CharMatcher;
      	at com.google.common.base.CharMatcher.precomputed(CharMatcher.java:657) [guava-11.0.2.jar:]
      	at com.google.common.base.CharMatcher.<clinit>(CharMatcher.java:75) [guava-11.0.2.jar:]
      	at com.google.common.base.Splitter.on(Splitter.java:125) [guava-11.0.2.jar:]
      	at org.richfaces.resource.ResourceLibraryFactoryImpl.<clinit>(ResourceLibraryFactoryImpl.java:43) [richfaces-core-impl-4.2.2.Final.jar:4.2.2.Final]
      	at org.richfaces.application.DefaultModule.configure(DefaultModule.java:32) [richfaces-core-impl-4.2.2.Final.jar:4.2.2.Final]
      	at org.richfaces.application.ServicesFactoryImpl.init(ServicesFactoryImpl.java:27) [richfaces-core-impl-4.2.2.Final.jar:4.2.2.Final]
      	at org.richfaces.application.InitializationListener.createFactory(InitializationListener.java:129) [richfaces-core-impl-4.2.2.Final.jar:4.2.2.Final]
      	at org.richfaces.application.InitializationListener.onStart(InitializationListener.java:67) [richfaces-core-impl-4.2.2.Final.jar:4.2.2.Final]
      	at org.richfaces.application.InitializationListener.processEvent(InitializationListener.java:147) [richfaces-core-impl-4.2.2.Final.jar:4.2.2.Final]
      	at javax.faces.event.SystemEvent.processListener(SystemEvent.java:106) [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
      	at com.sun.faces.application.ApplicationImpl.processListeners(ApplicationImpl.java:2168) [jsf-impl-2.1.7-jbossorg-2.jar:]
      	at com.sun.faces.application.ApplicationImpl.invokeListenersFor(ApplicationImpl.java:2144) [jsf-impl-2.1.7-jbossorg-2.jar:]
      	at com.sun.faces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:302) [jsf-impl-2.1.7-jbossorg-2.jar:]
      	at org.jboss.seam.jsf.SeamApplication.publishEvent(SeamApplication.java:458) [jboss-seam.jar:2.3.0.CR1-SNAPSHOT]
      	at com.sun.faces.config.ConfigManager.publishPostConfigEvent(ConfigManager.java:601) [jsf-impl-2.1.7-jbossorg-2.jar:]
      	at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:370) [jsf-impl-2.1.7-jbossorg-2.jar:]
      	at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:225) [jsf-impl-2.1.7-jbossorg-2.jar:]
      	... 8 more
      

      Please check all occurrences of this issue (specifying scope) in all Shrinkwrap BOMs as it is not good to find out in steps what is next remaining.

              Unassigned Unassigned
              mnovotny@redhat.com Marek Novotny
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

                Created:
                Updated:
                Resolved: