uPortal IRC Logs-2012-01-18

[04:20:10 CST(-0600)] <changi> hello

[04:20:44 CST(-0600)] <changi> need some help, i trying to setup cas sso 3.4.11

[04:21:25 CST(-0600)] <changi> authentication is working, but every time i connect the login page i get the login-screen instead of the login success

[09:53:07 CST(-0600)] <EricDalquist> athena: found the column width bug

[10:23:21 CST(-0600)] <athena> oh yay

[10:23:26 CST(-0600)] <athena> easy to fix?

[10:23:28 CST(-0600)] <EricDalquist> yeah

[10:23:43 CST(-0600)] <EricDalquist> I forgot to add "JoinType.LEFT" to a few of the fetches

[10:23:47 CST(-0600)] <athena> ah (smile)

[10:23:50 CST(-0600)] <EricDalquist> and without that hibernate does an inner join

[10:23:51 CST(-0600)] <athena> glad it's something simple!

[10:24:01 CST(-0600)] <EricDalquist> which means that unless every fetch has data there is no result (tongue)

[10:24:11 CST(-0600)] <EricDalquist> the fix is in master

[10:24:13 CST(-0600)] <athena> oh (smile)

[10:24:15 CST(-0600)] <athena> thanks so much!

[10:24:20 CST(-0600)] <athena> that'll make this demo today easier (tongue)

[10:24:36 CST(-0600)] <athena> so nice being able to keep our demo instance closer in sync to the master

[10:24:36 CST(-0600)] <EricDalquist> (smile)

[10:25:06 CST(-0600)] <EricDalquist> have I mentioned how cool jodatime is?

[10:25:17 CST(-0600)] <athena> yes! sounds completely awesome

[10:25:21 CST(-0600)] <athena> looking forward to playing with it

[10:25:59 CST(-0600)] <EricDalquist> https://github.com/edalquist/uPortal/compare/master...event-aggr#L41R125

[10:26:14 CST(-0600)] <EricDalquist> that determines if a DateTime is between two MonthDay objects

[10:26:25 CST(-0600)] <EricDalquist> I couldn't imagine having to do that with Calendar (tongue)

[10:35:46 CST(-0600)] <athena> ugh, yeah

[10:36:04 CST(-0600)] <athena> think their midnight class will really improve the calendar portlet

[10:43:06 CST(-0600)] <EricDalquist> yeah

[10:43:45 CST(-0600)] <athena> we're hopelessly buried under 2" of snow here (tongue)

[10:45:26 CST(-0600)] <EricDalquist> lol

[10:45:57 CST(-0600)] <athena> it is dire

[10:47:49 CST(-0600)] <EricDalquist> is the puppy happy to see snow?

[10:51:39 CST(-0600)] <athena> omg yes

[10:51:43 CST(-0600)] <athena> insane

[10:51:56 CST(-0600)] <athena> pouncing around the room and nibbling on myhand right now

[10:52:02 CST(-0600)] <EricDalquist> lol

[10:52:08 CST(-0600)] <athena> he's already eaten quite a bit of snow today

[10:52:21 CST(-0600)] <athena> i think i could train him to just eat the snow off the sidewalk

[10:52:34 CST(-0600)] <athena> though i don't think we shovel here

[10:52:35 CST(-0600)] <EricDalquist> lol

[10:52:46 CST(-0600)] <athena> i think we just declare disaster and wait for it to melt

[10:52:57 CST(-0600)] <athena> snowpocalypse!

[12:00:39 CST(-0600)] <Arvids> Eric, can you suggest me where to start in order to reflect tab groups in site map portlet?

[12:01:00 CST(-0600)] <Arvids> Currently sitemap view gets layout XML which doesn´t contain required information

[12:01:21 CST(-0600)] <EricDalquist> so you want a list of all tabs potentially available to the user?

[12:01:28 CST(-0600)] <EricDalquist> I guess I'm not clear on what you mean by a "tab group"

[12:01:57 CST(-0600)] <Arvids> there´s this tabgoup functionality that can be turned on in portal.properties

[12:02:04 CST(-0600)] <EricDalquist> ah

[12:02:05 CST(-0600)] <EricDalquist> right

[12:02:10 CST(-0600)] <Arvids> we´re going to use it, but it doesn´t show up in sitemap

[12:02:24 CST(-0600)] <EricDalquist> I'm not sure ... another developer group wrote that and I have only passing familiarity

[12:02:45 CST(-0600)] <athena> i think i helped replace that as of 4.0

[12:02:48 CST(-0600)] <athena> since it used to be a channel

[12:02:56 CST(-0600)] <athena> er, the portlet itself, i mean

[12:03:02 CST(-0600)] <EricDalquist> I think the tab-group uses specially marked folders in the layout

[12:03:05 CST(-0600)] <athena> but the tab group stuff came from illinois

[12:03:06 CST(-0600)] <athena> yeah

[12:03:11 CST(-0600)] <EricDalquist> I'd first start looking in the structure and theme xsl

[12:03:15 CST(-0600)] <athena> maybe look at the documentation / patch for that feature?

[12:03:26 CST(-0600)] <EricDalquist> to see how those react when the tabgoup functionality is enabled

[12:03:42 CST(-0600)] <EricDalquist> maybe that will point you to the info you need in the layout xml

[12:04:05 CST(-0600)] <Arvids> i assume that laout node attributes are applied in some later stages of XML transformations

[12:04:33 CST(-0600)] <EricDalquist> https://wiki.jasig.org/display/UPC/Rendering+Pipeline

[12:04:41 CST(-0600)] <EricDalquist> that is a decent diagram of the layout rendering pipeline

[12:05:01 CST(-0600)] <Arvids> ahh.. yes - that´s what i needed

[12:05:17 CST(-0600)] <EricDalquist> that essentially corresponds with what is in renderingPipelineContext.xml

[12:05:38 CST(-0600)] <Arvids> now i´ll have to figure out how to pass the result of "Structure XSLT" to the sitemap portlet

[12:05:38 CST(-0600)] <EricDalquist> note that you can call into the pipeline at any point to get the StAX stream at that point

[12:06:10 CST(-0600)] <EricDalquist> inject the structureCachingComponent bean into the portlet

[12:06:32 CST(-0600)] <EricDalquist> and call getEventReader

[12:06:41 CST(-0600)] <EricDalquist> the injected interface would be a StAXPipelineComponent

[12:06:45 CST(-0600)] <Arvids> nice, thank you for the tip - that´s what i needed

[12:06:55 CST(-0600)] <EricDalquist> yup

[12:07:01 CST(-0600)] <EricDalquist> and that should perform well for the current user

[12:07:05 CST(-0600)] <EricDalquist> though ...

[12:07:11 CST(-0600)] <EricDalquist> you might not get what you want

[12:07:28 CST(-0600)] <EricDalquist> since the structure XSL just outputs the current tab

[12:07:37 CST(-0600)] <EricDalquist> not the entire layout

[12:08:24 CST(-0600)] <Arvids> yeah, but it does contain the required information (i.e. tab groups, tabs and portlets) judging by universality XSL files

[12:09:09 CST(-0600)] <EricDalquist> Arvids you'll also likely need to inject IPortalRequestUtils

[12:09:28 CST(-0600)] <EricDalquist> and use "HttpServletResponse getOriginalPortalResponse(PortletRequest portletRequest)"

[12:10:41 CST(-0600)] <Arvids> thanks, i´ll take it into account

[12:11:46 CST(-0600)] <Arvids> btw, I assume that we´ll go live without any post-4.0.2 patches (except those that were provided by me)

[12:12:01 CST(-0600)] <EricDalquist> ok

[12:12:07 CST(-0600)] <EricDalquist> I'm working to get 4.0.3 out asap

[12:12:12 CST(-0600)] <EricDalquist> hopefully at the end of the month

[12:13:12 CST(-0600)] <Arvids> yeah, but proper testing must be done in order to test the results of mondays commits regarding fetching strategies

[12:14:03 CST(-0600)] <Arvids> YourKit showed me that all SQL gets executed almost immediately (except some spikes)

[12:14:53 CST(-0600)] <Arvids> ... and I believe i´ll have to create some documentation regarding my experience with MSSQL

[12:15:28 CST(-0600)] <EricDalquist> that would be great

[12:17:06 CST(-0600)] <EricDalquist> so I just commited another fix this morning regarding fetching

[12:17:22 CST(-0600)] <EricDalquist> apparently when you just do .fetch(associaton) hibernate does an inner join

[12:17:32 CST(-0600)] <EricDalquist> which is bad if there isn't always data on the other side

[12:18:56 CST(-0600)] <Arvids> those are the bits and piecies that i was afraid would arrise when specifying fetching strategies outside annotations on entity class

[12:19:56 CST(-0600)] <EricDalquist> yeah

[12:19:57 CST(-0600)] <Arvids> something like query.enableAnnotationConfiguredFetching(true) would be nice (sad)

[12:20:02 CST(-0600)] <EricDalquist> yes

[12:20:11 CST(-0600)] <EricDalquist> I thought about writing our own annotation processing to do it (tongue)

[12:20:16 CST(-0600)] <EricDalquist> it would be doable

[12:20:20 CST(-0600)] <EricDalquist> just don't have the time to do it

[12:20:34 CST(-0600)] <Arvids> hmm... maybe there is something like that?

[12:20:44 CST(-0600)] <Arvids> i bet we´re not the first ones facing this problem

[12:20:55 CST(-0600)] <EricDalquist> so what I had to do was .fetch(assocaition, JoinType.LEFT)

[12:21:23 CST(-0600)] <Arvids> ... and filter the results

[12:21:24 CST(-0600)] <EricDalquist> what would be technically feasible would be to add logic to BaseJpaDao to use reflection on the class being queried

[12:21:40 CST(-0600)] <EricDalquist> yes but DataAccessUtils.uniqueResult does that

[12:22:31 CST(-0600)] <EricDalquist> then look at each field that has a eager fetch annotation add a .fetch call