Author: cschneider Date: Fri Feb 1 16:24:26 2013 New Revision: 1441509 URL: http://svn.apache.org/viewvc?rev=1441509&view=rev Log: SYNCOPE-231 Switched contenttype of UserTest to xml and fixed error in TaskService create location
Modified: syncope/trunk/common/src/main/java/org/apache/syncope/common/to/TaskTO.java syncope/trunk/core/src/main/java/org/apache/syncope/core/services/TaskServiceImpl.java syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/jaxrs/UserTestITCaseJAXRS.java Modified: syncope/trunk/common/src/main/java/org/apache/syncope/common/to/TaskTO.java URL: http://svn.apache.org/viewvc/syncope/trunk/common/src/main/java/org/apache/syncope/common/to/TaskTO.java?rev=1441509&r1=1441508&r2=1441509&view=diff ============================================================================== --- syncope/trunk/common/src/main/java/org/apache/syncope/common/to/TaskTO.java (original) +++ syncope/trunk/common/src/main/java/org/apache/syncope/common/to/TaskTO.java Fri Feb 1 16:24:26 2013 @@ -34,6 +34,16 @@ import org.apache.syncope.common.Abstrac @XmlType @XmlSeeAlso({ SyncTaskTO.class, NotificationTaskTO.class, SyncTaskTO.class, SchedTaskTO.class, PropagationTaskTO.class }) + +/* This will help CXF marshalling but is incompatible with spring services +@JsonTypeInfo(use=Id.NAME, include=As.PROPERTY, property="type") +@JsonSubTypes({ + @JsonSubTypes.Type(value=NotificationTaskTO.class, name="notificationTask"), + @JsonSubTypes.Type(value=PropagationTaskTO.class, name="propagationTask"), + @JsonSubTypes.Type(value=SchedTaskTO.class, name="schedTask"), + @JsonSubTypes.Type(value=SyncTaskTO.class, name="syncTask") +}) +*/ public abstract class TaskTO extends AbstractBaseBean { private static final long serialVersionUID = 386450127003321197L; Modified: syncope/trunk/core/src/main/java/org/apache/syncope/core/services/TaskServiceImpl.java URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/main/java/org/apache/syncope/core/services/TaskServiceImpl.java?rev=1441509&r1=1441508&r2=1441509&view=diff ============================================================================== --- syncope/trunk/core/src/main/java/org/apache/syncope/core/services/TaskServiceImpl.java (original) +++ syncope/trunk/core/src/main/java/org/apache/syncope/core/services/TaskServiceImpl.java Fri Feb 1 16:24:26 2013 @@ -29,6 +29,8 @@ import javax.ws.rs.core.UriInfo; import org.apache.syncope.common.SyncopeConstants; import org.apache.syncope.common.services.TaskService; import org.apache.syncope.common.to.JobClassTO; +import org.apache.syncope.common.to.NotificationTaskTO; +import org.apache.syncope.common.to.PropagationTaskTO; import org.apache.syncope.common.to.ReportExecTO; import org.apache.syncope.common.to.SchedTaskTO; import org.apache.syncope.common.to.SyncActionClassTO; @@ -63,10 +65,25 @@ public class TaskServiceImpl implements } else { throw new BadRequestException(); } - URI location = uriInfo.getAbsolutePathBuilder().path(createdTask.getId() + "").build(); + TaskType taskType = getTaskType(taskTO.getClass()); + URI location = uriInfo.getAbsolutePathBuilder().path(taskType.toString() + "/" + createdTask.getId()).build(); return Response.created(location).header(SyncopeConstants.REST_HEADER_ID, createdTask.getId()).build(); } + private TaskType getTaskType(Class<? extends TaskTO> taskClass) { + if (taskClass == PropagationTaskTO.class) { + return TaskType.PROPAGATION; + } else if (taskClass == NotificationTaskTO.class) { + return TaskType.NOTIFICATION; + } else if (taskClass == SchedTaskTO.class) { + return TaskType.SCHEDULED; + } else if (taskClass == SyncTaskTO.class) { + return TaskType.SYNCHRONIZATION; + } else { + throw new IllegalArgumentException("Invalid task class: " + taskClass.getName()); + } + } + @Override public void delete(final Long taskId) { taskController.delete(taskId); Modified: syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/jaxrs/UserTestITCaseJAXRS.java URL: http://svn.apache.org/viewvc/syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/jaxrs/UserTestITCaseJAXRS.java?rev=1441509&r1=1441508&r2=1441509&view=diff ============================================================================== --- syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/jaxrs/UserTestITCaseJAXRS.java (original) +++ syncope/trunk/core/src/test/java/org/apache/syncope/core/rest/jaxrs/UserTestITCaseJAXRS.java Fri Feb 1 16:24:26 2013 @@ -28,5 +28,6 @@ public class UserTestITCaseJAXRS extends public UserTestITCaseJAXRS() { super(); setEnabledCXF(true); + setContentType(CONTENT_TYPE_XML); } }