[ 
https://issues.apache.org/jira/browse/HADOOP-11293?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14207904#comment-14207904
 ] 

Steve Loughran commented on HADOOP-11293:
-----------------------------------------

# Shell.Windows provided a feature for which there was  no alternative; it's 
use indicated a "desire line" that people want. Only way to really address that 
is to track uses downstream (tricky) and react.
# you can't ever lock down code in an OSS project; if someone wants to they can 
aways look at the code. Which would we prefer: cut-and-paste copying or direct 
references. When downstream I generally prefer direct references, because it 
reduces my maintenance costs
# you can keep things package scoped, but even there people can inject classes 
into the package unless you seal the JARs...forcing people to build their own 
JARs without the sealing.
# .NET has a better scope mode, with the {{internal}} marker able to cover 
multiple libs in the same assembly, so you could make something exclusive to 
the Hadoop JAR suite [[http://msdn.microsoft.com/en-us/library/7c5ka91b.aspx]]

Returning to this JIRA
* There's discussion on general about a thin client lib; something like 
{{OSType}} could go in there, with Shell being kept out.
* I'd be tempted to leave things as is otherwise, upgrading shell to 
public/evolving except that Shell does some stuff in static initializers that 
can log @ debug, e.g.{{checkHadoopHome()}}.
* if we do add OSType, the YARN app examples should use it. If we move all and 
tag it as @deprecatad then people who use it downstream will get a warning, but 
it won't be enforced.

Finally, there's some intermittent discussion on common-dev about OSGi-enabling 
Hadoop, so downstream apps can be more isolated from both Hadoop internals and 
downstream things. But for that to work in YARN apps, we'd need to take some 
internal stuff, formally make it public and then export. Identifying those bits 
in use would be tricky unless we can automate it and scan over the main YARN 
apps: tez, slider, flink, spark-on-yarn, Helix on yarn. And HBase, which has 
had special treatment in the past.

> Factor OSType out from Shell
> ----------------------------
>
>                 Key: HADOOP-11293
>                 URL: https://issues.apache.org/jira/browse/HADOOP-11293
>             Project: Hadoop Common
>          Issue Type: Improvement
>          Components: util
>            Reporter: Yongjun Zhang
>            Assignee: Yongjun Zhang
>         Attachments: HADOOP-11293.001.patch
>
>
> Currently the code that detects the OS type is located in Shell.java. Code 
> that need to check OS type refers to Shell, even if no other stuff of Shell 
> is needed. 
> I am proposing to refactor OSType out to  its own class, so to make the 
> OSType easier to access and the dependency cleaner.
>  



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to