JCLOUDS-992: remove special directory handling.
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/0c5a3db9 Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/0c5a3db9 Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/0c5a3db9 Branch: refs/heads/master Commit: 0c5a3db9dfa114a740cec3bb42733b1a5d1af6a2 Parents: 5fcfcf3 Author: Timur Alperovich <[email protected]> Authored: Tue Aug 18 11:36:17 2015 -0700 Committer: Andrew Gaul <[email protected]> Committed: Thu Aug 20 12:42:11 2015 -0700 ---------------------------------------------------------------------- .../jclouds/blobstore/domain/StorageType.java | 18 ++++++- .../strategy/IfDirectoryReturnNameStrategy.java | 31 ------------ .../MarkersIfDirectoryReturnNameStrategy.java | 50 -------------------- .../internal/BaseContainerIntegrationTest.java | 2 +- 4 files changed, 17 insertions(+), 84 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jclouds/blob/0c5a3db9/blobstore/src/main/java/org/jclouds/blobstore/domain/StorageType.java ---------------------------------------------------------------------- diff --git a/blobstore/src/main/java/org/jclouds/blobstore/domain/StorageType.java b/blobstore/src/main/java/org/jclouds/blobstore/domain/StorageType.java index 61b156d..d06fb55 100644 --- a/blobstore/src/main/java/org/jclouds/blobstore/domain/StorageType.java +++ b/blobstore/src/main/java/org/jclouds/blobstore/domain/StorageType.java @@ -18,9 +18,23 @@ package org.jclouds.blobstore.domain; public enum StorageType { - CONTAINER, BLOB, FOLDER, /** - * path will only include a name + * A container + */ + CONTAINER, + /** + * An object in the object store + */ + BLOB, + /** + * Represents "special" blobs that have content-type set to + * application/directory. + */ + FOLDER, + /** + * A partial path; used when the delimiter is set and represents all objects + * that start with the same name up to the delimiter character (e.g. foo-bar + * and foo-baz, with delimiter set to "-" will be returned as "foo-"). */ RELATIVE_PATH; http://git-wip-us.apache.org/repos/asf/jclouds/blob/0c5a3db9/blobstore/src/main/java/org/jclouds/blobstore/strategy/IfDirectoryReturnNameStrategy.java ---------------------------------------------------------------------- diff --git a/blobstore/src/main/java/org/jclouds/blobstore/strategy/IfDirectoryReturnNameStrategy.java b/blobstore/src/main/java/org/jclouds/blobstore/strategy/IfDirectoryReturnNameStrategy.java deleted file mode 100644 index 351af03..0000000 --- a/blobstore/src/main/java/org/jclouds/blobstore/strategy/IfDirectoryReturnNameStrategy.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You 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.blobstore.strategy; - -import org.jclouds.blobstore.domain.StorageMetadata; -import org.jclouds.blobstore.strategy.internal.MarkersIfDirectoryReturnNameStrategy; - -import com.google.inject.ImplementedBy; - -/** - * Determines if a directory exists or not. - */ -@ImplementedBy(MarkersIfDirectoryReturnNameStrategy.class) -public interface IfDirectoryReturnNameStrategy { - - String execute(StorageMetadata metadata); -} http://git-wip-us.apache.org/repos/asf/jclouds/blob/0c5a3db9/blobstore/src/main/java/org/jclouds/blobstore/strategy/internal/MarkersIfDirectoryReturnNameStrategy.java ---------------------------------------------------------------------- diff --git a/blobstore/src/main/java/org/jclouds/blobstore/strategy/internal/MarkersIfDirectoryReturnNameStrategy.java b/blobstore/src/main/java/org/jclouds/blobstore/strategy/internal/MarkersIfDirectoryReturnNameStrategy.java deleted file mode 100644 index a82a30c..0000000 --- a/blobstore/src/main/java/org/jclouds/blobstore/strategy/internal/MarkersIfDirectoryReturnNameStrategy.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You 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.blobstore.strategy.internal; - -import javax.inject.Singleton; - -import org.jclouds.blobstore.domain.BlobMetadata; -import org.jclouds.blobstore.domain.StorageMetadata; -import org.jclouds.blobstore.reference.BlobStoreConstants; -import org.jclouds.blobstore.strategy.IfDirectoryReturnNameStrategy; - -@Singleton -public class MarkersIfDirectoryReturnNameStrategy implements IfDirectoryReturnNameStrategy { - @Override - public String execute(StorageMetadata metadata) { - switch (metadata.getType()) { - case CONTAINER: - case FOLDER: - case RELATIVE_PATH: - return metadata.getName(); - case BLOB: - BlobMetadata blobMd = (BlobMetadata) metadata; - for (String suffix : BlobStoreConstants.DIRECTORY_SUFFIXES) { - if (metadata.getName().endsWith(suffix)) { - return metadata.getName().substring(0, metadata.getName().lastIndexOf(suffix)); - } - } - // It is important that this is last, in case there is a file with a known directory - // suffix who also has content type set to application/directory - if (blobMd.getContentMetadata().getContentType() != null - && blobMd.getContentMetadata().getContentType().equals("application/directory")) - return metadata.getName(); - } - return null; - } -} http://git-wip-us.apache.org/repos/asf/jclouds/blob/0c5a3db9/blobstore/src/test/java/org/jclouds/blobstore/integration/internal/BaseContainerIntegrationTest.java ---------------------------------------------------------------------- diff --git a/blobstore/src/test/java/org/jclouds/blobstore/integration/internal/BaseContainerIntegrationTest.java b/blobstore/src/test/java/org/jclouds/blobstore/integration/internal/BaseContainerIntegrationTest.java index 263adbe..fda30a4 100644 --- a/blobstore/src/test/java/org/jclouds/blobstore/integration/internal/BaseContainerIntegrationTest.java +++ b/blobstore/src/test/java/org/jclouds/blobstore/integration/internal/BaseContainerIntegrationTest.java @@ -256,7 +256,7 @@ public class BaseContainerIntegrationTest extends BaseBlobStoreIntegrationTest { awaitConsistency(); assert view.getBlobStore().directoryExists(containerName, directory); - assert view.getBlobStore().directoryExists(containerName, directory + "/" + directory); + assertThat(view.getBlobStore().directoryExists(containerName, directory + "/" + directory)).isFalse(); // should have only the 2 level-deep directory above container = view.getBlobStore().list(containerName, inDirectory(directory));
