Re: oak-run upgrade improvements

2015-09-03 Thread Robert Munteanu
On Wed, 2015-09-02 at 18:35 +, Tomek Rekawek wrote:
> Hi,
> 
> One more thing. The “upgrade" command requires a lot of Maven
> dependencies (Amazon API client for the S3 support, Jackrabbit 2 for
> the repository upgrades, etc.) Some of these dependencies conflicts
> with the Oak modules (eg. Jackrabbit 2 uses older lucene-core than
> the oak-lucene and the new version is not backward-compatible).
> Because of that, the dependency management in the oak-run module is
> complicated - even before my patch there is a separate profile for
> building the project using Jackrabbit 2 dependencies and there are
> also two assembly files building the normal jar and the “jackrabbit
> 2” jar.

Without being familiar with the codebase, it sounds like it's a good
candidate oak-run being based on OSGi. Classpath incompatibilities
should be solved in a more elegant manner and we can also benefit from
all the OSGi goodies.

Robert

> 
> I think we should extract the upgrade command to a separate Maven
> module (eg. oak-migrator or oak-upgrade-tool). This way we can
> precisely define what are the required dependencies and we don’t need
> to care if they are compatible with other oak-run commands.
> 
> Any objections? :)
> 
> Best regards,
> Tomek
> 
> 
> On 02/09/15 14:58, "Tomek Rekawek"  wrote:
> 
> > Hello,
> > 
> > I created a pull request [1] for the OAK-2171 [2]. It exposes all
> > features added recently to the oak-upgrade module (version history
> > copy, filtering paths) as well as all migration paths (eg. mongo ->
> > rdb) in the oak-run upgrade command. There are also tests. Looking
> > forward to feedback :)
> > 
> > Best regards,
> > Tomek
> > 
> > [1] https://github.com/apache/jackrabbit-oak/pull/38
> > [2] https://issues.apache.org/jira/browse/OAK-2171
> > 
> > -- 
> > Tomek Rękawek | Adobe Research | www.adobe.com
> > reka...@adobe.com
> > 
> > 
> > 



Re: oak-run upgrade improvements

2015-09-03 Thread Robert Munteanu
On Thu, 2015-09-03 at 09:59 +0200, Julian Reschke wrote:
> On 2015-09-03 09:14, Robert Munteanu wrote:
> > On Wed, 2015-09-02 at 18:35 +, Tomek Rekawek wrote:
> > > Hi,
> > > 
> > > One more thing. The “upgrade" command requires a lot of Maven
> > > dependencies (Amazon API client for the S3 support, Jackrabbit 2
> > > for
> > > the repository upgrades, etc.) Some of these dependencies
> > > conflicts
> > > with the Oak modules (eg. Jackrabbit 2 uses older lucene-core
> > > than
> > > the oak-lucene and the new version is not backward-compatible).
> > > Because of that, the dependency management in the oak-run module
> > > is
> > > complicated - even before my patch there is a separate profile
> > > for
> > > building the project using Jackrabbit 2 dependencies and there
> > > are
> > > also two assembly files building the normal jar and the
> > > “jackrabbit
> > > 2” jar.
> > 
> > Without being familiar with the codebase, it sounds like it's a
> > good
> > candidate oak-run being based on OSGi. Classpath incompatibilities
> > should be solved in a more elegant manner and we can also benefit
> > from
> > all the OSGi goodies.
> > 
> > Robert
> 
> oak-run must be usable for emergency repairs, thus please be careful 
> with new dependencies.

Ack. _If_ we decide OSGi, it must be embedded and controlled by the oak
-run instance, and not a general-use OSGi application like e.g. Karaf
with some bundles added.

Robert


Re: oak-run upgrade improvements

2015-09-03 Thread Julian Reschke

On 2015-09-03 09:14, Robert Munteanu wrote:

On Wed, 2015-09-02 at 18:35 +, Tomek Rekawek wrote:

Hi,

One more thing. The “upgrade" command requires a lot of Maven
dependencies (Amazon API client for the S3 support, Jackrabbit 2 for
the repository upgrades, etc.) Some of these dependencies conflicts
with the Oak modules (eg. Jackrabbit 2 uses older lucene-core than
the oak-lucene and the new version is not backward-compatible).
Because of that, the dependency management in the oak-run module is
complicated - even before my patch there is a separate profile for
building the project using Jackrabbit 2 dependencies and there are
also two assembly files building the normal jar and the “jackrabbit
2” jar.


Without being familiar with the codebase, it sounds like it's a good
candidate oak-run being based on OSGi. Classpath incompatibilities
should be solved in a more elegant manner and we can also benefit from
all the OSGi goodies.

Robert


oak-run must be usable for emergency repairs, thus please be careful 
with new dependencies.


Best regards, Julian



Re: oak-run upgrade improvements

2015-09-03 Thread Bertrand Delacretaz
On Thu, Sep 3, 2015 at 10:01 AM, Robert Munteanu  wrote:
> ... _If_ we decide OSGi, it must be embedded and controlled by the oak
> -run instance, and not a general-use OSGi application like e.g. Karaf
> with some bundles added...

Note that Sling's slingstart-maven-plugin makes it easy to create a
runnable jar that embeds the OSGi framework, dependencies, default
configs etc.

As a user of Oak in OSGi environments I'm very much in favor of using
OSGi for oak-run, as this would help make sure Oak stays OSGi-friendly
while not "polluting" the core Oak modules with OSGi stuff.

-Bertrand


Re: oak-run upgrade improvements

2015-09-02 Thread Tomek Rekawek
Hi,

One more thing. The “upgrade" command requires a lot of Maven dependencies 
(Amazon API client for the S3 support, Jackrabbit 2 for the repository 
upgrades, etc.) Some of these dependencies conflicts with the Oak modules (eg. 
Jackrabbit 2 uses older lucene-core than the oak-lucene and the new version is 
not backward-compatible). Because of that, the dependency management in the 
oak-run module is complicated - even before my patch there is a separate 
profile for building the project using Jackrabbit 2 dependencies and there are 
also two assembly files building the normal jar and the “jackrabbit 2” jar.

I think we should extract the upgrade command to a separate Maven module (eg. 
oak-migrator or oak-upgrade-tool). This way we can precisely define what are 
the required dependencies and we don’t need to care if they are compatible with 
other oak-run commands.

Any objections? :)

Best regards,
Tomek


On 02/09/15 14:58, "Tomek Rekawek"  wrote:

>Hello,
>
>I created a pull request [1] for the OAK-2171 [2]. It exposes all features 
>added recently to the oak-upgrade module (version history copy, filtering 
>paths) as well as all migration paths (eg. mongo -> rdb) in the oak-run 
>upgrade command. There are also tests. Looking forward to feedback :)
>
>Best regards,
>Tomek
>
>[1] https://github.com/apache/jackrabbit-oak/pull/38
>[2] https://issues.apache.org/jira/browse/OAK-2171
>
>-- 
>Tomek Rękawek | Adobe Research | www.adobe.com
>reka...@adobe.com
>
>
>