uPortal IRC Logs-2011-05-04
[08:52:30 CDT(-0500)] <mklein21005> I'm trying to integrate Moodle with uPortal does anyone know of any documention on how to accomplish this?
[10:17:13 CDT(-0500)] <athena> mklein21005: it depends how you want to integrate
[10:17:41 CDT(-0500)] <athena> we're working on a portlet right now that will be able to display some interesting summary of your course links, announcements, etc.
[10:17:50 CDT(-0500)] <athena> that'll probably have a moodle connector some time in the near future
[10:18:02 CDT(-0500)] <athena> personally i tend to like that strategy as a high-level dashboard
[10:18:04 CDT(-0500)] <athena> simple and useful
[10:18:10 CDT(-0500)] <athena> but you could also look at using LTI
[10:18:24 CDT(-0500)] <athena> there's a basic LTI portlet for uportal
[13:41:17 CDT(-0500)] <EricDalquist> woohoo! I have bamboo starting and interacting with an EC2 instance
[13:41:35 CDT(-0500)] <EricDalquist> next is to figure out the assembly script to build a functional quickstart
[13:46:52 CDT(-0500)] <athena> oh that's terrific!
[13:47:08 CDT(-0500)] <EricDalquist> I may need your help figuring out the new filter stuff athena
[13:47:09 CDT(-0500)] <athena> so do we need a quickstart instead of just a checkout and build?
[13:47:23 CDT(-0500)] <EricDalquist> well it would be a checkout and build using the quickstart assembly script
[13:47:24 CDT(-0500)] <athena> copy build.properties.sample to build.properties
[13:47:27 CDT(-0500)] <EricDalquist> since that grabs tomcat too
[13:47:34 CDT(-0500)] <athena> ah gotcha
[13:47:42 CDT(-0500)] <athena> i think the new filtering should actually be really straightforward
[13:47:47 CDT(-0500)] <athena> unless you're looking to add new values?
[13:47:50 CDT(-0500)] <EricDalquist> oh nice
[13:47:54 CDT(-0500)] <EricDalquist> yeah I think that will do it
[13:48:03 CDT(-0500)] <EricDalquist> for the first pass I'm going to just leave it with HSQL
[13:48:11 CDT(-0500)] <EricDalquist> we can figure out MySQL or Postgres later
[13:48:14 CDT(-0500)] <athena> i just set up trunk on a server for umobile and don't think i had to add any new configuration flags
[13:48:26 CDT(-0500)] <athena> yeah . . . first we need to make them actually work.
[13:48:43 CDT(-0500)] <EricDalquist> I thought postgres was working now?
[13:48:54 CDT(-0500)] <athena> has something changed recently?
[13:49:00 CDT(-0500)] <athena> i think last time we talked about it we just punted
[13:49:10 CDT(-0500)] <EricDalquist> I thought we punted on oracle
[13:49:15 CDT(-0500)] <EricDalquist> and had postgres working
[13:49:35 CDT(-0500)] <athena> i don't have access to any oracle installs, so no idea if it's working there
[13:49:56 CDT(-0500)] <athena> latest postgres problem was that hang on initdb
[13:49:57 CDT(-0500)] <EricDalquist> the problem was last I tried the two were mutually exclusive
[13:50:00 CDT(-0500)] <EricDalquist> oh yeah
[13:50:01 CDT(-0500)] <athena> ah
[13:50:18 CDT(-0500)] <athena> and then yeah, we had a different problem w/ one of the models
[13:52:20 CDT(-0500)] <EricDalquist> ubuntu packages install fast on ec2 ... handy that amazon hosts ubuntu repo mirros in the same data center
[14:00:38 CDT(-0500)] <EricDalquist> http://ec2-50-17-2-119.compute-1.amazonaws.com/
[14:00:52 CDT(-0500)] <athena> ok off to do a demo
[14:11:47 CDT(-0500)] <rickardatwork> I've defined a new fragment according to instructions in the wiki, but I'm getting some strange behaviour.
[14:11:48 CDT(-0500)] <rickardatwork> https://wiki.jasig.org/display/UPM32/define+a+fragment#defineafragment-Step2%3ADefineanewfragment
[14:12:10 CDT(-0500)] <rickardatwork> When I try to access password management after adding a new user, it crashes.
[14:12:52 CDT(-0500)] <EricDalquist> do you have an error message/stack trace you can share?
[14:13:27 CDT(-0500)] <rickardatwork> Just a sec
[14:14:33 CDT(-0500)] <rickardatwork> http://pastebin.com/us7BDfDH
[14:15:56 CDT(-0500)] <EricDalquist> hrm ... looks like some sort of bug in cusermanager :/
[14:15:58 CDT(-0500)] <rickardatwork> Looking at the UP_PERSON_DIR table, everything looks ok.
[14:18:08 CDT(-0500)] <rickardatwork> Another issue that has cropped up is that if I use fragment administration to switch to fragment owner I created using "ant md5passwd", it works, but the "Exit fragment" thing never pops up, so I have to click "Sign out" instead.
[14:18:49 CDT(-0500)] <EricDalquist> the fragment owners need a different template user than normal users
[14:18:59 CDT(-0500)] <EricDalquist> and md5passwd just sets them up as normal users
[14:19:01 CDT(-0500)] <rickardatwork> Hmm, ok.
[14:19:16 CDT(-0500)] <rickardatwork> Then the wiki page I linked to needs some work.
[14:19:20 CDT(-0500)] <EricDalquist> if you find the .user files for the fragment owners that come with uportal and compare them to like the student.user file you can see the difference
[14:19:34 CDT(-0500)] <rickardatwork> It describes creating a fragment owner "library-lo"
[14:19:49 CDT(-0500)] <EricDalquist> can you email the user list about that problem and just paste in our conversation here
[14:20:04 CDT(-0500)] <EricDalquist> to see if someone more familiar with the page can get it cleaned up?
[14:20:10 CDT(-0500)] <rickardatwork> Sure.
[14:20:42 CDT(-0500)] <rickardatwork> Could I edit the database to make the required changes after the fact?
[14:20:42 CDT(-0500)] <EricDalquist> I have to run ... see everyone later
[14:20:46 CDT(-0500)] <rickardatwork> Later
[14:20:51 CDT(-0500)] <EricDalquist> rickardatwork: I'm not sure
[14:20:54 CDT(-0500)] <EricDalquist> I think so
[14:20:58 CDT(-0500)] <EricDalquist> in the up_user table
[14:21:06 CDT(-0500)] <EricDalquist> I think there is a reference to the template user
[14:21:09 CDT(-0500)] <rickardatwork> Thanks.
[14:21:24 CDT(-0500)] <EricDalquist> and that should be pointing to a user who is named fragmentTemplate (I think, check the default data to be sure)
[14:51:55 CDT(-0500)] <rickardatwork> athena: I just wanted to say thank you for the tip about modifying the structure stylesheet to prevent my "hidden" portlets from coming into the theme stylesheet as <channel> elements. This fixed my missing HttpSession errors and probably increased performance as well now that useless rendering threads aren't launched.
[15:15:10 CDT(-0500)] <athena> oh good
[15:15:49 CDT(-0500)] <athena> that's something that eric discovered was causing problems for us in the mobile theme in 3.2
[15:25:04 CDT(-0500)] <rickardatwork> Not sure why I didn't just filter them out in the structure stylesheet to begin with, but nonetheless, it solved my problems.
[15:27:23 CDT(-0500)] <athena> glad it's working now
[20:23:30 CDT(-0500)] <denny_cs> Hi Eric, this is Denny from ANU
[20:25:10 CDT(-0500)] <steveswinsburg> evening all
[20:25:15 CDT(-0500)] <EricDalquist> hello
[20:25:44 CDT(-0500)] <steveswinsburg> hi Eric, Denny is here with a few q's about the config mode and params
[20:25:57 CDT(-0500)] <EricDalquist> ok
[20:26:15 CDT(-0500)] <denny_cs> Yes, it is about UP-2953
[20:26:20 CDT(-0500)] <EricDalquist> I'll do my best to answer them been a year or so since I've looked at that code
[20:27:16 CDT(-0500)] <steveswinsburg> yep UP-2953
[20:27:27 CDT(-0500)] <denny_cs> I learned that portletAdministrationHelper.configModeAction is called when user submit on the config page
[20:28:03 CDT(-0500)] <denny_cs> in package org.jasig.portal.portlets.portletadmin
[20:28:51 CDT(-0500)] <denny_cs> The delegation response from:
[20:28:55 CDT(-0500)] <denny_cs> final DelegationActionResponse delegationResponse = requestDispatcher.doAction(actionRequest, actionResponse);
[20:29:16 CDT(-0500)] <denny_cs> has the render parameters set by the portlet.
[20:29:32 CDT(-0500)] <EricDalquist> they are in the DelegationActionResponse?
[20:29:49 CDT(-0500)] <denny_cs> The question is how to transfer these render parameters back to the portlet config page.
[20:30:07 CDT(-0500)] <EricDalquist> ah ok .. so I'm assuming they are in "public IPortalUrlBuilder getRenderUrl()"
[20:30:15 CDT(-0500)] <denny_cs> yes, they are in delegationResponse.getRenderUrl().getParameters();
[20:31:41 CDT(-0500)] <EricDalquist> hrm, seems like a deficiency in the delegation API that there isn't just a way to include everything in the delegationResponse.getRenderUrl in the render URL that is generated for the parent ...
[20:31:52 CDT(-0500)] <denny_cs> I am not familiar with Spring Web Flow. So, I tried to pass the render parameter from the RenderUrl to externalContext.getNativeResponse(), but it does not work.
[20:32:54 CDT(-0500)] <EricDalquist> yeah you could try doing actionResponse.setRenderParameters() but I'm not sure if webflow would just end up overwriting that later
[20:33:14 CDT(-0500)] <denny_cs> I did that...
[20:33:31 CDT(-0500)] <denny_cs> actionResponse.setRenderParameter(key, (String[]) parameters.get(key).toArray());
[20:33:33 CDT(-0500)] <denny_cs> actionRequest.setAttribute(key, parameters.get(key).get(0));
[20:33:47 CDT(-0500)] <EricDalquist> did you see them on the URL after the action?
[20:34:16 CDT(-0500)] <denny_cs> I'll have a look
[20:34:40 CDT(-0500)] <EricDalquist> hrm
[20:34:48 CDT(-0500)] <EricDalquist> yeah this really is a deficiency in the delegation code
[20:35:03 CDT(-0500)] <EricDalquist> I don't think you should need to make any changes in the PortletAdministrationHelper
[20:35:21 CDT(-0500)] <denny_cs> hmm, there is on the URL
[20:35:24 CDT(-0500)] <denny_cs> https://theia.uds.anu.edu.au/uPortal/render.userLayoutRootNode.target.ctf1.uP?pltc_target=20_ctf1_21.ctf1&pltc_type_20_ctf1_21.ctf1=RENDER&pltp_20_ctf1_21.ctf1_errorMessage=Consumer+key+and+secret+are+not+valid&pltp_20_ctf1_21.ctf1_execution=e1s4#ctf1
[20:35:45 CDT(-0500)] <denny_cs> see the pltp_20_ctf1_21.ctf1_errorMessage=Consumer+key+and+secret+are+not+valid
[20:36:58 CDT(-0500)] <EricDalquist> ok, so that does get them into the URL … the problem is to really do it right you would need to add some namespacing logic so that you in the renderRequest handling that does the delegation it knows which parameters need to be passed into the delegate
[20:37:21 CDT(-0500)] <EricDalquist> the real fix, and this will be needed in trunk as well, is to fix the code in PortletDelegationDispatcherImpl.doAction
[20:38:22 CDT(-0500)] <denny_cs> Ok, I will have a look again on the PortletDelegationDispatcherImpl.doAction
[20:38:38 CDT(-0500)] <EricDalquist> I'm still trying to figure out what needs to be done to fix this
[20:39:01 CDT(-0500)] <denny_cs> Could you please explain more about the namespacing logic?
[20:39:43 CDT(-0500)] <EricDalquist> so as a quick fix what you would need to do in the PortalAdminHelper class would be to get all of the parameters from the delegation response
[20:39:56 CDT(-0500)] <EricDalquist> and then add each to the action response as render parameters by doing something like:
[20:40:20 CDT(-0500)] <EricDalquist> actionResponse.setRenderParameter("dlg" + name, valuesArray);
[20:41:38 CDT(-0500)] <EricDalquist> then in the code that handles the delegate rendering (trying to find that now)
[20:43:02 CDT(-0500)] <EricDalquist> so in /uportal-war/src/main/webapp/WEB-INF/flows/edit-portlet/configMode.jsp
[20:43:13 CDT(-0500)] <EricDalquist> you would then grab all of the parameters that start with dlg
[20:43:16 CDT(-0500)] <EricDalquist> strip that off
[20:43:31 CDT(-0500)] <EricDalquist> and pass them into the up:render-delegate tag
[20:45:32 CDT(-0500)] <EricDalquist> hrm
[20:45:34 CDT(-0500)] <EricDalquist> actually
[20:45:37 CDT(-0500)] <EricDalquist> scratch all of that
[20:45:42 CDT(-0500)] <denny_cs> ok
[20:45:59 CDT(-0500)] <EricDalquist> the delegation code doesn't allow the parent portlet to set the render parameters that target the delegate
[20:46:16 CDT(-0500)] <EricDalquist> so we're back to fixing this in PortletDelegationDispatcherImpl
[20:47:16 CDT(-0500)] <EricDalquist> (sorry if this is a little choppy … I'm watching hockey while looking at the code )
[20:48:16 CDT(-0500)] <denny_cs> ha ha ha... thanks... Actually, it is better for me to digest your suggestions...
[20:49:31 CDT(-0500)] <EricDalquist> some background on all the support code around this stuff
[20:49:52 CDT(-0500)] <EricDalquist> uportal uses a set of URL generation classes to fulfill the Pluto URL SPI
[20:50:11 CDT(-0500)] <EricDalquist> those URL generation classes have support for targeting multiple portlets with a single url specifically to deal with delegation
[20:50:52 CDT(-0500)] <denny_cs> is the delegation uportal specific?
[20:50:56 CDT(-0500)] <EricDalquist> yes
[20:51:16 CDT(-0500)] <EricDalquist> and in 3.2 it is only available to portlets that exist inside of the uPortal framework
[20:51:19 CDT(-0500)] <EricDalquist> external portlets cant use it
[20:51:41 CDT(-0500)] <EricDalquist> the problem is in this case when the delegate PortletUrl is being created while the delegate action is executing it apparently isn't being added to the main PortletUrl that is generated for the administration portlet
[20:52:01 CDT(-0500)] <EricDalquist> so when the administration portlets render url is generated at the end of the action handling the url information from the delegate is missing
[20:52:29 CDT(-0500)] <EricDalquist> and to make this even harder I've spent the last 6 months working pretty much exclusively on uP4 where the URL generation code looks completely different
[20:52:38 CDT(-0500)] <EricDalquist> so I'm having to relearn a bit
[20:53:35 CDT(-0500)] <EricDalquist> since you have this running … can you open up the class PortletUrlSyntaxProviderImpl
[20:53:59 CDT(-0500)] <EricDalquist> and set a break point at line 461 It should look like: if (portletWindow.getDelegationParent() != null) {
[20:54:12 CDT(-0500)] <EricDalquist> actually set it at 460
[20:54:15 CDT(-0500)] <EricDalquist> \if (Constants.METHOD_ACTION.equals(request.getAttribute(Constants.METHOD_ID))) {
[20:56:06 CDT(-0500)] <denny_cs> ok, I've set the breakpoint
[20:56:13 CDT(-0500)] <EricDalquist> what we're hoping for is that when your action is happening line 467 is getting called: portletUrl.setDelegatePortletUrl(delegatePortletUrl);
[20:56:29 CDT(-0500)] <EricDalquist> that is what sets the portlet url object created for the delegate on the portlet url object for the parent
[20:58:16 CDT(-0500)] <denny_cs> ok, I'll look into this...
[21:00:12 CDT(-0500)] <EricDalquist> I'm trying to follow the path of the url generation code … so hopefully when you get an answer to that question I'll have the answer to the next step
[21:01:33 CDT(-0500)] <denny_cs> Do you have hint to avoid timeout while debugging uportal using eclipse?
[21:02:34 CDT(-0500)] <EricDalquist> unfortunatly no … other than just setting the timeouts to something absurdly high
[21:02:45 CDT(-0500)] <EricDalquist> I think there is an open feature request for a "no timeout" toggle
[21:02:51 CDT(-0500)] <EricDalquist> would be really nice
[21:03:15 CDT(-0500)] <denny_cs> where can I set the timeout? is it in each portlet?
[21:03:57 CDT(-0500)] <EricDalquist> yeah, it is in the portlet manager. Or if this is a local dev machine connect to the DB and do something like: UPDATE UP_CHANNEL SET TIMEOUT=1000000
[21:04:14 CDT(-0500)] <EricDalquist> note that that SQL was completley from memory so tables and columns may have slightly different names
[21:04:27 CDT(-0500)] <denny_cs> great
[21:06:24 CDT(-0500)] <denny_cs> I'll come back to ask you again tomorrow with more info... Thank you so much... enjoy your hockey match... cheers...
[21:06:36 CDT(-0500)] <EricDalquist> sounds good and good luck
[21:06:49 CDT(-0500)] <EricDalquist> thanks for the help figuring out the bug as well
[21:06:59 CDT(-0500)] <denny_cs> my pleasure...
[21:07:04 CDT(-0500)] <EricDalquist> we really appreciate everyone that can chip in and help get bugs squashed
[21:08:01 CDT(-0500)] <denny_cs> great to have good community... and good leader
[22:04:12 CDT(-0500)] <EricDalquist> denny_cs: you still there?