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

Vladimir Ozerov commented on IGNITE-2823:
-----------------------------------------

Igor, I assume that you moved to core only some classes for metadata handling. 
Is that correct? We must ensure very clean separation of concerns here. Naming 
scheme "common - utils" already looks pretty confusing to me. "common" is not 
really "common" if it contains only JNI code, right?

I would do that as follows:
1) libcommon - contains various utilty methods. Concurrency primitives, work 
with files, env variables, our generic classes (e.g. IgniteError, Guid), etc.
2) libjni (depends on libcommon) - contains JNI stuff. Class definitions, JVM 
start code, JAVA_HOME resolution, actual methods, etc..
3) libbinary (depends on libcommon) - contains binary format, readers, writers, 
macroses, etc. Possibly interfaces for metadata handling (not sure).

4) libcore - depends on libcommon, libjni, libbinary;
5) libodbc - depends on libcommon, libbinary.

Thoughts?

> CPP: Split libcommon in two libraries to get rid of libjvm dependency.
> ----------------------------------------------------------------------
>
>                 Key: IGNITE-2823
>                 URL: https://issues.apache.org/jira/browse/IGNITE-2823
>             Project: Ignite
>          Issue Type: Sub-task
>          Components: odbc, platforms
>    Affects Versions: 1.5.0.final
>            Reporter: Igor Sapego
>            Assignee: Igor Sapego
>             Fix For: 1.6
>
>
> Currently libcommon depends on the libjvm but provides other utilities and 
> macros which other libraries depend upon. So we need to link libcommon always 
> when we use utils even if we don't use libjvm (e.g. in ODBC driver).



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

Reply via email to