[Dart] Investigating addition of HTTP PUT submission support
Zachary Mark
zmark at cleversafe.com
Tue Jun 20 15:25:23 EDT 2006
It looks like I have a working PUT implementation using the methodology
given. I'm going to do some quick testing on it and then send it off to
Daniel.
-- Zach
Blezek, Daniel J (GE, Research) wrote:
>Zachary,
>
> This seems the best route to go in my opinion, just create a new Submit when you get a request. Even if Dart gets complete junk through a post, it will be ignored in the processing anyway.
>
>Thanks,
>-dan
>
>P.S. Send me the patch/class when you are done and an (optional) JUnit test. I'm in the midst of Dart-land and Jim is off on other things.
>
>-----Original Message-----
>From: dart-bounces+blezek=crd.ge.com at public.kitware.com
>[mailto:dart-bounces+blezek=crd.ge.com at public.kitware.com]On Behalf Of
>Miller, James V (GE, Research)
>Sent: Tuesday, June 20, 2006 8:42 AM
>To: Zachary Mark; dart at public.kitware.com
>Subject: RE: [Dart] Investigating addition of HTTP PUT submission
>support
>
>
>Zachary,
>
>I think adding doPut to the CommandServlet and having it call Submit.put()
>will do what you want. Each project has its own CommandServlet at a unique
>URL, for instance
>
>http://example.com:8081/TestProject/Command/
>http://example.com:8081/SomeOtherProject/Command/
>
>The beginning of doPut() will look similar to the beginning doPost(). It will
>call getInitParameter("project") to deduce the project (the same servlet is
>mounted for each project at a unique url, we cache an init parameter in each instance
>of the servlet so the servlet knows which project it is responding to). Then instead
>of doing the two xmlrpc lines, you'll create a Submit command and call put().
>
>As Scott pointed out in another email, you could also create a SubmitServlet
>that would be similar to the CommandServlet except it would implement doPut()
>instead of doPost() as described above. Then in your Project.xml, you can
>add the SubmitServlet to the ServletManager using
>
> <Servlet>
> <Class>dart.server.servlet.SubmitServlet</Class>
> <Context>/Submit/</Context>
> <Properties/>
> </Servlet>
>
>This will mount the submit servlet under
>
>http://example.com:8081/TestProject/Submit
>
>I think I prefer having a separate servlet for this so that if a project
>does not want to allow HTTP PUT submissions, then can remove the servlet
>from the Project.xml file.
>
>Jim
>
>-----Original Message-----
>From: dart-bounces+millerjv=crd.ge.com at public.kitware.com
>[mailto:dart-bounces+millerjv=crd.ge.com at public.kitware.com]On Behalf Of
>Zachary Mark
>Sent: Monday, June 19, 2006 6:04 PM
>To: dart at public.kitware.com
>Subject: [Dart] Investigating addition of HTTP PUT submission support
>
>
>This is a followup to the e-mail thread referenced at
>http://public.kitware.com/pipermail/dart/2006-June/001557.html
>
>I am investigating the near-term feasibility (as in, beginning very
>soon) about contributing support for submissions via HTTP PUT into the
>DartServer. This functionality is very highly desired and as such I
>would be willing to implement it myself and contribute it into the Dart
>code base.
>
>I've spent some of the afternoon reading through the Dart source code
>and trying to make heads and tails of it, and I think I have a basic
>design overview, and I'm looking for some of the Dart core devs to take
>a look at my proposal and evaluate what changes could be made to my
>idea. I am not 100% familiar with the Dart code so this is a guess
>based on what I have gleaned so far.
>
>What I propose is that a void doPut method be added to the
>java.server.servlet.CommandServlet class with the following signature:
>
> public void doPut( HttpServletRequest request,
>HttpServletResponse response ) throws
> ServletException, IOException
>
>I would make the assumption that all commands received via PUT are
>submission requests, rather than the much broader functionality offered
>by xmlrpc. The doPut method would contain a submission command object
>(dart.server.command.Submit) and call the Submit.put method directly.
>It seems that the Submit.put method should handle all the functionality
>that I'm looking for, but there is one issue that I potentially have.
>How can I use HTTP PUT and differentiate between different projects?
>IIRC, HTTP PUT allows only one submission field which obviously should
>contain the full XML submission data. Is there a "default project"
>setting in the Dart server that I could leverage to direct all PUT
>requests? Could the XML format be extended so that clients can specify
>which project to submit the results to in the XML? Maybe this could be
>incorporated into the <DartSubmission> tag, in the following form:
>
> <DartSubmission version="2.0" createdby="ReSTInstaller"
>project="SampleProject">
>
>Since the client has to specify which project to submit the result to in
>the first place, I don't see a reason not to potentially include it in
>the XML, unless there are some issues that I am not considering.
>
>Sorry I got to the point of rambling, but I'm interested to hear some
>thoughts on this issue and my PUT proposal.
>
>-- Zach
>
>
>_______________________________________________
>Dart mailing list
>Dart at public.kitware.com
>http://public.kitware.com/mailman/listinfo/dart
>_______________________________________________
>Dart mailing list
>Dart at public.kitware.com
>http://public.kitware.com/mailman/listinfo/dart
>
>
More information about the Dart
mailing list