summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDmitri Dolguikh <dmitri@appliedlogic.ca>2009-12-02 10:30:36 -0400
committerDmitri Dolguikh <dmitri@appliedlogic.ca>2009-12-02 10:30:36 -0400
commita85f630eb3b7491833bfbbb9bb6123156b7e5183 (patch)
tree6c6773507ae2d80663841371ce0d1ffd395b12cc
parent2f515dec53ebbf3d50c638723889c08170bef9d7 (diff)
parentc6e3685c0d6e88f57aaa5f0abc8a4e456c6a59ef (diff)
downloadcandlepin-a85f630eb3b7491833bfbbb9bb6123156b7e5183.tar.gz
candlepin-a85f630eb3b7491833bfbbb9bb6123156b7e5183.tar.xz
candlepin-a85f630eb3b7491833bfbbb9bb6123156b7e5183.zip
Merge branch 'master' of ssh://git.fedorahosted.org/git/candlepin
-rw-r--r--proxy/code/src/org/fedoraproject/candlepin/model/BaseModel.java131
-rw-r--r--proxy/code/src/org/fedoraproject/candlepin/model/Entitlement.java6
-rw-r--r--proxy/code/src/org/fedoraproject/candlepin/model/JsonTestObject.java12
-rw-r--r--proxy/code/src/org/fedoraproject/candlepin/model/ObjectFactory.java6
-rw-r--r--proxy/code/src/org/fedoraproject/candlepin/model/User.java44
-rw-r--r--proxy/code/src/org/fedoraproject/candlepin/model/test/OwnerTest.java1
-rw-r--r--proxy/code/src/org/fedoraproject/candlepin/model/test/UserTest.java45
-rw-r--r--proxy/code/src/org/fedoraproject/candlepin/resource/BaseResource.java3
-rw-r--r--proxy/code/src/org/fedoraproject/candlepin/resource/ConsumerResource.java1
-rw-r--r--proxy/code/src/org/fedoraproject/candlepin/resource/EntitlementResource.java1
-rw-r--r--proxy/code/src/org/fedoraproject/candlepin/resource/TestResource.java1
-rw-r--r--proxy/code/src/org/fedoraproject/candlepin/resource/UserResource.java4
-rw-r--r--proxy/code/src/org/fedoraproject/candlepin/resource/test/TestResourceTest.java2
-rw-r--r--proxy/code/src/org/fedoraproject/candlepin/test/DatabaseTestFixture.java8
14 files changed, 103 insertions, 162 deletions
diff --git a/proxy/code/src/org/fedoraproject/candlepin/model/BaseModel.java b/proxy/code/src/org/fedoraproject/candlepin/model/BaseModel.java
deleted file mode 100644
index fafe205..0000000
--- a/proxy/code/src/org/fedoraproject/candlepin/model/BaseModel.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/**
- * Copyright (c) 2009 Red Hat, Inc.
- *
- * This software is licensed to you under the GNU General Public License,
- * version 2 (GPLv2). There is NO WARRANTY for this software, express or
- * implied, including the implied warranties of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2
- * along with this software; if not, see
- * http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
- *
- * Red Hat trademarks are not licensed under GPLv2. No permission is
- * granted to use or replicate Red Hat trademarks that are incorporated
- * in this software or its documentation.
- */
-package org.fedoraproject.candlepin.model;
-
-import java.util.UUID;
-
-import javax.persistence.Column;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlRootElement;
-
-/**
- * @author mmccune
- *
- */
-@XmlRootElement
-@XmlAccessorType(XmlAccessType.PROPERTY)
-public class BaseModel {
-
- private String uuid;
- private String name;
-
- /**
- * Construct new with UUID
- * @param uuid unique idea for the model object
- */
- public BaseModel(String uuid) {
- this.uuid = uuid;
- }
-
- /**
- * Default constructor
- */
- public BaseModel() {
-
- }
-
- /**
- * Returns the unique id of the model object.
- * @return the unique id of the model object.
- */
- public String getUuid() {
- return uuid;
- }
-
- /**
- * Sets the unique id of the model object.
- * @param uuid unique id of the model.
- */
- public void setUuid(String uuid) {
- this.uuid = uuid;
- }
-
- /**
- * Returns the name of the object.
- * @return the name of the object.
- */
- public String getName() {
- return name;
- }
-
- /**
- * Set the name of the model object.
- * @param name name of the object
- */
- public void setName(String name) {
- this.name = name;
- }
-
- /**
- * Generate a UUID for an object.
- * @return String UUID.
- */
- public static String generateUUID() {
- return UUID.randomUUID().toString();
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result + ((uuid == null) ? 0 : uuid.hashCode());
- return result;
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public boolean equals(Object obj) {
- if (this == obj) {
- return true;
- }
-
- if (obj == null) {
- return false;
- }
-
- if (getClass() != obj.getClass()) {
- return false;
- }
-
- BaseModel other = (BaseModel) obj;
-
- if (this.getUuid() == null) {
- if (other.getUuid() != null) {
- return false;
- }
- }
- else if (!this.getUuid().equals(other.getUuid())) {
- return false;
- }
-
- return true;
- }
-}
diff --git a/proxy/code/src/org/fedoraproject/candlepin/model/Entitlement.java b/proxy/code/src/org/fedoraproject/candlepin/model/Entitlement.java
index f6c50db..f1614a8 100644
--- a/proxy/code/src/org/fedoraproject/candlepin/model/Entitlement.java
+++ b/proxy/code/src/org/fedoraproject/candlepin/model/Entitlement.java
@@ -15,20 +15,14 @@
package org.fedoraproject.candlepin.model;
import java.util.Date;
-import java.util.List;
-import javax.persistence.CascadeType;
-import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
-import javax.persistence.JoinTable;
import javax.persistence.ManyToOne;
-import javax.persistence.OneToMany;
import javax.persistence.Table;
-import javax.persistence.Transient;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
diff --git a/proxy/code/src/org/fedoraproject/candlepin/model/JsonTestObject.java b/proxy/code/src/org/fedoraproject/candlepin/model/JsonTestObject.java
index fb44d11..040ab59 100644
--- a/proxy/code/src/org/fedoraproject/candlepin/model/JsonTestObject.java
+++ b/proxy/code/src/org/fedoraproject/candlepin/model/JsonTestObject.java
@@ -28,12 +28,22 @@ import javax.xml.bind.annotation.XmlRootElement;
*/
@XmlRootElement
@XmlAccessorType(XmlAccessType.PROPERTY)
-public class JsonTestObject extends BaseModel {
+public class JsonTestObject {
private List<String> stringlist = new ArrayList<String>();
//private String[] stringarray = new String[1];
private JsonTestObject parent;
+ private String name;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
/**
* sets the parent
* @param p Parent
diff --git a/proxy/code/src/org/fedoraproject/candlepin/model/ObjectFactory.java b/proxy/code/src/org/fedoraproject/candlepin/model/ObjectFactory.java
index 7f86256..fa939b7 100644
--- a/proxy/code/src/org/fedoraproject/candlepin/model/ObjectFactory.java
+++ b/proxy/code/src/org/fedoraproject/candlepin/model/ObjectFactory.java
@@ -98,8 +98,8 @@ public class ObjectFactory {
* @param uuid to lookup
* @return BaseModel if found, null otherwise.
*/
- public BaseModel lookupByUUID(Class<?> clazz, String uuid) {
- return (BaseModel) lookupByFieldName(clazz, "uuid", uuid);
+ public Object lookupByUUID(Class<?> clazz, String uuid) {
+ return (Object) lookupByFieldName(clazz, "uuid", uuid);
}
/**
@@ -152,7 +152,7 @@ public class ObjectFactory {
* @param clazz to lookup
* @param removeMe model to remove
*/
- public void delete(Class clazz, BaseModel removeMe) {
+ public void delete(Class clazz, Object removeMe) {
String key = clazz.getName();
List typelist = (List) objects.get(key);
typelist.remove(removeMe);
diff --git a/proxy/code/src/org/fedoraproject/candlepin/model/User.java b/proxy/code/src/org/fedoraproject/candlepin/model/User.java
index cbe2395..33a6ab5 100644
--- a/proxy/code/src/org/fedoraproject/candlepin/model/User.java
+++ b/proxy/code/src/org/fedoraproject/candlepin/model/User.java
@@ -16,6 +16,12 @@ package org.fedoraproject.candlepin.model;
import java.util.Formatter;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.ManyToOne;
+import javax.persistence.Table;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
@@ -23,28 +29,48 @@ import javax.xml.bind.annotation.XmlTransient;
/**
* Represents the user.
- * TODO: how does this differ from an Owner.
+ *
+ * A user is more akin to an account within an owner. (i.e. organization)
*/
@XmlRootElement
@XmlAccessorType(XmlAccessType.PROPERTY)
-public class User extends BaseModel {
+@Entity
+@Table(name="cp_user")
+public class User {
+ @Id
+ @GeneratedValue(strategy=GenerationType.AUTO)
+ private Long id;
+
+ @ManyToOne
private Owner owner;
+
private String login;
+
+ // TODO: Hash!
private String password;
+ public User() {
+ }
+
+ public User(Owner ownerIn, String loginIn, String passwordIn) {
+ owner = ownerIn;
+ login = loginIn;
+ password = passwordIn;
+ }
+
/**
- * @param uuid unique id
+ * @return the id
*/
- public User(String uuid) {
- super(uuid);
+ public Long getId() {
+ return id;
}
-
+
/**
- * Default ctor
+ * @param id the id to set
*/
- public User() {
- this(null);
+ public void setId(Long id) {
+ this.id = id;
}
/**
diff --git a/proxy/code/src/org/fedoraproject/candlepin/model/test/OwnerTest.java b/proxy/code/src/org/fedoraproject/candlepin/model/test/OwnerTest.java
index 6f587b9..bbef5db 100644
--- a/proxy/code/src/org/fedoraproject/candlepin/model/test/OwnerTest.java
+++ b/proxy/code/src/org/fedoraproject/candlepin/model/test/OwnerTest.java
@@ -14,7 +14,6 @@
*/
package org.fedoraproject.candlepin.model.test;
-import org.fedoraproject.candlepin.model.BaseModel;
import org.fedoraproject.candlepin.model.Consumer;
import org.fedoraproject.candlepin.model.EntitlementPool;
import org.fedoraproject.candlepin.model.Owner;
diff --git a/proxy/code/src/org/fedoraproject/candlepin/model/test/UserTest.java b/proxy/code/src/org/fedoraproject/candlepin/model/test/UserTest.java
new file mode 100644
index 0000000..88af7ff
--- /dev/null
+++ b/proxy/code/src/org/fedoraproject/candlepin/model/test/UserTest.java
@@ -0,0 +1,45 @@
+/**
+ * Copyright (c) 2009 Red Hat, Inc.
+ *
+ * This software is licensed to you under the GNU General Public License,
+ * version 2 (GPLv2). There is NO WARRANTY for this software, express or
+ * implied, including the implied warranties of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2
+ * along with this software; if not, see
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
+ *
+ * Red Hat trademarks are not licensed under GPLv2. No permission is
+ * granted to use or replicate Red Hat trademarks that are incorporated
+ * in this software or its documentation.
+ */
+package org.fedoraproject.candlepin.model.test;
+
+import org.fedoraproject.candlepin.model.Owner;
+import org.fedoraproject.candlepin.model.User;
+import org.fedoraproject.candlepin.test.DatabaseTestFixture;
+
+import org.junit.Test;
+import static org.junit.Assert.*;
+
+public class UserTest extends DatabaseTestFixture {
+
+ @Test
+ public void testCreate() throws Exception {
+ String ownerName = "Example Corporation";
+ Owner o = new Owner(ownerName);
+
+ String username = "TESTUSER";
+ String password = "sekretpassword";
+ User user = new User(o, username, password);
+
+ beginTransaction();
+ em.persist(o);
+ em.persist(user);
+ commitTransaction();
+
+ User lookedUp = (User)em.find(User.class, user.getId());
+ assertEquals(username, lookedUp.getLogin());
+ assertEquals(password, lookedUp.getPassword());
+ }
+
+}
diff --git a/proxy/code/src/org/fedoraproject/candlepin/resource/BaseResource.java b/proxy/code/src/org/fedoraproject/candlepin/resource/BaseResource.java
index ec21fe2..f697d3a 100644
--- a/proxy/code/src/org/fedoraproject/candlepin/resource/BaseResource.java
+++ b/proxy/code/src/org/fedoraproject/candlepin/resource/BaseResource.java
@@ -14,7 +14,6 @@
*/
package org.fedoraproject.candlepin.resource;
-import org.fedoraproject.candlepin.model.BaseModel;
import org.fedoraproject.candlepin.model.ObjectFactory;
import org.apache.log4j.Logger;
@@ -90,7 +89,7 @@ public abstract class BaseResource {
@DELETE @Path("/{uuid}")
public void delete(String uuid) {
System.out.println("Delete called: " + uuid);
- BaseModel obj = ObjectFactory.get().lookupByUUID(getApiClass(), uuid);
+ Object obj = ObjectFactory.get().lookupByUUID(getApiClass(), uuid);
ObjectFactory.get().delete(getApiClass(), obj);
}
diff --git a/proxy/code/src/org/fedoraproject/candlepin/resource/ConsumerResource.java b/proxy/code/src/org/fedoraproject/candlepin/resource/ConsumerResource.java
index 478c49d..0ae494c 100644
--- a/proxy/code/src/org/fedoraproject/candlepin/resource/ConsumerResource.java
+++ b/proxy/code/src/org/fedoraproject/candlepin/resource/ConsumerResource.java
@@ -14,7 +14,6 @@
*/
package org.fedoraproject.candlepin.resource;
-import org.fedoraproject.candlepin.model.BaseModel;
import org.fedoraproject.candlepin.model.Consumer;
import org.fedoraproject.candlepin.model.ConsumerInfo;
import org.fedoraproject.candlepin.model.ConsumerType;
diff --git a/proxy/code/src/org/fedoraproject/candlepin/resource/EntitlementResource.java b/proxy/code/src/org/fedoraproject/candlepin/resource/EntitlementResource.java
index fed729b..3354782 100644
--- a/proxy/code/src/org/fedoraproject/candlepin/resource/EntitlementResource.java
+++ b/proxy/code/src/org/fedoraproject/candlepin/resource/EntitlementResource.java
@@ -14,7 +14,6 @@
*/
package org.fedoraproject.candlepin.resource;
-import org.fedoraproject.candlepin.model.BaseModel;
import org.fedoraproject.candlepin.model.Consumer;
import org.fedoraproject.candlepin.model.Entitlement;
import org.fedoraproject.candlepin.model.EntitlementPool;
diff --git a/proxy/code/src/org/fedoraproject/candlepin/resource/TestResource.java b/proxy/code/src/org/fedoraproject/candlepin/resource/TestResource.java
index 14ba04f..8d7c3d1 100644
--- a/proxy/code/src/org/fedoraproject/candlepin/resource/TestResource.java
+++ b/proxy/code/src/org/fedoraproject/candlepin/resource/TestResource.java
@@ -62,7 +62,6 @@ public class TestResource {
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());
System.out.println("jto.parent.name:" +
jto.getParent() == null ? jto.getParent().getName() : "");
diff --git a/proxy/code/src/org/fedoraproject/candlepin/resource/UserResource.java b/proxy/code/src/org/fedoraproject/candlepin/resource/UserResource.java
index 040cc98..1dea70e 100644
--- a/proxy/code/src/org/fedoraproject/candlepin/resource/UserResource.java
+++ b/proxy/code/src/org/fedoraproject/candlepin/resource/UserResource.java
@@ -14,7 +14,6 @@
*/
package org.fedoraproject.candlepin.resource;
-import org.fedoraproject.candlepin.model.BaseModel;
import org.fedoraproject.candlepin.model.ObjectFactory;
import org.fedoraproject.candlepin.model.User;
@@ -82,8 +81,7 @@ public class UserResource extends BaseResource {
public User create(@FormParam("login") String login, @FormParam("password") String password) {
System.out.println("login: " + login);
System.out.println("password: " + password);
- String newuuid = BaseModel.generateUUID();
- User u = new User(newuuid);
+ User u = new User();
u.setLogin(login);
u.setPassword(password);
ObjectFactory.get().store(u);
diff --git a/proxy/code/src/org/fedoraproject/candlepin/resource/test/TestResourceTest.java b/proxy/code/src/org/fedoraproject/candlepin/resource/test/TestResourceTest.java
index 7fc3648..6e2dcc3 100644
--- a/proxy/code/src/org/fedoraproject/candlepin/resource/test/TestResourceTest.java
+++ b/proxy/code/src/org/fedoraproject/candlepin/resource/test/TestResourceTest.java
@@ -39,7 +39,6 @@ public class TestResourceTest {
private JsonTestObject createTestObject() {
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?");
@@ -62,7 +61,6 @@ public class TestResourceTest {
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());
assertNull(jto.getParent());
diff --git a/proxy/code/src/org/fedoraproject/candlepin/test/DatabaseTestFixture.java b/proxy/code/src/org/fedoraproject/candlepin/test/DatabaseTestFixture.java
index 286e07b..d3ff05d 100644
--- a/proxy/code/src/org/fedoraproject/candlepin/test/DatabaseTestFixture.java
+++ b/proxy/code/src/org/fedoraproject/candlepin/test/DatabaseTestFixture.java
@@ -6,12 +6,12 @@ import javax.persistence.EntityManager;
import javax.persistence.EntityTransaction;
import org.fedoraproject.candlepin.model.Consumer;
-import org.fedoraproject.candlepin.model.ConsumerInfo;
import org.fedoraproject.candlepin.model.ConsumerType;
import org.fedoraproject.candlepin.model.Entitlement;
import org.fedoraproject.candlepin.model.EntitlementPool;
import org.fedoraproject.candlepin.model.Owner;
import org.fedoraproject.candlepin.model.Product;
+import org.fedoraproject.candlepin.model.User;
import org.fedoraproject.candlepin.util.EntityManagerUtil;
import org.junit.After;
import org.junit.Before;
@@ -47,6 +47,12 @@ public class DatabaseTestFixture {
beginTransaction();
}
+ List<User> users = em.createQuery("from User u").
+ getResultList();
+ for (User u : users) {
+ em.remove(u);
+ }
+
List<Entitlement> ents = em.createQuery("from Entitlement e").
getResultList();
for (Entitlement e : ents) {