Skip to content
Snippets Groups Projects
Commit 9b8fe1c9 authored by gmantele's avatar gmantele
Browse files

[TAP,UWS] Addition to the last commit: the TAP resource /sync did not yet use...

[TAP,UWS] Addition to the last commit: the TAP resource /sync did not yet use the RequestParser to get its parameters, and so it did not worked as before the last commit.
parent 96b3b851
No related branches found
No related tags found
No related merge requests found
...@@ -46,6 +46,7 @@ import tap.metadata.TAPMetadata; ...@@ -46,6 +46,7 @@ import tap.metadata.TAPMetadata;
import uk.ac.starlink.votable.VOSerializer; import uk.ac.starlink.votable.VOSerializer;
import uws.UWSException; import uws.UWSException;
import uws.job.user.JobOwner; import uws.job.user.JobOwner;
import uws.service.UWS;
import uws.service.UWSService; import uws.service.UWSService;
import uws.service.UWSUrl; import uws.service.UWSUrl;
import uws.service.error.ServiceErrorWriter; import uws.service.error.ServiceErrorWriter;
...@@ -656,6 +657,8 @@ public class TAP implements VOSIResource { ...@@ -656,6 +657,8 @@ public class TAP implements VOSIResource {
// Generate a unique ID for this request execution (for log purpose only): // Generate a unique ID for this request execution (for log purpose only):
final String reqID = generateRequestID(request); final String reqID = generateRequestID(request);
if (request.getAttribute(UWS.REQ_ATTRIBUTE_ID) == null)
request.setAttribute(UWS.REQ_ATTRIBUTE_ID, reqID);
// Retrieve the resource path parts: // Retrieve the resource path parts:
String[] resourcePath = (request.getPathInfo() == null) ? null : request.getPathInfo().split("/"); String[] resourcePath = (request.getPathInfo() == null) ? null : request.getPathInfo().split("/");
...@@ -675,6 +678,10 @@ public class TAP implements VOSIResource { ...@@ -675,6 +678,10 @@ public class TAP implements VOSIResource {
JobOwner owner = null; JobOwner owner = null;
try{ try{
// Extract all parameters:
if (request.getAttribute(UWS.REQ_ATTRIBUTE_PARAMETERS) == null)
request.setAttribute(UWS.REQ_ATTRIBUTE_PARAMETERS, getUWS().getRequestParser().parse(request));
// Identify the user: // Identify the user:
try{ try{
if (service.getUserIdentifier() != null) if (service.getUserIdentifier() != null)
......
...@@ -26,6 +26,8 @@ import uws.job.serializer.UWSSerializer; ...@@ -26,6 +26,8 @@ import uws.job.serializer.UWSSerializer;
import uws.service.backup.UWSBackupManager; import uws.service.backup.UWSBackupManager;
import uws.service.file.UWSFileManager; import uws.service.file.UWSFileManager;
import uws.service.log.UWSLog; import uws.service.log.UWSLog;
import uws.service.request.RequestParser;
import uws.service.request.UWSRequestParser;
/** /**
* <p> * <p>
...@@ -197,6 +199,22 @@ public interface UWS extends Iterable<JobList> { ...@@ -197,6 +199,22 @@ public interface UWS extends Iterable<JobList> {
*/ */
public UWSFactory getFactory(); public UWSFactory getFactory();
/* ******************** */
/* HTTP REQUEST PARSING */
/* ******************** */
/**
* <p>Get its HTTP request parser.</p>
* <p><i><u>note:</u> This parser is the only one to be able to extract UWS and TAP parameters from any HTTP request.
* Its behavior is adapted in function of the used HTTP method and of the content-type. A default implementation is
* provided by the UWS library: {@link UWSRequestParser}.</i></p>
*
* @return Its request parser.
*
* @since 4.1
*/
public RequestParser getRequestParser();
/* *************** */ /* *************** */
/* FILE MANAGEMENT */ /* FILE MANAGEMENT */
/* *************** */ /* *************** */
......
...@@ -184,7 +184,7 @@ import uws.service.request.RequestParser; ...@@ -184,7 +184,7 @@ import uws.service.request.RequestParser;
* *
* *
* @author Gr&eacute;gory Mantelet (CDS;ARI) * @author Gr&eacute;gory Mantelet (CDS;ARI)
* @version 4.1 (09/2014) * @version 4.1 (12/2014)
*/ */
public class UWSService implements UWS { public class UWSService implements UWS {
...@@ -550,6 +550,11 @@ public class UWSService implements UWS { ...@@ -550,6 +550,11 @@ public class UWSService implements UWS {
this.backupManager = backupManager; this.backupManager = backupManager;
} }
@Override
public final RequestParser getRequestParser(){
return requestParser;
}
/* ******************** */ /* ******************** */
/* HOME PAGE MANAGEMENT */ /* HOME PAGE MANAGEMENT */
/* ******************** */ /* ******************** */
...@@ -1058,6 +1063,7 @@ public class UWSService implements UWS { ...@@ -1058,6 +1063,7 @@ public class UWSService implements UWS {
// Generate a unique ID for this request execution (for log purpose only): // Generate a unique ID for this request execution (for log purpose only):
final String reqID = generateRequestID(request); final String reqID = generateRequestID(request);
if (request.getAttribute(UWS.REQ_ATTRIBUTE_ID) == null)
request.setAttribute(UWS.REQ_ATTRIBUTE_ID, reqID); request.setAttribute(UWS.REQ_ATTRIBUTE_ID, reqID);
// Log the reception of the request: // Log the reception of the request:
...@@ -1081,6 +1087,7 @@ public class UWSService implements UWS { ...@@ -1081,6 +1087,7 @@ public class UWSService implements UWS {
urlInterpreter.load(request); urlInterpreter.load(request);
// Extract all parameters: // Extract all parameters:
if (request.getAttribute(UWS.REQ_ATTRIBUTE_PARAMETERS) == null)
request.setAttribute(UWS.REQ_ATTRIBUTE_PARAMETERS, requestParser.parse(request)); request.setAttribute(UWS.REQ_ATTRIBUTE_PARAMETERS, requestParser.parse(request));
// Identify the user: // Identify the user:
......
...@@ -132,7 +132,7 @@ import uws.service.request.UploadFile; ...@@ -132,7 +132,7 @@ import uws.service.request.UploadFile;
* </p> * </p>
* *
* @author Gr&eacute;gory Mantelet (CDS;ARI) * @author Gr&eacute;gory Mantelet (CDS;ARI)
* @version 4.1 (11/2014) * @version 4.1 (12/2014)
*/ */
public abstract class UWSServlet extends HttpServlet implements UWS, UWSFactory { public abstract class UWSServlet extends HttpServlet implements UWS, UWSFactory {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
...@@ -257,6 +257,11 @@ public abstract class UWSServlet extends HttpServlet implements UWS, UWSFactory ...@@ -257,6 +257,11 @@ public abstract class UWSServlet extends HttpServlet implements UWS, UWSFactory
return fileManager; return fileManager;
} }
@Override
public RequestParser getRequestParser(){
return requestParser;
}
@Override @Override
public final void service(ServletRequest req, ServletResponse resp) throws ServletException, IOException{ public final void service(ServletRequest req, ServletResponse resp) throws ServletException, IOException{
super.service(req, resp); super.service(req, resp);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment