[shrinkwrap-issues] [JBoss JIRA] (SHRINKWRAP-337) Shrinkwrap maven resolver should be able to work offline after it worked online once: it should not download from the internet every time the test is running

Geoffrey De Smet (Commented) (JIRA) jira-events at lists.jboss.org
Wed Oct 12 14:20:16 EDT 2011


    [ https://issues.jboss.org/browse/SHRINKWRAP-337?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12634276#comment-12634276 ] 

Geoffrey De Smet commented on SHRINKWRAP-337:
---------------------------------------------

Partial workaround: use goOffline()

go0ffline isn't a real solution because:
- maven should NEVER redownload an non-SNAPSHOT artifact which it has already downloaded in a previous build. Whether or not it's in offline mode is irrelevant. This is why non-SNAPSHOT artifacts must never change after they are released (maven central enforces this now) as they can be cached forever.
- maven should redownload a SNAPSHOT artifact if the updatePolicy requires so (which is "daily" by default, but can be overridden settings.xml and the pom.xml repository element). "daily" means "you have to download the latest SNAPSHOT artifact on the first build of a day, but you must not redownload it in a later build on the same day"
                
> Shrinkwrap maven resolver should be able to work offline after it worked online once: it should not download from the internet every time the test is running
> -------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: SHRINKWRAP-337
>                 URL: https://issues.jboss.org/browse/SHRINKWRAP-337
>             Project: ShrinkWrap
>          Issue Type: Bug
>          Components: ext-resolver
>    Affects Versions: 1.0.0-beta-5
>            Reporter: Geoffrey De Smet
>            Assignee: Karel Piwko
>            Priority: Critical
>
> To reproduce:
> git clone https://github.com/kpiwko/blog.git kpiwko-blog
> cd kpiwko-blog
> // add jboss repo to ~/.m2/settings.xml
> Run tests => succeeds!
> // remove jboss repo from ~/.m2/settings.xml
> Run tests => Fails :(
> {code}
> 12:10:27.818 WARN - Failed downloading org/jboss/arquillian/arquillian-bom/1.0.0.CR5/arquillian-bom-1.0.0.CR5.pom from http://repo1.maven.org/maven2/, reason: org.apache.maven.wagon.ResourceDoesNotExistException: Could not find org/jboss/arquillian/arquillian-bom/1.0.0.CR5/arquillian-bom-1.0.0.CR5.pom in http://repo1.maven.org/maven2
> 12:10:28.077 WARN - Failed downloading org/jboss/arquillian/extension/arquillian-drone-bom/1.0.0.CR2/arquillian-drone-bom-1.0.0.CR2.pom from http://repo1.maven.org/maven2/, reason: org.apache.maven.wagon.ResourceDoesNotExistException: Could not find org/jboss/arquillian/extension/arquillian-drone-bom/1.0.0.CR2/arquillian-drone-bom-1.0.0.CR2.pom in http://repo1.maven.org/maven2
> java.lang.RuntimeException: Could not invoke deployment method: public static org.jboss.shrinkwrap.api.spec.WebArchive com.acme.ui.LoginScreenDefaultSeleniumTestCase.createDeployment()
> 	at org.jboss.arquillian.container.test.impl.client.deployment.AnnotationDeploymentScenarioGenerator.invoke(AnnotationDeploymentScenarioGenerator.java:160)
> 	at org.jboss.arquillian.container.test.impl.client.deployment.AnnotationDeploymentScenarioGenerator.generateDeployment(AnnotationDeploymentScenarioGenerator.java:94)
> 	at org.jboss.arquillian.container.test.impl.client.deployment.AnnotationDeploymentScenarioGenerator.generate(AnnotationDeploymentScenarioGenerator.java:57)
> 	at org.jboss.arquillian.container.test.impl.client.deployment.DeploymentGenerator.generateDeployment(DeploymentGenerator.java:79)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:90)
> 	at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:99)
> 	at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:81)
> 	at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:134)
> 	at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:114)
> 	at org.jboss.arquillian.core.impl.EventImpl.fire(EventImpl.java:67)
> 	at org.jboss.arquillian.container.test.impl.client.ContainerEventController.execute(ContainerEventController.java:96)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:90)
> 	at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:99)
> 	at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:81)
> 	at org.jboss.arquillian.test.impl.TestContextHandler.createClassContext(TestContextHandler.java:68)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:90)
> 	at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88)
> 	at org.jboss.arquillian.test.impl.TestContextHandler.createSuiteContext(TestContextHandler.java:54)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:90)
> 	at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88)
> 	at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:134)
> 	at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:114)
> 	at org.jboss.arquillian.test.impl.EventTestRunnerAdaptor.beforeClass(EventTestRunnerAdaptor.java:80)
> 	at org.jboss.arquillian.junit.Arquillian$2.evaluate(Arquillian.java:158)
> 	at org.jboss.arquillian.junit.Arquillian.multiExecute(Arquillian.java:290)
> 	at org.jboss.arquillian.junit.Arquillian.access$100(Arquillian.java:45)
> 	at org.jboss.arquillian.junit.Arquillian$3.evaluate(Arquillian.java:175)
> 	at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
> 	at org.jboss.arquillian.junit.Arquillian.run(Arquillian.java:123)
> 	at org.junit.runner.JUnitCore.run(JUnitCore.java:157)
> 	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:71)
> 	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:199)
> 	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:62)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
> Caused by: java.lang.reflect.InvocationTargetException
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at org.jboss.arquillian.container.test.impl.client.deployment.AnnotationDeploymentScenarioGenerator.invoke(AnnotationDeploymentScenarioGenerator.java:156)
> 	... 53 more
> Caused by: org.jboss.shrinkwrap.resolver.api.ResolutionException: Found 10 problems while building POM model from /home/gdesmet/projects/jboss/arquillian/kpiwko-blog/drone-selenium/pom.xml1/ [ERROR] Non-resolvable import POM: Failed to resolve POM for org.jboss.arquillian:arquillian-bom:1.0.0.CR5 due to Could not find artifact org.jboss.arquillian:arquillian-bom:pom:1.0.0.CR5 in central (http://repo1.maven.org/maven2) @ org.jboss.arquillian.extension.drone:drone-blog-selenium-example:1.0.0-SNAPSHOT, /home/gdesmet/projects/jboss/arquillian/kpiwko-blog/drone-selenium/pom.xml
> 2/ [ERROR] Non-resolvable import POM: Failed to resolve POM for org.jboss.arquillian.extension:arquillian-drone-bom:1.0.0.CR2 due to Could not find artifact org.jboss.arquillian.extension:arquillian-drone-bom:pom:1.0.0.CR2 in central (http://repo1.maven.org/maven2) @ org.jboss.arquillian.extension.drone:drone-blog-selenium-example:1.0.0-SNAPSHOT, /home/gdesmet/projects/jboss/arquillian/kpiwko-blog/drone-selenium/pom.xml
> 3/ [ERROR] 'dependencies.dependency.version' for org.jboss.arquillian.junit:arquillian-junit-container:jar is missing. @ org.jboss.arquillian.extension.drone:drone-blog-selenium-example:1.0.0-SNAPSHOT, /home/gdesmet/projects/jboss/arquillian/kpiwko-blog/drone-selenium/pom.xml
> 4/ [ERROR] 'dependencies.dependency.version' for org.jboss.shrinkwrap.resolver:shrinkwrap-resolver-impl-maven:jar is missing. @ org.jboss.arquillian.extension.drone:drone-blog-selenium-example:1.0.0-SNAPSHOT, /home/gdesmet/projects/jboss/arquillian/kpiwko-blog/drone-selenium/pom.xml
> 5/ [ERROR] 'dependencies.dependency.version' for org.jboss.arquillian.extension:arquillian-drone-impl:jar is missing. @ org.jboss.arquillian.extension.drone:drone-blog-selenium-example:1.0.0-SNAPSHOT, /home/gdesmet/projects/jboss/arquillian/kpiwko-blog/drone-selenium/pom.xml
> 6/ [ERROR] 'dependencies.dependency.version' for org.jboss.arquillian.extension:arquillian-drone-selenium:jar is missing. @ org.jboss.arquillian.extension.drone:drone-blog-selenium-example:1.0.0-SNAPSHOT, /home/gdesmet/projects/jboss/arquillian/kpiwko-blog/drone-selenium/pom.xml
> 7/ [ERROR] 'dependencies.dependency.version' for org.jboss.arquillian.extension:arquillian-drone-selenium-server:jar is missing. @ org.jboss.arquillian.extension.drone:drone-blog-selenium-example:1.0.0-SNAPSHOT, /home/gdesmet/projects/jboss/arquillian/kpiwko-blog/drone-selenium/pom.xml
> 8/ [ERROR] 'dependencies.dependency.version' for org.seleniumhq.selenium:selenium-java:jar is missing. @ org.jboss.arquillian.extension.drone:drone-blog-selenium-example:1.0.0-SNAPSHOT, /home/gdesmet/projects/jboss/arquillian/kpiwko-blog/drone-selenium/pom.xml
> 9/ [ERROR] 'dependencies.dependency.version' for org.seleniumhq.selenium:selenium-server:jar is missing. @ org.jboss.arquillian.extension.drone:drone-blog-selenium-example:1.0.0-SNAPSHOT, /home/gdesmet/projects/jboss/arquillian/kpiwko-blog/drone-selenium/pom.xml
> 10/ [ERROR] 'dependencies.dependency.version' for org.slf4j:slf4j-simple:jar is missing. @ org.jboss.arquillian.extension.drone:drone-blog-selenium-example:1.0.0-SNAPSHOT, /home/gdesmet/projects/jboss/arquillian/kpiwko-blog/drone-selenium/pom.xml
> 	at org.jboss.shrinkwrap.resolver.impl.maven.MavenRepositorySystem.loadPom(MavenRepositorySystem.java:154)
> 	at org.jboss.shrinkwrap.resolver.impl.maven.MavenRepositorySystem.loadPom(MavenRepositorySystem.java:126)
> 	at org.jboss.shrinkwrap.resolver.impl.maven.MavenBuilderImpl.loadMetadataFromPom(MavenBuilderImpl.java:153)
> 	at com.acme.ui.Deployments.createLoginScreenDeployment(Deployments.java:43)
> 	at com.acme.ui.LoginScreenDefaultSeleniumTestCase.createDeployment(LoginScreenDefaultSeleniumTestCase.java:44)
> 	... 58 more
> Caused by: org.apache.maven.model.building.ModelBuildingException: 10 problems were encountered while building the effective model for org.jboss.arquillian.extension.drone:drone-blog-selenium-example:1.0.0-SNAPSHOT
> [ERROR] Non-resolvable import POM: Failed to resolve POM for org.jboss.arquillian:arquillian-bom:1.0.0.CR5 due to Could not find artifact org.jboss.arquillian:arquillian-bom:pom:1.0.0.CR5 in central (http://repo1.maven.org/maven2) @ 
> [ERROR] Non-resolvable import POM: Failed to resolve POM for org.jboss.arquillian.extension:arquillian-drone-bom:1.0.0.CR2 due to Could not find artifact org.jboss.arquillian.extension:arquillian-drone-bom:pom:1.0.0.CR2 in central (http://repo1.maven.org/maven2) @ 
> [ERROR] 'dependencies.dependency.version' for org.jboss.arquillian.junit:arquillian-junit-container:jar is missing. @ 
> [ERROR] 'dependencies.dependency.version' for org.jboss.shrinkwrap.resolver:shrinkwrap-resolver-impl-maven:jar is missing. @ 
> [ERROR] 'dependencies.dependency.version' for org.jboss.arquillian.extension:arquillian-drone-impl:jar is missing. @ 
> [ERROR] 'dependencies.dependency.version' for org.jboss.arquillian.extension:arquillian-drone-selenium:jar is missing. @ 
> [ERROR] 'dependencies.dependency.version' for org.jboss.arquillian.extension:arquillian-drone-selenium-server:jar is missing. @ 
> [ERROR] 'dependencies.dependency.version' for org.seleniumhq.selenium:selenium-java:jar is missing. @ 
> [ERROR] 'dependencies.dependency.version' for org.seleniumhq.selenium:selenium-server:jar is missing. @ 
> [ERROR] 'dependencies.dependency.version' for org.slf4j:slf4j-simple:jar is missing. @ 
> 	at org.apache.maven.model.building.DefaultModelBuilder.build(DefaultModelBuilder.java:422)
> 	at org.apache.maven.model.building.DefaultModelBuilder.build(DefaultModelBuilder.java:374)
> 	at org.apache.maven.model.building.DefaultModelBuilder.build(DefaultModelBuilder.java:365)
> 	at org.apache.maven.model.building.DefaultModelBuilder.build(DefaultModelBuilder.java:232)
> 	at org.jboss.shrinkwrap.resolver.impl.maven.MavenRepositorySystem.loadPom(MavenRepositorySystem.java:140)
> 	... 62 more
> java.lang.NullPointerException
> 	at org.jboss.arquillian.drone.impl.DroneDestructor.destroyClassScopedDrone(DroneDestructor.java:82)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:90)
> 	at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:99)
> 	at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:81)
> 	at org.jboss.arquillian.test.impl.TestContextHandler.createClassContext(TestContextHandler.java:68)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:90)
> 	at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88)
> 	at org.jboss.arquillian.test.impl.TestContextHandler.createSuiteContext(TestContextHandler.java:54)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:90)
> 	at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88)
> 	at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:134)
> 	at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:114)
> 	at org.jboss.arquillian.test.impl.EventTestRunnerAdaptor.afterClass(EventTestRunnerAdaptor.java:87)
> 	at org.jboss.arquillian.junit.Arquillian$3$1.evaluate(Arquillian.java:180)
> 	at org.jboss.arquillian.junit.Arquillian.multiExecute(Arquillian.java:290)
> 	at org.jboss.arquillian.junit.Arquillian.access$100(Arquillian.java:45)
> 	at org.jboss.arquillian.junit.Arquillian$3.evaluate(Arquillian.java:175)
> 	at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
> 	at org.jboss.arquillian.junit.Arquillian.run(Arquillian.java:123)
> 	at org.junit.runner.JUnitCore.run(JUnitCore.java:157)
> 	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:71)
> 	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:199)
> 	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:62)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
> {code}
> Other, better way to test it probably:
> - Run tests once => succeed.
> - Unplug network cable
> - Run tests again => fails.
> Everything should be in the local repository after the first test run.
> In this case there are no snapshots involved, but even snapshots don't get updates if the network is down.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the shrinkwrap-issues mailing list