When I think about a module, in the context of splitting oak-core in
multiple modules, I think about an aggregation of code that can be
separately compiled and distributed. With the tooling currently in
place, this aggregation of code would be naturally represented by a
Maven artifact.

Thomas, you are clearly not in favour of adding more Maven artifacts
to Oak. How can we split oak-core in multiple modules without
resorting to Maven? How can we enforce the requirements of separate
compilation and individual distribution if we don't enclose a feature
in a Maven artifact?

2015-08-07 14:18 GMT+02:00 Tommaso Teofili <tommaso.teof...@gmail.com>:
> Hi all,
>
> I like the idea of a more modularized Oak.
> I agree with Michael's point of doing that gracefully, one step at a time,
> evaluate and iterate.
>
> My opinion is that "having one/many Maven projects" is not the central
> point of discussion; I don't personally think having e.g. 13 poms instead
> of 10 would be much of a problem anyway but I think we should mainly decide
> if we want to support different deployment scenarios, e.g. we ship modules
> oak-x, oak-y and oak-z for deployment-a and modules oak-x, oak-w and oak-z
> for deployment-b.
> I don't think in this case we would have to commit to supporting all the
> theoretically possible deployment scenarios / bundle combinations.
>
> I generally agree with Angela's point regarding layers as they were
> originally thought (and we ended up with NS & co.) but not clearly
> separated, however I have very few insights on that portion of oak-core's
> code.
>
> What I would like to have with a more modularized Oak is that if, for
> example, I want to fix something in the query engine I can do that and only
> get the bundle containing the core search stuff (query engine / indexing /
> searching), not the whole oak-core that in the meantime (always for
> example) requires an updated semantic version of oak-commons APIs.
>
> Regarding Apache Lucene: it is modularized in the sense that you can use it
> by just depending on lucene-core, but in most cases you'll most probably
> have to use some Analyzer implementations (lucene-analyzers-commons), query
> extensions (lucene-queries and lucene-queryparser), specific codecs
> (lucene-codecs) etc.
> I think that brings a good example where separation of modules (Ant ones,
> no comments please [1]) is performed by allowing usage of lucene-core alone
> but in most cases you'll end up using some of the companion modules.
>
> Regards,
> Tommaso
>
> [1] : https://issues.apache.org/jira/browse/LUCENE-3167
>
>
> 2015-08-07 11:31 GMT+02:00 Thomas Mueller <muel...@adobe.com>:
>
>> Hi,
>>
>> I have nothing against modularization, I'm just against "modularization =
>> create many many Maven projects". I prefer modularization *within* one
>> project. Why can't we do that instead?
>>
>> >Ideally you have a ³root² project, e.g.
>> >
>> >/oak
>> >  /security
>> >    /api
>> >    /implementationA
>> >    /implementationB
>> >  /core
>> >  /persistence
>> >  /..
>>
>> That looks like a Java *package* structure to me. The Wikipedia article
>> you mentioned is not about Maven projects, but about modularity in general.
>>
>> Regards,
>> Thomas
>>
>>

Reply via email to