You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@isis.apache.org by Andi Huber <ah...@apache.org> on 2018/02/28 15:25:58 UTC

Splitting Core into even more modules

Current state ...


Maven dependencies a ---> b (a depends on b).

Hope you can see the Left- and Up-arrows ...
--------------------------------------

LAYER1:    applib <----  appLib-legacy
              ^               ^
--------------|---------------|-------
              |               |
LAYER2:    metamodel <-- metamodel-legacy
              ^               ^
--------------|---------------|--------
              |               |
LAYER3:    runtime <---  runtime-legacy

--------------------------------------

LAYER4:    viewer-wicket-ui (not yet)

--------------------------------------

It's perfectly safe to move classes around as long as movement stays in
the same layer.

That way we can build everything, and decide what combination to package
for deployment.

I'm moving axon, guava, and reflections now out of applib and provide
following plugin modules as plugins:

* isis/core/plugins/discovery-reflections
* isis/core/plugins/eventbus-axon
* isis/core/plugins/eventbus-guava

Cheers, Andi

Re: Splitting Core into even more modules

Posted by Andi Huber <ah...@apache.org>.
Update 2:

We have working plugins now (in 2.0.0-M1):

* isis/core/plugins/jdo-datanucleus-4
* isis/core/plugins/jdo-datanucleus-5
* isis/core/plugins/discovery-reflections
* isis/core/plugins/eventbus-axon
* isis/core/plugins/eventbus-guava

Meaning M1 now supports both DN-4 and DN-5!

All(!) Core modules no longer depend on datanucleus. Just depending on Standard JDO API.


We need to backport datanucleus specific commits from M2 into M1 now. [1]


Cheers, Andi!

[1] https://issues.apache.org/jira/browse/ISIS-1889


On 01.03.2018 22:22, Andi Huber wrote:
> Update:
>
> Though still work in progress, we now have a working module dependency
> structure ...
>
> --------------------------------------
>
> LAYER1:    applib <----  applib-legacy
>               ^               ^
> --------------|---------------|-------
>               |               |
> LAYER2:    metamodel <-- metamodel-legacy
>               ^               ^
> --------------|---------------|--------
>               |               |
> LAYER3:    runtime <---  runtime-legacy
>               ^               ^
> --------------|---------------|--------
>               |               |
> LAYER4: wicket-viewer <--- w.-v.-legacy
>
> --------------------------------------
>
> ... with also working plugins:
>
> * isis/core/plugins/discovery-reflections (currently mandatory)
> * isis/core/plugins/eventbus-axon (optional)
> * isis/core/plugins/eventbus-guava (optional)
>
> Next, I'll investigate whether it's possible to further refactor into plugins like:
>
> * isis/core/plugins/persistence-jdo-dn-4
> * isis/core/plugins/jaxrs-resteasy-3
>
>
> Cheers, Andi!
>
>
> On 28.02.2018 16:25, Andi Huber wrote:
>> Current state ...
>>
>>
>> Maven dependencies a ---> b (a depends on b).
>>
>> Hope you can see the Left- and Up-arrows ...
>> --------------------------------------
>>
>> LAYER1:    applib <----  appLib-legacy
>>               ^               ^
>> --------------|---------------|-------
>>               |               |
>> LAYER2:    metamodel <-- metamodel-legacy
>>               ^               ^
>> --------------|---------------|--------
>>               |               |
>> LAYER3:    runtime <---  runtime-legacy
>>
>> --------------------------------------
>>
>> LAYER4:    viewer-wicket-ui (not yet)
>>
>> --------------------------------------
>>
>> It's perfectly safe to move classes around as long as movement stays in
>> the same layer.
>>
>> That way we can build everything, and decide what combination to package
>> for deployment.
>>
>> I'm moving axon, guava, and reflections now out of applib and provide
>> following plugin modules as plugins:
>>
>> * isis/core/plugins/discovery-reflections
>> * isis/core/plugins/eventbus-axon
>> * isis/core/plugins/eventbus-guava
>>
>> Cheers, Andi


Re: Splitting Core into even more modules

Posted by Andi Huber <ah...@apache.org>.
Update:

Though still work in progress, we now have a working module dependency
structure ...

--------------------------------------

LAYER1:    applib <----  applib-legacy
              ^               ^
--------------|---------------|-------
              |               |
LAYER2:    metamodel <-- metamodel-legacy
              ^               ^
--------------|---------------|--------
              |               |
LAYER3:    runtime <---  runtime-legacy
              ^               ^
--------------|---------------|--------
              |               |
LAYER4: wicket-viewer <--- w.-v.-legacy

--------------------------------------

... with also working plugins:

* isis/core/plugins/discovery-reflections (currently mandatory)
* isis/core/plugins/eventbus-axon (optional)
* isis/core/plugins/eventbus-guava (optional)

Next, I'll investigate whether it's possible to further refactor into plugins like:

* isis/core/plugins/persistence-jdo-dn-4
* isis/core/plugins/jaxrs-resteasy-3


Cheers, Andi!


On 28.02.2018 16:25, Andi Huber wrote:
> Current state ...
>
>
> Maven dependencies a ---> b (a depends on b).
>
> Hope you can see the Left- and Up-arrows ...
> --------------------------------------
>
> LAYER1:    applib <----  appLib-legacy
>               ^               ^
> --------------|---------------|-------
>               |               |
> LAYER2:    metamodel <-- metamodel-legacy
>               ^               ^
> --------------|---------------|--------
>               |               |
> LAYER3:    runtime <---  runtime-legacy
>
> --------------------------------------
>
> LAYER4:    viewer-wicket-ui (not yet)
>
> --------------------------------------
>
> It's perfectly safe to move classes around as long as movement stays in
> the same layer.
>
> That way we can build everything, and decide what combination to package
> for deployment.
>
> I'm moving axon, guava, and reflections now out of applib and provide
> following plugin modules as plugins:
>
> * isis/core/plugins/discovery-reflections
> * isis/core/plugins/eventbus-axon
> * isis/core/plugins/eventbus-guava
>
> Cheers, Andi