Hello Vincent, I have some confusion regarding transformations. https://github.com/xwiki-contrib/application-glossary/blob/master/application-glossary-api/src/main/java/org/xwiki/contrib/glossary/internal/GlossaryTransformation.java
In my transformations, I am basically executing a query, which will get the document names(say 'name') of glossary items from the glossary space . And the simply passing a string reference called 'Glossary.name' as a parameter to the DocumentResourceReference just like WikiWord Transformation. So, I think it should create links to the respective glossary pages. But as you commented on my recent commit <https://github.com/xwiki-contrib/application-glossary/commit/9b04543627c7ccec0461a5d39d2b3f53f0d2815c#comments> that the method instead of returning the "names", it should load the glossary data from the xobjects. I suppose this will function like: when a user will move their cursor on a particular glossary item present on a particular page, then it will load the information on the spot. Am I right? I don't know but I think that I am not getting it right? Thanks. -Sarthak Gupta P.S Sorry for my previous commits, Instead of 'git pull -f' I did simply 'git pull' so changes got merged. :P On Tue, Oct 17, 2017 at 7:31 PM, Vincent Massol <[email protected]> wrote: > Hi Sarthak, > > > On 15 Oct 2017, at 21:43, Sarthak Gupta <[email protected]> > wrote: > > > > > > > > On Sun, Oct 15, 2017 at 7:53 PM, Vincent Massol <[email protected]> > wrote: > > Hi Sarthak, > > > > > On 14 Oct 2017, at 09:52, Sarthak Gupta <[email protected]> > wrote: > > > > > > Hello, > > > As the tests of my project application-glossary > > > <https://github.com/xwiki-contrib/application-glossary> are not > working > > > > I’ll try to have a look when I’m back from GSOC summit. > > > > > , in > > > spite of my attempts(I will handle then later), I am moving on to > > > implementing the next feature of the application i.e creating > > > transformation. > > > As far as I understand, the transformation requires a cache component > from > > > which entries shall be taken for rendering purpose. This cache should > get > > > updated when a glossary xobject is added, deleted or modified. For this > > > functionality to take place, it should make use of an Event Listener. > > > > > > Hope I am right till now? > > > > Yes that’s exactly it! > > > > > > Hello Vincent, > > > > What I would suggest is that you implement the Transformation without > cache for the first version, you make the app work fully end to end, you > release a 1.0 version that the community can try out, and then you start > working on version 1.1 which adds the cache to improve performance. > > > > WDYT? > > > > I think for implementing the transformations, some source will be > required from which the entries already present in the Glossary space will > be taken. Here it is the cache object. So, an alternative here can be to > use the "query module" everytime for knowing which entries are present in > the Glossary Space. And that would slow down the Xwiki to a large extent I > guess because for each word a query will be executed. Would using the > "Query" be fine or there can be any other better approach? > > Some ideas: > > Version 1.0: > * When the transformation executes (i.e. when a page is rendered), you do > a query to get the glossary entries. > > Version 1.1: > * You make your transformation implement Initializable and in initialize() > you go a query to get all existing Glossary entries that you save in a > cache component that you write > * The cache component internally uses a Cache<> object for storing the > Glossary entries > * You also implement a component implementing EventListener that gets the > cache component injected so that you can update the cache when glossary > xobjects are created/modified/deleted. > > If you feel comfortable you can implement directly version 1.1 but my > recommendation would be get a working v1.0 version ASAP and then iterate to > improve it. > > Hope it helps, > Thanks > -Vincent > > PS: Please keep the discussion on the list so that anyone can help you and > see the answers and chime in or just learn from it! :) > > > Thanks > > > > Sarthak Gupta > > > > > > > > > > I have a question in my mind. > > > > > > The "cache" and the "event Listener" are to be implemented as two > separate > > > components. right? > > > > Correct. > > > > > What I think is, that the EventListener component should be filled with > > > appropriate methods just like this > > > <https://github.com/xwiki/xwiki-platform/blob/master/ > xwiki-platform-core/xwiki-platform-component/xwiki- > platform-component-wiki/src/main/java/org/xwiki/component/ > wiki/internal/bridge/DefaultWikiObjectComponentManagerEventListener.java> > > > and > > > then in these methods, the cache should be updated. > > > > > > Is this implementation right? > > > > Correct. > > > > > And after this, the rendering part will come…. > > > > Awesome. > > > > Thanks. Let me know if you need more of my/our help. > > -Vincent > > > > > > > > Thanks > > > > > > Sarthak Gupta > >

