Re: oak-run upgrade improvements
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
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
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
On Thu, Sep 3, 2015 at 10:01 AM, Robert Munteanuwrote: > ... _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
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 > > >