You are viewing a plain text version of this content. The canonical link for it is here.
Posted to photark-commits@incubator.apache.org by lr...@apache.org on 2011/08/19 00:34:04 UTC
svn commit: r1159454 - in
/incubator/photark/branches/photark-rest/photark-social/src:
main/java/org/apache/photark/social/services/
main/java/org/apache/photark/social/services/impl/
test/java/org/apache/photark/social/person/test/ test/resources/
Author: lresende
Date: Fri Aug 19 00:34:03 2011
New Revision: 1159454
URL: http://svn.apache.org/viewvc?rev=1159454&view=rev
Log:
Cleaning up interface, and adding resource based tests
Modified:
incubator/photark/branches/photark-rest/photark-social/src/main/java/org/apache/photark/social/services/PersonService.java
incubator/photark/branches/photark-rest/photark-social/src/main/java/org/apache/photark/social/services/impl/JCRPersonServiceImpl.java
incubator/photark/branches/photark-rest/photark-social/src/test/java/org/apache/photark/social/person/test/PersonManagerTestCase.java
incubator/photark/branches/photark-rest/photark-social/src/test/resources/person-test.composite
Modified: incubator/photark/branches/photark-rest/photark-social/src/main/java/org/apache/photark/social/services/PersonService.java
URL: http://svn.apache.org/viewvc/incubator/photark/branches/photark-rest/photark-social/src/main/java/org/apache/photark/social/services/PersonService.java?rev=1159454&r1=1159453&r2=1159454&view=diff
==============================================================================
--- incubator/photark/branches/photark-rest/photark-social/src/main/java/org/apache/photark/social/services/PersonService.java (original)
+++ incubator/photark/branches/photark-rest/photark-social/src/main/java/org/apache/photark/social/services/PersonService.java Fri Aug 19 00:34:03 2011
@@ -19,6 +19,8 @@
package org.apache.photark.social.services;
+import java.util.List;
+
import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
import javax.ws.rs.GET;
@@ -35,96 +37,83 @@ import org.oasisopen.sca.annotation.Remo
@Remotable
public interface PersonService {
- /**
- * Persists the Person data object
- *
- * @param personId
- * ID of the Person data object
- * @param person
- * Person data object
- * @throws PhotArkSocialException
- */
- @POST
- @Path("/people/{userId}")
- @Consumes(MediaType.APPLICATION_JSON)
- void savePerson(@PathParam("userId") String personId, Person person)
- throws PhotArkSocialException;
-
- /**
- * Updates the Person data object with updated fields
- *
- * @param personId
- * ID of the Person data object
- * @param person
- * Person data object with filed to update
- * @throws PhotArkSocialException
- */
- @PUT
- @Path("/people/{userId}")
- @Consumes(MediaType.APPLICATION_JSON)
- void updatePerson(@PathParam("userId") String personId, Person person)
- throws PhotArkSocialException;
-
- /**
- * Removes a Person data object from persistence
- *
- * @param personId
- * ID of the Person data object to be removed
- * @throws PhotArkSocialException
- */
-
- @DELETE
- @Path("/people/{userId}")
- void removePerson(@PathParam("userId") String personId)
- throws PhotArkSocialException;
-
- /**
- * Retrieves the Person data object for the given ID
- *
- * @param personId
- * ID of the Person data object to be retrieved
- * @return the Person data object for the given ID
- * @throws PhotArkSocialException
- */
-
- /*@GET
- @Produces(MediaType.APPLICATION_JSON)
- @Path("/people/{userId}/@self")
- Person getPerson(@PathParam("userId") String personId)
- throws PhotArkSocialException;*/
-
- /**
- * Retrieves the Person data object for the given ID with specified fields
- *
- * @param personId
- * personId ID of the Person data object to be retrieved
- * @param fields
- * the fields of the Person data object to be retrieved
- * @return the Person data object for the given ID with the specified fields
- * @throws PhotArkSocialException
- */
- @GET
- @Produces(MediaType.APPLICATION_JSON)
- @Path("/people/{userId}/self")
- Person getPerson(@PathParam("userId") String personId)
- throws PhotArkSocialException;
-
- /**
- * Retrieves array of Person data objects for the given person IDs and group
- *
- * @param personIds
- * String array of IDs of the persons
- * @param groupId
- * the ID of the group the persons belongs to; optional
- * @param fields
- * the fields of the Person data object to be retrieved
- * @return an array of Person data objects
- * @throws PhotArkSocialException
- */
- /*@GET
- @Produces(MediaType.APPLICATION_JSON)
- @Path("/people/{userId}/@friends")
- Person[] getPeople(String[] personIds, String groupId, String[] fields)
- throws PhotArkSocialException;*/
+
+ /**
+ * Retrieves the Person data object for the given ID with specified fields
+ *
+ * @param personId personId ID of the Person data object to be retrieved
+ * @param fields the fields of the Person data object to be retrieved
+ * @return the Person data object for the given ID with the specified fields
+ * @throws PhotArkSocialException
+ */
+ @GET
+ @Path("/people")
+ @Produces(MediaType.APPLICATION_JSON)
+ List<Person> getPersons() throws PhotArkSocialException;
+
+ /**
+ * Retrieves the Person data object for the given ID with specified fields
+ *
+ * @param personId personId ID of the Person data object to be retrieved
+ * @param fields the fields of the Person data object to be retrieved
+ * @return the Person data object for the given ID with the specified fields
+ * @throws PhotArkSocialException
+ */
+ @GET
+ @Path("/people/{userId}")
+ @Produces(MediaType.APPLICATION_JSON)
+ Person getPerson(@PathParam("userId") String personId) throws PhotArkSocialException;
+
+ /**
+ * Persists the Person data object
+ *
+ * @param personId ID of the Person data object
+ * @param person Person data object
+ * @throws PhotArkSocialException
+ */
+ @POST
+ @Path("/people")
+ @Consumes(MediaType.APPLICATION_JSON)
+ Person addPerson(Person person) throws PhotArkSocialException;
+
+ /**
+ * Updates the Person data object with updated fields
+ *
+ * @param personId ID of the Person data object
+ * @param person Person data object with filed to update
+ * @throws PhotArkSocialException
+ */
+ @PUT
+ @Path("/people/{userId}")
+ @Consumes(MediaType.APPLICATION_JSON)
+ void updatePerson(@PathParam("userId") String personId, Person person) throws PhotArkSocialException;
+
+ /**
+ * Removes a Person data object from persistence
+ *
+ * @param personId ID of the Person data object to be removed
+ * @throws PhotArkSocialException
+ */
+
+ @DELETE
+ @Path("/people/{userId}")
+ void removePerson(@PathParam("userId") String personId) throws PhotArkSocialException;
+
+
+ /**
+ * Retrieves array of Person data objects for the given person IDs and group
+ *
+ * @param personIds String array of IDs of the persons
+ * @param groupId the ID of the group the persons belongs to; optional
+ * @param fields the fields of the Person data object to be retrieved
+ * @return an array of Person data objects
+ * @throws PhotArkSocialException
+ */
+ /*
+ * @GET
+ * @Produces(MediaType.APPLICATION_JSON)
+ * @Path("/people/{userId}/@friends") Person[] getPeople(String[] personIds,
+ * String groupId, String[] fields) throws PhotArkSocialException;
+ */
}
Modified: incubator/photark/branches/photark-rest/photark-social/src/main/java/org/apache/photark/social/services/impl/JCRPersonServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/photark/branches/photark-rest/photark-social/src/main/java/org/apache/photark/social/services/impl/JCRPersonServiceImpl.java?rev=1159454&r1=1159453&r2=1159454&view=diff
==============================================================================
--- incubator/photark/branches/photark-rest/photark-social/src/main/java/org/apache/photark/social/services/impl/JCRPersonServiceImpl.java (original)
+++ incubator/photark/branches/photark-rest/photark-social/src/main/java/org/apache/photark/social/services/impl/JCRPersonServiceImpl.java Fri Aug 19 00:34:03 2011
@@ -21,6 +21,7 @@ package org.apache.photark.social.servic
import java.io.IOException;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.logging.Level;
@@ -53,11 +54,40 @@ public class JCRPersonServiceImpl implem
public JCRPersonServiceImpl(@Reference(name = "repositoryManager") JCRRepositoryManager repositoryManager) {
this.repositoryManager = repositoryManager;
}
+
- public void savePerson(String personId, Person person) throws PhotArkSocialException {
+ /*
+ * public Person getPerson(String personId) throws PhotArkSocialException {
+ * return getPerson(personId, null); }
+ */
+
+ public Person getPerson(String personId) throws PhotArkSocialException {
+ Node personProfileNode = null;
+ Person personObj = null;
+ try {
+ personProfileNode = PhotArkSocialUtil.getPersonProfileRootNode(repositoryManager, personId, false);
+ if (personProfileNode != null) {
+ personObj = createPersonObjFromProfileNode(personProfileNode);
+ }
+ } catch (PhotarkRuntimeException e) {
+ logger.log(Level.SEVERE, "Error retrieving person data from photark repository :" + e.getMessage(), e);
+ throw new PhotArkSocialException("Error retrieving person data from photark repository :" + e.getMessage(), e);
+ } catch (RepositoryException e) {
+ logger.log(Level.SEVERE, "Error retrieving person data from photark repository :" + e.getMessage(), e);
+ throw new PhotArkSocialException("Error retrieving person data from photark repository :" + e.getMessage(), e);
+ }
+ return personObj;
+ }
+
+ public List<Person> getPersons() throws PhotArkSocialException {
+ return Collections.EMPTY_LIST;
+ }
+
+ public Person addPerson(Person person) throws PhotArkSocialException {
if (person == null) {
throw new PhotArkSocialException("Unable to save person. Given Person object is null");
}
+ String personId = person.getId();
Node socialDataRootNode = null;
Node personProfileNode = null;
@@ -79,6 +109,7 @@ public class JCRPersonServiceImpl implem
throw new PhotArkSocialException("Error saving person data to photark repository :" + e.getMessage(), e);
}
+ return person;
}
public void updatePerson(String personId, Person person) throws PhotArkSocialException {
@@ -91,7 +122,7 @@ public class JCRPersonServiceImpl implem
logger.log(Level.SEVERE, "Error retrieving social data root from photark repository :" + e.getMessage(), e);
throw new PhotArkSocialException("Error retrieving social data root from photark repository :" + e.getMessage(), e);
}
- savePerson(personId, person);
+ addPerson(person);
}
@@ -112,29 +143,6 @@ public class JCRPersonServiceImpl implem
}
/*
- * public Person getPerson(String personId) throws PhotArkSocialException {
- * return getPerson(personId, null); }
- */
-
- public Person getPerson(String personId) throws PhotArkSocialException {
- Node personProfileNode = null;
- Person personObj = null;
- try {
- personProfileNode = PhotArkSocialUtil.getPersonProfileRootNode(repositoryManager, personId, false);
- if (personProfileNode != null) {
- personObj = createPersonObjFromProfileNode(personProfileNode);
- }
- } catch (PhotarkRuntimeException e) {
- logger.log(Level.SEVERE, "Error retrieving person data from photark repository :" + e.getMessage(), e);
- throw new PhotArkSocialException("Error retrieving person data from photark repository :" + e.getMessage(), e);
- } catch (RepositoryException e) {
- logger.log(Level.SEVERE, "Error retrieving person data from photark repository :" + e.getMessage(), e);
- throw new PhotArkSocialException("Error retrieving person data from photark repository :" + e.getMessage(), e);
- }
- return personObj;
- }
-
- /*
* public Person[] getPeople(String[] personIds, String groupId, String[]
* fields) throws PhotArkSocialException { // TODO Auto-generated method
* stub return null; }
Modified: incubator/photark/branches/photark-rest/photark-social/src/test/java/org/apache/photark/social/person/test/PersonManagerTestCase.java
URL: http://svn.apache.org/viewvc/incubator/photark/branches/photark-rest/photark-social/src/test/java/org/apache/photark/social/person/test/PersonManagerTestCase.java?rev=1159454&r1=1159453&r2=1159454&view=diff
==============================================================================
--- incubator/photark/branches/photark-rest/photark-social/src/test/java/org/apache/photark/social/person/test/PersonManagerTestCase.java (original)
+++ incubator/photark/branches/photark-rest/photark-social/src/test/java/org/apache/photark/social/person/test/PersonManagerTestCase.java Fri Aug 19 00:34:03 2011
@@ -19,31 +19,32 @@
package org.apache.photark.social.person.test;
-import java.io.File;
-import java.io.IOException;
+import java.io.ByteArrayInputStream;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.List;
-import javax.jcr.LoginException;
-import javax.jcr.RepositoryException;
-
-import org.apache.photark.services.jcr.JCRRepositoryManager;
import org.apache.photark.social.Person;
-import org.apache.photark.social.PhotArkSocialException;
import org.apache.photark.social.services.PersonService;
-import org.apache.photark.social.services.impl.JCRPersonServiceImpl;
import org.apache.tuscany.sca.node.Contribution;
import org.apache.tuscany.sca.node.ContributionLocationHelper;
import org.apache.tuscany.sca.node.Node;
import org.apache.tuscany.sca.node.NodeFactory;
+import org.json.JSONObject;
import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;
+import com.meterware.httpunit.PostMethodWebRequest;
+import com.meterware.httpunit.WebConversation;
+import com.meterware.httpunit.WebRequest;
+import com.meterware.httpunit.WebResponse;
+
public class PersonManagerTestCase {
+ protected static final String PEOPLE_SERVICE_URL = "http://localhost:8085/people";
+
private static Node node;
private static PersonService personService;
@@ -72,7 +73,7 @@ public class PersonManagerTestCase {
}
@Test
- public void testPersonManagerImpl() throws IOException, PhotArkSocialException, LoginException, RepositoryException {
+ public void testPersonOperations() throws Exception {
Person person = new Person();
person.setId("testuser1");
person.setDisplayName("TestUser1");
@@ -84,7 +85,7 @@ public class PersonManagerTestCase {
activities.add("Movies");
activities.add("Cricket");
person.setActivities(activities);
- personService.savePerson("testuser1", person);
+ personService.addPerson(person);
Person person2 = personService.getPerson("testuser1");
Assert.assertNotNull(person2);
Assert.assertEquals("testuser1", person2.getId());
@@ -96,6 +97,22 @@ public class PersonManagerTestCase {
personService.removePerson("testuser1");
person2 = personService.getPerson("testuser1");
Assert.assertNull(person2);
-
+ }
+
+
+ public void testPersonResource() throws Exception {
+ JSONObject jsonPerson = new JSONObject();
+ jsonPerson.put("id", "testuser2");
+ jsonPerson.put("firstName", "test");
+ jsonPerson.put("lastName", "user2");
+
+ WebConversation wc = new WebConversation();
+ WebRequest request = new PostMethodWebRequest(PEOPLE_SERVICE_URL, new ByteArrayInputStream(jsonPerson.toString().getBytes("UTF-8")),"application/json");
+ request.setHeaderField("Content-Type", "application/json");
+ WebResponse response = wc.getResource(request);
+
+ Assert.assertEquals(204, response.getResponseCode());
+
+ personService.removePerson("testuser2");
}
}
Modified: incubator/photark/branches/photark-rest/photark-social/src/test/resources/person-test.composite
URL: http://svn.apache.org/viewvc/incubator/photark/branches/photark-rest/photark-social/src/test/resources/person-test.composite?rev=1159454&r1=1159453&r2=1159454&view=diff
==============================================================================
--- incubator/photark/branches/photark-rest/photark-social/src/test/resources/person-test.composite (original)
+++ incubator/photark/branches/photark-rest/photark-social/src/test/resources/person-test.composite Fri Aug 19 00:34:03 2011
@@ -31,7 +31,7 @@
<component name="PersonServiceComponent">
<implementation.java class="org.apache.photark.social.services.impl.JCRPersonServiceImpl"/>
<service name="PersonService">
- <tuscany:binding.rest name="rest" uri="/people">
+ <tuscany:binding.rest name="rest" uri="http://localhost:8085/people">
<tuscany:operationSelector.jaxrs />
</tuscany:binding.rest>