uPortal IRC Logs-2009-03-20
[04:37:07 EDT(-0400)] * Arvids (n=arvids@213.175.95.54) has joined ##uportal <EricDalquist> in the calling script you do with-attribute key="portletDefinitionDao" value="$ "
[04:46:15 EDT(-0400)] * higmad (n=chatzill@pcit-8752.HIG.SE) has joined ##uportal
[06:03:12 EDT(-0400)] * higmad (n=chatzill@pcit-8752.HIG.SE) has joined ##uportal
[08:54:32 EDT(-0400)] * anastasiac (n=stasia@142.150.154.189) has joined ##uportal
[09:06:48 EDT(-0400)] * tsnfoo (n=tsnfoo@wso-mbp15.test.denison.edu) has joined ##uportal
[09:21:20 EDT(-0400)] * athena (n=athena@99.129.100.66) has joined ##uportal
[09:40:46 EDT(-0400)] * michelled (n=team@142.150.154.193) has joined ##uportal
[10:08:18 EDT(-0400)] * dstn wishes we didn't have to support ie6
[10:14:59 EDT(-0400)] * athena wishes ie6 would die a horrible fiery death
[10:15:13 EDT(-0400)] <dstn> indeed
[10:15:21 EDT(-0400)] <athena> but don't worry!
[10:15:34 EDT(-0400)] <athena> soon you can support ie6, ie7, and ie8 all at the same time
[10:15:38 EDT(-0400)] <athena> it won't be horrible at all!
[10:15:39 EDT(-0400)] * dstn says grrr, google ajax search api loads mixed content
[10:15:45 EDT(-0400)] <dstn> lol
[10:16:07 EDT(-0400)] <athena> for the record, yahoo only seems to certify IE6 as an a-grade browser on win2k
[10:16:56 EDT(-0400)] <dstn> we have a bunch of managed workstations that still use ie6...so I'm not sure they care if its a-grade or not
[10:17:12 EDT(-0400)] <athena> wait . . . seriously?
[10:17:19 EDT(-0400)] <dstn> lol
[10:17:21 EDT(-0400)] <athena> what group is running those?
[10:17:25 EDT(-0400)] <athena> clearly not cluster team.
[10:17:57 EDT(-0400)] <dstn> not sure...most laptops/desktops that people get that are managed have ie6
[10:18:21 EDT(-0400)] <dstn> not sure how far the whole managed workstations goes though
[10:18:27 EDT(-0400)] <dstn> what departments/etc
[10:18:42 EDT(-0400)] <athena> ah, the ones that are peoples personal machines
[10:18:49 EDT(-0400)] <athena> still, that's stupid.
[10:18:54 EDT(-0400)] <athena> and insecure
[10:18:56 EDT(-0400)] <athena> and such
[10:18:59 EDT(-0400)] <dstn> ya, PM's, BA's, etc
[10:19:16 EDT(-0400)] <athena> so, i don't know if anyone has tested uportal w/ ie8
[10:19:19 EDT(-0400)] <athena> i don't have it installed
[10:19:19 EDT(-0400)] <dstn> agreed
[10:19:52 EDT(-0400)] <dstn> 3.1 default definitely isn't supported for ie6
[10:20:03 EDT(-0400)] <dstn> I'm sure howard has tried ie8
[10:20:08 EDT(-0400)] <dstn> don't know about uportal though
[10:20:34 EDT(-0400)] <athena> you mean by yale?
[10:23:42 EDT(-0400)] <athena> 3.1 should work for ie6
[10:23:47 EDT(-0400)] <athena> at least with the default skin
[10:24:38 EDT(-0400)] * colinclark (n=colin@bas2-toronto09-1176406320.dsl.bell.ca) has joined ##uportal
[10:25:38 EDT(-0400)] <dstn> no, 3.1 default skin ie6
[10:25:48 EDT(-0400)] <dstn> headers are all off
[10:25:58 EDT(-0400)] <dstn> controls misaligned
[10:28:09 EDT(-0400)] <dstn> functionally, ie6 works great from what I can see
[10:29:50 EDT(-0400)] <dstn> ah, google book search ssl isn't supported
[10:30:10 EDT(-0400)] <dstn> thats whats causin my mixed content
[10:53:23 EDT(-0400)] * EricDalquist (n=dalquist@bohemia.doit.wisc.edu) has joined ##uportal
[10:55:46 EDT(-0400)] <Arvids> hello!
[10:55:51 EDT(-0400)] <EricDalquist> hello
[10:55:55 EDT(-0400)] <EricDalquist> saw that you posted a jira issue
[10:56:13 EDT(-0400)] <Arvids> yes, and there's one little problem beside that bug
[10:57:07 EDT(-0400)] <Arvids> i tried to pass that parameter to XSL from localeManager, but localeManager returns lv_LV or en_US, but messages.xsl contains en-US...
[10:57:53 EDT(-0400)] <Arvids> so it must be changed to underscore
[10:58:58 EDT(-0400)] <athena> dstn: unfortunately i don't think any of the google APIs support SSL
[10:59:05 EDT(-0400)] <athena> unless that's changed for the newer-style APIs
[10:59:19 EDT(-0400)] <dstn> no, it changed for the new api
[10:59:25 EDT(-0400)] <athena> oh really? that's great to hear!
[10:59:29 EDT(-0400)] <dstn> which is awesome
[10:59:43 EDT(-0400)] <athena> in that case i'll probably support that in the utility portlets
[10:59:55 EDT(-0400)] <athena> if the current request is SSL, request the SSL version of the google script
[11:00:00 EDT(-0400)] <dstn> http://googleajaxsearchapi.blogspot.com/2008/07/ajax-libraries-ssl-support-is-live.html
[11:00:07 EDT(-0400)] <athena> finally! yay
[11:00:09 EDT(-0400)] <dstn> ya, good idea
[11:00:17 EDT(-0400)] <athena> i was kind of hoping that was the case, but hadn't had time to check
[11:00:28 EDT(-0400)] <athena> but that's part of why the yale portlets use the iframe
[11:00:38 EDT(-0400)] <athena> because then at least the non-ssl resource isn't imported unless you need it
[11:00:51 EDT(-0400)] <dstn> ya, the map has that issue
[11:01:00 EDT(-0400)] <athena> yep
[11:04:20 EDT(-0400)] <dstn> but to my previous comment, the books search doesn't support ssl
[11:05:08 EDT(-0400)] <dstn> not sure if that one is in the google "widget"
[11:05:17 EDT(-0400)] <dstn> or utility portlets
[11:05:23 EDT(-0400)] <dstn> whatever they're called
[11:07:59 EDT(-0400)] <athena> interesting
[11:08:07 EDT(-0400)] <athena> so everything else does, but the books don't?
[11:08:26 EDT(-0400)] <athena> right now the widget just has web and news in it, but i anticipate making that a portlet configuration property
[11:12:36 EDT(-0400)] <dstn> ya, found this fairly recent post: http://www.google.com/support/forum/p/booksearch-apis/thread?tid=3916426dca77fa52&hl=en
[11:13:07 EDT(-0400)] <athena> lame.
[11:13:12 EDT(-0400)] <dstn> agreed
[11:13:25 EDT(-0400)] <dstn> but I guess the whole books thing is "experimental"
[11:13:44 EDT(-0400)] <athena> yeah
[11:14:00 EDT(-0400)] <athena> i'd love to get ideas for more utility portlets
[11:14:05 EDT(-0400)] <athena> maybe a package tracking one?
[11:14:07 EDT(-0400)] <athena> that'd be fun
[11:15:22 EDT(-0400)] <athena> do you have any thoughts about calculator or unit conversion stuff?
[11:30:55 EDT(-0400)] * holdorph (n=holdorph@wsip-98-174-242-39.ph.ph.cox.net) has joined ##uportal
[11:32:38 EDT(-0400)] <dstn> jquery 1.3.1's live function is really nice
[11:32:45 EDT(-0400)] <dstn> coworker alerted me to it
[11:33:01 EDT(-0400)] <dstn> athena, packaging sounds pretty cool
[11:33:33 EDT(-0400)] <dstn> you should write a march madness portlet
[11:33:42 EDT(-0400)] * athena sighs
[11:33:48 EDT(-0400)] <dstn> that falls in "utility portlets" right?
[11:33:48 EDT(-0400)] <athena> i would LOVE LOVE LOVE to have a sports portlet
[11:33:56 EDT(-0400)] <dstn> lol
[11:34:01 EDT(-0400)] <athena> it's one of the things that's made me sad forever to be missing
[11:34:03 EDT(-0400)] <athena> however.
[11:34:15 EDT(-0400)] <dstn> uh oh
[11:34:15 EDT(-0400)] <athena> as far as i can tell, there's no free (legal) source of sports data
[11:34:28 EDT(-0400)] <athena> all portlets i know of are paying large amounts of money to someone for score data
[11:34:42 EDT(-0400)] <athena> if you know of a data source though, i would absolutely love to make it into a portlet
[11:34:45 EDT(-0400)] * athena likes her sports
[11:35:02 EDT(-0400)] <athena> what's the live function/
[11:35:03 EDT(-0400)] <athena> ?
[11:37:22 EDT(-0400)] <dstn> you can attach events to elements added to the DOM
[11:37:59 EDT(-0400)] <athena> ah
[11:38:08 EDT(-0400)] <athena> that's cool
[11:38:10 EDT(-0400)] <dstn> there has been a plugin for that purpose called live query but now jquery has something in the core for it
[11:38:49 EDT(-0400)] <dstn> "added to the DOM after runtime" is what I meant to say
[11:43:14 EDT(-0400)] <athena> nice
[11:43:14 EDT(-0400)] <athena>
[11:44:16 EDT(-0400)] <dstn> athena, the google search that uses the new api...have you tried adding it to a page twice?
[11:44:28 EDT(-0400)] <athena> hm, no
[11:44:33 EDT(-0400)] <athena> does it not work?
[11:45:11 EDT(-0400)] <dstn> only getting 1 search box for the tabbed search portlet that use the new api
[11:45:26 EDT(-0400)] <dstn> wonderin if its a problem with my code or similar happens to yours
[11:45:30 EDT(-0400)] <dstn> haven't deployed yours yet
[11:46:05 EDT(-0400)] <athena> interesting
[11:46:39 EDT(-0400)] <athena> try namespacing the javascript callback function name
[11:46:49 EDT(-0400)] <athena> like the one in uportal
[11:47:23 EDT(-0400)] <dstn> I did it as an anonymous inner function, let me try the namespace
[11:54:07 EDT(-0400)] * awills (n=awills@wsip-98-174-242-39.ph.ph.cox.net) has joined ##uportal
[11:58:30 EDT(-0400)] * jayshao (n=jayshao@204.142.89.146) has joined ##uportal
[12:19:46 EDT(-0400)] * colinclark (n=colin@142.150.154.101) has joined ##uportal
[12:45:12 EDT(-0400)] * Arvids (n=arvids@213.175.95.54) has left ##uportal
[12:47:55 EDT(-0400)] * colinclark (n=colin@142.150.154.101) has joined ##uportal
[13:15:01 EDT(-0400)] <dstn> EricDalquist, will you be tagging 3.1-ga today?
[13:15:09 EDT(-0400)] <EricDalquist> I sure hope so
[13:15:15 EDT(-0400)] <EricDalquist> I still have a lot to do though
[13:16:46 EDT(-0400)] <dstn> great!
[13:17:29 EDT(-0400)] * athena cheers!
[13:23:31 EDT(-0400)] <athena> how're things looking EricDalquist? most stuff in decent shape?
[13:23:40 EDT(-0400)] <EricDalquist> I think so
[13:23:51 EDT(-0400)] <EricDalquist> I'm heads down on some UI changes for the registration portlet
[13:26:15 EDT(-0400)] <athena>
[13:43:13 EDT(-0400)] <EricDalquist> any suggestions for a CSS class for form validation errors?
[13:46:22 EDT(-0400)] <athena> yes
[13:46:28 EDT(-0400)] <athena> hang on - there's definitely one defined already
[13:46:37 EDT(-0400)] <athena> trying to think where an exampel would be . . .
[13:46:51 EDT(-0400)] <athena> but i know gary styled the jsr168 error class, and maybe something else
[13:47:11 EDT(-0400)] <athena> maybe one of the admin portlets has an example?
[13:47:41 EDT(-0400)] <EricDalquist> ok
[13:49:52 EDT(-0400)] <athena> yeah, use portlet-msg-error
[13:50:10 EDT(-0400)] <athena> not sure . . . you might want a structure like this or something:
[13:50:47 EDT(-0400)] <athena> <div class="portlet-msg-error"><p>Individual error</p></div>
[13:51:02 EDT(-0400)] <athena> you might try it out and see how multiple errors look
[13:51:04 EDT(-0400)] <EricDalquist> ok
[13:51:19 EDT(-0400)] <athena> i'm guessing that styling above is probably what we want though?
[13:51:50 EDT(-0400)] <EricDalquist> well I'm using the form:errors tag
[13:52:02 EDT(-0400)] <EricDalquist> so I'm just going to give it cssClass="portlet-msg-error"
[13:52:12 EDT(-0400)] <athena> hm
[13:52:14 EDT(-0400)] <athena> so maybe something like <div class="portlet-msg-error"><spring:errors path="" element="p" delimiter=""/></div>
[13:52:34 EDT(-0400)] <EricDalquist> ok
[13:52:41 EDT(-0400)] <athena> that should keep them all contained nicely in the same error box
[13:56:17 EDT(-0400)] <EricDalquist> problem with that is the div shows up no matter what ... I guess I need to figure out how to check for errors by hand
[13:56:50 EDT(-0400)] <athena> oh
[13:56:54 EDT(-0400)] <athena> yes
[13:57:04 EDT(-0400)] <athena> just use the spring:hasBindErrors tag to wrap it
[14:02:41 EDT(-0400)] <athena> just read jim's suggestions - they sound pretty reasoanble
[14:15:32 EDT(-0400)] <EricDalquist> athena: I just committed theupdates
[14:15:42 EDT(-0400)] <athena> oh cool
[14:15:46 EDT(-0400)] <athena> do you want me to take a look?
[14:15:46 EDT(-0400)] <EricDalquist> do you have a minute to update and take a quick review?
[14:15:48 EDT(-0400)] <athena> yeah
[14:15:56 EDT(-0400)] <athena> just give me a minute or two to finish what i'm working on
[14:15:59 EDT(-0400)] <EricDalquist> One thing I did was split out org and sys info into two forms
[14:16:35 EDT(-0400)] <athena> oh ok
[14:16:47 EDT(-0400)] <athena> nice how easy it is to do that w/ web flow
[14:17:02 EDT(-0400)] <athena> where are we going to have the portlet?
[14:17:13 EDT(-0400)] <athena> just in the admin layout?
[14:17:25 EDT(-0400)] <EricDalquist> where it is now
[14:17:28 EDT(-0400)] <EricDalquist> welcome and admin
[14:17:29 EDT(-0400)] <athena> ok
[14:17:31 EDT(-0400)] <athena> sounds good
[14:17:32 EDT(-0400)] <EricDalquist> only permissioned for admins
[14:17:34 EDT(-0400)] <athena> yeah
[14:17:37 EDT(-0400)] <EricDalquist> yeah
[14:17:48 EDT(-0400)] <EricDalquist> webflow really makes multi-view portlets so much easier
[14:17:48 EDT(-0400)] * athena wishes eclipse took less time to start up
[14:17:52 EDT(-0400)] <athena> yeah
[14:18:08 EDT(-0400)] <athena> that form wizard thing never really made sense
[14:24:42 EDT(-0400)] <EricDalquist> not at all
[14:24:45 EDT(-0400)] <EricDalquist> and it was very limiting
[14:25:00 EDT(-0400)] <EricDalquist> plus being able to do per-view validation methods makes flows much easier
[14:25:11 EDT(-0400)] <EricDalquist> brb lunch
[14:29:30 EDT(-0400)] <athena>
[14:29:40 EDT(-0400)] * colinclark (n=colin@142.150.154.101) has joined ##uportal
[14:35:15 EDT(-0400)] <athena> looks good EricDalquist
[14:35:45 EDT(-0400)] <EricDalquist> great
[14:36:41 EDT(-0400)] <athena> saying explicitly that the publishing doesn't include contact information would probably be a good idea though
[14:36:53 EDT(-0400)] <EricDalquist> ah yeah{color}
[14:37:19 EDT(-0400)] <athena> maybe change " It's OK to share my information (e.g. List deployment on jasig.org) " to just "It's OK to include my information in the list on jasig.org"
[14:37:21 EDT(-0400)] <athena> no need to say share
[14:37:31 EDT(-0400)] <EricDalquist> ok
[14:40:42 EDT(-0400)] <athena> but yeah, i imagine email address is the thing people woudl be most worried about maybe
[14:56:36 EDT(-0400)] <EricDalquist> ok, updated
[14:57:46 EDT(-0400)] <athena> yay
[14:58:00 EDT(-0400)] <athena> by the way, i think i might have been wrong about how the spring:errors tag works
[14:58:17 EDT(-0400)] <athena> did it work ok for multiple errors?
[14:58:21 EDT(-0400)] <EricDalquist> yeah
[14:58:23 EDT(-0400)] <EricDalquist> well
[14:58:27 EDT(-0400)] <EricDalquist> I had to tweak it a little
[14:58:30 EDT(-0400)] <EricDalquist> path="*"
[14:58:40 EDT(-0400)] <athena> yeah
[14:58:47 EDT(-0400)] <athena> sorry i left that out
[14:59:12 EDT(-0400)] <athena> but i think we might instead want <form:errors path="*" element="p"/>
[14:59:33 EDT(-0400)] <athena> looks like it puts the whole thing in the element, rather than wrapping each error string
[14:59:41 EDT(-0400)] <athena> i always mix that up
[14:59:49 EDT(-0400)] <EricDalquist> <div class="portlet-msg-error"><form:errors path="*" element="p"/></div>
[14:59:54 EDT(-0400)] <EricDalquist> that is what is there now
[15:00:21 EDT(-0400)] <EricDalquist> it still puts a <br/> after each error
[15:01:58 EDT(-0400)] <athena> oh ok
[15:02:02 EDT(-0400)] <athena> sounds good
[15:14:01 EDT(-0400)] <athena> anyone know how to specify the doctype with the newer-jstl style jsp:root type stuff?
[15:14:32 EDT(-0400)] <EricDalquist> nope
[15:15:56 EDT(-0400)] <dstn> not i
[15:16:30 EDT(-0400)] <athena> ahhh!! finally
[15:16:38 EDT(-0400)] <athena> been looking for a while, lol
[15:16:44 EDT(-0400)] <athena> going to bookmarks this page: http://ndpsoftware.com/JSPXMLCheatSheet.html
[15:16:52 EDT(-0400)] <athena> so hard to find documentation on the newer stuff
[15:19:57 EDT(-0400)] <athena> <jsp:output doctype-root-element="" doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" />
[15:20:17 EDT(-0400)] <athena> it's so nice to be able to have JSP pages that validate
[15:20:20 EDT(-0400)] <EricDalquist> hrm
[15:20:26 EDT(-0400)] <EricDalquist> apparently the xpath lang function kind of sucks
[15:20:48 EDT(-0400)] <EricDalquist> I have:
[15:20:48 EDT(-0400)] <EricDalquist> <tokens xml:lang="en">
[15:21:05 EDT(-0400)] <EricDalquist> but when my lang is "en_US" it fails to find it
[15:21:48 EDT(-0400)] <athena> ugh
[15:25:26 EDT(-0400)] * anastasiac (n=team@142.150.154.189) has joined ##uportal
[16:54:00 EDT(-0400)] <awills> anyone know if there's something special i have to do w/ InitializingBean.afterPropertiesSet()? it doesn't appear to have been called on my bean
[16:54:25 EDT(-0400)] <EricDalquist> how are you creating the application context?
[16:56:31 EDT(-0400)] <awills> i copied the approach from a forum post i found online: new ClassPathXmlApplicationContext("path/to/applicationContext.xml")
[16:57:01 EDT(-0400)] <EricDalquist> ok, that sounds right. I know some initialization stuff doesn't happen with a plain BeanFactory versus an app context
[16:57:14 EDT(-0400)] <EricDalquist> other than implementing InitializingBean I don't think you do anything
[16:57:25 EDT(-0400)] <EricDalquist> what about lazy-init?
[16:57:45 EDT(-0400)] <EricDalquist> like is afterPropertiesSet called before the bean is used?
[16:59:05 EDT(-0400)] <awills> not sure i understand... getting that method to be called is that I'm after
[16:59:21 EDT(-0400)] <awills> it doesn't appear to have been called when i get a reference to the bean
[16:59:21 EDT(-0400)] <EricDalquist> so spring can lazily initialize beans
[16:59:30 EDT(-0400)] <awills> yeah, is that the default?
[16:59:47 EDT(-0400)] <EricDalquist> I don't think so, I think the default is eager
[17:00:08 EDT(-0400)] <EricDalquist> there is a context wide attribute you can set on the root element of the xml
[17:00:17 EDT(-0400)] <EricDalquist> and a per-bean attribute to control it
[17:15:21 EDT(-0400)] <awills> I'm a dork, disregard previous inquery... everything is as it should be
[17:16:32 EDT(-0400)] <EricDalquist>
[17:28:21 EDT(-0400)] * apetro (n=apetro@wsip-98-174-242-39.ph.ph.cox.net) has joined ##uportal
[17:33:56 EDT(-0400)] <awills> so if there aree commons-logging statements written durring a uP unit test, is there somewhere special that they go?
[17:34:27 EDT(-0400)] <EricDalquist> uportal-impl/src/test/resources/log4j.properties
[17:45:29 EDT(-0400)] <awills> the context files in test/resources/properties/contexts – do these comprise a comprehensive portal env for test purposes? like, tied to an in-memory dataSource and so forth?
[17:45:37 EDT(-0400)] <EricDalquist> no
[17:45:46 EDT(-0400)] <EricDalquist> they are there for legacy code
[17:45:54 EDT(-0400)] <EricDalquist> that has unit tests but uses the portal app context locator
[17:46:07 EDT(-0400)] <EricDalquist> I should go add comments to them that they shouldn't be used
[17:46:16 EDT(-0400)] <EricDalquist> unit tests should be as self contained as possible
[17:46:31 EDT(-0400)] <EricDalquist> so if the test needs some minimal app context it sets it up itself
[17:46:47 EDT(-0400)] <EricDalquist> spring does have some nice abstract test classes which greatly reduce the work
[17:48:23 EDT(-0400)] <awills> yeah i'm in a quandry... i'm trying to write unit tests for imp/exp... but they leverage framework classes and resources... i'm trying to imagine how I might insinuate a mock object in a manner that would get picked up when i need it
[17:49:00 EDT(-0400)] <EricDalquist> well the hardest will be when they reference a group API
[17:49:13 EDT(-0400)] <EricDalquist> that is the code that causes those context files to be there
[17:49:31 EDT(-0400)] <EricDalquist> for things that you're getting from an application context ... I'm not sure
[17:49:36 EDT(-0400)] <awills> does JUnit allow you to provide a custom ClassLoader? (sounds like a special torture)
[17:49:43 EDT(-0400)] <EricDalquist> we almost need to restructure the import/export
[17:49:48 EDT(-0400)] <EricDalquist> I know you have a app context task
[17:50:07 EDT(-0400)] <EricDalquist> that exposes all of a spring app context as request attributes in the script right?
[17:50:16 EDT(-0400)] <awills> yep
[17:50:43 EDT(-0400)] <EricDalquist> what if we could point something like that to PortalAppCotnextLocator in the root import/export/delete scripts
[17:51:09 EDT(-0400)] <awills> i also have this: http://uportal.pastebin.com/d629fb393
[17:51:11 EDT(-0400)] <EricDalquist> and expose all beans as something like portalContext.PortalDB
[17:51:33 EDT(-0400)] <EricDalquist> then providing mock objects to the specific import/export scripts can be done via request attributes
[17:51:39 EDT(-0400)] <EricDalquist> much more in the DI style
[17:52:06 EDT(-0400)] <awills> hmmm... yes, that kind of thing would work
[17:52:36 EDT(-0400)] <EricDalquist> and fyi: http://static.springframework.org/spring/docs/2.5.x/reference/xsd-config.html#xsd-config-body-schemas-util
[17:52:44 EDT(-0400)] <EricDalquist> a way to create named collections
[17:53:07 EDT(-0400)] <EricDalquist> I've been kind of thinking of the namespaced beans thing for a while
[17:53:15 EDT(-0400)] <EricDalquist> it would remove direct usage of PORTAL_CONTEXT everywhere
[17:53:34 EDT(-0400)] <EricDalquist> the only explicit lookup would be once at the root import/export/delete
[17:53:41 EDT(-0400)] <EricDalquist> it would make providing implementations much easier
[17:54:38 EDT(-0400)] <awills> so this <util:> stuff is a better way to do <bean class="HashMap"><constructor-arg><map>...?
[17:55:12 EDT(-0400)] <EricDalquist> yeah
[17:55:34 EDT(-0400)] <EricDalquist> <util:map id="emails">
[17:55:43 EDT(-0400)] <EricDalquist> can even do
[17:55:43 EDT(-0400)] <EricDalquist> <util:map id="emails" map-class="java.util.TreeMap">
[17:55:58 EDT(-0400)] <EricDalquist> since Spring 2.0
[17:56:28 EDT(-0400)] <awills> that all sounds great, but I would like to request 1 nuance... i really need the individual scripts to be callable from other places... have stable APIs
[17:57:33 EDT(-0400)] <EricDalquist> right
[17:57:39 EDT(-0400)] <EricDalquist> so you could expect the caller to do the translation
[17:57:54 EDT(-0400)] <EricDalquist> if export-preferences requires a IPortletDefinitionDao
[17:58:19 EDT(-0400)]
[17:58:41 EDT(-0400)] <EricDalquist> we could do that right now even
[17:58:56 EDT(-0400)] <EricDalquist> change things so PORTAL_CONTEXT is only ever referenced in the top level import/export scripts
[17:59:13 EDT(-0400)] <EricDalquist> and they just have to provide all required dependencies into the script
[17:59:37 EDT(-0400)] <EricDalquist> or we go more down the road of having the scripts configured as spring-beans with all the DI done in a spring XML document
[17:59:52 EDT(-0400)] <awills> ah but all import scripts need to have the same dependencies... the XML itself tells you which one to use
[18:00:10 EDT(-0400)] <EricDalquist> and the root import/export scripts do a lookup for a bean named "export-layout.crn" which is of type Task (orwhatever the root object of a crn script is)
[18:00:15 EDT(-0400)] <awills> yeah the 2nd is better
[18:00:21 EDT(-0400)] <awills> yeah exactly
[18:00:25 EDT(-0400)] <awills> that would work
[18:00:35 EDT(-0400)] <EricDalquist> that would be good too
[18:00:49 EDT(-0400)] <EricDalquist> because then tools like SpringIDE will tell us when something is broken
[18:01:00 EDT(-0400)] <awills> that way if I want tto write a unit test for a script, i just have to provide a context w/ mock objects for what i need
[18:01:09 EDT(-0400)] <EricDalquist> yup
[18:01:16 EDT(-0400)] <EricDalquist> or just skip the context and provide it directly in code
[18:01:23 EDT(-0400)] <EricDalquist> which would make the test faster
[18:02:07 EDT(-0400)] <awills> ah yes, that would work too... though some elements I might want to provide in a common context
[18:02:16 EDT(-0400)] <awills> like dataSource
[18:02:30 EDT(-0400)] <EricDalquist> sure
[18:03:22 EDT(-0400)] <EricDalquist> I think the existing JPA dao unit tests have a little minimal app context they fire up
[18:03:39 EDT(-0400)] <awills> yeah i saw that
[18:04:16 EDT(-0400)] <EricDalquist> take a look at AbstractSingleSpringContextTests
[18:04:23 EDT(-0400)] <EricDalquist> http://static.springframework.org/spring/docs/2.5.x/api/org/springframework/test/AbstractSingleSpringContextTests.html
[18:04:37 EDT(-0400)] <EricDalquist> makes it easy to load up an app context for your test
[18:04:44 EDT(-0400)] <EricDalquist> or even AbstractDependencyInjectionSpringContextTests
[18:04:45 EDT(-0400)] <awills> when i do this: http://uportal.pastebin.com/d474dd610 the CRN xml is read & fully processed into Java objects in the afterPropertiesSet() method, so you'd know at startup if something was wrong
[18:05:00 EDT(-0400)] <EricDalquist> nice
[18:05:18 EDT(-0400)] <EricDalquist> we have one unit test that loads up the entire app context eagerly
[18:05:26 EDT(-0400)] <EricDalquist> so we should know at test time if a script fails to compile
[18:05:36 EDT(-0400)] <awills> ah good
[18:17:56 EDT(-0400)] * tsnfoo (n=tsnfoo@cpe-65-24-108-125.columbus.res.rr.com) has joined ##uportal
[18:28:53 EDT(-0400)] <EricDalquist> well I'm heading out for the night
[18:29:13 EDT(-0400)] <EricDalquist> I'll be on periodically over the weekend ... have a whole bunch of uportal manual work to do
[18:29:21 EDT(-0400)] <athena> take care, eric!
[18:29:26 EDT(-0400)] <EricDalquist> thanks
[18:29:31 EDT(-0400)] <athena> i'll be around on and off ish if you need anything
[18:29:34 EDT(-0400)] <EricDalquist> thanks
[18:29:41 EDT(-0400)] <EricDalquist> check the dev list
[18:29:48 EDT(-0400)] <EricDalquist> there is a note about the release
[18:30:33 EDT(-0400)] <EricDalquist> and I'm excited about getting import/export unit tests awills
[18:30:59 EDT(-0400)] <EricDalquist> feel free to ping the dev list about them if you have any questions about how best to get them in there
[18:31:04 EDT(-0400)] <EricDalquist> I'll be checking that obsesively
[18:31:08 EDT(-0400)] <EricDalquist> bye
[18:32:37 EDT(-0400)] * tsnfoo (n=tsnfoo@cpe-65-24-108-125.columbus.res.rr.com) has joined ##uportal
[21:06:15 EDT(-0400)] * awills (n=awills@wsip-98-174-242-39.ph.ph.cox.net) has left ##uportal