[ 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}}. 6) 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}}. 5) As a last step - simply move {{HadoopClassLoader}} to the same package in {{core}} module as it doesn't have external dependencies any more. > 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}}. > 6) 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)