diff options
| author | jesus m. rodriguez <jesusr@redhat.com> | 2009-08-27 15:37:47 -0400 |
|---|---|---|
| committer | jesus m. rodriguez <jesusr@redhat.com> | 2009-08-27 15:44:21 -0400 |
| commit | 576fb0e9f68b188183ca4931d3db05bd0965daf3 (patch) | |
| tree | 0c3e43ba1f16d89a7481c4b15ec62ca6df241c77 /proxy/code/src | |
| parent | d9789aca9afed12bf73cdb4311a804c7cffc5fe4 (diff) | |
| download | candlepin-576fb0e9f68b188183ca4931d3db05bd0965daf3.tar.gz candlepin-576fb0e9f68b188183ca4931d3db05bd0965daf3.tar.xz candlepin-576fb0e9f68b188183ca4931d3db05bd0965daf3.zip | |
consumer api work (not done yet)
Diffstat (limited to 'proxy/code/src')
7 files changed, 111 insertions, 13 deletions
diff --git a/proxy/code/src/org/fedoraproject/candlepin/api/BaseApi.java b/proxy/code/src/org/fedoraproject/candlepin/api/BaseApi.java index d30ca22..768b6ef 100644 --- a/proxy/code/src/org/fedoraproject/candlepin/api/BaseApi.java +++ b/proxy/code/src/org/fedoraproject/candlepin/api/BaseApi.java @@ -47,9 +47,9 @@ public abstract class BaseApi { return o; } - @POST - @Consumes({MediaType.APPLICATION_JSON, MediaType.APPLICATION_FORM_URLENCODED}) - @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) +// @POST +// @Consumes({MediaType.APPLICATION_JSON, MediaType.APPLICATION_FORM_URLENCODED}) +// @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) public Object create(Form form) { String newuuid = BaseModel.generateUUID(); Object args[] = new Object[1]; diff --git a/proxy/code/src/org/fedoraproject/candlepin/api/ConsumerApi.java b/proxy/code/src/org/fedoraproject/candlepin/api/ConsumerApi.java index 013ea19..a672055 100644 --- a/proxy/code/src/org/fedoraproject/candlepin/api/ConsumerApi.java +++ b/proxy/code/src/org/fedoraproject/candlepin/api/ConsumerApi.java @@ -14,13 +14,19 @@ */ package org.fedoraproject.candlepin.api; +import org.fedoraproject.candlepin.model.BaseModel; import org.fedoraproject.candlepin.model.Consumer; +import org.fedoraproject.candlepin.model.ConsumerInfo; import org.fedoraproject.candlepin.model.ObjectFactory; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; +import javax.ws.rs.Consumes; import javax.ws.rs.GET; +import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; @@ -33,7 +39,6 @@ public class ConsumerApi extends BaseApi { return Consumer.class; } - @GET @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) public List<Consumer> list() { @@ -45,4 +50,32 @@ public class ConsumerApi extends BaseApi { return consumers; } + @POST + @Consumes(MediaType.APPLICATION_JSON) + @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) + public Consumer create(ConsumerInfo ci) { + System.out.println("metadata: " + ci.getMetadata()); + System.out.println("ci: " + ci); + //Owner owner = (Owner) ObjectFactory.get().lookupByUUID(Owner.class, owneruuid); + Consumer c = new Consumer(BaseModel.generateUUID()); + //c.setOwner(owner); + c.setInfo(ci); + return c; + } + + @GET @Path("/info") + @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) + public ConsumerInfo getInfo() { + ConsumerInfo ci = new ConsumerInfo(); + ci.setType(ConsumerInfo.TYPE_SYSTEM); + ci.setParent(null); +// Map<String,String> m = new HashMap<String,String>(); +// m.put("cpu", "i386"); +// m.put("hey", "biteme"); +// ci.setMetadata(m); + ci.setMetadataField("cpu", "i386"); + ci.setMetadataField("hey", "foobar"); + System.out.println(ci.getMetadata()); + return ci; + } } diff --git a/proxy/code/src/org/fedoraproject/candlepin/api/TestApi.java b/proxy/code/src/org/fedoraproject/candlepin/api/TestApi.java index ddef6dc..f352c4d 100644 --- a/proxy/code/src/org/fedoraproject/candlepin/api/TestApi.java +++ b/proxy/code/src/org/fedoraproject/candlepin/api/TestApi.java @@ -50,5 +50,7 @@ public class TestApi { jto = obj; System.out.println("object.name:" + obj.getName()); System.out.println("jto.name:" + jto.getName()); + System.out.println("jto.uuid:" + jto.getUuid()); + System.out.println("jto.list:" + jto.getStringList()); } } diff --git a/proxy/code/src/org/fedoraproject/candlepin/api/test/ConsumerApiTest.java b/proxy/code/src/org/fedoraproject/candlepin/api/test/ConsumerApiTest.java index 8020dec..aaac3b3 100644 --- a/proxy/code/src/org/fedoraproject/candlepin/api/test/ConsumerApiTest.java +++ b/proxy/code/src/org/fedoraproject/candlepin/api/test/ConsumerApiTest.java @@ -14,17 +14,18 @@ */ package org.fedoraproject.candlepin.api.test; +import org.fedoraproject.candlepin.api.ConsumerApi; +import org.fedoraproject.candlepin.model.Consumer; +import org.fedoraproject.candlepin.model.ConsumerInfo; +import org.fedoraproject.candlepin.model.ObjectFactory; +import org.fedoraproject.candlepin.model.test.TestUtil; + import com.sun.jersey.api.client.Client; import com.sun.jersey.api.client.WebResource; import com.sun.jersey.api.client.config.ClientConfig; import com.sun.jersey.api.client.config.DefaultClientConfig; import com.sun.jersey.api.representation.Form; -import org.fedoraproject.candlepin.api.ConsumerApi; -import org.fedoraproject.candlepin.model.Consumer; -import org.fedoraproject.candlepin.model.ObjectFactory; -import org.fedoraproject.candlepin.model.test.TestUtil; - import junit.framework.TestCase; @@ -69,5 +70,37 @@ public class ConsumerApiTest extends TestCase { assertNull(ObjectFactory.get().lookupByUUID(c.getClass(), uuid)); + public void testJson() { + ClientConfig cc = new DefaultClientConfig(); + Client c = Client.create(cc); + ConsumerInfo ci = new ConsumerInfo(); + ci.setParent(null); + ci.setType("system"); + ci.setMetadataField("mata1", "value1"); + WebResource postresource = c.resource("http://localhost:8080/candlepin/consumer"); + ConsumerInfo pci = postresource.accept("application/json").type("application/json").post(ConsumerInfo.class, ci); + assertNotNull(pci); + assertEquals("system", pci.getType()); + assertNotNull(pci.getMetadata()); + assertEquals("value1", pci.getMetadataField("mata1")); + +// WebResource getresource = c.resource("http://localhost:8080/candlepin/consumer/info"); +// ConsumerInfo nci = getresource.accept("application/json").get(ConsumerInfo.class); +// assertNotNull(nci); +// assertEquals("system", nci.getType()); +// assertNotNull(nci.getMetadata()); +// assertEquals("value1", nci.getMetadataField("mata1")); +// System.out.println(nci.getType()); +// System.out.println(nci.getMetadata()); + + + +// WebResource postresource = c.resource("http://localhost:8080/candlepin/test/"); +// postresource.accept("application/json").type("application/json").post(jto); +// +// System.out.println(jto.getName()); +// jto = getresource.accept("application/json").get(JsonTestObject.class); +// assertEquals("testname", jto.getName()); +// assertEquals("AEF", jto.getUuid()); } } diff --git a/proxy/code/src/org/fedoraproject/candlepin/api/test/TestApiTest.java b/proxy/code/src/org/fedoraproject/candlepin/api/test/TestApiTest.java index 52ef21f..6a3d0dc 100644 --- a/proxy/code/src/org/fedoraproject/candlepin/api/test/TestApiTest.java +++ b/proxy/code/src/org/fedoraproject/candlepin/api/test/TestApiTest.java @@ -21,6 +21,9 @@ import com.sun.jersey.api.client.WebResource; import com.sun.jersey.api.client.config.ClientConfig; import com.sun.jersey.api.client.config.DefaultClientConfig; +import java.util.ArrayList; +import java.util.List; + import junit.framework.TestCase; @@ -33,18 +36,25 @@ public class TestApiTest extends TestCase { ClientConfig cc = new DefaultClientConfig(); Client c = Client.create(cc); - WebResource getresource = c.resource("http://localhost:8080/candlepin/test/"); + JsonTestObject jto = new JsonTestObject(); jto.setName("testname"); jto.setUuid("AEF"); + List<String> l = new ArrayList<String>(); + l.add("hey there"); + l.add("how are you?"); + jto.setStringList(l); WebResource postresource = c.resource("http://localhost:8080/candlepin/test/"); postresource.accept("application/json").type("application/json").post(jto); + WebResource getresource = c.resource("http://localhost:8080/candlepin/test/"); System.out.println(jto.getName()); jto = getresource.accept("application/json").get(JsonTestObject.class); assertEquals("testname", jto.getName()); assertEquals("AEF", jto.getUuid()); - + assertNotNull(jto.getStringList()); + assertEquals(2, jto.getStringList().size()); + System.out.println(jto.getStringList()); } } diff --git a/proxy/code/src/org/fedoraproject/candlepin/model/ConsumerInfo.java b/proxy/code/src/org/fedoraproject/candlepin/model/ConsumerInfo.java index 7b2ea37..05c32c9 100644 --- a/proxy/code/src/org/fedoraproject/candlepin/model/ConsumerInfo.java +++ b/proxy/code/src/org/fedoraproject/candlepin/model/ConsumerInfo.java @@ -17,9 +17,13 @@ package org.fedoraproject.candlepin.model; import java.util.HashMap; import java.util.Map; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlTransient; - +@XmlRootElement +@XmlAccessorType(XmlAccessType.PROPERTY) public class ConsumerInfo { private Consumer parent; @@ -70,6 +74,7 @@ public class ConsumerInfo { * @param metadataIn The metadata to set. */ public void setMetadata(Map<String, String> metadataIn) { + System.out.println("set metadata called"); metadata = metadataIn; } @@ -79,9 +84,11 @@ public class ConsumerInfo { * @param value to set */ public void setMetadataField(String name, String value) { + System.out.println("set meta field called"); if (this.metadata == null) { - metadata = new HashMap(); + metadata = new HashMap<String,String>(); } + metadata.put(name, value); } diff --git a/proxy/code/src/org/fedoraproject/candlepin/model/JsonTestObject.java b/proxy/code/src/org/fedoraproject/candlepin/model/JsonTestObject.java index cb372c6..99ed8b3 100644 --- a/proxy/code/src/org/fedoraproject/candlepin/model/JsonTestObject.java +++ b/proxy/code/src/org/fedoraproject/candlepin/model/JsonTestObject.java @@ -14,6 +14,9 @@ */ package org.fedoraproject.candlepin.model; +import java.util.ArrayList; +import java.util.List; + import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlRootElement; @@ -27,4 +30,14 @@ import javax.xml.bind.annotation.XmlRootElement; @XmlAccessorType(XmlAccessType.PROPERTY) public class JsonTestObject extends BaseModel { + private List<String> stringlist = new ArrayList<String>(); + //private String[] stringarray = new String[1]; + + public void setStringList(List<String> items) { + stringlist = items; + } + + public List<String> getStringList() { + return stringlist; + } } |
