[ 
https://issues.apache.org/jira/browse/IGNITE-3914?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Ozerov updated IGNITE-3914:
------------------------------------
    Description: 
Implementation plan:

1) We will use notion of "helper". See {{IgfsHelper}} interface as example to 
get used to existing code base.
2) {{HadoopClassLoaderUtils}} must be converted to an interface 
{{HadoopHelper}}. It will have 4 methods - current {{public static}} methods.
3) There will be two implementations - {{HadoopNoopHelper}} and 
{{HadoopHelperImpl}}. The first will be located in {{core}} module, the second 
one in {{hadoop}} module.
4) {{HadoopHelper}} is wired up with {{GridKernalContextImpl}} in the same way 
as it is done for {{IgfsHelper}}. The only difference is that we will 
instantiate {{HadoopHelperImpl}} if Hadoop module is in the classpath. See 
other components initialization logic for reference.
5) {{HadoopClassLoader}} will accept helper in constructor. This will require 
some refactoring to places where it is used (4 currently). The only problematic 
place is {{HadoopV2Job}}.
5) As a last step - simply move {{HadoopClassLoader}} to the same package in 
{{core}} module as it doesn't have external dependencies any more.

  was:
Implementation plan:

1) We will use notion of "helper". See {{IgfsHelper}} interface as example to 
get used to existing code base.
2) {{HadoopClassLoaderUtils}} must be converted to an interface 
{{HadoopHelper}}. It will have 4 methods - current {{public static}} methods.
3) There will be two implementations - {{HadoopNoopHelper}} and 
{{HadoopHelperImpl}}. The first will be located in {{core}} module, the second 
one in {{hadoop}} module.
4) {{HadoopHelper}} is wired up with {{GridKernalContextImpl}} in the same way 
as it is done for {{IgfsHelper}}. The only difference is that we will 
instantiate {{HadoopHelperImpl}} if Hadoop module is in the classpath. See 
other components initialization logic for reference.
5) {{HadoopClassLoader}} will accept helper in constructor. This will require 
some refactoring to places where it is used (4 currently). The only problematic 
place is {{HadoopV2Job}}.


> Hadoop: Move HadoopClassLoader to core module.
> ----------------------------------------------
>
>                 Key: IGNITE-3914
>                 URL: https://issues.apache.org/jira/browse/IGNITE-3914
>             Project: Ignite
>          Issue Type: Sub-task
>          Components: hadoop
>    Affects Versions: 1.7
>            Reporter: Vladimir Ozerov
>            Assignee: Ivan Veselovsky
>             Fix For: 1.8
>
>
> Implementation plan:
> 1) We will use notion of "helper". See {{IgfsHelper}} interface as example to 
> get used to existing code base.
> 2) {{HadoopClassLoaderUtils}} must be converted to an interface 
> {{HadoopHelper}}. It will have 4 methods - current {{public static}} methods.
> 3) There will be two implementations - {{HadoopNoopHelper}} and 
> {{HadoopHelperImpl}}. The first will be located in {{core}} module, the 
> second one in {{hadoop}} module.
> 4) {{HadoopHelper}} is wired up with {{GridKernalContextImpl}} in the same 
> way as it is done for {{IgfsHelper}}. The only difference is that we will 
> instantiate {{HadoopHelperImpl}} if Hadoop module is in the classpath. See 
> other components initialization logic for reference.
> 5) {{HadoopClassLoader}} will accept helper in constructor. This will require 
> some refactoring to places where it is used (4 currently). The only 
> problematic place is {{HadoopV2Job}}.
> 5) As a last step - simply move {{HadoopClassLoader}} to the same package in 
> {{core}} module as it doesn't have external dependencies any more.



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

Reply via email to