uPortal IRC Logs-2008-05-08
[00:58:50 EDT(-0400)] * EiNZTEiN (n=einztein@205.241.140.128) has joined ##uportal <esm> @RunWithFilter( filters = )
[01:09:42 EDT(-0400)] * EiNZTEiN (n=einztein@205.241.140.128) has joined ##uportal
[01:13:49 EDT(-0400)] * EiNZTEiN (n=einztein@205.241.140.128) has joined ##uportal
[01:54:38 EDT(-0400)] * EiNZTEiN (n=einztein@205.241.140.128) has joined ##uportal
[02:09:25 EDT(-0400)] * esm (n=esm@207-53-193-157.dynamic-dsl.qis.net) has joined ##uportal
[02:23:44 EDT(-0400)] * esm_ (n=esm@207-53-193-157.dynamic-dsl.qis.net) has joined ##uportal
[02:24:34 EDT(-0400)] * esm (n=esm@207-53-193-157.dynamic-dsl.qis.net) has joined ##uportal
[02:31:16 EDT(-0400)] * esm_ (n=esm@207-53-193-157.dynamic-dsl.qis.net) has joined ##uportal
[02:32:11 EDT(-0400)] * esm (n=esm@207-53-193-157.dynamic-dsl.qis.net) has joined ##uportal
[02:33:02 EDT(-0400)] * esm_ (n=esm@207-53-193-157.dynamic-dsl.qis.net) has joined ##uportal
[09:17:53 EDT(-0400)] * anastasiac (n=team@142.150.154.105) has joined ##uportal
[09:26:28 EDT(-0400)] * MarkRogers (n=MarkRoge@addhcp129.cc.umanitoba.ca) has joined ##uportal
[09:31:30 EDT(-0400)] * EricDalquist (n=dalquist@bohemia.doit.wisc.edu) has joined ##uportal
[09:42:45 EDT(-0400)] * EiNZTEiN (n=einztein@205.241.143.4) has joined ##uportal
[10:04:25 EDT(-0400)] * michelled (n=team@142.150.154.197) has joined ##uportal
[10:33:37 EDT(-0400)] * athena7 (n=athena7@tp-wireless.its.yale.edu) has joined ##uportal
[10:44:55 EDT(-0400)] * EiNZTEiN (n=einztein@205.241.143.4) has joined ##uportal
[10:49:10 EDT(-0400)] * holdorph (n=holdorph@wsip-98-174-242-39.ph.ph.cox.net) has joined ##uportal
[10:54:18 EDT(-0400)] * esm (n=esm@207-53-193-157.dynamic-dsl.qis.net) has joined ##uportal
[10:57:44 EDT(-0400)] * jessm (n=Jess@cpe-069-134-127-060.nc.res.rr.com) has joined ##uportal
[11:13:39 EDT(-0400)] * colinclark (n=colin@146.96.22.136) has joined ##uportal
[11:17:25 EDT(-0400)] * holdorph (n=holdorph@wsip-98-174-242-39.ph.ph.cox.net) has joined ##uportal
[11:20:07 EDT(-0400)] * colinclark (n=colin@146.96.22.136) has joined ##uportal
[11:23:59 EDT(-0400)] * athena7_ (n=athena7@lumina.its.yale.edu) has joined ##uportal
[12:02:01 EDT(-0400)] * colinclark (n=colin@146.96.22.136) has joined ##uportal
[12:39:52 EDT(-0400)] * jessm (n=Jess@fw.intrah.org) has joined ##uportal
[12:46:56 EDT(-0400)] * colinclark (n=colin@146.96.22.136) has joined ##uportal
[12:47:55 EDT(-0400)] <colinclark> EricDalquist: Thanks so much for your response about vendor branches.
[12:48:01 EDT(-0400)] <EricDalquist> yup
[12:48:22 EDT(-0400)] <EricDalquist> we do a lot of vendor branch work
[12:48:31 EDT(-0400)] <EricDalquist> it is kind of a pain at times
[12:48:35 EDT(-0400)] <EricDalquist> but better than just modifying code
[12:49:47 EDT(-0400)] * holdorph (n=holdorph@wsip-98-174-242-39.ph.ph.cox.net) has joined ##uportal
[12:50:22 EDT(-0400)] <colinclark> EricDalquist: Yeah, that's what I figured.
[12:50:31 EDT(-0400)] <colinclark> Just modifying code is more painful in the long run, I think.
[12:50:53 EDT(-0400)] <EricDalquist> yeah
[12:51:02 EDT(-0400)] <EricDalquist> maintenance becomes hard
[12:51:18 EDT(-0400)] <EricDalquist> the best way is if the app you're modifying provides enough hooks that you don't have to actually modify their code
[12:51:24 EDT(-0400)] <EricDalquist> but that doesn't sound like the case here
[12:51:29 EDT(-0400)] <colinclark> No, definitely not.
[12:51:41 EDT(-0400)] <colinclark> I think it's pretty standard for some PHP apps to just dive in and start hacking.
[12:51:51 EDT(-0400)] <colinclark> Typical for "old generation" JavaScript, too.
[13:09:19 EDT(-0400)] * holdorph (n=holdorph@wsip-98-174-242-39.ph.ph.cox.net) has joined ##uportal
[15:37:27 EDT(-0400)] * jessm (n=Jess@mail.intrah.org) has joined ##uportal
[16:04:28 EDT(-0400)] <esm> have to drop this off:
[16:04:58 EDT(-0400)] <esm> @RunWith( FilteringTestRunner.class )
[16:04:58 EDT(-0400)]
[16:04:58 EDT(-0400)] <esm> public abstract class AbstractServiceTest
[16:05:11 EDT(-0400)] <EricDalquist> what is that from?
[16:05:14 EDT(-0400)] <esm> me
[16:05:27 EDT(-0400)] <esm> so i can execute tests like
[16:05:37 EDT(-0400)] <esm> @Test
[16:05:37 EDT(-0400)] <esm> @DspaceDatabaseDialect( "hsql" )
[16:05:37 EDT(-0400)] <esm> public void testGetAllPolicesForCollectionsHsql() throws Exception
[16:06:00 EDT(-0400)] <EricDalquist> neat
[16:06:07 EDT(-0400)] <esm> the test method can get filtered out if i'm not running hsql
[16:06:30 EDT(-0400)] <EricDalquist> ah
[16:06:32 EDT(-0400)] <esm> i've got no Spring at my disposal. Not sure if spring coudl help here or not
[16:07:00 EDT(-0400)] <esm> but i have a problem where i want to execute a test that verifies seed data for unit tests got loaed properly.
[16:07:23 EDT(-0400)] <esm> and HSQL does some things differently than Postgres.
[16:08:28 EDT(-0400)] <esm> if you seed data and allow the database to generate the primary keys (say an auto increment int), hsql starts at 0, postgres sequences start at 1
[16:08:40 EDT(-0400)] <EricDalquist> ah
[16:08:40 EDT(-0400)] <EricDalquist> yeah
[16:08:47 EDT(-0400)] <EricDalquist> that could be annoying
[16:08:48 EDT(-0400)] <esm> and the orm tool i'm using doesn't let me specify the starting sequence
[16:09:02 EDT(-0400)] <esm> yeah it really sucks.
[16:09:06 EDT(-0400)] <EricDalquist> unit tests around daos are allways a pain
[16:09:33 EDT(-0400)] <esm> yes, yes they are. Its still ugly
[16:09:39 EDT(-0400)] <esm> because I'll have:
[16:10:07 EDT(-0400)] <esm> testXforHsql and testXforPostgres and they need to execute the same test logic but make different assertions.
[16:10:26 EDT(-0400)] <esm> well the same assertions but with different expected values
[16:10:48 EDT(-0400)] <EricDalquist> uhg
[16:10:59 EDT(-0400)] <esm> yeah.
[16:11:12 EDT(-0400)] <esm> or i coudl not just care and punt on the test.
[16:11:34 EDT(-0400)] <esm> assertEquals( 0, p1.getPolicyid() ); for hsql becomes assertEquals( 1, p1.getPolicyid() ); for postgres.
[16:12:01 EDT(-0400)] * michelled (n=team@142.150.154.197) has left ##uportal
[16:12:19 EDT(-0400)] <esm> JMockit 0.94 came out. It works. The earlier one I tried didn't.
[16:12:36 EDT(-0400)] <esm> so its really nice for mocking static methods and/or classes.
[16:12:47 EDT(-0400)] <EricDalquist> you need an assertions Map that you create depending on the db
[16:12:51 EDT(-0400)] <EricDalquist> and pass in to each test
[16:13:20 EDT(-0400)] <esm> cool. That's why I started talking... cause I knew you'd have a good idea.
[16:13:22 EDT(-0400)] <esm>
[16:13:24 EDT(-0400)] <EricDalquist> or maybe a testX(Map asserts) with the testXForHsql() and testXForPostgres() methods that just build the Map and call testX(Map)
[16:13:26 EDT(-0400)] <EricDalquist>
[16:13:35 EDT(-0400)] <EricDalquist> you know how much I lothe duplicating code
[16:14:51 EDT(-0400)] <esm> right. I had approached it the other way and extracted the common test code into a single method, and have testXHsql call the method and then make the assertions
[16:15:01 EDT(-0400)] <esm> but the assertion map gets rid of the duplicate assert* statements too
[16:15:03 EDT(-0400)] <esm> cool
[16:15:21 EDT(-0400)] <EricDalquist> yeah and with generics you should be pretty safe from casting
[16:15:34 EDT(-0400)] <esm> yup no worries there.
[16:15:38 EDT(-0400)] <EricDalquist> just remember yo use constants for the keys
[16:15:45 EDT(-0400)] <EricDalquist> or you'll eventually have fun typo bugs to figure out
[16:15:55 EDT(-0400)] <EricDalquist> "why the @!#! is this null???"
[16:16:00 EDT(-0400)] <EricDalquist> I'm good at typo bugs
[16:16:05 EDT(-0400)] <EricDalquist> (creating them that is)
[16:16:06 EDT(-0400)] <athena7_> i hate that
[16:16:09 EDT(-0400)] <esm> right
[16:16:29 EDT(-0400)] <EricDalquist> which is also why I like strongly typed static languages
[16:16:39 EDT(-0400)] <EricDalquist> I make to many typos for dynamic ones
[16:16:44 EDT(-0400)] <athena7> lol
[16:16:45 EDT(-0400)] <EricDalquist> too*
[16:16:50 EDT(-0400)] <athena7> i always liked the bug in the cas client
[16:17:00 EDT(-0400)] <athena7> where something's mispelled and the api docs apologize for it
[16:17:30 EDT(-0400)] <EricDalquist> lol
[16:18:56 EDT(-0400)] <EricDalquist> oh esm while you're here ...
[16:19:12 EDT(-0400)] <esm> i'm always here just lurking...
[16:19:17 EDT(-0400)] <EricDalquist> I remember you mentioning a maven plugin a while back that consolidates all of the license files for a projects depdendecies
[16:19:23 EDT(-0400)] <athena7> ooh neat
[16:19:31 EDT(-0400)] <EricDalquist> or am I just imaging that
[16:20:01 EDT(-0400)] <esm> yeah its there
[16:20:05 EDT(-0400)] <esm> remote-resources-plugin
[16:20:12 EDT(-0400)] <esm> but
[16:20:20 EDT(-0400)] <esm> it doesn't really "consolidate"
[16:20:23 EDT(-0400)] <esm> it generates
[16:20:28 EDT(-0400)] <esm> Pluto uses it
[16:20:37 EDT(-0400)] <esm> so that may give you a good example
[16:20:39 EDT(-0400)] <esm> (or not)
[16:20:43 EDT(-0400)] <EricDalquist> ok
[16:21:21 EDT(-0400)] <esm> It walks the poms of the dependencies and spits out a LICENSE and README using velocity templates
[16:22:06 EDT(-0400)] <esm> so it amy or may not do what you want.
[16:22:16 EDT(-0400)] <esm> i found the buildhelper plugin the other day
[16:22:19 EDT(-0400)] <esm> very helpful
[16:22:19 EDT(-0400)] <EricDalquist> and of course depends on the dependencies being well setup
[16:22:23 EDT(-0400)] <esm> ah
[16:22:26 EDT(-0400)] <esm> well yes
[16:22:32 EDT(-0400)] <esm> the kicker is incomplete POM metadata
[16:23:02 EDT(-0400)] <esm> so there is a file which you can add which gets merged with POM of the dependency to supply missing values.
[16:24:09 EDT(-0400)] <esm> Mockit.redefineMethods( AuthorizeManager.class, MockAuthorizeManager.class );
[16:24:50 EDT(-0400)] <esm> for method signatures that are common to the production class and the mock class, method calls to the production class are executed on the Mock.
[16:25:09 EDT(-0400)] <EricDalquist> neat
[16:25:39 EDT(-0400)] * colinclark (n=colin@146.96.22.136) has joined ##uportal
[16:25:39 EDT(-0400)] <esm> great for mocking static methods and classes (for those poorly designed codebases that use static methods and classes all the time; like if you didn't want to use and OO language then why did you pick Java?)
[16:26:59 EDT(-0400)] <esm> have to instrument the runtime with a java agent though.
[16:27:04 EDT(-0400)] <esm> makes for an interesting maven pom
[16:27:29 EDT(-0400)] <EricDalquist> I bet
[16:27:44 EDT(-0400)] <EricDalquist> oh did I tell you I ran into a javac bug in JDK6?
[16:28:29 EDT(-0400)] <esm> no
[16:28:33 EDT(-0400)] <esm> awesome!
[16:28:35 EDT(-0400)] <esm> (not really)
[16:29:09 EDT(-0400)] <EricDalquist> yeah
[16:29:19 EDT(-0400)] <esm> how long did that take you to sort out
[16:29:27 EDT(-0400)] <EricDalquist> so you can specific package level annotations via a package-info.java file
[16:29:36 EDT(-0400)] <esm> right
[16:29:41 EDT(-0400)] <EricDalquist> and we do that in up3 to map custom UserTypes in hibernate
[16:30:02 EDT(-0400)] <EricDalquist> with JDK6 javac if you target JDK5 for code-spec it doesn't do it right for those files
[16:30:07 EDT(-0400)] <EricDalquist> so they fail to load in JDK5
[16:30:27 EDT(-0400)] <esm> oh d'oh
[16:30:35 EDT(-0400)] <EricDalquist> https://www.ja-sig.org/svn/uPortal/trunk/pom.xml
[16:30:37 EDT(-0400)] <EricDalquist> look at the very bottom
[16:30:54 EDT(-0400)] <EricDalquist> some very helpful person at sun wrote a maven plugin to post-process for these .class files and fix them
[16:30:54 EDT(-0400)] <esm> oh man
[16:31:03 EDT(-0400)] <EricDalquist> since they still haven't fixed the javac bug
[16:31:07 EDT(-0400)] <esm> thats pretty cool though, that they did that
[16:31:11 EDT(-0400)] <EricDalquist> yeah
[16:31:14 EDT(-0400)] <EricDalquist> saved my but
[16:31:21 EDT(-0400)] <esm> uh-huh... that's a release killer
[16:31:25 EDT(-0400)] <EricDalquist> otherwise I would have to be sure to compile all the releases on JDK5
[16:31:39 EDT(-0400)] <esm> oh sure
[16:31:44 EDT(-0400)] <esm> well a pita to be sure
[16:31:49 EDT(-0400)] <athena7> you know i ran into problems with that for 1.4/1.5
[16:31:54 EDT(-0400)] <athena7> with sakai i think
[16:32:00 EDT(-0400)] <esm> you trying Java 6 on Mac yet?
[16:32:00 EDT(-0400)] <athena7> pretty cool that there's a plugin for it now
[16:32:02 EDT(-0400)] <athena7> no
[16:32:09 EDT(-0400)] <athena7> in part because of that issue, actually
[16:32:20 EDT(-0400)] <athena7> and because it's annoying and hard to run 2 jvms on the same machine
[16:32:24 EDT(-0400)] <esm> yeah.
[16:32:26 EDT(-0400)] <athena7> how's java 1.6 looking on the mac now?
[16:32:37 EDT(-0400)] <athena7> i'm getting a new machine tonight, should i go for the upgrade?
[16:32:42 EDT(-0400)] <esm> oh i haven't tried it
[16:32:44 EDT(-0400)] <EricDalquist> I have the upgrade
[16:32:48 EDT(-0400)] <esm> supposedly it is only 64 bit
[16:32:50 EDT(-0400)] <EricDalquist> and they have a way to do multiple JVMs now
[16:32:52 EDT(-0400)] <holdorph> bah, /usr/local/jdk1.6 and /usr/local/jdk1.5, easy peasy
[16:33:01 EDT(-0400)] * athena7 whines sadly
[16:33:03 EDT(-0400)] <esm> yeah. If you install the update they sit side by side
[16:33:07 EDT(-0400)] <EricDalquist> and it leaves you on JDK5
[16:33:12 EDT(-0400)] <esm> yup
[16:33:18 EDT(-0400)] <esm> I sitll haven't installed it though.
[16:33:22 EDT(-0400)] <athena7> you had to do stupid annoying things before
[16:36:32 EDT(-0400)] <athena7> hm, i need to wipe my desktop
[16:36:53 EDT(-0400)] <athena7> anyone got favorite tools these days? linux install cd have that on it by default/
[16:37:01 EDT(-0400)] <EricDalquist> dban
[16:37:12 EDT(-0400)] <EricDalquist> just grab an iso and burn it
[16:37:21 EDT(-0400)] <EricDalquist> it's just a few MB
[16:47:53 EDT(-0400)] <athena7> oh cool
[17:19:22 EDT(-0400)] <EricDalquist> playing with nexus
[17:19:44 EDT(-0400)] <EricDalquist> looks like the best local/proxy repository manager I've tried yet
[17:20:02 EDT(-0400)] <EricDalquist> primarly because I could actually get it working in like less than a few hours
[17:23:32 EDT(-0400)] <esm> nice
[17:23:41 EDT(-0400)] <esm> just foudn out nabble has feeds for their lists.
[17:23:43 EDT(-0400)] <esm> so nice
[17:24:12 EDT(-0400)] <esm> subscribe to a list, but disable receipt of list mail (so you can post)
[17:24:20 EDT(-0400)] <esm> then to "read" the list open it up in your news reader
[17:24:29 EDT(-0400)] <EricDalquist> ah
[17:24:29 EDT(-0400)] <esm> and keep the noise out of your inbox
[17:24:45 EDT(-0400)] <esm> its nice if you just want to keep tabs
[17:24:54 EDT(-0400)] <esm> obviously the news reader doesn't have threading and all that
[17:25:19 EDT(-0400)] <EricDalquist> yup
[17:25:29 EDT(-0400)] <EricDalquist> I may do that for some of the lists that I'm on that I don't really care about too much
[17:26:16 EDT(-0400)] <esm> thats what i'm doing now..
[17:26:29 EDT(-0400)] <esm> i switched to using NetNewsWire, a mac desktop app for news reading
[17:26:46 EDT(-0400)] <esm> pretty nice
[18:23:56 EDT(-0400)] * athena7 (n=athena7@c-24-2-189-230.hsd1.mn.comcast.net) has joined ##uportal
[23:41:03 EDT(-0400)] * colinclark (n=colin@2-244-234-66.static.cosmoweb.net) has joined ##uportal