[ 
https://issues.apache.org/jira/browse/PIG-1675?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12974986#action_12974986
 ] 

Dmitriy V. Ryaboy commented on PIG-1675:
----------------------------------------

I am not terribly happy with the explosion of registerScript() methods.

A nicer interface would follow a builder pattern -- something like

PigScriptBuilder.newInstance()
  .withParams(Map<String, String> foo)
  .withParamFiles(List<String> paramFiles)
  .registerScript(InputStream script)

In fact I suspect rewriting most of PigServer in this way, using a new instance 
of a script builder every time, might make running PigServer in actual server 
mode more tenable.

Jeff, Alan -- thoughts?

> Suggest to allow PigServer can register pig script from InputStream
> -------------------------------------------------------------------
>
>                 Key: PIG-1675
>                 URL: https://issues.apache.org/jira/browse/PIG-1675
>             Project: Pig
>          Issue Type: Improvement
>    Affects Versions: 0.8.0
>            Reporter: Jeff Zhang
>            Assignee: Jeff Zhang
>             Fix For: 0.9.0
>
>         Attachments: pig-findbugs-report.html, PIG_1675.patch, 
> PIG_1675_2.patch, PIG_1675_3.patch, PIG_1675_4.patch
>
>
> Currently, Pig only allow users to register script from file. Although it 
> satisfy most people's requirements, sometimes people hope to build pig script 
> dynamically using code, then they need to create temp file for the script 
> they build. So here I suggest to allow PigServer be able to register pig 
> script from InputStream.
> InputStream is a more general type than File, pig script can been from file 
> (FileInputStream)
> or from in-memory (ByteArrayInputStream) even it can been from remote 
> machines (SocketInputStream)
> Here's a blog which explains why using InputStream is better than using File 
> in interface http://java.dzone.com/articles/using-files-your-interfaces-0
> So I suggest to add the following 4 methods in PigServer:
> {code}
> public void registerScript(InputStream in) throws IOException
> public void registerScript(InputStream in, Map<String,String> params) throws 
> IOException
> public void registerScript(InputStream in, List<String> paramsFiles) throws 
> IOException
> public void registerScript(InputStream in, Map<String,String> 
> params,List<String> paramsFiles) throws IOException 
> {code}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to