Developer Call Notes - Jan 27, 2011

Attendees: Scott Cantor, Steven Carmody, Jim Fox, Nate Klingenstein, Chad La Joie, Bob Morgan, Brent Putman, Phil Smart, Rod Widdowson, Ian Young, Tom Zeller

Status Updates

OpenSAML: Brent

IdPv3: Chad

Notes about Eclipse Setup
Jira time tracking

It was suggested that Jira time tracking feature be enabled. Developers would then estimate the work for each issue and track their time worked on it.

Chad explained that he was concerned that this information could be misused by "pointy-haired bosses". However it also provides developers a chance to improve time estimation skills and more importantly, if estimates were grossly low, it helps identifies portions of the code that were unexpectedly complicated and may need to be look at much closer and possibly redesigned.

Developers all agreed to go ahead with this feature.

Coding Practices:

Chad is going to post a coding conventions page in the developers section of the new wiki. This will include instructions to use the Eclipse code formatting and Checkstyle rules we've been using for years. Three new items were also proposed (and accepted):

See Java Coding Conventions

Embedded Discovery Service

Rod brought up two topics related to the Embedded Discovery Service (EDS).

First, building and packaging the EDS. The EDS will get a real build system (not sure which) that will minify things, create packages, etc. We will also investigate creating an EDS RPM which the SP can depend on. That way the EDS can be versioned separately (which Chad felt was important until such time as the EDS matures more) but still be installed with the SP.

Second, there was a question of license. Currently we have our Javascript code as well as a JSON parser that is from the public domain. The question was about how attach our license and where such notices need to appear. The decision was to put our normal Apache2 license in the distribution and on our JS code. During the minification process the license header on the Javascript will be stripped out and we're okay with that.

Comments on IdPv3 Architecture

Tom Zeller noted that in IdPv2, the Spring bean definitions hard-code a dependency between most beans and the logback configuration bean. This causes hassles if you try to use the Spring configuration logic outside the IdP. Also related to logging Chad noted that IdPv2 actually has two logging configurations. This was necessary because the IdP had to manage the reloading of the main logging file and so the second was introduced to be loaded prior to all the Spring initialization (which in turn loads the main logging file). Going forward, Spring will no longer be used to load the logging configuration. Within the IdP a Servlet listener will be used and logback's recently added configuration reloading support will be used to reload configs.

Chad then noted some recent IdPv3 commits that split up the notion of a "service" as it was present in IdPv2 in to two things. The notion of a "component" that carried an unique ID and could be validated. Some examples would be the attribute resolver, all its plugins, the relying party configuration manager, and all the profile handlers. All existing services will implement this interface. This removes any hard dependency on Spring (or any other notion of how to configure the component). Extending component will be the notion of a service. The service will embody the idea of configuring a set of components. Each component that would be turned in to a service would be wrapped in a service proxy. This will be explained further in the design documentation Chad is preparing to write.