ItEr40S20CUImportacionRecursosProductivosItEr39S23: REST service for importing resources exported remotely.

REST service for importing resources has been exported remotely. A script and a sample file with resources is also provided. Complex validations are not implemented yet.
This commit is contained in:
Fernando Bellas Permuy 2009-12-22 19:23:38 +01:00 committed by Javier Moran Rua
parent 6f2754ae56
commit a01c1fa5b3
6 changed files with 70 additions and 0 deletions

View file

@ -25,12 +25,14 @@ import java.util.List;
import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElements; import javax.xml.bind.annotation.XmlElements;
import javax.xml.bind.annotation.XmlRootElement;
/** /**
* DTO for a list of <code>Resource</code> entities. * DTO for a list of <code>Resource</code> entities.
* *
* @author Fernando Bellas Permuy <fbellas@udc.es> * @author Fernando Bellas Permuy <fbellas@udc.es>
*/ */
@XmlRootElement(name="resource-list")
public class ResourceListDTO { public class ResourceListDTO {
@XmlElements({ @XmlElements({

View file

@ -23,6 +23,8 @@ package org.navalplanner.ws.resources.impl;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import javax.ws.rs.Consumes;
import javax.ws.rs.POST;
import javax.ws.rs.Path; import javax.ws.rs.Path;
import javax.ws.rs.Produces; import javax.ws.rs.Produces;
@ -38,6 +40,7 @@ import org.navalplanner.ws.resources.api.ResourceDTO;
import org.navalplanner.ws.resources.api.ResourceListDTO; import org.navalplanner.ws.resources.api.ResourceListDTO;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/** /**
* REST-based implementation of <code>IResourceService</code>. * REST-based implementation of <code>IResourceService</code>.
@ -53,6 +56,9 @@ public class ResourceServiceREST implements IResourceService {
private IResourceDAO resourceDAO; private IResourceDAO resourceDAO;
@Override @Override
@POST
@Consumes("application/xml")
@Transactional
public InstanceConstraintViolationsListDTO addResources( public InstanceConstraintViolationsListDTO addResources(
ResourceListDTO resources) { ResourceListDTO resources) {

View file

@ -48,6 +48,7 @@
<jaxrs:serviceBeans> <jaxrs:serviceBeans>
<ref bean="criterionServiceREST"/> <ref bean="criterionServiceREST"/>
<ref bean="orderElementServiceREST"/> <ref bean="orderElementServiceREST"/>
<ref bean="resourceServiceREST"/>
</jaxrs:serviceBeans> </jaxrs:serviceBeans>
<jaxrs:providers> <jaxrs:providers>
<ref bean="runtimeExceptionMapper" /> <ref bean="runtimeExceptionMapper" />

View file

@ -20,9 +20,20 @@
- export-criterion-types.sh (authenticate with wsreader/wsreader) - export-criterion-types.sh (authenticate with wsreader/wsreader)
* Import resources:
- import-resources.sh resources-sample.xml
(authenticate with wswriter/wswriter)
- Check the returned errors are consistent with the comments in
resources-sample.xml.
+ When working with the online demo: + When working with the online demo:
* import-criterions-types.sh --prod criterion-types-sample.xml * import-criterions-types.sh --prod criterion-types-sample.xml
(authenticate with wswriter/wswriter) (authenticate with wswriter/wswriter)
* export-criterion-types.sh --prod (authenticate with wsreader/wsreader) * export-criterion-types.sh --prod (authenticate with wsreader/wsreader)
* import-resources.sh --prod resources-sample.xml
(authenticate with wswriter/wswriter)

View file

@ -0,0 +1,33 @@
#!/bin/sh
. ./rest-common-env.sh
printf "Login name: "
read loginName
printf "Password: "
read password
baseServiceURL=$DEVELOPMENT_BASE_SERVICE_URL
certificate=$DEVELOPMENT_CERTIFICATE
for i in "$@"
do
if [ "$i" = "--prod" ]; then
baseServiceURL=$PRODUCTION_BASE_SERVICE_URL
certificate=$PRODUCTION_CERTIFICATE
else
file=$i
fi
done
if [ "$file" = "" ]; then
printf "Missing file\n" 1>&2
exit -1
fi
authorization=`./base64.sh $loginName:$password`
curl -sv -X POST $certificate -d @$file \
--header "Content-type: application/xml" \
--header "Authorization: Basic $authorization" \
$baseServiceURL/resources | tidy -xml -i -q -utf8

View file

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<resource-list xmlns="http://rest.ws.navalplanner.org">
<!-- *** Machines *** -->
<!-- OK -->
<machine code="m1" name="m1-name" description="m1-desc"/>
<!-- Missing code and name (description is optional). -->
<machine code="" description=""/>
<!-- *** Workers *** -->
<!-- OK -->
<worker first-name="w1-firstName" surname="w1-surname" nif="w1-nif"/>
<!-- Missing first name, surname, and nif. -->
<worker first-name="" surname="" nif=""/>
</resource-list>