diff --git a/providers/enterprisechef/src/main/java/org/jclouds/enterprisechef/EnterpriseChefApi.java b/providers/enterprisechef/src/main/java/org/jclouds/enterprisechef/EnterpriseChefApi.java index 0e0b2a6c66..33f85c6339 100644 --- a/providers/enterprisechef/src/main/java/org/jclouds/enterprisechef/EnterpriseChefApi.java +++ b/providers/enterprisechef/src/main/java/org/jclouds/enterprisechef/EnterpriseChefApi.java @@ -33,7 +33,6 @@ import org.jclouds.Fallbacks.NullOnNotFoundOr404; import org.jclouds.chef.ChefApi; import org.jclouds.chef.filters.SignedHeaderAuth; import org.jclouds.chef.functions.ParseKeySetFromJson; -import org.jclouds.enterprisechef.binders.BindGroupNameToJsonPayload; import org.jclouds.enterprisechef.binders.BindGroupToUpdateRequestJsonPayload; import org.jclouds.enterprisechef.binders.GroupName; import org.jclouds.enterprisechef.domain.Group; @@ -44,6 +43,7 @@ import org.jclouds.rest.annotations.Headers; import org.jclouds.rest.annotations.ParamParser; import org.jclouds.rest.annotations.RequestFilters; import org.jclouds.rest.annotations.ResponseParser; +import org.jclouds.rest.annotations.WrapWith; /** * Provides synchronous access to the Enterprise Chef Api. @@ -98,7 +98,7 @@ public interface EnterpriseChefApi extends ChefApi @Named("group:create") @POST @Path("/groups") - void createGroup(@BinderParam(BindGroupNameToJsonPayload.class) String name); + void createGroup(@WrapWith("groupname") String name); /** * Updates a group. diff --git a/providers/enterprisechef/src/main/java/org/jclouds/enterprisechef/binders/BindGroupNameToJsonPayload.java b/providers/enterprisechef/src/main/java/org/jclouds/enterprisechef/binders/BindGroupNameToJsonPayload.java deleted file mode 100644 index 47f1a9a23a..0000000000 --- a/providers/enterprisechef/src/main/java/org/jclouds/enterprisechef/binders/BindGroupNameToJsonPayload.java +++ /dev/null @@ -1,42 +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.enterprisechef.binders; - -import static com.google.common.base.Preconditions.checkNotNull; - -import javax.inject.Singleton; -import javax.ws.rs.core.MediaType; - -import org.jclouds.http.HttpRequest; -import org.jclouds.rest.binders.BindToStringPayload; - -/** - * Binds the name of a group to the json payload. - * - * @author Ignasi Barrera - */ -@Singleton -public class BindGroupNameToJsonPayload extends BindToStringPayload { - - @Override - public R bindToRequest(R request, Object payload) { - super.bindToRequest(request, String.format("{\"groupname\":\"%s\"}", checkNotNull(payload, "payload"))); - request.getPayload().getContentMetadata().setContentType(MediaType.APPLICATION_JSON); - return request; - } - -} diff --git a/providers/enterprisechef/src/test/java/org/jclouds/enterprisechef/binders/BindGroupNameToJsonPayloadTest.java b/providers/enterprisechef/src/test/java/org/jclouds/enterprisechef/binders/BindGroupNameToJsonPayloadTest.java deleted file mode 100644 index 4cb399f62f..0000000000 --- a/providers/enterprisechef/src/test/java/org/jclouds/enterprisechef/binders/BindGroupNameToJsonPayloadTest.java +++ /dev/null @@ -1,52 +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.enterprisechef.binders; - -import static org.testng.Assert.assertEquals; - -import java.io.IOException; -import java.net.URI; - -import org.jclouds.enterprisechef.binders.BindGroupNameToJsonPayload; -import org.jclouds.http.HttpRequest; -import org.jclouds.util.Strings2; -import org.testng.annotations.Test; - -/** - * Unit tests for the {@link BindGroupNameToJsonPayload} class. - * - * @author Ignasi Barrera - */ -@Test(groups = "unit", testName = "BindGroupNameToJsonPayloadTest") -public class BindGroupNameToJsonPayloadTest { - - @Test(expectedExceptions = NullPointerException.class) - public void testInvalidNullInput() { - BindGroupNameToJsonPayload binder = new BindGroupNameToJsonPayload(); - HttpRequest request = HttpRequest.builder().method("POST").endpoint(URI.create("http://localhost")).build(); - binder.bindToRequest(request, null); - } - - public void testBindString() throws IOException { - BindGroupNameToJsonPayload binder = new BindGroupNameToJsonPayload(); - HttpRequest request = HttpRequest.builder().method("POST").endpoint(URI.create("http://localhost")).build(); - HttpRequest newRequest = binder.bindToRequest(request, "foo"); - - String payload = Strings2.toStringAndClose(newRequest.getPayload().getInput()); - assertEquals(payload, "{\"groupname\":\"foo\"}"); - } -}