IRC Archive for channel #xwiki on 09 September 2015

Last modified by Vincent Massol on 2015/09/09 23:49

<debajit> has joined #xwiki
00:10 <abusenius_> has quit
01:35 <debajit> has quit
02:36 <OSIMasson> has joined #xwiki
03:49 <Denis> has joined #xwiki
04:11 <cpe> has quit
04:12 <cpe> has joined #xwiki
04:25 <Denis> has quit
06:49 <Ramona1> has joined #xwiki
06:58 <msmeria> has joined #xwiki
07:46 <vmassol> has joined #xwiki
07:53 <Ramona1> has quit
07:53 <Ramona1> has joined #xwiki
08:32 <vmassol> has quit
08:33 <KermitTheFragger> has joined #xwiki
09:01 <gsmeria> has joined #xwiki
09:10 <Ramona1> has quit
09:12 <Ramona1> has joined #xwiki
09:17 <mflorea> has joined #xwiki
09:17 <woshilapin> has joined #xwiki
09:18 <tmortagne> has joined #xwiki
09:19 <Denis> has joined #xwiki
09:33 <vmassol> has joined #xwiki
09:36 <spawn57> has joined #xwiki
09:38 <spawn57> hi, I created an app using app within minutes, and it shows me a page using a form view.
09:38 <vmassol> good morning everyone
09:38 <spawn57> however I can't see that content when I use $doc.getRenderedContent().  I notice that share email script using the same method to generate an email
09:39 <spawn57> hi vmassol
09:39 <vmassol> spawn57: wdym? the homepage of the app that was generated doesn't display correctly?
09:39 <spawn57> no, I'm writing a script to send an email
09:40 <spawn57> where the message has the content of the page
09:40 <vmassol> what's the relationship with AWM?
09:40 <spawn57> I'm trying to get the content of a page generated by the AWM.
09:41 <vmassol> basically you're writing sharepage by email, right?
09:41 <spawn57> yes, exactly, but a with a few customizations
09:41 <vmassol> btw does it work if you share your AWM page by email using the standard share button?
09:41 <spawn57> sorry for not being clear
09:41 <spawn57> yes it does
09:42 <spawn57> I can't seem to get the content from the object attached to the page using getRenderContent
09:42 <vmassol> yes $doc.getRenderedContent() will render the page content in view mode
09:42 <vmassol> getRenderedContent() renders the content of the page
09:42 <spawn57> how does the share by email get all the content from the object then :O
09:42 <vmassol> basically it does the same as when you view the page
09:42 <vmassol> it doesn't
09:42 <vmassol> the page content has script
09:43 <spawn57> oh really?
09:43 <vmassol> that script executes
09:43 <vmassol> and does whatever it does
09:43 <vmassol> it could extract data from xobjects, call apis, etc
09:44 <spawn57> where is this script?
09:44 <vmassol> go to a page and edit it
09:44 <vmassol> and if you don't see anything you need to understand the concept of sheets, see
09:45 <spawn57> ok
09:45 <vmassol> each page is responsible for displaying its content
09:46 <spawn57> when I edit it, it goes into...inline form ..mode?
09:46 <vmassol> edit in wiki mode
09:46 <vmassol> (see )
09:47 <spawn57> oh I see what you mean
09:47 <spawn57> the code to display is in the class sheet...
09:48 <vmassol> yes
09:48 <vmassol> (probably, I don't know your page)
09:49 <spawn57> ok
09:50 <spawn57> so a page from awm, is using a class sheet to display the document..
09:50 <vmassol> I don't know AWM well, not sure
09:51 <vmassol> but possibly
09:53 <spawn57> hmm ok
09:54 <vmassol> so 11 issues to kill today :)
09:55 <vmassol> (I'll be in a meeting the whole morning, starting in 5 minutes)
09:59 <spawn57> damn
09:59 <spawn57> enjoy
10:02 <vmassol> :)
10:02 <vmassol> cannot say it's enjoyable but it has to be done
10:02 <vmassol> bbiab
10:26 <gdelhumeau> has joined #xwiki
10:26 <Slashman> has joined #xwiki
10:48 <Ramona1> has quit
10:49 <Ramona1> has joined #xwiki
11:22 <Slashman> has quit
11:40 <ClemensR> has joined #xwiki
11:46 <Slashman> has joined #xwiki
11:51 <Enygma`> has joined #xwiki
11:52 <evalica> has joined #xwiki
12:45 <Ramona1> has quit
12:58 <spawn57> hi, is there a way to render convert a wiki2.0 string into  html using velocity code?
13:01 <tmortagne> spawn57: you have an example in of how to parse a string in a syntax and render it in another
13:01 <tmortagne> at the end
13:02 <spawn57> thanks
13:02 <tmortagne> it's also what is done by $doc.getRenderingContent() when you document content is xwiki/2.0 syntax for example
13:03 <tmortagne> *getRenderedContent
13:03 <tmortagne> except that it also execute transformations
13:10 <spawn57> I tried that but it won't render the object that's attached to the page
13:10 <spawn57> trying to replicate the share by email feature
13:11 <spawn57> but when there's an object attached to the page ..getRenderingContent() won't render it.   But it's a page created using AppWithinMinutes so the object is displayed inline when I view the page
13:13 <ClemensR> is the view uses a special template, the "content" of the page is empty (you can check that in the wiki editor) - so this is exactly what you get
13:13 <spawn57> yup, I understand that completely
13:14 <Denis> has quit
13:15 <spawn57> dammit, I tried rendering from xwiki/2.1 to html/4.01, but it's empty
13:18 <spawn57> is there something wrong with this line? ---> #set ($htmlValue = $services.rendering.render($xdom, "html/4.01"))
13:19 <ClemensR> is there anything in the xdom ?
13:20 <spawn57> I can't tell, but It's not null...
13:20 <spawn57> there a way to see it?
13:23 <ClemensR> you can check with the javadoc:!/index.html  ... look into the org.xwiki.rendering.block
13:24 <ClemensR> the "Block" interface ith the API you might me most inters. (the XDOM in a block)
13:24 <ClemensR> and it has eg.  xdom.getChildren().size()
13:27 <spawn57> let me try that
13:28 <spawn57> yeah it's giving numbers
13:28 <ClemensR> using the traversal methods like "getBlocks(BlockMatcher matcher, Block.Axes axes)" is somewhat impossible in velocity, so there are string based alternatives like  #foreach($headerBlock in $doc.getDocument().getXDOM().getBlocks('class:HeaderBlock', 'DESCENDANT'))   - get all HeaderBlocks in the current xdom
13:28 <spawn57> damn, that's complicated for me now
13:28 <spawn57> hmm
13:28 <ClemensR> hm, then it is odd that the xdom is not empty, but the html is ...
13:29 <spawn57> unless there's bad syntax..
13:29 <ClemensR> it would display a literal "$services.rendering.render($xdom, "html/4.01")" then, I think
13:30 <spawn57> dammit
13:31 <ClemensR> maybe add more debugging like "#foreach($child in  $xdom.getChildren()) $child.class #end or the like
13:32 <spawn57> shows things like class org.xwiki.rendering.block.ParagraphBlock
13:32 <ClemensR> anyway, to display the stuff normally shown on the page, usually it is $doc.getRenderedContent()  ... and this displays the objects in the sheet instead of the page content, as it is for "App within Minutes" pages
13:33 <spawn57> one of them was...empty.. but the size is one.  I thin the content for that is "red"
13:33 <ClemensR> hm, ok, yes, to the content contains paragraphs ... admittedly what is to be expected if there is content
13:34 <spawn57> damn...wonder what's wrong then
13:34 <ClemensR> content is then child of the  ParagraphBlock ... should contains word blocks and such
13:36 <spawn57> I wonder why share page by email is able to use $doc.getRenderedContent() and I can't
13:36 <spawn57> that would save me a whole world of trouble
13:36 <ClemensR> yeah, why cann't you? what is the problem when you try to use it?
13:39 <vmassol> has quit
13:40 <spawn57> oh, I'm trying to use it on with a page that has an object, one that was generated using AppWithinMinutes.  like yousaid that it earlier,'s getRenderedContent is suppose to be empty if I try to do that
13:40 <spawn57> btw, I just tried renderiung a simple xwiki syntax line like **red** and it doesn't work
13:41 <ClemensR> hm, then "share by email" should not work with AWM-pages either, let me check ...
13:42 <spawn57> ...infact it didn't evaluate $services.rendering.render($xdom, "html/4.01") too
13:43 <spawn57> I tried it with AppWithinMinutes, share by email renders the page fine
13:43 <spawn57> and sends it via email fine
13:44 <ClemensR> yeah, I see, and can reproduce:  #set ($xdom = $services.rendering.parse("some **bold** content", "xwiki/2.1"))   $services.rendering.render($xdom, "html/4.01")  .... shows explicit  the velocity code
13:46 <spawn57> what's wrong then?
13:46 <spawn57> hmm
13:46 <spawn57> I have to get going now, but can you open an issue, or email me if you find out what to do?
13:46 <ClemensR> oh, yeah, of course ... it is "xhtml/1.0" as output syntax
13:46 <spawn57> that will work?
13:46 <ClemensR> not "html/4.01" - the corresponding renderer is deprected and seemingly removed
13:46 <ClemensR> works for me then
13:47 <spawn57> zomg
13:47 <spawn57> that works for me too
13:47 <spawn57> let me add it to my script
13:47 <spawn57> oh really? time to update that wiki page and docs then
13:48 <spawn57> oh wow
13:49 <ClemensR> yep, you can check with   $services.rendering.getAvailableRendererSyntaxes()  which syntaxes are available
13:50 <ClemensR> "html/4.01"  is still available as a *parser*, however, so the example code still works
13:51 <ClemensR> it must be supported, as that is what is produced by the wysiwyg editor
13:52 <spawn57> I see
13:52 <spawn57> alright, I got my script working
13:52 <spawn57> thanks so much
13:52 <ClemensR> glad it works :)
13:53 <Denis> has joined #xwiki
14:23 <vmassol> has joined #xwiki
14:25 <Ramona1> has joined #xwiki
15:03 <Denis> has quit
15:07 <Denis> has joined #xwiki
15:08 <msmeria> has quit
15:27 <Chuguniy> has joined #xwiki
15:35 <OSIMasson> has quit
15:55 <gsmeria> has left #xwiki
16:00 <vmassol> tmortagne: did you see this:$xwiki-platform-extension-handler-xar/1815/testReport/org.xwiki.extension.xar.internal.handler/XarExtensionHandlerTest/testUninstallFromWiki/ ?
16:01 <vmassol> (lots of  XarExtensionHandlerTest tests are failing ATM)
16:03 <vmassol> Enygma`: hmm seems we don't have screenshots anymore on CI
16:03 <vmassol> for ex:$xwiki-platform-administration-test-tests/1816/testReport/org.xwiki.administration.test.ui/CreatePageTest/createPageWhenNoTemplateAvailable/
16:15 <OSIMasson> has joined #xwiki
16:22 <tmortagne> vmassol: there has been any change in XAR module, looks like something like a dependency changed since the cause is that it can't find some SecurityCacheRulesInvalidator component anymore
16:23 <tmortagne> some deep dependency of the security module
16:25 <Denis> of the security bridge to be precise
16:30 <tmortagne> Denis: not exactly it's a dependency of DefaultSecurityCacheLoader which is in the API
16:31 <tmortagne> I guess the security bridge used to end up in XAR handler test classloader trough some dependency and it's been removed
16:31 <Denis> oh, yes, you're right, this is the interface
16:31 <tmortagne> looks like xwiki-platform-localization-source-wiki have the same issue
16:32 <Denis> implemented by the bridge
16:32 <tmortagne> and probable various others too
16:32 <tmortagne> but not sure what changed exactly
16:33 <Denis> there is no reason to depend on the bridge in fact, it just need to be there when you want to use the API, that looks weird
16:34 <tmortagne> Denis: the authorization manager is injected
16:34 <tmortagne> so it need all its dependencies when the component is initialized
16:35 <tmortagne> and one of its dependencies inject a SecurityCacheRulesInvalidator component so it needs to find one
16:35 <tmortagne> looking at commits from yesterday
16:35 <tmortagne> since its been broken yesterday
16:41 <tmortagne> actually no
16:41 <tmortagne> looks like we lost all build between Aug 19 and Sep 8
16:41 <tmortagne> so can be anywhere after Aug 19 actually
16:42 <Denis> Sure, you need the bridge at runtime, or a mock of it, but you never depends on it.
16:42 <tmortagne> and nobody depends on it
16:43 <tmortagne> but DefaultSecurityCacheLoader inject SecurityCacheRulesInvalidator so it have to find an implementation somewhere
16:43 <Denis> yes, the loader need to tell the invalidator to stop operation during loading time
16:44 <tmortagne> yes that I understood...
16:44 <tmortagne> I'm not asking how its working, obviously the bridge (or at least SecurityCacheRulesInvalidator implementation) used to be in the classpath and is not anymore
16:44 <tmortagne> that's what changed
16:44 <Denis> so, if someone use a real AuthorizationManager, of course it will end up requiring the invalidator
16:46 <tmortagne> DefualtAuthorizationManager is provided by the api module
16:47 <tmortagne> no code/test is explicitely asking to use "a real authorization manager", it simply used to not cause any issue to test a component require authorization manager with @AllComponents
16:53 <tmortagne> very weird, I don't see the security bridge anywhere in 7.2M3 pom dependency tree
16:54 <tmortagne> hmm I think I know
16:55 <tmortagne> MockitoOldcoreRule used to force mocking AuthorizationManager and looks like it accept the real one if already registered now
16:55 <tmortagne> looking
17:06 <Denis> yes, if I well remember it mocks both auth manager, since you will need oldcore if you were to be using the bridge
17:07 <KermitTheFragger> has quit
17:10 <tmortagne> was missing some comment to explain it was forcing them mock on purpose :)
17:14 <vmassol> fixing one build issue
17:14 <vmassol> caused by evalica ;) hehe
17:15 <vmassol> evalica:  I was worried it could happen when I saw your commit
17:15 <vmassol> basically you changed Document -> Page but didn' t update the tests
17:16 <Ramona1> has quit
17:16 <vmassol> fixing one place but there may be more
17:17 <evalica> vmassol: thanks for fixing it
17:17 <vmassol>  
17:18 <vmassol> evalica: I didn't check if  you changed the 2 translations
17:18 <vmassol> (hope you did :))
17:18 <vmassol> re @FindBy(xpath = "//a[@class = 'secondary button' and normalize-space(.) = 'Change the target document']") it's in CopyOverwritePromptPage
17:19 <vmassol> could you check if you changed that text?
17:20 <evalica> I did changed that text
17:20 <vmassol> ok fixing the test then
17:22 <ClemensR> has left #xwiki
17:23 <vmassol> checking elsewhere now
17:24 <vmassol> using intellij super cool structural search
17:24 <vmassol> to look for "document" inside all strings
17:31 <vmassol> evalica: have you changed the share page email title?
17:31 <vmassol> assertEquals("superadmin wants to share a document with you", mimeMessage.getSubject());
17:32 <tmortagne> all missing security components related failing tests should be ok now
17:32 <vmassol> cool thanks tmortagne
17:32 <evalica> vmassol: I don't think I've change the share page message
17:32 <vmassol> so it was a change to mockitooldcore?
17:34 <vmassol> evalica: I also see in AllDocsTest this: assertTextPresent("The document has been deleted.");
17:34 <evalica> vmassol: the docum.. has been deleted = yes
17:35 <vmassol> ok updating
17:35 <vmassol> what about this one:
17:35 <vmassol> assertEquals("testCreateGroupWhenGroupAlreadyExists cannot be used for the "
17:35 <evalica> regarding share: I've changed translations form share, but not that one exactly. It might be computed somehow
17:35 <vmassol> it's not that one exactly evalica
17:35 <vmassol> since the user name is computed
17:36 <vmassol> "…wants to share a document with you"
17:36 <evalica> yes .. sure, but nothing with  "wants to share a"
17:36 <vmassol> ok
17:36 <tmortagne> vmassol: authorization manager used to be forced mocked and I changed that to test it and did not remembering why I forced it
17:36 <tmortagne> there is proper comment now :)
17:36 <vmassol> tmortagne: ok
17:36 <evalica> vmassol: group ..with this name already exists." = yes
17:36 <vmassol> ok
17:36 <vmassol> fixing
17:37 <vmassol> what about:
17:37 <vmassol> private static final String OVERWRITE_PROMPT1 = "Warning: The document ";
17:38 <vmassol> prompt1
17:38 <evalica> vmassol: "already exists. Are you sure you want to overwrite it" = yes
17:38 <vmassol> it's "Warning: The page " right?
17:39 <evalica> The page {0} already exists. Are you sure you want to overwrite it (all its content would be lost)?
17:39 <vmassol> ok
17:39 <vmassol> editor.waitForNotificationErrorMessage("Failed to save the document.");
17:39 <vmassol> ?
17:39 <evalica> Failed to save the page. Reason: {0}
17:41 <vmassol> ok done
17:41 <vmassol> there are probably some more but we need to monitor the CI tests
17:42 <evalica> k - thank you
18:26 <mflorea> has quit
18:43 <evalica> has quit
18:43 <OSIMasson> has quit
18:48 <Enygma`> has quit
19:05 <vmassol> has quit
19:13 <woshilapin> has quit
19:28 <tmortagne> has quit
20:02 <Slashman> has quit
20:03 <gdelhumeau> has quit
20:27 <Denis> has quit
20:27 <Denis> has joined #xwiki
20:28 <OSIMasson> has joined #xwiki
20:38 <Denis> has quit
22:11 <vmassol> has joined #xwiki
22:21 <vmassol> nice only 4 issues remaining for RC1 :)
22:35 <Denis> has joined #xwiki
22:51 <Chuguniy> has quit
23:09 <vmassol> has quit
23:27 <MasterPiece> has joined #xwiki
23:40 <Denis> has quit
23:49 <Chuguniy> has joined #xwiki

Get Connected