You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-dev@jackrabbit.apache.org by Tomek Rekawek <re...@adobe.com> on 2015/09/02 14:58:21 UTC

oak-run upgrade improvements

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
rekawek@adobe.com




Re: oak-run upgrade improvements

Posted by Bertrand Delacretaz <bd...@apache.org>.
On Thu, Sep 3, 2015 at 10:01 AM, Robert Munteanu <ro...@apache.org> 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

Posted by Robert Munteanu <ro...@apache.org>.
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 +0000, 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

Posted by Julian Reschke <ju...@gmx.de>.
On 2015-09-03 09:14, Robert Munteanu wrote:
> On Wed, 2015-09-02 at 18:35 +0000, 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

Posted by Robert Munteanu <ro...@apache.org>.
On Wed, 2015-09-02 at 18:35 +0000, 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" <re...@adobe.com> 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
> > rekawek@adobe.com
> > 
> > 
> > 


Re: oak-run upgrade improvements

Posted by Tomek Rekawek <re...@adobe.com>.
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" <re...@adobe.com> 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
>rekawek@adobe.com
>
>
>