diff options
Diffstat (limited to 'proxy/code/src/org/fedoraproject')
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) { |