From d309e457256e794f35542f136af5fbadaa66325a Mon Sep 17 00:00:00 2001 From: Jeremy Daggett Date: Tue, 26 Aug 2014 13:17:07 -0700 Subject: [PATCH] JCLOUDS-686: Remove changesSince() query from base PaginationOptions --- .../v2_0/domain/PaginatedCollection.java | 3 -- .../v2_0/options/PaginationOptions.java | 42 +++++++++------- .../v2_0/options/PaginationOptionsTest.java | 17 ------- .../nova/v2_0/options/ListOptions.java | 45 ++++++++++------- .../nova/v2_0/options/ListOptionsTest.java | 49 +++++++++++++++++++ 5 files changed, 99 insertions(+), 57 deletions(-) create mode 100644 apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/options/ListOptionsTest.java diff --git a/apis/openstack-keystone/src/main/java/org/jclouds/openstack/v2_0/domain/PaginatedCollection.java b/apis/openstack-keystone/src/main/java/org/jclouds/openstack/v2_0/domain/PaginatedCollection.java index 13e34c7760..cca9edee6d 100644 --- a/apis/openstack-keystone/src/main/java/org/jclouds/openstack/v2_0/domain/PaginatedCollection.java +++ b/apis/openstack-keystone/src/main/java/org/jclouds/openstack/v2_0/domain/PaginatedCollection.java @@ -30,9 +30,6 @@ import static org.jclouds.http.utils.Queries.queryParser; /** * Base class for a paginated collection in OpenStack. * - * @see - * docs */ public class PaginatedCollection extends IterableWithMarker { private final Iterable resources; diff --git a/apis/openstack-keystone/src/main/java/org/jclouds/openstack/v2_0/options/PaginationOptions.java b/apis/openstack-keystone/src/main/java/org/jclouds/openstack/v2_0/options/PaginationOptions.java index 5d1f30dcf0..80ac0107db 100644 --- a/apis/openstack-keystone/src/main/java/org/jclouds/openstack/v2_0/options/PaginationOptions.java +++ b/apis/openstack-keystone/src/main/java/org/jclouds/openstack/v2_0/options/PaginationOptions.java @@ -21,15 +21,13 @@ import static com.google.common.base.Preconditions.checkState; import java.util.Date; -import com.google.common.collect.Multimap; import org.jclouds.http.options.BaseHttpRequestOptions; +import com.google.common.collect.Multimap; + /** * Options used to control paginated results (aka list commands). - * - * @see + * */ public class PaginationOptions extends BaseHttpRequestOptions { /** @@ -43,10 +41,15 @@ public class PaginationOptions extends BaseHttpRequestOptions { } /** - * Only return objects changed since this time. + * Only return objects changed since a specified time. + * + * @deprecated The {@code changes-since} query does not apply to all OpenStack APIs. Please refer to the OpenStack + * Nova {@code ListOptions.changesSince(Date)} and Glance {@code ListImageOptions.changesSince(Date)}. + * This option will be removed in 2.1. */ - public PaginationOptions changesSince(Date ifModifiedSince) { - this.queryParameters.put("changes-since", checkNotNull(ifModifiedSince, "ifModifiedSince").getTime() / 1000 + ""); + @Deprecated + public PaginationOptions changesSince(Date changesSince) { + this.queryParameters.put("changes-since", checkNotNull(changesSince, "changesSince").getTime() / 1000 + ""); return this; } @@ -83,6 +86,18 @@ public class PaginationOptions extends BaseHttpRequestOptions { return options.queryParameters(queryParams); } + /** + * @see PaginationOptions#changesSince(Date) + * @deprecated The {@code changes-since} query does not apply to all OpenStack APIs. Please refer to the OpenStack + * Nova {@code ListOptions.changesSince(Date)} and Glance {@code ListImageOptions.changesSince(Date)}. + * This option will be removed in 2.1. + */ + @Deprecated + public static PaginationOptions changesSince(Date changesSince) { + PaginationOptions options = new PaginationOptions(); + return options.changesSince(changesSince); + } + /** * @see PaginationOptions#marker(String) */ @@ -92,20 +107,11 @@ public class PaginationOptions extends BaseHttpRequestOptions { } /** - * @see PaginationOptions#limit + * @see PaginationOptions#limit(int) */ public static PaginationOptions limit(int limit) { PaginationOptions options = new PaginationOptions(); return options.limit(limit); } - - /** - * @see PaginationOptions#changesSince(Date) - */ - public static PaginationOptions changesSince(Date since) { - PaginationOptions options = new PaginationOptions(); - return options.changesSince(since); - } - } } diff --git a/apis/openstack-keystone/src/test/java/org/jclouds/openstack/v2_0/options/PaginationOptionsTest.java b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/v2_0/options/PaginationOptionsTest.java index 91714485bb..9a6588b3d1 100644 --- a/apis/openstack-keystone/src/test/java/org/jclouds/openstack/v2_0/options/PaginationOptionsTest.java +++ b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/v2_0/options/PaginationOptionsTest.java @@ -16,13 +16,10 @@ */ package org.jclouds.openstack.v2_0.options; -import static org.jclouds.openstack.v2_0.options.PaginationOptions.Builder.changesSince; import static org.jclouds.openstack.v2_0.options.PaginationOptions.Builder.limit; import static org.jclouds.openstack.v2_0.options.PaginationOptions.Builder.marker; import static org.testng.Assert.assertEquals; -import java.util.Date; - import org.testng.annotations.Test; import com.google.common.collect.ImmutableList; @@ -33,13 +30,6 @@ import com.google.common.collect.ImmutableList; @Test(groups = "unit", testName = "PaginationOptionsTest") public class PaginationOptionsTest { - public void testChangesSince() { - Date ifModifiedSince = new Date(); - PaginationOptions options = new PaginationOptions().changesSince(ifModifiedSince); - assertEquals(ImmutableList.of(ifModifiedSince.getTime() / 1000 + ""), - options.buildQueryParameters().get("changes-since")); - } - public void testMarker() { String marker = "52415800-8b69-11e0-9b19-734f6f006e54"; PaginationOptions options = new PaginationOptions().marker(marker); @@ -52,13 +42,6 @@ public class PaginationOptionsTest { assertEquals(ImmutableList.of("1"), options.buildQueryParameters().get("limit")); } - public void testChangesSinceStatic() { - Date ifModifiedSince = new Date(); - PaginationOptions options = changesSince(ifModifiedSince); - assertEquals(ImmutableList.of(ifModifiedSince.getTime() / 1000 + ""), - options.buildQueryParameters().get("changes-since")); - } - public void testMarkerStatic() { String marker = "52415800-8b69-11e0-9b19-734f6f006e54"; PaginationOptions options = marker(marker); diff --git a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/options/ListOptions.java b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/options/ListOptions.java index 848f3c3069..6b1e648a47 100644 --- a/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/options/ListOptions.java +++ b/apis/openstack-nova/src/main/java/org/jclouds/openstack/nova/v2_0/options/ListOptions.java @@ -16,39 +16,29 @@ */ package org.jclouds.openstack.nova.v2_0.options; +import static com.google.common.base.Preconditions.checkNotNull; + import java.util.Date; import org.jclouds.openstack.v2_0.options.PaginationOptions; /** * Options used to control the amount of detail in the request. - * + * * @see PaginationOptions - * @see */ public class ListOptions extends PaginationOptions { public static final ListOptions NONE = new ListOptions(); /** - * unless used, only the name and id will be returned per row. - * - * @return + * Provides detailed results for list operations. */ public ListOptions withDetails() { this.pathSuffix = "/detail"; return this; } - /** - * {@inheritDoc} - */ - @Override - public ListOptions changesSince(Date ifModifiedSince) { - super.changesSince(ifModifiedSince); - return this; - } - /** * {@inheritDoc} */ @@ -56,7 +46,6 @@ public class ListOptions extends PaginationOptions { public ListOptions limit(int limit) { super.limit(limit); return this; - } /** @@ -68,6 +57,14 @@ public class ListOptions extends PaginationOptions { return this; } + /** + * Checks for any changes since the given date. + */ + public ListOptions changesSince(Date changesSince) { + this.queryParameters.put("changes-since", checkNotNull(changesSince, "changesSince").getTime() / 1000 + ""); + return this; + } + public static class Builder { /** @@ -87,15 +84,25 @@ public class ListOptions extends PaginationOptions { } /** - * @see PaginationOptions#limit(long) + * @see PaginationOptions#limit(int) */ - public static ListOptions maxResults(int maxKeys) { + public static ListOptions limit(int limit) { ListOptions options = new ListOptions(); - return options.limit(maxKeys); + return options.limit(limit); } /** - * @see PaginationOptions#changesSince(Date) + * + * @see PaginationOptions#limit(int) + * @deprecated Please use {@link #limit(int)} as this builder method will be removed in 2.0. + */ + @Deprecated + public static ListOptions maxResults(int maxKeys) { + return limit(maxKeys); + } + + /** + * @see ListOptions#changesSince(Date) */ public static ListOptions changesSince(Date since) { ListOptions options = new ListOptions(); diff --git a/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/options/ListOptionsTest.java b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/options/ListOptionsTest.java new file mode 100644 index 0000000000..b2341538a2 --- /dev/null +++ b/apis/openstack-nova/src/test/java/org/jclouds/openstack/nova/v2_0/options/ListOptionsTest.java @@ -0,0 +1,49 @@ +/* + * 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.openstack.nova.v2_0.options; + +import static org.jclouds.openstack.nova.v2_0.options.ListOptions.Builder.changesSince; +import static org.testng.Assert.assertEquals; + +import java.util.Date; + +import org.jclouds.openstack.v2_0.options.PaginationOptions; +import org.testng.annotations.Test; + +import com.google.common.collect.ImmutableList; + +/** + * Tests behavior of {@code ListOptions} + */ +@Test(groups = "unit") +public class ListOptionsTest { + + public void testChangesSince() { + Date ifModifiedSince = new Date(); + ListOptions options = new ListOptions().changesSince(ifModifiedSince); + assertEquals(ImmutableList.of(ifModifiedSince.getTime() / 1000 + ""), + options.buildQueryParameters().get("changes-since")); + } + + public void testChangesSinceStatic() { + Date ifModifiedSince = new Date(); + PaginationOptions options = changesSince(ifModifiedSince); + assertEquals(ImmutableList.of(ifModifiedSince.getTime() / 1000 + ""), + options.buildQueryParameters().get("changes-since")); + } + +}