You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by na...@apache.org on 2013/11/13 11:08:52 UTC

git commit: JCLOUDS-376: PATCH HTTP request implementation

Updated Branches:
  refs/heads/1.6.x 6e7811529 -> d8ce79cec


JCLOUDS-376: PATCH HTTP request implementation


Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/d8ce79ce
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/d8ce79ce
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/d8ce79ce

Branch: refs/heads/1.6.x
Commit: d8ce79cecfce84c6df0118ee43f548f45a01e749
Parents: 6e78115
Author: Ignacio Mulas <ig...@ericsson.com>
Authored: Tue Nov 12 15:44:49 2013 +0100
Committer: Ignasi Barrera <na...@apache.org>
Committed: Wed Nov 13 11:07:37 2013 +0100

----------------------------------------------------------------------
 .../org/jclouds/rest/annotations/PATCH.java     | 36 ++++++++++++
 .../PATCHAnnotationExpectTest.java              | 61 ++++++++++++++++++++
 2 files changed, 97 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds/blob/d8ce79ce/core/src/main/java/org/jclouds/rest/annotations/PATCH.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/jclouds/rest/annotations/PATCH.java b/core/src/main/java/org/jclouds/rest/annotations/PATCH.java
new file mode 100644
index 0000000..583e5e4
--- /dev/null
+++ b/core/src/main/java/org/jclouds/rest/annotations/PATCH.java
@@ -0,0 +1,36 @@
+/*
+ * 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.rest.annotations;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+import javax.ws.rs.HttpMethod;
+
+/**
+ * Implements the PATCH HTTP request type
+ * 
+ * @author Ignacio Mulas
+ * 
+ */
+@Target({ ElementType.METHOD })
+@Retention(RetentionPolicy.RUNTIME)
+@HttpMethod("PATCH")
+public @interface PATCH {
+}

http://git-wip-us.apache.org/repos/asf/jclouds/blob/d8ce79ce/core/src/test/java/org/jclouds/rest/annotationparsing/PATCHAnnotationExpectTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/jclouds/rest/annotationparsing/PATCHAnnotationExpectTest.java b/core/src/test/java/org/jclouds/rest/annotationparsing/PATCHAnnotationExpectTest.java
new file mode 100644
index 0000000..dc5614a
--- /dev/null
+++ b/core/src/test/java/org/jclouds/rest/annotationparsing/PATCHAnnotationExpectTest.java
@@ -0,0 +1,61 @@
+/*
+ * 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.rest.annotationparsing;
+
+import static org.jclouds.providers.AnonymousProviderMetadata.forApiOnEndpoint;
+import static org.testng.Assert.assertEquals;
+
+import java.io.Closeable;
+
+import javax.ws.rs.Path;
+
+import org.jclouds.http.HttpRequest;
+import org.jclouds.http.HttpResponse;
+import org.jclouds.providers.ProviderMetadata;
+import org.jclouds.rest.annotations.PATCH;
+import org.jclouds.rest.internal.BaseRestClientExpectTest;
+import org.testng.annotations.Test;
+
+/**
+ * Tests the use of the {@link PATCH} annotation.
+ * 
+ * @author Ignacio Mulas
+ * 
+ */
+@Test(groups = "unit", testName = "PATCHAnnotationExpectTest")
+public class PATCHAnnotationExpectTest extends
+      BaseRestClientExpectTest<PATCHAnnotationExpectTest.TestPATCHAnnotationApi> {
+
+   interface TestPATCHAnnotationApi extends Closeable {
+      @PATCH
+      @Path("/PATCH/annotation")
+      HttpResponse method();
+   }
+
+   @Test
+   public void testPATCHAnnotation() {
+      HttpResponse response = HttpResponse.builder().statusCode(200).build();
+      TestPATCHAnnotationApi testPATCH = requestSendsResponse(
+            HttpRequest.builder().method("PATCH").endpoint("http://mock/PATCH/annotation").build(), response);
+      assertEquals(testPATCH.method(), response, "PATCH");
+   }
+
+   @Override
+   public ProviderMetadata createProviderMetadata() {
+      return forApiOnEndpoint(TestPATCHAnnotationApi.class, "http://mock");
+   }
+}