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

Elek, Marton commented on HDDS-447:
-----------------------------------

Thanks [~bharatviswa] the review and the checkstyle fix. I fixed the maven 
issue.

((The story:

The current HttpServer2 save the 'appDir' location during the initialization. 
This is the webapp dir of the app:

{code}
    final String appDir = getWebAppsPath(b.name);
{code}

In our case it's something like this: 
jar://....hadoop-hdds-server-scm.jar!webapps/scm

The problem is that we need static resources from multiple locations. 
hadoop-hdds/framework contains generic javascript fragments and utilities which 
also should be available. But it's not enough to put it to the classpath as the 
appDir is used to resolve all the javascript files, so they should be in the 
same jar files.

As a workaround we copy the common css/js files to the scm/om jar files. But 
this copy can be done only if the scm/om artifacts are packaged. Unfortunately 
the previous version of the patch tried to copy the artifacts for test-compile 
or site phase. That's wrong because if we don't don any package we don't need 
the copy. I fixed it with modifying the phase of the copy to prepare-package.

))

> separate ozone-dist and hadoop-dist projects with real classpath separation
> ---------------------------------------------------------------------------
>
>                 Key: HDDS-447
>                 URL: https://issues.apache.org/jira/browse/HDDS-447
>             Project: Hadoop Distributed Data Store
>          Issue Type: Improvement
>            Reporter: Elek, Marton
>            Assignee: Elek, Marton
>            Priority: Major
>         Attachments: HDDS-447-ozone-0.2.001.patch, HDDS-447.003.patch, 
> HDDS-447.004.patch, HDDS-447.005.patch, HDDS-447.006.patch, 
> HDDS-447.007.patch, HDDS-447.008.patch
>
>
> Currently we have the same hadoop-dist project to create both the ozone and 
> and the hadoop distribution.
> To decouple ozone and hadoop build it would be great to create two different 
> dist project.
> The hadoop-dist should be cloned to hadoop-ozone/dist and from 
> hadoop-dist/pom.xml we can remove the hdds/ozone related items and from 
> hadoop-ozone/dist/pom.xml we can remove the core hadoop related part.
> An other issue with the current distribution schema is the lack of real 
> classpath separation. 
> The current hadoop distribution model is defined in the hadoop-project-dist 
> which is parent of all the component projects and the output of the 
> distribution generation will be copied by the dist-layout-stitching. There is 
> no easy way to use command specific classpath as the classpath is defined in 
> component level (hdfs/yarn/mapreduce).
> With this approach we will have a lot of unnecessary dependencies on the 
> classpath (which were not on the classpath at the time of the unit tests) and 
> it's not possible (as an example) use different type of jaxrs stack for 
> different services (s3gateway vs scm).
> As a simplified but more effective approach I propose to use the following 
> method:
> 1. don't use hadoop-project-dist for ozone projects any more
> 2. During the build generate a classpath descriptor (with the 
> dependency:build-classpath maven plugin/goal) for all the projects
> 3. During the distribution copy all the required dependencies (with 
> dependency:copy maven plugin/goal) to a lib folder (share/ozone/lib)
> 4. During the distribution copy all the classpath descriptors to the 
> classpath folder (share/ozone/classpath)
> 5. Put only the required jar files to the classpath with reading the 
> classpath descriptor 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to