On Mon, Aug 31, 2015 at 7:26 PM, Eduard Moraru <[email protected]> wrote:
> I`m not very familiar with the refactoring module and its contents, but it
> feels wrong to have extensions have to depend on it and use it in order to
> achieve basic model (CRUD) operations.

The low level / basic CRUD operations are in oldcore. The refactoring
module doesn't modify the database directly, it uses
XWiki#deleteDocument and XWiki#copyDocument from oldcore to implement
the refactorings. If you only need to delete a single document from
the database without any side effects then you can use the oldcore
API. If you want to delete an entire hierarchy or update the backlinks
on rename then you should use the refactoring API.

The "issue" here is that the DeleteAction (located currently in
oldcore) uses the refactoring API in order to support deleting an
entire hierarchy. If the DeleteAction were a component outside of
oldcore then it could depend on the refactoring-default but currently
it can only depend on refactoring-api (to avoid circular dependency on
oldcore).

The default refactoring implementation is brought in by XE, but
functional tests in platform don't have it unless they add a
dependency, or we add it to the packager plugin as Vincent did.

Thanks,
Marius

>
> Thanks,
> Eduard
>
> On Mon, Aug 31, 2015 at 6:54 PM, [email protected] <[email protected]>
> wrote:
>
>> Hi,
>>
>> Right now almost all func tests fail to delete pages when they
>> do getUtil().deletePage(…). They fail with:
>>
>> Caused by: org.xwiki.component.manager.ComponentLookupException: Can't
>> find descriptor for the component [role = [interface org.xwiki.job.Job]
>> hint = [delete]]
>>
>> The reason is that since XWIKI-12268 the Delete action cannot work if the
>> Refactoring module isn't bundled, which makes the Refactoring module a core
>> module. And this module is not part of the core modules ATM. I’ve added it
>> to the PackageMojo for now but we need to decide what to do.
>>
>> Personally I’ve always viewed Refactoring as optional and advanced
>> features.
>>
>> I don’t consider basic delete, basic copy and basic rename/move as
>> refactoring options. However there are some parts of them that are
>> refactorings. For example when Renaming, also check for wiki pages having
>> the renamed page as parent and updating them or updating wiki links in
>> pages.
>>
>> So we need to decide if:
>>
>> * We consider the Refactoring module as core.
>> * Introduce a new module and move some of the core actions such as delete,
>> move, etc to it and keep the refactoring module for non-core refactoring
>> * Split the refactoring into basic refactorings and advanced ones. Have
>> basic delete, copy, rename + advanced options for them separately
>> * Others?
>>
>> WDYT?
>>
>> Still hesitating on my side.
>>
>> Thanks
>> -Vincent
>>
>>
>> _______________________________________________
>> devs mailing list
>> [email protected]
>> http://lists.xwiki.org/mailman/listinfo/devs
>>
> _______________________________________________
> devs mailing list
> [email protected]
> http://lists.xwiki.org/mailman/listinfo/devs
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to