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

Colin Patrick McCabe edited comment on HTRACE-211 at 7/28/15 12:52 AM:
-----------------------------------------------------------------------

This patch moves classes currently in the {{org.apache.htrace}}, 
{{org.apache.htrace.impl}}, and {{org.apache.htrace.wrapper}} namespaces into 
{{org.apache.htrace.core}}.

There are two benefits:
* This means that HTrace 4.0 and HTrace 3.2 and earlier can co-exist on the 
same CLASSPATH without stepping on each other's toes.  This is very important 
during a rolling upgrade in HDFS, for example.  In general, it will allow 
applications using 3.2 to interoperate with applications using 4.0 without 
using OSGI or other classloader magic.
* By coalescing the "impl" and "wrapper" packages into "core", we can make some 
things package-private that had to be public before.  For example, the 
constructors to {{TraceRunnable}}, {{TraceCallable}}, and {{TracerId}} no 
longer need to be public.  In general, there seems to be not much benefit in 
having multiple packages in the same HTrace subproject... it might feel 
"tidier" because directories are smaller, but we pay a high price because we 
need to expose things in the public API that are really implementation details.


was (Author: cmccabe):
This patch moves classes currently in the {{org.apache.htrace}}, 
{{org.apache.htrace.impl}}, and {{org.apache.htrace.wrapper}} namespaces into 
{{org.apache.htrace.core}}.

There are two benefits:
* This means that HTrace 4.0 and HTrace 3.2 and earlier can co-exist on the 
same CLASSPATH without stepping on each other's toes.  This is very important 
during a rolling upgrade in HDFS, for example.  In general, it will allow 
applications using 3.2 to interoperate with applications using 4.0 without 
using OSGI or other CLASSLOADER magic.
* By coalescing the "impl" and "wrapper" packages into "core", we can make some 
things package-private that had to be public before.  For example, the 
constructors to {{TraceRunnable}}, {{TraceCallable}}, and {{TracerId}} no 
longer need to be public.  In general, there seems to be not much benefit in 
having multiple packages in the same HTrace subproject... it might feel 
"tidier" because directories are smaller, but we pay a high price because we 
need to expose things in the public API that are really implementation details.

> Move htrace-core classes to the org.apache.htrace.core namespace
> ----------------------------------------------------------------
>
>                 Key: HTRACE-211
>                 URL: https://issues.apache.org/jira/browse/HTRACE-211
>             Project: HTrace
>          Issue Type: Sub-task
>    Affects Versions: 4.0
>            Reporter: Colin Patrick McCabe
>            Assignee: Colin Patrick McCabe
>         Attachments: HTRACE-211.001.patch
>
>
> Move htrace-core classes to the org.apache.htrace.core namespace in HTrace 
> 4.x.  This will allow htrace-core jars from HTrace 4.x to co-exist on the 
> same classpath as htrace 3.x jars without causing classloader issues.



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

Reply via email to