diff --git a/core/src/main/resources/rest.properties b/core/src/main/resources/rest.properties index eb210a198e..4426cb9f9c 100644 --- a/core/src/main/resources/rest.properties +++ b/core/src/main/resources/rest.properties @@ -137,6 +137,9 @@ atmos.apiversion=1.3.0 synaptic-storage.contextbuilder=org.jclouds.atmos.AtmosContextBuilder synaptic-storage.propertiesbuilder=org.jclouds.synaptic.storage.SynapticStoragePropertiesBuilder +ninefold-storage.contextbuilder=org.jclouds.atmos.AtmosContextBuilder +ninefold-storage.propertiesbuilder=org.jclouds.ninefold.storage.NinefoldStoragePropertiesBuilder + cloudonestorage.contextbuilder=org.jclouds.atmos.AtmosContextBuilder cloudonestorage.propertiesbuilder=org.jclouds.cloudonestorage.CloudOneStoragePropertiesBuilder diff --git a/sandbox-providers/ninefold-storage/pom.xml b/sandbox-providers/ninefold-storage/pom.xml new file mode 100644 index 0000000000..90b9979a95 --- /dev/null +++ b/sandbox-providers/ninefold-storage/pom.xml @@ -0,0 +1,144 @@ + + + + + 4.0.0 + + org.jclouds + jclouds-project + 1.0-SNAPSHOT + ../../project/pom.xml + + org.jclouds.provider + ninefold-storage + jclouds ninefold storage provider + BlobStore implementation targeted to ninefold storage + + + org.jclouds.ninefold.storage.blobstore.integration.NinefoldStorageTestInitializer + http://onlinestorage.ninefold.com + 1.2.7c + FIXME_IDENTITY + FIXME_CREDENTIAL + + + + + org.jclouds.api + atmos + ${project.version} + jar + + + org.jclouds.api + atmos + ${project.version} + test-jar + test + + + org.jclouds + jclouds-core + ${project.version} + test-jar + test + + + org.jclouds + jclouds-blobstore + ${project.version} + test-jar + test + + + org.jclouds.driver + jclouds-log4j + ${project.version} + test + + + log4j + log4j + 1.2.16 + test + + + + + + live + + + + org.apache.maven.plugins + maven-surefire-plugin + + + integration + integration-test + + test + + + + + test.ninefold-storage.endpoint + ${test.ninefold-storage.endpoint} + + + test.ninefold-storage.apiversion + ${test.ninefold-storage.apiversion} + + + test.ninefold-storage.identity + ${test.ninefold-storage.identity} + + + test.ninefold-storage.credential + ${test.ninefold-storage.credential} + + + test.initializer + ${test.initializer} + + + jclouds.blobstore.httpstream.url + ${jclouds.blobstore.httpstream.url} + + + jclouds.blobstore.httpstream.md5 + ${jclouds.blobstore.httpstream.md5} + + + + + + + + + + + + + + diff --git a/sandbox-providers/ninefold-storage/src/main/java/org/jclouds/ninefold/storage/NinefoldStoragePropertiesBuilder.java b/sandbox-providers/ninefold-storage/src/main/java/org/jclouds/ninefold/storage/NinefoldStoragePropertiesBuilder.java new file mode 100644 index 0000000000..6729925f9e --- /dev/null +++ b/sandbox-providers/ninefold-storage/src/main/java/org/jclouds/ninefold/storage/NinefoldStoragePropertiesBuilder.java @@ -0,0 +1,54 @@ +/** + * + * Copyright (C) 2011 Cloud Conscious, LLC. + * + * ==================================================================== + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ==================================================================== + */ + +package org.jclouds.ninefold.storage; + +import static org.jclouds.Constants.PROPERTY_API_VERSION; +import static org.jclouds.Constants.PROPERTY_ENDPOINT; +import static org.jclouds.Constants.PROPERTY_ISO3166_CODES; + +import java.util.Properties; + +import org.jclouds.PropertiesBuilder; + +/** + * Builds properties used in Ninefold Storage + * + * @author Adrian Cole + */ +public class NinefoldStoragePropertiesBuilder extends PropertiesBuilder { + + @Override + protected Properties defaultProperties() { + Properties properties = super.defaultProperties(); + properties.setProperty(PROPERTY_ENDPOINT, "http://onlinestorage.ninefold.com"); + properties.setProperty(PROPERTY_ISO3166_CODES, "AU-NSW"); + properties.setProperty(PROPERTY_API_VERSION, "1.2.7C"); + return properties; + } + + public NinefoldStoragePropertiesBuilder() { + super(); + } + + public NinefoldStoragePropertiesBuilder(Properties properties) { + super(properties); + } + +} diff --git a/sandbox-providers/ninefold-storage/src/test/java/org/jclouds/ninefold/storage/NinefoldStorageAsyncClientTest.java b/sandbox-providers/ninefold-storage/src/test/java/org/jclouds/ninefold/storage/NinefoldStorageAsyncClientTest.java new file mode 100644 index 0000000000..fdf3fc6dae --- /dev/null +++ b/sandbox-providers/ninefold-storage/src/test/java/org/jclouds/ninefold/storage/NinefoldStorageAsyncClientTest.java @@ -0,0 +1,35 @@ +/** + * + * Copyright (C) 2011 Cloud Conscious, LLC. + * + * ==================================================================== + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ==================================================================== + */ + +package org.jclouds.ninefold.storage; + +import org.testng.annotations.Test; + +/** + * @author Adrian Cole + */ +// NOTE:without testName, this will not call @Before* and fail w/NPE during surefire +@Test(groups = "unit", testName = "NinefoldStorageAsyncClientTest") +public class NinefoldStorageAsyncClientTest extends org.jclouds.atmos.AtmosAsyncClientTest { + + public NinefoldStorageAsyncClientTest() { + this.provider = "ninefold-storage"; + } + +} diff --git a/sandbox-providers/ninefold-storage/src/test/java/org/jclouds/ninefold/storage/NinefoldStorageClientLiveTest.java b/sandbox-providers/ninefold-storage/src/test/java/org/jclouds/ninefold/storage/NinefoldStorageClientLiveTest.java new file mode 100644 index 0000000000..ada4aaea2c --- /dev/null +++ b/sandbox-providers/ninefold-storage/src/test/java/org/jclouds/ninefold/storage/NinefoldStorageClientLiveTest.java @@ -0,0 +1,33 @@ +/** + * + * Copyright (C) 2011 Cloud Conscious, LLC. + * + * ==================================================================== + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ==================================================================== + */ + +package org.jclouds.ninefold.storage; + +import org.jclouds.atmos.AtmosClientLiveTest; +import org.testng.annotations.Test; + +/** + * Tests behavior of {@code AtmosClient} + * + * @author Adrian Cole + */ +@Test(groups = "live", sequential = true, testName = "NinefoldStorageClientLiveTest") +public class NinefoldStorageClientLiveTest extends AtmosClientLiveTest { + +} diff --git a/sandbox-providers/ninefold-storage/src/test/java/org/jclouds/ninefold/storage/blobstore/integration/NinefoldStorageBlobIntegrationLiveTest.java b/sandbox-providers/ninefold-storage/src/test/java/org/jclouds/ninefold/storage/blobstore/integration/NinefoldStorageBlobIntegrationLiveTest.java new file mode 100644 index 0000000000..ba938670cd --- /dev/null +++ b/sandbox-providers/ninefold-storage/src/test/java/org/jclouds/ninefold/storage/blobstore/integration/NinefoldStorageBlobIntegrationLiveTest.java @@ -0,0 +1,31 @@ +/** + * + * Copyright (C) 2011 Cloud Conscious, LLC. + * + * ==================================================================== + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ==================================================================== + */ + +package org.jclouds.ninefold.storage.blobstore.integration; + +import org.jclouds.atmos.blobstore.integration.AtmosIntegrationLiveTest; +import org.testng.annotations.Test; + +/** + * @author Adrian Cole + */ +@Test(groups = "live", testName = "NinefoldStorageBlobIntegrationLiveTest") +public class NinefoldStorageBlobIntegrationLiveTest extends AtmosIntegrationLiveTest { + +} diff --git a/sandbox-providers/ninefold-storage/src/test/java/org/jclouds/ninefold/storage/blobstore/integration/NinefoldStorageBlobLiveTest.java b/sandbox-providers/ninefold-storage/src/test/java/org/jclouds/ninefold/storage/blobstore/integration/NinefoldStorageBlobLiveTest.java new file mode 100644 index 0000000000..68b013ae84 --- /dev/null +++ b/sandbox-providers/ninefold-storage/src/test/java/org/jclouds/ninefold/storage/blobstore/integration/NinefoldStorageBlobLiveTest.java @@ -0,0 +1,31 @@ +/** + * + * Copyright (C) 2011 Cloud Conscious, LLC. + * + * ==================================================================== + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ==================================================================== + */ + +package org.jclouds.ninefold.storage.blobstore.integration; + +import org.jclouds.atmos.blobstore.integration.AtmosLiveTest; +import org.testng.annotations.Test; + +/** + * @author Adrian Cole + */ +@Test(groups = "live", testName = "NinefoldStorageBlobLiveTest") +public class NinefoldStorageBlobLiveTest extends AtmosLiveTest { + +} diff --git a/sandbox-providers/ninefold-storage/src/test/java/org/jclouds/ninefold/storage/blobstore/integration/NinefoldStorageBlobMapIntegrationLiveTest.java b/sandbox-providers/ninefold-storage/src/test/java/org/jclouds/ninefold/storage/blobstore/integration/NinefoldStorageBlobMapIntegrationLiveTest.java new file mode 100644 index 0000000000..ab32079dbb --- /dev/null +++ b/sandbox-providers/ninefold-storage/src/test/java/org/jclouds/ninefold/storage/blobstore/integration/NinefoldStorageBlobMapIntegrationLiveTest.java @@ -0,0 +1,31 @@ +/** + * + * Copyright (C) 2011 Cloud Conscious, LLC. + * + * ==================================================================== + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ==================================================================== + */ + +package org.jclouds.ninefold.storage.blobstore.integration; + +import org.jclouds.atmos.blobstore.integration.AtmosMapIntegrationLiveTest; +import org.testng.annotations.Test; + +/** + * @author Adrian Cole + */ +@Test(groups = "live", testName = "NinefoldStorageBlobMapIntegrationLiveTest") +public class NinefoldStorageBlobMapIntegrationLiveTest extends AtmosMapIntegrationLiveTest { + +} diff --git a/sandbox-providers/ninefold-storage/src/test/java/org/jclouds/ninefold/storage/blobstore/integration/NinefoldStorageBlobSignerLiveTest.java b/sandbox-providers/ninefold-storage/src/test/java/org/jclouds/ninefold/storage/blobstore/integration/NinefoldStorageBlobSignerLiveTest.java new file mode 100644 index 0000000000..4ebc89b2ef --- /dev/null +++ b/sandbox-providers/ninefold-storage/src/test/java/org/jclouds/ninefold/storage/blobstore/integration/NinefoldStorageBlobSignerLiveTest.java @@ -0,0 +1,32 @@ +/** + * + * Copyright (C) 2011 Cloud Conscious, LLC. + * + * ==================================================================== + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ==================================================================== + */ + +package org.jclouds.ninefold.storage.blobstore.integration; + +import org.jclouds.atmos.blobstore.integration.AtmosBlobSignerLiveTest; +import org.testng.annotations.Test; + +/** + * + * @author Adrian Cole + */ +@Test(groups = "live", testName = "NinefoldStorageBlobSignerLiveTest") +public class NinefoldStorageBlobSignerLiveTest extends AtmosBlobSignerLiveTest { + +} diff --git a/sandbox-providers/ninefold-storage/src/test/java/org/jclouds/ninefold/storage/blobstore/integration/NinefoldStorageContainerIntegrationLiveTest.java b/sandbox-providers/ninefold-storage/src/test/java/org/jclouds/ninefold/storage/blobstore/integration/NinefoldStorageContainerIntegrationLiveTest.java new file mode 100644 index 0000000000..9b6c30d2a3 --- /dev/null +++ b/sandbox-providers/ninefold-storage/src/test/java/org/jclouds/ninefold/storage/blobstore/integration/NinefoldStorageContainerIntegrationLiveTest.java @@ -0,0 +1,31 @@ +/** + * + * Copyright (C) 2011 Cloud Conscious, LLC. + * + * ==================================================================== + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ==================================================================== + */ + +package org.jclouds.ninefold.storage.blobstore.integration; + +import org.jclouds.atmos.blobstore.integration.AtmosContainerIntegrationLiveTest; +import org.testng.annotations.Test; + +/** + * @author Adrian Cole + */ +@Test(groups = "live", testName = "NinefoldStorageContainerIntegrationLiveTest") +public class NinefoldStorageContainerIntegrationLiveTest extends AtmosContainerIntegrationLiveTest { + +} diff --git a/sandbox-providers/ninefold-storage/src/test/java/org/jclouds/ninefold/storage/blobstore/integration/NinefoldStorageContainerLiveTest.java b/sandbox-providers/ninefold-storage/src/test/java/org/jclouds/ninefold/storage/blobstore/integration/NinefoldStorageContainerLiveTest.java new file mode 100644 index 0000000000..090119da0c --- /dev/null +++ b/sandbox-providers/ninefold-storage/src/test/java/org/jclouds/ninefold/storage/blobstore/integration/NinefoldStorageContainerLiveTest.java @@ -0,0 +1,31 @@ +/** + * + * Copyright (C) 2011 Cloud Conscious, LLC. + * + * ==================================================================== + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ==================================================================== + */ + +package org.jclouds.ninefold.storage.blobstore.integration; + +import org.jclouds.atmos.blobstore.integration.AtmosContainerLiveTest; +import org.testng.annotations.Test; + +/** + * @author Adrian Cole + */ +@Test(groups = "live", testName = "NinefoldStorageContainerLiveTest") +public class NinefoldStorageContainerLiveTest extends AtmosContainerLiveTest { + +} diff --git a/sandbox-providers/ninefold-storage/src/test/java/org/jclouds/ninefold/storage/blobstore/integration/NinefoldStorageInputStreamMapIntegrationLiveTest.java b/sandbox-providers/ninefold-storage/src/test/java/org/jclouds/ninefold/storage/blobstore/integration/NinefoldStorageInputStreamMapIntegrationLiveTest.java new file mode 100644 index 0000000000..89a8b2b868 --- /dev/null +++ b/sandbox-providers/ninefold-storage/src/test/java/org/jclouds/ninefold/storage/blobstore/integration/NinefoldStorageInputStreamMapIntegrationLiveTest.java @@ -0,0 +1,31 @@ +/** + * + * Copyright (C) 2011 Cloud Conscious, LLC. + * + * ==================================================================== + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ==================================================================== + */ + +package org.jclouds.ninefold.storage.blobstore.integration; + +import org.jclouds.atmos.blobstore.integration.AtmosInputStreamMapIntegrationLiveTest; +import org.testng.annotations.Test; + +/** + * @author Adrian Cole + */ +@Test(groups = "live", testName = "NinefoldStorageInputStreamMapIntegrationLiveTest") +public class NinefoldStorageInputStreamMapIntegrationLiveTest extends AtmosInputStreamMapIntegrationLiveTest { + +} diff --git a/sandbox-providers/ninefold-storage/src/test/java/org/jclouds/ninefold/storage/blobstore/integration/NinefoldStorageServiceIntegrationLiveTest.java b/sandbox-providers/ninefold-storage/src/test/java/org/jclouds/ninefold/storage/blobstore/integration/NinefoldStorageServiceIntegrationLiveTest.java new file mode 100644 index 0000000000..cf1a111657 --- /dev/null +++ b/sandbox-providers/ninefold-storage/src/test/java/org/jclouds/ninefold/storage/blobstore/integration/NinefoldStorageServiceIntegrationLiveTest.java @@ -0,0 +1,38 @@ +/** + * + * Copyright (C) 2011 Cloud Conscious, LLC. + * + * ==================================================================== + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ==================================================================== + */ + +package org.jclouds.ninefold.storage.blobstore.integration; + +import java.util.Set; + +import org.jclouds.atmos.blobstore.integration.AtmosServiceIntegrationLiveTest; +import org.testng.annotations.Test; + +import com.google.common.collect.ImmutableSet; + +/** + * @author Adrian Cole + */ +@Test(groups = "live", testName = "NinefoldStorageServiceIntegrationLiveTest") +public class NinefoldStorageServiceIntegrationLiveTest extends AtmosServiceIntegrationLiveTest { + @Override + protected Set getIso3166Codes() { + return ImmutableSet. of("AU-NSW"); + } +} diff --git a/sandbox-providers/ninefold-storage/src/test/java/org/jclouds/ninefold/storage/blobstore/integration/NinefoldStorageTestInitializer.java b/sandbox-providers/ninefold-storage/src/test/java/org/jclouds/ninefold/storage/blobstore/integration/NinefoldStorageTestInitializer.java new file mode 100644 index 0000000000..6ab2710280 --- /dev/null +++ b/sandbox-providers/ninefold-storage/src/test/java/org/jclouds/ninefold/storage/blobstore/integration/NinefoldStorageTestInitializer.java @@ -0,0 +1,34 @@ +/** + * + * Copyright (C) 2011 Cloud Conscious, LLC. + * + * ==================================================================== + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ==================================================================== + */ + +package org.jclouds.ninefold.storage.blobstore.integration; + +import org.jclouds.atmos.blobstore.integration.AtmosTestInitializer; + +/** + * + * @author Adrian Cole + */ +public class NinefoldStorageTestInitializer extends AtmosTestInitializer { + + public NinefoldStorageTestInitializer() { + provider = "ninefold-storage"; + } + +}