Updated Branches: refs/heads/1.6.x f88989f6d -> dd863238a
Revert "[JCLOUDS-43] add scoped transaction support to ultradns-ws" This reverts commit f88609d1dd05b88ca5124b60359613210503f506. Project: http://git-wip-us.apache.org/repos/asf/incubator-jclouds/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-jclouds/commit/ded3c3e6 Tree: http://git-wip-us.apache.org/repos/asf/incubator-jclouds/tree/ded3c3e6 Diff: http://git-wip-us.apache.org/repos/asf/incubator-jclouds/diff/ded3c3e6 Branch: refs/heads/1.6.x Commit: ded3c3e66b3e89975b20a965b6c8104f66018f0b Parents: f88989f Author: adriancole <[email protected]> Authored: Fri May 17 13:35:16 2013 -0700 Committer: adriancole <[email protected]> Committed: Fri May 17 15:11:22 2013 -0700 ---------------------------------------------------------------------- .../org/jclouds/ultradns/ws/ScopedTransaction.java | 133 --------------- .../jclouds/ultradns/ws/UltraDNSWSApiMetadata.java | 7 +- .../ultradns/ws/features/DirectionalGroupApi.java | 6 +- .../ultradns/ws/features/DirectionalPoolApi.java | 6 +- .../ultradns/ws/features/ResourceRecordApi.java | 6 +- .../ultradns/ws/features/RoundRobinPoolApi.java | 6 +- .../org/jclouds/ultradns/ws/features/TaskApi.java | 6 +- .../ws/features/TrafficControllerPoolApi.java | 6 +- .../ultradns/ws/features/TransactionApi.java | 24 +--- .../org/jclouds/ultradns/ws/features/ZoneApi.java | 6 +- .../ultradns/ws/ScopedTransactionExpectTest.java | 54 ------ .../ultradns/ws/ScopedTransactionLiveTest.java | 82 --------- .../src/test/resources/create_zone_tx.xml | 1 - 13 files changed, 9 insertions(+), 334 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/ded3c3e6/providers/ultradns-ws/src/main/java/org/jclouds/ultradns/ws/ScopedTransaction.java ---------------------------------------------------------------------- diff --git a/providers/ultradns-ws/src/main/java/org/jclouds/ultradns/ws/ScopedTransaction.java b/providers/ultradns-ws/src/main/java/org/jclouds/ultradns/ws/ScopedTransaction.java deleted file mode 100644 index b9d9205..0000000 --- a/providers/ultradns-ws/src/main/java/org/jclouds/ultradns/ws/ScopedTransaction.java +++ /dev/null @@ -1,133 +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.ultradns.ws; - -import static com.google.common.base.Preconditions.checkState; -import static java.lang.String.format; - -import javax.inject.Inject; - -import org.jclouds.http.HttpException; -import org.jclouds.http.HttpRequest; -import org.jclouds.http.HttpRequestFilter; -import org.jclouds.rest.annotations.Transform; - -import com.google.common.base.Function; -import com.google.inject.AbstractModule; - -/** - * Adds support for implicit transactions. - * - * @author Adrian Cole - */ -public class ScopedTransaction { - - /** - * Sets a scoped transaction. Add to rest calls that start a transaction. - * Make sure that these note a possible IllegalStateException when a - * transaction is already in progress. - * - * <p/> - * - * ex. - * - * <pre> - * ... - * @Transform(ScopedTransaction.Set.class) - * String start() throws IllegalStateException; - * </pre> - * - * @see Transform - */ - public static class Set implements Function<String, String> { - private final ScopedTransaction scope; - - @Inject - private Set(ScopedTransaction scope) { - this.scope = scope; - } - - @Override - public String apply(String in) { - checkState(scope.transactionId.get() == null, "A transaction is already in progress"); - scope.transactionId.set(in); - return in; - } - } - - /** - * Removes a scoped transaction, if present. Add to rest calls that commit or - * rollback a transaction. - * - * <p/> - * - * ex. - * - * <pre> - * ... - * @Transform(ScopedTransaction.Invalidate.class) - * void rollback(String txId); - * </pre> - * - * @see Transform - */ - public static class Remove implements Function<Void, Void> { - private final ScopedTransaction scope; - - @Inject - private Remove(ScopedTransaction scope) { - this.scope = scope; - } - - @Override - public Void apply(Void in) { - scope.transactionId.remove(); - return in; - } - } - - public static class Filter implements HttpRequestFilter { - private final ScopedTransaction scope; - - @Inject - private Filter(ScopedTransaction scope) { - this.scope = scope; - } - - @Override - public HttpRequest filter(HttpRequest request) throws HttpException { - String transactionId = scope.transactionId.get(); - if (transactionId == null) - return request; - String body = request.getPayload().getRawContent().toString(); - body = body.replace("<transactionID />", format("<transactionID>%s</transactionID>", transactionId)); - return request.toBuilder().payload(body).build(); - } - } - - /** - * In order to support implicit transactions, this module must be installed. - */ - public static class Module extends AbstractModule { - public void configure() { - ScopedTransaction scope = new ScopedTransaction(); - bind(ScopedTransaction.class).toInstance(scope); - } - } - - private final ThreadLocal<String> transactionId = new ThreadLocal<String>(); -} http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/ded3c3e6/providers/ultradns-ws/src/main/java/org/jclouds/ultradns/ws/UltraDNSWSApiMetadata.java ---------------------------------------------------------------------- diff --git a/providers/ultradns-ws/src/main/java/org/jclouds/ultradns/ws/UltraDNSWSApiMetadata.java b/providers/ultradns-ws/src/main/java/org/jclouds/ultradns/ws/UltraDNSWSApiMetadata.java index b6f0fb00..ec35020 100644 --- a/providers/ultradns-ws/src/main/java/org/jclouds/ultradns/ws/UltraDNSWSApiMetadata.java +++ b/providers/ultradns-ws/src/main/java/org/jclouds/ultradns/ws/UltraDNSWSApiMetadata.java @@ -23,9 +23,6 @@ import org.jclouds.apis.ApiMetadata; import org.jclouds.rest.internal.BaseHttpApiMetadata; import org.jclouds.ultradns.ws.config.UltraDNSWSHttpApiModule; -import com.google.common.collect.ImmutableSet; -import com.google.inject.Module; - /** * Implementation of {@link ApiMetadata} for Neustar's UltraDNSWS api. * @@ -62,9 +59,7 @@ public class UltraDNSWSApiMetadata extends BaseHttpApiMetadata<UltraDNSWSApi> { .documentation(URI.create("https://portal.ultradns.com/static/docs/NUS_API_XML_SOAP.pdf")) .defaultEndpoint("https://ultra-api.ultradns.com:8443/UltraDNS_WS/v01") .defaultProperties(UltraDNSWSApiMetadata.defaultProperties()) - .defaultModules(ImmutableSet.<Class<? extends Module>> builder() - .add(UltraDNSWSHttpApiModule.class) - .add(ScopedTransaction.Module.class).build()); + .defaultModule(UltraDNSWSHttpApiModule.class); } @Override http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/ded3c3e6/providers/ultradns-ws/src/main/java/org/jclouds/ultradns/ws/features/DirectionalGroupApi.java ---------------------------------------------------------------------- diff --git a/providers/ultradns-ws/src/main/java/org/jclouds/ultradns/ws/features/DirectionalGroupApi.java b/providers/ultradns-ws/src/main/java/org/jclouds/ultradns/ws/features/DirectionalGroupApi.java index e79b479..0134da3 100644 --- a/providers/ultradns-ws/src/main/java/org/jclouds/ultradns/ws/features/DirectionalGroupApi.java +++ b/providers/ultradns-ws/src/main/java/org/jclouds/ultradns/ws/features/DirectionalGroupApi.java @@ -30,7 +30,6 @@ import org.jclouds.rest.annotations.PayloadParam; import org.jclouds.rest.annotations.RequestFilters; import org.jclouds.rest.annotations.VirtualHost; import org.jclouds.rest.annotations.XMLResponseParser; -import org.jclouds.ultradns.ws.ScopedTransaction; import org.jclouds.ultradns.ws.binders.DirectionalGroupCoordinatesToXML; import org.jclouds.ultradns.ws.domain.AccountLevelGroup; import org.jclouds.ultradns.ws.domain.DirectionalGroup; @@ -50,10 +49,7 @@ import com.google.common.collect.FluentIterable; * @see <a href="https://www.ultradns.net/api/NUS_API_XML_SOAP.pdf" /> * @author Adrian Cole */ -@RequestFilters({ - ScopedTransaction.Filter.class, - SOAPWrapWithPasswordAuth.class -}) +@RequestFilters(SOAPWrapWithPasswordAuth.class) @VirtualHost public interface DirectionalGroupApi { http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/ded3c3e6/providers/ultradns-ws/src/main/java/org/jclouds/ultradns/ws/features/DirectionalPoolApi.java ---------------------------------------------------------------------- diff --git a/providers/ultradns-ws/src/main/java/org/jclouds/ultradns/ws/features/DirectionalPoolApi.java b/providers/ultradns-ws/src/main/java/org/jclouds/ultradns/ws/features/DirectionalPoolApi.java index 569f629..0659d22 100644 --- a/providers/ultradns-ws/src/main/java/org/jclouds/ultradns/ws/features/DirectionalPoolApi.java +++ b/providers/ultradns-ws/src/main/java/org/jclouds/ultradns/ws/features/DirectionalPoolApi.java @@ -31,7 +31,6 @@ import org.jclouds.rest.annotations.PayloadParam; import org.jclouds.rest.annotations.RequestFilters; import org.jclouds.rest.annotations.VirtualHost; import org.jclouds.rest.annotations.XMLResponseParser; -import org.jclouds.ultradns.ws.ScopedTransaction; import org.jclouds.ultradns.ws.UltraDNSWSApi; import org.jclouds.ultradns.ws.UltraDNSWSExceptions.DirectionalGroupOverlapException; import org.jclouds.ultradns.ws.UltraDNSWSExceptions.ResourceAlreadyExistsException; @@ -54,10 +53,7 @@ import com.google.common.collect.FluentIterable; * @see <a href="https://www.ultradns.net/api/NUS_API_XML_SOAP.pdf" /> * @author Adrian Cole */ -@RequestFilters({ - ScopedTransaction.Filter.class, - SOAPWrapWithPasswordAuth.class -}) +@RequestFilters(SOAPWrapWithPasswordAuth.class) @VirtualHost public interface DirectionalPoolApi { http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/ded3c3e6/providers/ultradns-ws/src/main/java/org/jclouds/ultradns/ws/features/ResourceRecordApi.java ---------------------------------------------------------------------- diff --git a/providers/ultradns-ws/src/main/java/org/jclouds/ultradns/ws/features/ResourceRecordApi.java b/providers/ultradns-ws/src/main/java/org/jclouds/ultradns/ws/features/ResourceRecordApi.java index c2465c0..2c1b96f 100644 --- a/providers/ultradns-ws/src/main/java/org/jclouds/ultradns/ws/features/ResourceRecordApi.java +++ b/providers/ultradns-ws/src/main/java/org/jclouds/ultradns/ws/features/ResourceRecordApi.java @@ -28,7 +28,6 @@ import org.jclouds.rest.annotations.PayloadParam; import org.jclouds.rest.annotations.RequestFilters; import org.jclouds.rest.annotations.VirtualHost; import org.jclouds.rest.annotations.XMLResponseParser; -import org.jclouds.ultradns.ws.ScopedTransaction; import org.jclouds.ultradns.ws.UltraDNSWSExceptions.ResourceAlreadyExistsException; import org.jclouds.ultradns.ws.binders.ZoneAndResourceRecordToXML; import org.jclouds.ultradns.ws.domain.ResourceRecord; @@ -44,10 +43,7 @@ import com.google.common.collect.FluentIterable; * @see <a href="https://www.ultradns.net/api/NUS_API_XML_SOAP.pdf" /> * @author Adrian Cole */ -@RequestFilters({ - ScopedTransaction.Filter.class, - SOAPWrapWithPasswordAuth.class -}) +@RequestFilters(SOAPWrapWithPasswordAuth.class) @VirtualHost public interface ResourceRecordApi { http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/ded3c3e6/providers/ultradns-ws/src/main/java/org/jclouds/ultradns/ws/features/RoundRobinPoolApi.java ---------------------------------------------------------------------- diff --git a/providers/ultradns-ws/src/main/java/org/jclouds/ultradns/ws/features/RoundRobinPoolApi.java b/providers/ultradns-ws/src/main/java/org/jclouds/ultradns/ws/features/RoundRobinPoolApi.java index 60bf2c7..1bf8e85 100644 --- a/providers/ultradns-ws/src/main/java/org/jclouds/ultradns/ws/features/RoundRobinPoolApi.java +++ b/providers/ultradns-ws/src/main/java/org/jclouds/ultradns/ws/features/RoundRobinPoolApi.java @@ -28,7 +28,6 @@ import org.jclouds.rest.annotations.PayloadParam; import org.jclouds.rest.annotations.RequestFilters; import org.jclouds.rest.annotations.VirtualHost; import org.jclouds.rest.annotations.XMLResponseParser; -import org.jclouds.ultradns.ws.ScopedTransaction; import org.jclouds.ultradns.ws.UltraDNSWSExceptions.ResourceAlreadyExistsException; import org.jclouds.ultradns.ws.domain.ResourceRecord; import org.jclouds.ultradns.ws.domain.ResourceRecordDetail; @@ -46,10 +45,7 @@ import com.google.common.collect.FluentIterable; * @see <a href="https://www.ultradns.net/api/NUS_API_XML_SOAP.pdf" /> * @author Adrian Cole */ -@RequestFilters({ - ScopedTransaction.Filter.class, - SOAPWrapWithPasswordAuth.class -}) +@RequestFilters(SOAPWrapWithPasswordAuth.class) @VirtualHost public interface RoundRobinPoolApi { http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/ded3c3e6/providers/ultradns-ws/src/main/java/org/jclouds/ultradns/ws/features/TaskApi.java ---------------------------------------------------------------------- diff --git a/providers/ultradns-ws/src/main/java/org/jclouds/ultradns/ws/features/TaskApi.java b/providers/ultradns-ws/src/main/java/org/jclouds/ultradns/ws/features/TaskApi.java index 26728fc..fc8db43 100644 --- a/providers/ultradns-ws/src/main/java/org/jclouds/ultradns/ws/features/TaskApi.java +++ b/providers/ultradns-ws/src/main/java/org/jclouds/ultradns/ws/features/TaskApi.java @@ -28,7 +28,6 @@ import org.jclouds.rest.annotations.PayloadParam; import org.jclouds.rest.annotations.RequestFilters; import org.jclouds.rest.annotations.VirtualHost; import org.jclouds.rest.annotations.XMLResponseParser; -import org.jclouds.ultradns.ws.ScopedTransaction; import org.jclouds.ultradns.ws.domain.Task; import org.jclouds.ultradns.ws.filters.SOAPWrapWithPasswordAuth; import org.jclouds.ultradns.ws.xml.ElementTextHandler; @@ -42,10 +41,7 @@ import com.google.common.collect.FluentIterable; * @see <a href="https://www.ultradns.net/api/NUS_API_XML_SOAP.pdf" /> * @author Adrian Cole */ -@RequestFilters({ - ScopedTransaction.Filter.class, - SOAPWrapWithPasswordAuth.class -}) +@RequestFilters(SOAPWrapWithPasswordAuth.class) @VirtualHost public interface TaskApi { /** http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/ded3c3e6/providers/ultradns-ws/src/main/java/org/jclouds/ultradns/ws/features/TrafficControllerPoolApi.java ---------------------------------------------------------------------- diff --git a/providers/ultradns-ws/src/main/java/org/jclouds/ultradns/ws/features/TrafficControllerPoolApi.java b/providers/ultradns-ws/src/main/java/org/jclouds/ultradns/ws/features/TrafficControllerPoolApi.java index 6022a70..abf9955 100644 --- a/providers/ultradns-ws/src/main/java/org/jclouds/ultradns/ws/features/TrafficControllerPoolApi.java +++ b/providers/ultradns-ws/src/main/java/org/jclouds/ultradns/ws/features/TrafficControllerPoolApi.java @@ -31,7 +31,6 @@ import org.jclouds.rest.annotations.PayloadParam; import org.jclouds.rest.annotations.RequestFilters; import org.jclouds.rest.annotations.VirtualHost; import org.jclouds.rest.annotations.XMLResponseParser; -import org.jclouds.ultradns.ws.ScopedTransaction; import org.jclouds.ultradns.ws.UltraDNSWSExceptions.ResourceAlreadyExistsException; import org.jclouds.ultradns.ws.binders.UpdatePoolRecordToXML; import org.jclouds.ultradns.ws.domain.PoolRecordSpec; @@ -53,10 +52,7 @@ import com.google.common.collect.FluentIterable; * @see <a href="https://www.ultradns.net/api/NUS_API_XML_SOAP.pdf" /> * @author Adrian Cole */ -@RequestFilters({ - ScopedTransaction.Filter.class, - SOAPWrapWithPasswordAuth.class -}) +@RequestFilters(SOAPWrapWithPasswordAuth.class) @VirtualHost public interface TrafficControllerPoolApi { http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/ded3c3e6/providers/ultradns-ws/src/main/java/org/jclouds/ultradns/ws/features/TransactionApi.java ---------------------------------------------------------------------- diff --git a/providers/ultradns-ws/src/main/java/org/jclouds/ultradns/ws/features/TransactionApi.java b/providers/ultradns-ws/src/main/java/org/jclouds/ultradns/ws/features/TransactionApi.java index b6e2afe..a3a800e 100644 --- a/providers/ultradns-ws/src/main/java/org/jclouds/ultradns/ws/features/TransactionApi.java +++ b/providers/ultradns-ws/src/main/java/org/jclouds/ultradns/ws/features/TransactionApi.java @@ -25,30 +25,13 @@ import org.jclouds.rest.annotations.Fallback; import org.jclouds.rest.annotations.Payload; import org.jclouds.rest.annotations.PayloadParam; import org.jclouds.rest.annotations.RequestFilters; -import org.jclouds.rest.annotations.Transform; import org.jclouds.rest.annotations.VirtualHost; import org.jclouds.rest.annotations.XMLResponseParser; -import org.jclouds.ultradns.ws.ScopedTransaction; import org.jclouds.ultradns.ws.UltraDNSWSExceptions.TooManyTransactionsException; import org.jclouds.ultradns.ws.filters.SOAPWrapWithPasswordAuth; import org.jclouds.ultradns.ws.xml.ElementTextHandler; /** - * Adds transaction support when performing multiple write commands. - * - * <p/> - * ex. - * - * <pre> - * String txId = ultraDNSApi.getTransactionApi().start(); - * try { - * // perform operations - * ultraDNSApi.getTransactionApi().commit(txId); - * } catch (Throwable t) { - * ultraDNSApi.getTransactionApi().rollback(txId); - * throw propagate(t); - * } - * </pre> * * @see <a href="https://ultra-api.ultradns.com:8443/UltraDNS_WS/v01?wsdl" /> * @see <a href="https://www.ultradns.net/api/NUS_API_XML_SOAP.pdf" /> @@ -65,15 +48,12 @@ public interface TransactionApi { * @return id of the transaction created * @throws TooManyTransactionsException * if the maximum concurrent exception limit was hit. - * @throws IllegalStateException - * if another transaction is in progress. */ @Named("startTransaction") @POST @XMLResponseParser(ElementTextHandler.TransactionID.class) @Payload("<v01:startTransaction/>") - @Transform(ScopedTransaction.Set.class) - String start() throws TooManyTransactionsException, IllegalStateException; + String start() throws TooManyTransactionsException; /** * This request commits all of a transactionâs requests and writes them to @@ -87,7 +67,6 @@ public interface TransactionApi { @Named("commitTransaction") @POST @Payload("<v01:commitTransaction><transactionID>{transactionID}</transactionID></v01:commitTransaction>") - @Transform(ScopedTransaction.Remove.class) void commit(@PayloadParam("transactionID") String transactionID) throws ResourceNotFoundException; /** @@ -101,6 +80,5 @@ public interface TransactionApi { @POST @Payload("<v01:rollbackTransaction><transactionID>{transactionID}</transactionID></v01:rollbackTransaction>") @Fallback(VoidOnNotFoundOr404.class) - @Transform(ScopedTransaction.Remove.class) void rollback(@PayloadParam("transactionID") String transactionID); } http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/ded3c3e6/providers/ultradns-ws/src/main/java/org/jclouds/ultradns/ws/features/ZoneApi.java ---------------------------------------------------------------------- diff --git a/providers/ultradns-ws/src/main/java/org/jclouds/ultradns/ws/features/ZoneApi.java b/providers/ultradns-ws/src/main/java/org/jclouds/ultradns/ws/features/ZoneApi.java index 419cc82..db2490f 100644 --- a/providers/ultradns-ws/src/main/java/org/jclouds/ultradns/ws/features/ZoneApi.java +++ b/providers/ultradns-ws/src/main/java/org/jclouds/ultradns/ws/features/ZoneApi.java @@ -29,7 +29,6 @@ import org.jclouds.rest.annotations.PayloadParam; import org.jclouds.rest.annotations.RequestFilters; import org.jclouds.rest.annotations.VirtualHost; import org.jclouds.rest.annotations.XMLResponseParser; -import org.jclouds.ultradns.ws.ScopedTransaction; import org.jclouds.ultradns.ws.UltraDNSWSExceptions.ResourceAlreadyExistsException; import org.jclouds.ultradns.ws.domain.Zone; import org.jclouds.ultradns.ws.domain.Zone.Type; @@ -45,10 +44,7 @@ import com.google.common.collect.FluentIterable; * @see <a href="https://www.ultradns.net/api/NUS_API_XML_SOAP.pdf" /> * @author Adrian Cole */ -@RequestFilters({ - ScopedTransaction.Filter.class, - SOAPWrapWithPasswordAuth.class -}) +@RequestFilters(SOAPWrapWithPasswordAuth.class) @VirtualHost public interface ZoneApi { http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/ded3c3e6/providers/ultradns-ws/src/test/java/org/jclouds/ultradns/ws/ScopedTransactionExpectTest.java ---------------------------------------------------------------------- diff --git a/providers/ultradns-ws/src/test/java/org/jclouds/ultradns/ws/ScopedTransactionExpectTest.java b/providers/ultradns-ws/src/test/java/org/jclouds/ultradns/ws/ScopedTransactionExpectTest.java deleted file mode 100644 index d7d4c05..0000000 --- a/providers/ultradns-ws/src/test/java/org/jclouds/ultradns/ws/ScopedTransactionExpectTest.java +++ /dev/null @@ -1,54 +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.ultradns.ws; -import static com.google.common.net.HttpHeaders.HOST; -import static javax.ws.rs.HttpMethod.POST; -import static javax.ws.rs.core.Response.Status.OK; - -import org.jclouds.http.HttpRequest; -import org.jclouds.http.HttpResponse; -import org.jclouds.ultradns.ws.UltraDNSWSApi; -import org.jclouds.ultradns.ws.internal.BaseUltraDNSWSApiExpectTest; -import org.testng.annotations.Test; -/** - * @author Adrian Cole - */ -@Test(groups = "unit", testName = "ScopedTransactionExpectTest") -public class ScopedTransactionExpectTest extends BaseUltraDNSWSApiExpectTest { - HttpRequest start = HttpRequest.builder().method(POST) - .endpoint("https://ultra-api.ultradns.com:8443/UltraDNS_WS/v01") - .addHeader(HOST, "ultra-api.ultradns.com:8443") - .payload(payloadFromResourceWithContentType("/start_tx.xml", "application/xml")).build(); - - HttpResponse startResponse = HttpResponse.builder().statusCode(OK.getStatusCode()) - .payload(payloadFromResourceWithContentType("/tx_started.xml", "application/xml")).build(); - - HttpRequest createWithTx = HttpRequest.builder().method(POST) - .endpoint("https://ultra-api.ultradns.com:8443/UltraDNS_WS/v01") - .addHeader(HOST, "ultra-api.ultradns.com:8443") - .payload(payloadFromResourceWithContentType("/create_zone_tx.xml", "application/xml")).build(); - - HttpResponse createResponse = HttpResponse.builder().statusCode(OK.getStatusCode()) - .payload(payloadFromResourceWithContentType("/zone_created.xml", "application/xml")).build(); - - public void testAddTransactionIdWhenTransactionStarted() { - UltraDNSWSApi success = requestsSendResponses(start, startResponse, createWithTx, createResponse); - - success.getTransactionApi().start(); - success.getZoneApi().createInAccount("jclouds.org.", "AAAAAAAAAAAAAAAA"); - } -} http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/ded3c3e6/providers/ultradns-ws/src/test/java/org/jclouds/ultradns/ws/ScopedTransactionLiveTest.java ---------------------------------------------------------------------- diff --git a/providers/ultradns-ws/src/test/java/org/jclouds/ultradns/ws/ScopedTransactionLiveTest.java b/providers/ultradns-ws/src/test/java/org/jclouds/ultradns/ws/ScopedTransactionLiveTest.java deleted file mode 100644 index 638eda6..0000000 --- a/providers/ultradns-ws/src/test/java/org/jclouds/ultradns/ws/ScopedTransactionLiveTest.java +++ /dev/null @@ -1,82 +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.ultradns.ws; - -import static java.util.logging.Logger.getAnonymousLogger; -import static org.jclouds.ultradns.ws.domain.ResourceRecord.rrBuilder; -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertNotNull; -import static org.testng.Assert.assertNull; - -import org.jclouds.ultradns.ws.domain.ResourceRecord; -import org.jclouds.ultradns.ws.domain.ZoneProperties; -import org.jclouds.ultradns.ws.internal.BaseUltraDNSWSApiLiveTest; -import org.testng.annotations.Test; - -/** - * @author Adrian Cole - */ -@Test(groups = "live", testName = "ScopedTransactionLiveTest") -public class ScopedTransactionLiveTest extends BaseUltraDNSWSApiLiveTest { - - ResourceRecord mx = rrBuilder().name("mail." + zoneName) - .type(15) - .ttl(1800) - .infoValue(10) - .infoValue("maileast.jclouds.org.").build(); - - @Test - public void testMultiStepTransactionOnCommit() { - String txId = api.getTransactionApi().start(); - assertNotNull(txId); - getAnonymousLogger().info("starting transaction: " + txId); - try { - api.getZoneApi().createInAccount(zoneName, account.getId()); - api.getResourceRecordApiForZone(zoneName).create(mx); - - // can't read uncommitted stuff - assertNull(api.getZoneApi().get(zoneName)); - - // commit the tx - api.getTransactionApi().commit(txId); - - // now we can read it - ZoneProperties newZone = api.getZoneApi().get(zoneName); - assertEquals(newZone.getName(), zoneName); - assertEquals(newZone.getResourceRecordCount(), 6); - } finally { - // in case an assertion problem or otherwise occurred in the test. - api.getTransactionApi().rollback(txId); - api.getZoneApi().delete(zoneName); - } - } - - @Test - public void testScopedTransactionOnRollback() { - String txId = api.getTransactionApi().start(); - assertNotNull(txId); - getAnonymousLogger().info("starting transaction: " + txId); - try { - api.getZoneApi().createInAccount(zoneName, account.getId()); - api.getTransactionApi().rollback(txId); - assertNull(api.getZoneApi().get(zoneName)); - } finally { - // in case an assertion problem or otherwise occurred in the test. - api.getZoneApi().delete(zoneName); - } - } -} http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/ded3c3e6/providers/ultradns-ws/src/test/resources/create_zone_tx.xml ---------------------------------------------------------------------- diff --git a/providers/ultradns-ws/src/test/resources/create_zone_tx.xml b/providers/ultradns-ws/src/test/resources/create_zone_tx.xml deleted file mode 100644 index ba40474..0000000 --- a/providers/ultradns-ws/src/test/resources/create_zone_tx.xml +++ /dev/null @@ -1 +0,0 @@ -<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v01="http://webservice.api.ultra.neustar.com/v01/"><soapenv:Header><wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"><wsse:UsernameToken><wsse:Username>identity</wsse:Username><wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">credential</wsse:Password></wsse:UsernameToken></wsse:Security></soapenv:Header><soapenv:Body><v01:createPrimaryZone><transactionID>jclouds-37562</transactionID><accountId>AAAAAAAAAAAAAAAA</accountId><zoneName>jclouds.org.</zoneName><forceImport>false</forceImport></v01:createPrimaryZone></soapenv:Body></soapenv:Envelope> \ No newline at end of file
