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
>
>

Reply via email to