summaryrefslogtreecommitdiffstats
path: root/proxy/code/src
diff options
context:
space:
mode:
authorjesus m. rodriguez <jesusr@redhat.com>2009-08-27 15:37:47 -0400
committerjesus m. rodriguez <jesusr@redhat.com>2009-08-27 15:44:21 -0400
commit576fb0e9f68b188183ca4931d3db05bd0965daf3 (patch)
tree0c3e43ba1f16d89a7481c4b15ec62ca6df241c77 /proxy/code/src
parentd9789aca9afed12bf73cdb4311a804c7cffc5fe4 (diff)
downloadcandlepin-576fb0e9f68b188183ca4931d3db05bd0965daf3.tar.gz
candlepin-576fb0e9f68b188183ca4931d3db05bd0965daf3.tar.xz
candlepin-576fb0e9f68b188183ca4931d3db05bd0965daf3.zip
consumer api work (not done yet)
Diffstat (limited to 'proxy/code/src')
-rw-r--r--proxy/code/src/org/fedoraproject/candlepin/api/BaseApi.java6
-rw-r--r--proxy/code/src/org/fedoraproject/candlepin/api/ConsumerApi.java35
-rw-r--r--proxy/code/src/org/fedoraproject/candlepin/api/TestApi.java2
-rw-r--r--proxy/code/src/org/fedoraproject/candlepin/api/test/ConsumerApiTest.java43
-rw-r--r--proxy/code/src/org/fedoraproject/candlepin/api/test/TestApiTest.java14
-rw-r--r--proxy/code/src/org/fedoraproject/candlepin/model/ConsumerInfo.java11
-rw-r--r--proxy/code/src/org/fedoraproject/candlepin/model/JsonTestObject.java13
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;
+ }
}