Well done ! This will help the mobile app ! Envoyé de mon iPhone
Le 19 oct. 2012 à 20:24, Fabio Mancinelli <[email protected]> a écrit : > Hi, > > I finally merged the pull request. > > As an additional step I've moved all the REST components to internal packages. > To do so I added a CLIRR skip to the POM that should be removed on the > next release. > > I'll merge the XAR import and Wiki creation in the next release > because they need some additional work. > > Thanks, > Fabio > > > > On Wed, Oct 17, 2012 at 11:14 PM, Fabio Mancinelli > <[email protected]> wrote: >> Hi everybody >> >> On Wed, Oct 10, 2012 at 4:37 PM, Ludovic Dubost <[email protected]> wrote: >>> Following a discussion with Vincent, I've created the >>> >>> feature-restimprovements feature branch on the xwiki xwiki-platform github >>> and passed it to fabio who will: >>> >>> - integrate his own patches for wiki creation and xar upload >>> - move internal code to internal >>> >>> I've create a new pull request for this branch >>> https://github.com/xwiki/xwiki-platform/pull/71 >>> >>> The older pull request (https://github.com/xwiki/xwiki-platform/pull/56) >>> has been closed. >> I did quite a lot of work on this pull request with several changes, >> mostly related to keep things consistent and some bugfixes. >> >> It seems to me that the pull request is ready to be merged. The code >> is not complex, but since query building and option handling make it >> quite complicated it would be good if somebody could have a look at it >> before I merge it. >> >> I also wrote some integration tests to check that things are working >> fine: https://github.com/xwiki/xwiki-enterprise/pull/33 >> >> Thanks, >> Fabio >> >> >>> Ludovic >>> >>> 2012/10/8 Ludovic Dubost <[email protected]> >>> >>>> Hi, >>>> >>>> All votes told to move the code to internal packages. >>>> >>>> This is something I can do, however I'm not sure exactly which code >>>> should go into the internal package and which one should stay where it >>>> is. >>>> >>>> Right now here is the list of classes failing or not the CLIRR tests >>>> >>>> Not failing: >>>> >>>> org.xwiki.rest.ComponentsObjectFactory >>>> org.xwiki.rest.Constants >>>> org.xwiki.rest.RangeIterable >>>> org.xwiki.rest.Relations >>>> org.xwiki.rest.Utils >>>> org.xwiki.rest.XWikiAuthentication >>>> org.xwiki.rest.XWikiJaxRsApplication >>>> org.xwiki.rest.XWikiResource >>>> org.xwiki.rest.XWikiRestComponent >>>> org.xwiki.rest.XWikiRestletJaxRsApplication >>>> org.xwiki.rest.XWikiRestletServlet >>>> org.xwiki.rest.XWikiSecretVerifier >>>> org.xwiki.rest.XWikiSetupCleanupFilter >>>> org.xwiki.rest.exceptions.QueryExceptionMapper >>>> org.xwiki.rest.exceptions.XWikiExceptionMapper >>>> org.xwiki.rest.representations.TextPlainReader >>>> org.xwiki.rest.representations.comments.FormUrlEncodedCommentReader >>>> org.xwiki.rest.representations.comments.TextPlainCommentReader >>>> org.xwiki.rest.representations.objects.FormUrlEncodedObjectReader >>>> org.xwiki.rest.representations.objects.FormUrlEncodedPropertyReader >>>> org.xwiki.rest.representations.objects.TextPlainPropertyReader >>>> org.xwiki.rest.representations.pages.FormUrlEncodedPageReader >>>> org.xwiki.rest.representations.pages.TextPlainPageReader >>>> org.xwiki.rest.representations.tags.FormUrlEncodedTagsReader >>>> org.xwiki.rest.representations.tags.TextPlainTagsReader >>>> org.xwiki.rest.resources.BrowserAuthenticationResource >>>> org.xwiki.rest.resources.RootResource >>>> org.xwiki.rest.resources.SyntaxesResource >>>> org.xwiki.rest.resources.attachments.AttachmentAtPageVersionResource >>>> org.xwiki.rest.resources.attachments.AttachmentHistoryResource >>>> org.xwiki.rest.resources.attachments.AttachmentResource >>>> org.xwiki.rest.resources.attachments.AttachmentVersionResource >>>> org.xwiki.rest.resources.classes.ClassPropertiesResource >>>> org.xwiki.rest.resources.classes.ClassPropertyResource >>>> org.xwiki.rest.resources.classes.ClassResource >>>> org.xwiki.rest.resources.classes.ClassesResource >>>> org.xwiki.rest.resources.objects.BaseObjectsResource >>>> org.xwiki.rest.resources.pages.ModifiablePageResource >>>> org.xwiki.rest.resources.pages.PageTagsResource >>>> org.xwiki.rest.resources.pages.PageTranslationsResource >>>> org.xwiki.rest.resources.spaces.SpaceResource >>>> org.xwiki.rest.resources.spaces.SpacesResource >>>> org.xwiki.rest.resources.tags.TagsResource >>>> org.xwiki.rest.resources.wikis.WikiPagesResource >>>> org.xwiki.rest.resources.wikis.WikiSearchQueryResource >>>> org.xwiki.rest.resources.wikis.WikisResource >>>> >>>> Failing: >>>> >>>> org.xwiki.rest.DomainObjectFactory >>>> org.xwiki.rest.resources.BaseAttachmentsResource >>>> org.xwiki.rest.resources.BaseSearchResult >>>> org.xwiki.rest.resources.ModificationsResource >>>> org.xwiki.rest.resources.attachments.AttachmentsAtPageVersionResource >>>> org.xwiki.rest.resources.attachments.AttachmentsResource >>>> org.xwiki.rest.resources.comments.CommentResource >>>> org.xwiki.rest.resources.comments.CommentVersionResource >>>> org.xwiki.rest.resources.comments.CommentsResource >>>> org.xwiki.rest.resources.comments.CommentsVersionResource >>>> org.xwiki.rest.resources.objects.AllObjectsForClassNameResource >>>> org.xwiki.rest.resources.objects.ObjectAtPageVersionResource >>>> org.xwiki.rest.resources.objects.ObjectPropertiesAtPageVersionResource >>>> org.xwiki.rest.resources.objects.ObjectPropertiesResource >>>> org.xwiki.rest.resources.objects.ObjectPropertyAtPageVersionResource >>>> org.xwiki.rest.resources.objects.ObjectPropertyResource >>>> org.xwiki.rest.resources.objects.ObjectResource >>>> org.xwiki.rest.resources.objects.ObjectsAtPageVersionResource >>>> org.xwiki.rest.resources.objects.ObjectsForClassNameResource >>>> org.xwiki.rest.resources.objects.ObjectsResource >>>> org.xwiki.rest.resources.pages.PageChildrenResource >>>> org.xwiki.rest.resources.pages.PageHistoryResource >>>> org.xwiki.rest.resources.pages.PageResource >>>> org.xwiki.rest.resources.pages.PageTranslationHistoryResource >>>> org.xwiki.rest.resources.pages.PageTranslationResource >>>> org.xwiki.rest.resources.pages.PageTranslationVersionResource >>>> org.xwiki.rest.resources.pages.PageVersionResource >>>> org.xwiki.rest.resources.pages.PagesResource >>>> org.xwiki.rest.resources.spaces.SpaceAttachmentsResource >>>> org.xwiki.rest.resources.spaces.SpaceSearchResource >>>> org.xwiki.rest.resources.tags.PagesForTagsResource >>>> org.xwiki.rest.resources.wikis.WikiAttachmentsResource >>>> org.xwiki.rest.resources.wikis.WikiSearchResource >>>> >>>> >>>> So which one of these are not internal ? >>>> >>>> Ludovic >>>> >>>> 2012/8/25 Thomas Mortagne <[email protected]>: >>>>> On Tue, Aug 21, 2012 at 10:18 PM, Vincent Massol <[email protected]> >>>> wrote: >>>>>> >>>>>> On Aug 21, 2012, at 2:18 PM, Fabio Mancinelli wrote: >>>>>> >>>>>>> On Fri, Jul 27, 2012 at 10:12 AM, Ludovic Dubost <[email protected]> >>>> wrote: >>>>>>>> As part of rest improvements to display pretty names of users and >>>>>>>> other improvements, I'm getting CLIRR errors because of API changes of >>>>>>>> the model and of public class: >>>>>>>> >>>>>>>> >>>>>>>> 1/ Model CLIRR error because the version field has been moved to >>>>>>>> PageSummary from Page. Page extends PageSummary. I need the version >>>>>>>> field also in representations sending back only PageSummaries. >>>>>>>> Unfortunately CLIRR does not realize that the version field is still >>>>>>>> there when moved to the super class. I believe it's safe to ignore >>>>>>>> this error. Howerver I've put ignore all errors on the Page class as I >>>>>>>> don't have a way to ignore this specific error >>>>>>> Yep, I think it's safe. We're adding stuff in a representation (page >>>>>>> summary) and keeping it also in the other, so API-wise it's ok. >>>>>> >>>>>> Note that CLIRR doesn't have false positives so if it complains it >>>> means there's a breakage. The only decision to take is whether it's an >>>> "acceptable" breakage, i.e. we voluntarily break assuming that nobody was >>>> using it and accept that a few users might get broken. >>>>>> >>>>>>>> 2/ CLIRR errors because of parameter additions to objects that are >>>>>>>> used (I think) only internally by the REST server API. Here are the >>>>>>>> errors: >>>>>>>> >>>>>>>> [ERROR] org.xwiki.rest.DomainObjectFactory: In method 'public >>>>>>>> org.xwiki.rest.model.jaxb.Attachment >>>>>>>> createAttachment(org.xwiki.rest.model.jaxb.ObjectFactory, >>>>>>>> java.net.URI, com.xpn.xwiki.api.Attachment, java.lang.String, >>>>>>>> java.lang.String)' the number of arguments has changed >>>>>>> >>>>>>> The DomainObjectFactory is actually a utility class that is used to >>>>>>> build REST-model objects from XWiki-model objects. >>>>>>> It has been created just to prevent code duplication in resource >>>>>>> implementations. >>>>>> >>>>>> The question is whether this is supposed to be a SPI or not. >>>>>> >>>>>>> Now I think it's unlikely that somebody uses it outside the REST >>>>>>> module (a quick grep confirmed this for platform). >>>>>>> >>>>>>> The only use case for a developer of a module to use this class is if >>>>>>> she wants to return a REST-model object and build it using the utility >>>>>>> methods. >>>>>>> I think this is quite unlikely. >>>>>>> >>>>>>> AFAIU all parameters additions are about "pretty names" >>>>>>> ( >>>> https://github.com/ldubost/xwiki-platform/compare/master...bd49bcc84e1dec3d20b57e970c293a459524d2e4#L3L81 >>>> ) >>>>>>> >>>>>>> If we want to be conservative we might do the following: we can add >>>>>>> the new methods and preserve the old ones making them call the new >>>>>>> ones with default parameters. >>>>>>> >>>>>>> * false in methods like this >>>> https://github.com/ldubost/xwiki-platform/compare/master...bd49bcc84e1dec3d20b57e970c293a459524d2e4#L3L407 >>>>>>> * null, false in methods like this >>>> https://github.com/ldubost/xwiki-platform/compare/master...bd49bcc84e1dec3d20b57e970c293a459524d2e4#L3L494 >>>>>>> . This implies that in the new implementation the if statement should >>>>>>> also check for null values (like in this case: >>>> https://github.com/ldubost/xwiki-platform/compare/master...bd49bcc84e1dec3d20b57e970c293a459524d2e4#L3R629 >>>> ) >>>>>>> >>>>>>> We could also think about whether continuing to keep this class in the >>>>>>> public API. It could make sense but I think that nobody will ever use >>>>>>> it so we can start to @deprecate it and eventually move it in internal >>>>>>> packages. >>>>>> >>>>>> Based on what you say I'd say that these classes/methods were put >>>> public by mistake and should all be moved to the internal package without >>>> going through deprecation. >>>>> >>>>> +1 for internal, if it's not supposed to be used outside of the module >>>>> that's the definition of internal >>>>> >>>>>> >>>>>> Of course this means no other other XWiki modules should use them >>>> either since they're internal. >>>>>> >>>>>> Also this means that we don't provide any SPI either since SPI are >>>> user-public. Is that what we want? >>>>>> >>>>>> Thanks >>>>>> -Vincent >>>>>> _______________________________________________ >>>>>> devs mailing list >>>>>> [email protected] >>>>>> http://lists.xwiki.org/mailman/listinfo/devs >>>>> >>>>> >>>>> >>>>> -- >>>>> Thomas Mortagne >>>>> _______________________________________________ >>>>> devs mailing list >>>>> [email protected] >>>>> http://lists.xwiki.org/mailman/listinfo/devs >>>> >>>> >>>> >>>> -- >>>> Ludovic Dubost >>>> Founder and CEO >>>> Blog: http://blog.ludovic.org/ >>>> XWiki: http://www.xwiki.com >>>> Skype: ldubost GTalk: ldubost >>> >>> >>> >>> -- >>> Ludovic Dubost >>> Founder and CEO >>> Blog: http://blog.ludovic.org/ >>> XWiki: http://www.xwiki.com >>> Skype: ldubost GTalk: ldubost >>> _______________________________________________ >>> 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

