[INFO] Scanning for projects...
[WARNING] 
[WARNING] Some problems were encountered while building the effective model for org.jclouds.api:byon:bundle:1.4.0-SNAPSHOT
[WARNING] 'parent.relativePath' of POM org.jclouds:jclouds-project:1.4.0-SNAPSHOT (/Users/adriancole/workspace/git/1.4.x/jclouds/project/pom.xml) points at org.jclouds:jclouds-multi instead of org.sonatype.oss:oss-parent, please verify your project structure @ org.jclouds:jclouds-project:1.4.0-SNAPSHOT, /Users/adriancole/workspace/git/1.4.x/jclouds/project/pom.xml, line 24, column 13
[WARNING] 
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING] 
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
[WARNING] 
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building jclouds bring your own node provider 1.4.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.4.1:clean (default-clean) @ byon ---
[INFO] Deleting /Users/adriancole/workspace/git/1.4.x/jclouds/apis/byon/target
[INFO] 
[INFO] --- maven-enforcer-plugin:1.0.1:enforce (enforce-maven) @ byon ---
[INFO] 
[INFO] --- maven-enforcer-plugin:1.0.1:enforce (enforce-banned-dependencies) @ byon ---
[INFO] 
[INFO] --- maven-enforcer-plugin:1.0.1:enforce (enforce-java) @ byon ---
[INFO] 
[INFO] --- maven-remote-resources-plugin:1.2:process (process-remote-resources) @ byon ---
[INFO] Setting property: classpath.resource.loader.class => 'org.codehaus.plexus.velocity.ContextClassLoaderResourceLoader'.
[INFO] Setting property: velocimacro.messages.on => 'false'.
[INFO] Setting property: resource.loader => 'classpath'.
[INFO] Setting property: resource.manager.logwhenfound => 'false'.
[INFO] 
[INFO] --- maven-resources-plugin:2.4.2:resources (default-resources) @ byon ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /Users/adriancole/workspace/git/1.4.x/jclouds/apis/byon/src/main/clojure
[INFO] skip non existing resourceDirectory /Users/adriancole/workspace/git/1.4.x/jclouds/apis/byon/src/main/resources
[INFO] Copying 2 resources
[INFO] 
[INFO] --- maven-compiler-plugin:2.3:compile (default-compile) @ byon ---
[INFO] Compiling 13 source files to /Users/adriancole/workspace/git/1.4.x/jclouds/apis/byon/target/classes
[INFO] 
[INFO] --- maven-resources-plugin:2.4.2:testResources (default-testResources) @ byon ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /Users/adriancole/workspace/git/1.4.x/jclouds/apis/byon/src/test/clojure
[INFO] Copying 5 resources
[INFO] Copying 2 resources
[INFO] 
[INFO] --- maven-compiler-plugin:2.3:testCompile (default-testCompile) @ byon ---
[INFO] Compiling 8 source files to /Users/adriancole/workspace/git/1.4.x/jclouds/apis/byon/target/test-classes
[INFO] 
[INFO] --- maven-surefire-plugin:2.10:test (default-test) @ byon ---
[INFO] Surefire report directory: /Users/adriancole/workspace/git/1.4.x/jclouds/apis/byon/target/surefire-reports
[INFO] Using configured provider org.apache.maven.surefire.testng.TestNGProvider

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running TestSuite
Starting test testNodesParseNodeMap(org.jclouds.byon.BYONComputeServiceTest)
[pool-2-thread-1] Test testNodesParseNodeMap(org.jclouds.byon.BYONComputeServiceTest) succeeded: 1147ms
Test suite progress: tests succeeded: 1, failed: 0, skipped: 0.
Starting test testNodesParseWithClasspathUrl(org.jclouds.byon.BYONComputeServiceTest)
[pool-2-thread-1] Test testNodesParseWithClasspathUrl(org.jclouds.byon.BYONComputeServiceTest) succeeded: 255ms
Test suite progress: tests succeeded: 2, failed: 0, skipped: 0.
Starting test testNodesParseWithFileUrl(org.jclouds.byon.BYONComputeServiceTest)
[pool-2-thread-1] Test testNodesParseWithFileUrl(org.jclouds.byon.BYONComputeServiceTest) succeeded: 184ms
Test suite progress: tests succeeded: 3, failed: 0, skipped: 0.
Starting test testNodesWithLocations(org.jclouds.byon.BYONComputeServiceTest)
[pool-2-thread-1] Test testNodesWithLocations(org.jclouds.byon.BYONComputeServiceTest) succeeded: 188ms
Test suite progress: tests succeeded: 4, failed: 0, skipped: 0.
Starting test testProvidedCacheConsistentAcrossMultipleInjectors(org.jclouds.byon.config.CacheNodeStoreModuleTest)
[pool-3-thread-1] Test testProvidedCacheConsistentAcrossMultipleInjectors(org.jclouds.byon.config.CacheNodeStoreModuleTest) succeeded: 27ms
Test suite progress: tests succeeded: 5, failed: 0, skipped: 0.
Starting test testProvidedConsistentAcrossMultipleInjectors(org.jclouds.byon.config.CacheNodeStoreModuleTest)
[pool-3-thread-1] Test testProvidedConsistentAcrossMultipleInjectors(org.jclouds.byon.config.CacheNodeStoreModuleTest) succeeded: 4ms
Test suite progress: tests succeeded: 6, failed: 0, skipped: 0.
Starting test testProvidedConsistentAcrossRepeatedWrites(org.jclouds.byon.config.CacheNodeStoreModuleTest)
[pool-3-thread-1] Test testProvidedConsistentAcrossRepeatedWrites(org.jclouds.byon.config.CacheNodeStoreModuleTest) succeeded: 3ms
Test suite progress: tests succeeded: 7, failed: 0, skipped: 0.
Starting test testProvidedMapWithValue(org.jclouds.byon.config.CacheNodeStoreModuleTest)
[pool-3-thread-1] Test testProvidedMapWithValue(org.jclouds.byon.config.CacheNodeStoreModuleTest) succeeded: 4ms
Test suite progress: tests succeeded: 8, failed: 0, skipped: 0.
Starting test testNodesParse(org.jclouds.byon.functions.NodesFromYamlTest)
Starting test testMustParseSomething(org.jclouds.byon.functions.NodesFromYamlTest)
[pool-4-thread-1] Test testMustParseSomething(org.jclouds.byon.functions.NodesFromYamlTest) succeeded: 1ms
Test suite progress: tests succeeded: 9, failed: 0, skipped: 0.
[pool-4-thread-2] Test testNodesParse(org.jclouds.byon.functions.NodesFromYamlTest) succeeded: 3ms
Test suite progress: tests succeeded: 10, failed: 0, skipped: 0.
Starting test testNodesParseLocation(org.jclouds.byon.functions.NodesFromYamlTest)
Starting test testNodesParseWhenCredentialInUrl(org.jclouds.byon.functions.NodesFromYamlTest)
[pool-4-thread-4] Test testNodesParseWhenCredentialInUrl(org.jclouds.byon.functions.NodesFromYamlTest) succeeded: 2ms
Test suite progress: tests succeeded: 11, failed: 0, skipped: 0.
[pool-4-thread-3] Test testNodesParseLocation(org.jclouds.byon.functions.NodesFromYamlTest) succeeded: 11ms
Test suite progress: tests succeeded: 12, failed: 0, skipped: 0.
Starting test testMustParseSomething(org.jclouds.byon.suppliers.NodesParsedFromSupplierTest)
Starting test testSupplyMultipleTimes(org.jclouds.byon.suppliers.SupplyFromProviderURIOrNodesPropertyTest)
[pool-4-thread-5] Test testMustParseSomething(org.jclouds.byon.suppliers.NodesParsedFromSupplierTest) succeeded: 1ms
Test suite progress: tests succeeded: 13, failed: 0, skipped: 0.
[pool-4-thread-1] Test testSupplyMultipleTimes(org.jclouds.byon.suppliers.SupplyFromProviderURIOrNodesPropertyTest) succeeded: 1ms
Test suite progress: tests succeeded: 14, failed: 0, skipped: 0.
Starting test deleteObject(org.jclouds.byon.config.YamlNodeStoreModuleTest)
Starting test testFromURIClasspath(org.jclouds.byon.suppliers.SupplyFromProviderURIOrNodesPropertyTest)
[pool-4-thread-2] Test testFromURIClasspath(org.jclouds.byon.suppliers.SupplyFromProviderURIOrNodesPropertyTest) succeeded: 0ms
Test suite progress: tests succeeded: 15, failed: 0, skipped: 0.
Starting test testFromURI(org.jclouds.byon.suppliers.SupplyFromProviderURIOrNodesPropertyTest)
[pool-4-thread-4] Test testFromURI(org.jclouds.byon.suppliers.SupplyFromProviderURIOrNodesPropertyTest) succeeded: 0ms
Test suite progress: tests succeeded: 16, failed: 0, skipped: 0.
Starting test testFromProperty(org.jclouds.byon.suppliers.SupplyFromProviderURIOrNodesPropertyTest)
[pool-4-thread-3] Test testFromProperty(org.jclouds.byon.suppliers.SupplyFromProviderURIOrNodesPropertyTest) succeeded: 1ms
Test suite progress: tests succeeded: 17, failed: 0, skipped: 0.
[pool-4-thread-5] Test deleteObject(org.jclouds.byon.config.YamlNodeStoreModuleTest) succeeded: 5ms
Test suite progress: tests succeeded: 18, failed: 0, skipped: 0.
Starting test deleteObject(org.jclouds.byon.config.YamlNodeStoreModuleTest)
[pool-4-thread-5] Test deleteObject(org.jclouds.byon.config.YamlNodeStoreModuleTest) succeeded: 4ms
Test suite progress: tests succeeded: 19, failed: 0, skipped: 0.
Starting test deleteObject(org.jclouds.byon.config.YamlNodeStoreModuleTest)
[pool-4-thread-5] Test deleteObject(org.jclouds.byon.config.YamlNodeStoreModuleTest) succeeded: 4ms
Test suite progress: tests succeeded: 20, failed: 0, skipped: 0.
Starting test deleteObject(org.jclouds.byon.config.YamlNodeStoreModuleTest)
[pool-4-thread-5] Test deleteObject(org.jclouds.byon.config.YamlNodeStoreModuleTest) succeeded: 4ms
Test suite progress: tests succeeded: 21, failed: 0, skipped: 0.
Starting test testDefaultConsistentAcrossMultipleInjectors(org.jclouds.byon.config.YamlNodeStoreModuleTest)
[pool-4-thread-5] Test testDefaultConsistentAcrossMultipleInjectors(org.jclouds.byon.config.YamlNodeStoreModuleTest) succeeded: 17ms
Test suite progress: tests succeeded: 22, failed: 0, skipped: 0.
Starting test testProvidedConsistentAcrossMultipleInjectors(org.jclouds.byon.config.YamlNodeStoreModuleTest)
[pool-4-thread-5] Test testProvidedConsistentAcrossMultipleInjectors(org.jclouds.byon.config.YamlNodeStoreModuleTest) succeeded: 13ms
Test suite progress: tests succeeded: 23, failed: 0, skipped: 0.
Starting test testProvidedConsistentAcrossRepeatedWrites(org.jclouds.byon.config.YamlNodeStoreModuleTest)
[pool-4-thread-5] Test testProvidedConsistentAcrossRepeatedWrites(org.jclouds.byon.config.YamlNodeStoreModuleTest) succeeded: 28ms
Test suite progress: tests succeeded: 24, failed: 0, skipped: 0.
Starting test testProvidedMapWithValue(org.jclouds.byon.config.YamlNodeStoreModuleTest)
[pool-4-thread-5] Test testProvidedMapWithValue(org.jclouds.byon.config.YamlNodeStoreModuleTest) succeeded: 21ms
Test suite progress: tests succeeded: 25, failed: 0, skipped: 0.
Starting test testNodesParse(org.jclouds.byon.functions.NodeToNodeMetadataTest)
[pool-5-thread-1] Test testNodesParse(org.jclouds.byon.functions.NodeToNodeMetadataTest) succeeded: 0ms
Test suite progress: tests succeeded: 26, failed: 0, skipped: 0.
Starting test testNodesParseLocation(org.jclouds.byon.functions.NodeToNodeMetadataTest)
[pool-5-thread-1] Test testNodesParseLocation(org.jclouds.byon.functions.NodeToNodeMetadataTest) succeeded: 0ms
Test suite progress: tests succeeded: 27, failed: 0, skipped: 0.
Starting test testNodesParseLoginPort(org.jclouds.byon.functions.NodeToNodeMetadataTest)
[pool-5-thread-1] Test testNodesParseLoginPort(org.jclouds.byon.functions.NodeToNodeMetadataTest) succeeded: 0ms
Test suite progress: tests succeeded: 28, failed: 0, skipped: 0.
Tests run: 28, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 3.05 sec

Results :

Tests run: 28, Failures: 0, Errors: 0, Skipped: 0

[INFO] 
[INFO] --- clojure-maven-plugin:1.3.8:test (test-clojure) @ byon ---

Testing com.theoryinpractise.clojure.testrunner

Ran 0 tests containing 0 assertions.
0 failures, 0 errors.
[INFO] 
[INFO] --- maven-bundle-plugin:2.3.4:bundle (default-bundle) @ byon ---
[INFO] 
[INFO] --- maven-source-plugin:2.1.1:jar-no-fork (attach-sources) @ byon ---
[INFO] Building jar: /Users/adriancole/workspace/git/1.4.x/jclouds/apis/byon/target/byon-1.4.0-SNAPSHOT-sources.jar
[INFO] 
[INFO] --- maven-javadoc-plugin:2.8:jar (javadoc) @ byon ---
[INFO] Skipping javadoc generation
[INFO] 
[INFO] --- maven-jar-plugin:2.3.1:test-jar (default) @ byon ---
[INFO] Building jar: /Users/adriancole/workspace/git/1.4.x/jclouds/apis/byon/target/byon-1.4.0-SNAPSHOT-tests.jar
[INFO] 
[INFO] --- maven-surefire-plugin:2.10:test (integration) @ byon ---
[INFO] Surefire report directory: /Users/adriancole/workspace/git/1.4.x/jclouds/apis/byon/target/surefire-reports
[INFO] Using configured provider org.apache.maven.surefire.testng.TestNGProvider

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running org.jclouds.byon.BYONComputeServiceLiveTest
Starting test testCanRunCommandAsCurrentUser(org.jclouds.byon.BYONComputeServiceLiveTest)
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
[TestNG] Test testCanRunCommandAsCurrentUser(org.jclouds.byon.BYONComputeServiceLiveTest) succeeded: 17486ms
Test suite progress: tests succeeded: 1, failed: 0, skipped: 0.
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 19.466 sec

Results :

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0

[INFO] 
[INFO] --- maven-install-plugin:2.3:install (default-install) @ byon ---
[INFO] Installing /Users/adriancole/workspace/git/1.4.x/jclouds/apis/byon/target/byon-1.4.0-SNAPSHOT.jar to /Users/adriancole/.m2/repository/org/jclouds/api/byon/1.4.0-SNAPSHOT/byon-1.4.0-SNAPSHOT.jar
[INFO] Installing /Users/adriancole/workspace/git/1.4.x/jclouds/apis/byon/pom.xml to /Users/adriancole/.m2/repository/org/jclouds/api/byon/1.4.0-SNAPSHOT/byon-1.4.0-SNAPSHOT.pom
[INFO] Installing /Users/adriancole/workspace/git/1.4.x/jclouds/apis/byon/target/byon-1.4.0-SNAPSHOT-sources.jar to /Users/adriancole/.m2/repository/org/jclouds/api/byon/1.4.0-SNAPSHOT/byon-1.4.0-SNAPSHOT-sources.jar
[INFO] Installing /Users/adriancole/workspace/git/1.4.x/jclouds/apis/byon/target/byon-1.4.0-SNAPSHOT-tests.jar to /Users/adriancole/.m2/repository/org/jclouds/api/byon/1.4.0-SNAPSHOT/byon-1.4.0-SNAPSHOT-tests.jar
[INFO] 
[INFO] --- maven-bundle-plugin:2.3.4:install (default-install) @ byon ---
[INFO] Installing org/jclouds/api/byon/1.4.0-SNAPSHOT/byon-1.4.0-SNAPSHOT.jar
[INFO] Writing OBR metadata
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 48.418s
[INFO] Finished at: Mon Mar 12 23:05:27 PDT 2012
[INFO] Final Memory: 21M/265M
[INFO] ------------------------------------------------------------------------
