You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@htrace.apache.org by "Colin Patrick McCabe (JIRA)" <ji...@apache.org> on 2015/07/28 02:53:04 UTC

[jira] [Comment Edited] (HTRACE-211) Move htrace-core classes to the org.apache.htrace.core namespace

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