[
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)