Log of the #duraspace-ff channel on chat.freenode.net

Using timezone: Eastern Standard Time
<pivotal-bot____>Benjamin Armintor edited "Unit test fcrepo-kernel/ObjectService" https://www.pivotaltracker.com/story/show/4682640700:18
Benjamin Armintor edited "Unit test fcrepo-kernel/DatastreamService" https://www.pivotaltracker.com/story/show/4682634700:19
* github-ff joins00:23
[fcrepo4] barmintor pushed 1 new commit to master: http://git.io/BRIKtw
fcrepo4/master 15a3b42 Benjamin Armintor: unit testing ObjectService and DatastreamService
* github-ff leaves
<pivotal-bot____>Benjamin Armintor added comment: "https://github.com/futures/fcrepo4/commit/15a3b42d019338a61870d0a33588a1ae6ed98822" https://www.pivotaltracker.com/story/show/46826407
Benjamin Armintor edited "Unit test fcrepo-kernel/ObjectService" https://www.pivotaltracker.com/story/show/46826407
Benjamin Armintor added comment: "https://github.com/futures/fcrepo4/commit/15a3b42d019338a61870d0a33588a1ae6ed98822" https://www.pivotaltracker.com/story/show/46826347
Benjamin Armintor edited "Unit test fcrepo-kernel/DatastreamService" https://www.pivotaltracker.com/story/show/46826347
<bljenkins>Project fcrepo-kitchen-sink build #124: SUCCESS in 6 min 30 sec: http://ci.projectblacklight.org/jenkins/job/fcrepo-kitchen-sink/124/00:51
Project fcrepo-fixity build #119: SUCCESS in 6 min 31 sec: http://ci.projectblacklight.org/jenkins/job/fcrepo-fixity/119/00:54
* github-ff joins01:00
[fcrepo4] barmintor deleted powermock at 2c44278: http://git.io/ImGrrA
* github-ff leaves
* github-ff joins01:01
[fcrepo4] barmintor deleted lowlevel-fixity at 316a8c5: http://git.io/wEJJlA
* github-ff leaves
* kaarefc joins01:41
* kaarefc leaves01:43
* kaarefc joins01:44
<bljenkins>Project fcrepo-kitchen-sink build #125: SUCCESS in 6 min 24 sec: http://ci.projectblacklight.org/jenkins/job/fcrepo-kitchen-sink/125/01:56
Project fcrepo-fixity build #120: SUCCESS in 5 min 59 sec: http://ci.projectblacklight.org/jenkins/job/fcrepo-fixity/120/01:59
* kaarefc leaves02:05
* kaarefc joins02:55
* github-ff joins08:57
[fcrepo4] barmintor pushed 1 new commit to master: http://git.io/WuoqxA
fcrepo4/master cfc712a Benjamin Armintor: starting the LowLevelStorage unit tests
* github-ff leaves
* VincentNG joins09:00
* travis-ci joins09:15
[travis-ci] futures/fcrepo4#319 (master - cfc712a : Benjamin Armintor): The build passed.
[travis-ci] Change view : https://github.com/futures/fcrepo4/compare/15a3b42d0193...cfc712a52c71
[travis-ci] Build details : http://travis-ci.org/futures/fcrepo4/builds/5985225
* travis-ci leaves
* kaarefc leaves09:17
<barmintor_>running a bit late for train, talk to you soon09:20
* barmintor_ leaves
<bljenkins>Project fcrepo-kitchen-sink build #126: SUCCESS in 6 min 21 sec: http://ci.projectblacklight.org/jenkins/job/fcrepo-kitchen-sink/126/09:21
Project fcrepo-fixity build #121: SUCCESS in 7 min 17 sec: http://ci.projectblacklight.org/jenkins/job/fcrepo-fixity/121/09:24
* nbanks joins09:27
<pivotal-bot____>Benjamin Armintor started "Unit test fcrepo-kernel/LowLevelStorageService" https://www.pivotaltracker.com/story/show/4682666710:18
* nbanks leaves10:20
* ajs6f joins10:31
<barmintor>ajs6f10:37
<ajs6f>barmintor
<barmintor>my comments: you do not respond to them
<ajs6f>Comments?
<barmintor>:) https://www.pivotaltracker.com/story/show/46941819
<pivotal-bot____>feature: Correct URIs for returns at API endpoints (finished) / owner: A. "Ganglionic" Soroka10:38
<ajs6f>Oh, somehow that slipped past me. I'll take a look.
<barmintor>ajs6f: Have you looked at this PowerMock stuff? It's cool, but I feel like it's also making a deal with the devil.10:39
(specifically re: constructor interception)
<ajs6f>I took the briefest glance at it when you introduced it, but only enough to see that it's a clever, dangerous idea.
I'll dig in a little more.10:40
<barmintor>you'll be fascinated and horrified, I'm sure
<pivotal-bot____>A. "Ganglionic" Soroka added comment: "No tests, no update. I'll write some." https://www.pivotaltracker.com/story/show/46941819
A. "Ganglionic" Soroka edited "Correct URIs for returns at API endpoints" https://www.pivotaltracker.com/story/show/46941819
<ajs6f>Maybe. Remember, I'm the guys who introduced the bean-based static helpers. :)10:41
It takes a lot to scare me.
<barmintor>How about: "I inspect the bytecode of the method you're testing, and modify it return proxy objects whenever Class X constructor with params(x,x,x) is called. But don't worry! You're still testing your method."10:42
s/proxy/mock/10:43
<ajs6f>Let's try to be positive. That's a good way to be shown where the use of composition has gone too far. Okay, that's kind of a desperate idea.
<barmintor>In a way, it's very cool. But it's super creepy.
<ajs6f>Well, you know that I like OSGi, and the first rule of OSGi is you talk a lot about OSGi, but the second rule is, DON'T TOUCH THE CLASSLOADERS.10:44
<barmintor>OTOH, it keeps your unit test restricted to its intended scope- testing the constructor is another test's problem
<ajs6f>I think the scariness here is coming from a shift in stance:10:45
unit testing normally tests behvior alone. These guys want to test composition as well.
As well as static background.
<barmintor>well, in a way it's bending around what are arguably poor design practices10:46
<ajs6f>Yes. I'm reading: "Without PowerMock: Wrap all static method calls in a separate class and use dependency injection to mock this object. This will create an extra layer of unnecessary classes in your application. However, this can of course be useful if you want to encapsulate the framework to be able to replace it."
That 's what you _should_ do. Encapsulate that SOB.
<barmintor>yeah
* barmintor is staring at LowLevelStorageService trying to do that10:47
<ajs6f>Did you bring it in mostly for the *Services?
<barmintor>yeah
* eddies joins
* eddies leaves
* eddies joins
<ajs6f>Hm. Maybe we're learning that we need to think really hard about what *Services really are and how we want to do that.
<barmintor>I *think* I have a better handle on that10:48
and actually the encapsulation isn't too far off
<ajs6f>If they were OSGi services (I'm not being silly, I'm serious) we would offer canonical mocks for them alongside the real impls.10:49
We could use that pattern without OSGi.
<barmintor>yeah, typically testing the consumers of the *Service objects isn't a problem
<ajs6f>It would mean maintaining two trees of code, one real, one mock.
But u-testing the *Services...
Maybe they're just too big...10:50
<barmintor>yeah, but ulitmately *someone* has to instantiate a Datastream object :D
<ajs6f>Is that just Datastream itself?
<barmintor>I think the breakdown is:10:51
<ajs6f>Take ObjectService:
<barmintor>There are some Ur-classes that basically wrap nodes
There are service objects that hand instances of those classes back to you
<ajs6f>Isn't that a Factory pattern?
<barmintor>ObjectService and DatastreamService are essentially facories10:52
<ajs6f>Right.
<barmintor>s/faco/facto/
<ajs6f>I think we've been using the word "service" flippantly.
<barmintor>perhaps
<ajs6f>LLSService is not a factory.10:53
<barmintor>PathService is really "PathHelpers"
<ajs6f>Yes.
<barmintor>LLSService is a combination of a factory and some other stuff
<ajs6f>PathService actually wraps our arrangment of the JCR.
<barmintor>it's a factory for LowLevelCacheEntry
<ajs6f>Which cbeer didn't even want to write.10:54
<barmintor>well, he had to
<ajs6f>Yes.
But maybe we should revist that.
<barmintor>it's also a factory for FixityResult
<ajs6f>Hm.
<cbeer>(which i still think belongs somewhere else anyway)10:55
<ajs6f>But FixityResult doesn't exist except in the context of the things being analyzed.
<barmintor>and it has some intermeidate factoriy functions for BinaryStore, etc.
<ajs6f>I wonder if FixityResult should be produced by the entities being fixed. (Datastream, right?)
<barmintor>and then it also performs a service function of correcting bad blobs
<ajs6f>This is already too much.10:56
<barmintor>yes
<ajs6f>LLSSService must be dismembered.
With extreme prejudice.
<cbeer>+1
<barmintor>writing the unit tests really illustrate this wel :)
<ajs6f>And then there's RepoService, which appears to be maintaining repo-wide state.
<barmintor>RepoService is a superclass for Object and Datatream services10:57
<ajs6f>Including size aggregations and metrics.
<eddies>cbeer: is there a shareable graphite service we can use for today?
<barmintor>ajs6f: RepoService is actually a service
<ajs6f>What do you mean by "service"?10:58
<cbeer>eddies: maybe. how long can you put off talking about it?
<ajs6f>(Serious question, not being snarky.)
<cbeer>eddies: http://graphite.cbeer.info/
but the data from overnight seemed wonky
so i blew it away to try again
<eddies>cbeer: i'll try to to it last10:59
*do
<barmintor>it provides a function to other objects based on an internal state, and is really just a wrapper for that function
<eddies>https://wiki.duraspace.org/display/FF/2013-04-02+Sprint+6+Close
<ajs6f>Okay, by that definition, yes. But should RepoService wrap the JCR itself?
<barmintor>maybe11:00
<ajs6f>Oh, no!   freeconferencecallhd!
Proxying something as big as the JCR… urg.11:01
<barmintor>I don't think that's realistic.
or at least, it will make for a lot of fetish code
<ajs6f>No. But I'd like to have a better handle on the real state behind RepoService.
What is special about a JCR that makes it a Fedora JCR.
?11:02
E.g., what's in PathService/PathHelper?
<barmintor>nothing
that's what's special about nodes
<ajs6f>What about the size calculation?
That's not about any node or nodes.
<barmintor>that characteristic of all the nodes that have content
<ajs6f>The _aggregate_ size?11:03
<barmintor>we're not really maintaining the aggregate size anymore, we backed off that to reconsider, and are computing on demand
AFAIK
<ajs6f>Oh, cool.
So RepoService is just a convenience.
<barmintor>(which also means there's some dead code in kernel)
<ajs6f>Hm. Search and destroy!11:04
I'm going inside to my office to get on the call. Back in three.
* ajs6f leaves
* ajs6f joins11:08
* nbanks joins
<cbeer>(i'm on the call now)11:09
<barmintor>ajs6f: http://metlos.wordpress.com/2012/09/14/the-dark-powers-of-powermock/
<cbeer>http://graphite.cbeer.info/render/?width=1101&height=752&_salt=1364915407.239&from=-1hours&target=org.fcrepo.FedoraObject.FedoraObject.count&target=org.fcrepo.FedoraObject.FedoraObject.m15_rate&target=org.fcrepo.observer.SimpleObserver.onEvent.count11:12
<barmintor>eddies: another nice thing about sonar now is that it alerts us to cyclical dependencies now (as opposed to after 6 years of indestructible cruft and public APIs)11:17
* nbanks leaves11:21
<cbeer>this_discussion--11:22
* nbanks joins11:26
<barmintor>Hey, so I noticed we have 4 or 5 merged branches lingering on the github repo
cbeer, ajs6f: are either of you guys objecting to deleting the merged branches?11:27
(any23 branch, etc.)
<cbeer>go for it
this_discussion--
<ajs6f>+1 to both of what cbeer just said.11:28
<barmintor>cbeer: deleting sitemap, webhooks, fixity-blobs
* github-ff joins
[fcrepo4] cbeer deleted metrics at ce41574: http://git.io/WruUcA
* github-ff leaves
<cbeer>these weeds are nice.
<barmintor>ajs6f: deleting Any23
<ajs6f>Good bye!
* github-ff joins11:29
[fcrepo4] barmintor deleted Any23 at 0df841b: http://git.io/ZcMLuA
* github-ff leaves
* github-ff joins
[fcrepo4] barmintor deleted sitemap at a627c98: http://git.io/NbQfVg
* github-ff leaves
* github-ff joins
[fcrepo4] barmintor deleted failsafe-migration at 8fd8ddb: http://git.io/dUqL3w
* github-ff leaves
<barmintor>ok, what else was I going to do?
<ajs6f>Mail me some carefully selected beer.11:30
<barmintor>I'm trying to figure out a way to get to Boston by way of rural Vermont, but it looks difficult.11:31
<ajs6f>Horse-drawn carriage: no TSA worries!
* github-ff joins11:38
[fcrepo4] ajs6f pushed 1 new commit to master: http://git.io/iS5hug
fcrepo4/master a9f7eae ajs6f: Added tests for Location header correctness in responses, cleaned up unused imports
* github-ff leaves
<cbeer>"hey, we're using standard tools!"
<pivotal-bot____>A. "Ganglionic" Soroka added comment: "Tests in." https://www.pivotaltracker.com/story/show/4694181911:39
A. "Ganglionic" Soroka edited "Correct URIs for returns at API endpoints" https://www.pivotaltracker.com/story/show/46941819
A. "Ganglionic" Soroka added comment: "https://github.com/futures/fcrepo4/commit/a9f7eae7a1fbf84e9c4eab4fa3a5dbc2fe220017" https://www.pivotaltracker.com/story/show/46941819
<ajs6f>https://gist.github.com/ajs6f/529333611:53
Federation config example.
<cbeer>ajs6f++11:56
<ajs6f>It will work, given appropriate filesystem resources, for read-only property-only endpoints.11:57
I'm finding an odd behavior with content storage/retrieval. Further bulletins as events warrant.
* travis-ci joins11:59
[travis-ci] futures/fcrepo4#320 (master - a9f7eae : ajs6f): The build passed.
[travis-ci] Change view : https://github.com/futures/fcrepo4/compare/cfc712a52c71...a9f7eae7a1fb
[travis-ci] Build details : http://travis-ci.org/futures/fcrepo4/builds/5989457
* travis-ci leaves
<cbeer>ajs6f: i'm curious to play with it. here's my secret agenda with file-system federation:
stanford does something weird with our repository, and stores metadata in fedora and the actual content-bearing files out on a filesystem (that gets NFS-mounted around places...)12:00
i read you can programmatically mount federated paths (as long as they are declared in the config, at least)
i want to mount the appropriate object-on-the-filesystem into the object in the JCR tree12:01
(as externally managed datastreams, essentially..)
<ajs6f>Yeah, that sounds do-able. You have to have the roots of filesystem locations available at repo instantiation, but you can alter the "projections" (MODE lingo) into the JCR during operation.12:02
<cbeer>ok. i'll probably carve out time to do that (once MODE 3.2 is out, right?)
<barmintor>hey, that's what I want to do with this pile of BagIt archives on my SAN12:03
<ajs6f>You got your chocolate in my peanut butter!
<cbeer>barmintor: do you have hierarchy in your bagit archives?
<ajs6f>Yeah, I'm running with MODE 3.2-SNAPSHOT to pick up a bug fix in federation.
<bljenkins>Project fcrepo-client build #107: FAILURE in 1 min 28 sec: http://ci.projectblacklight.org/jenkins/job/fcrepo-client/107/
<barmintor>cbeer: nope, flat archives
<cbeer>barmintor: lucky.
<bljenkins>Project fcrepo-kitchen-sink build #127: FAILURE in 1 min 0 sec: http://ci.projectblacklight.org/jenkins/job/fcrepo-kitchen-sink/127/12:04
<ajs6f>Having an archive with hierarchy where the unit is BagIt isn't.. very BagIt, is it?
* nbanks leaves12:16
* nbanks joins12:43
* nbanks leaves12:50
<eddies>ajs6f: do you still need that nexus repo set up? (i think you were saying something about getting barmintor to help you w/ that)12:54
<ajs6f>Sure— that would be great.
<eddies>so what exactly do you need?
i.e. if you make a ticket and assign to barmintor, i think that would be best12:55
i can add the CNAME once we know where it's going
<ajs6f>I don't know what I need, because I don't know what we have.
Do we have a M12:56
aven repo to which we are now deploying?
<eddies>the fcrepo4 parent pom has the sonatype pom as its parent
so we're set up to use the sonatype server for snapshots and releases
but we wouldn't be able to deploy org.modeshape artifacts12:57
<ajs6f>I should think that would be fine, right?
Oh, never mind.
<eddies>we can only deploy to our group: org.fcrepo
so we'd need our own nexus server
<ajs6f>That's exactly what we wnat to do (deploy MODE).
Okay, then I need hep with that.
<eddies>i guess it could go on futures1
or if cbeer has an opinion on further abusing gluck12:58
<ajs6f>"Abusing gluck". That's an intriguing phrase.
<cbeer>i'm happy for us to abuse gluck.
it's columbia's server, after all
<eddies>heh
cbeer: who has ssh creds for gluck besides you and barmintor?12:59
<ajs6f>afk
<eddies>i don't mind setting it up either, but i don't think i've ever shelled into gluck
<cbeer>eddies: i've made you an account. PMing initial password13:00
gluck.cul.columbia.edu13:01
and you should have sudoer power
<eddies>cbeer: thanks
<cbeer>i think the blacklight demo is the only thing other people care about still running there
<eddies>yep. all seems in order13:05
cbeer: jenkins is running the tomcat at /opt/tomcat?13:06
<cbeer>yes
<eddies>can i just drop the nexus war in there too?
<cbeer>you can try
<eddies>otherwise, there's a standalone nexus w/ an embedded jetty
<cbeer>there's special directions for restarting that tomcat
<eddies>but figure might as well use the tomcat
ah
what might those be
<cbeer>see ~tomcat/HOW_TO_RESTART_TOMCAT13:07
<eddies>isn't that issue just a matter of defining the JENKINS_HOME property?13:08
<cbeer>could be. i can't remember the details13:09
* bljenkins leaves13:16
* bljenkins joins13:18
<pivotal-bot____>Edwin Shin added "Set up Nexus repo for ModeShape snapshots" https://www.pivotaltracker.com/story/show/4730087313:19
Edwin Shin edited "Set up Nexus repo for ModeShape snapshots" https://www.pivotaltracker.com/story/show/4730087313:20
Edwin Shin started "Set up Nexus repo for ModeShape snapshots" https://www.pivotaltracker.com/story/show/47300873
* nbanks joins13:21
<pivotal-bot____>Edwin Shin added comment: "Installed nexus-2.3.1-01.war to tomcat as nexus.war.13:45
Added cname for maven.fcrepo.org to gluck.
Set up at h..." https://www.pivotaltracker.com/story/show/47300873
Edwin Shin edited "Set up Nexus repo for ModeShape snapshots" https://www.pivotaltracker.com/story/show/47300873
<eddies>ajs6f: you should be good to go for nexus
<cbeer>eddies++13:46
<ajs6f>Um, I just went to http://maven.fcrepo.org/  and got a Gerald Ford political advertisement. Is that right?
<eddies>i noted in the email that you need append the nexus context13:47
but yeah, i saw that
<ajs6f>No, I just meant— shouldn't it be a more up-to-date policitcal commericail.?
<eddies>i dunno what that's about =)
<ajs6f>Are we really supporting Gerald Ford? 'Cause his chances are minimal.
<eddies>oh i found a kewl beer in shanghai to bring to boston13:48
<ajs6f>It's not made from dead pig water, is it?
<barmintor>How have I broken the dc generator?
<eddies>i'm fairly certain no one's tried it before since it only has a 30-day shelf-life
* barmintor looks to the sky with pleading eyes
<ajs6f>barmintor: use the ac alternator instead.13:49
<eddies>*sky rains fire and brimstone*
<barmintor>eddies: tell me you have some radioactive beer
<eddies>nah…it's a local shanghai brewery, lemme see if i can dig up a link about it
<barmintor>"We use heavy water in the wort!"
<eddies>http://www.rebergbeer.com/13:52
<barmintor>somehow refactoring the session creation has got the dc generators IT returning 404s
<ajs6f>eddies: did you send me a login?
<eddies>i picked up the pilsener. it's an unpasteurized, unfiltered beer
ajs6f: check your email
sent to ff-internal
<ajs6f>Oh, thanks.
Cool looking bottles. Very futurisitic.13:53
Fedora: The beer of the future, today. And some repository crap.
Now I need someone to help me get the login info into whatever box is running our jenkins, so that the MODE build can use it to abuse gluck with deployment.13:54
<barmintor>jenkins runs on gluck13:55
<ajs6f>Okay.
<eddies>ajs6f you know our sprint planning call (tomorrow) starts an hour earlier than normal standup, right?13:56
and if you didn't. now you do ;-)13:57
<ajs6f>Man, my sprint planning meeting began the minute I was born. That's how hard core I am.13:58
Who here would like to help me get the Nexus login info into the Jenkins instance on gluck (to which I have no access).13:59
?
<eddies>ajs6f: i gave you admin on jenkins14:02
which i hope is ok, cbeer =)
afk14:03
<ajs6f>Thanks, but I need to alter the Maven setttings file to include the login info, right?
Because Jenkins has no place to put that...
* kaarefc joins14:05
<ajs6f>afk14:08
* ajs6f leaves14:09
<barmintor>aha
object setup is failing14:10
* ajs6f joins14:15
* ajs6f1 joins14:22
* ajs6f leaves14:24
<barmintor>Little did you know that the hardest part of the refactoring would be finding all the spring configs!!!14:31
<ajs6f1>What refactoring?14:32
<barmintor>I'm merging VincentNG's authn branch with some refactoring for testability
<ajs6f1>Ah, cool.
Yeah, we've talked about ameliorating the Spring hairness.14:33
<barmintor>and also to keep classes that don't care about Repository from mucking around with Repository
<VincentNG>barmintor: there was some issues, with the Unit tests after merge, but i've fixed most of them
<ajs6f1>Virtually nothing should touch Repository directly, except to get a Session.
<barmintor>VincentNG: I:m almost done now
<VincentNG>cool
<ajs6f1>And we could indirect that through a SessionFactory...
<barmintor>ajs6f1: I'm not even sure about that part
* barmintor is testing the SessionFactory14:34
RIGHT NOW
<ajs6f1>AWWWWWWW YEEEEAAAAHHHHH!
<barmintor>that's what's going into all these spring configs
<ajs6f1>You know what I would love to do?
Make Session implement Autocloseable.
<barmintor>Hmmm....14:35
<ajs6f1>Then we could use it with try-with-resources and a lot of the code might read a lot better.
That try {} finally {session.logout()} thing works, but it's confusing.
I wonder… there are so many methods on Session that it would suck to just wrap it.14:36
Hm… http://www.ibm.com/developerworks/java/library/j-jtp08305/index.html
"...the dynamic proxy mechanism allows for the creation of a proxy object at run time without generating stub classes at compile time."14:37
I think I'm going to try this real quick to see if it works.14:44
barmintor: how far out are you from merging the stuff that includes a SessionFactory?
<barmintor>running mvn:verify14:45
then I'll need to do a rebase, re-verify, and push
but should be very soon
<ajs6f1>Coolness. I'll hang back until you do that, so I can start from there.14:46
<barmintor>that merge was a little weird: it's verified, but I want to check a couple of things before I push15:09
almost done, I swear
<ajs6f1>No trouble. I'm just making sure I actually understand this dynamic proxy business. It's powerful as *&**)*(), and even I'm feeling a little cautious.15:10
Ah, java reflection:15:14
return Void.TYPE.newInstance();
_That's_ pretty. And clear.
Harumph.
* github-ff joins
[fcrepo4] barmintor pushed 6 new commits to master: http://git.io/qHowTw
fcrepo4/master cad3379 Vincent Nguyen: Passing user authentication to JAX-RS
fcrepo4/master 54bb9be Vincent Nguyen: Fixed unit tests with jax auth PR
fcrepo4/master 8bca977 Vincent Nguyen: removing diff files
* github-ff leaves
<barmintor>Okay, next housekeeping goal: Sort out the RestEasy/CXF business15:18
<ajs6f1>Urg. That's been a thorn in our side for months.15:19
<barmintor>we have an open ticket, a partial branch, and both libraries on the classpath15:20
which is a mess that needs to get resolved, IMO
<ajs6f1>I'm imagining Ben as Inigo Montoya chasing CXF around a room, waving a sword… "My name is Benjamin Armintor. You killed my build architecture. Prepare to die."
<pivotal-bot____>Benjamin Armintor added comment: "that branch has been merged: https://github.com/futures/fcrepo4/commit/397aa5a16c7be657df1d0a6e540a75c..." https://www.pivotaltracker.com/story/show/4545805515:22
<barmintor>ajs6f1: anything that is complicating the build or the tests needs to die, yes.
When I find that 6-fingered compile-scope dependency, it's in trouble.15:23
<ajs6f1>Fedora: the Dread Pirate Roberts of repository frameworks.15:24
<bljenkins>Yippie, build fixed!15:26
Project fcrepo-client build #108: FIXED in 1 min 30 sec: http://ci.projectblacklight.org/jenkins/job/fcrepo-client/108/
<barmintor>it does seem to die and come back to life whenever a promising young funding source comes along
* travis-ci joins15:27
[travis-ci] futures/fcrepo4#322 (master - 8c9c620 : Benjamin Armintor): The build has errored.
[travis-ci] Change view : https://github.com/futures/fcrepo4/compare/a9f7eae7a1fb...8c9c62017439
[travis-ci] Build details : http://travis-ci.org/futures/fcrepo4/builds/5995296
* travis-ci leaves
<bljenkins>Yippie, build fixed!
Project fcrepo-kitchen-sink build #128: FIXED in 2 min 46 sec: http://ci.projectblacklight.org/jenkins/job/fcrepo-kitchen-sink/128/
<ajs6f1>And it causes deathly fear in people far and wide.15:28
<bljenkins>Project fcrepo-fixity build #122: SUCCESS in 3 min 9 sec: http://ci.projectblacklight.org/jenkins/job/fcrepo-fixity/122/15:29
<barmintor>that's weird15:30
* ajs6f1 leaves15:31
* ajs6f joins15:33
<barmintor>is there ever competition for ports on travis?
I'm a little suspicious of our build failing when it tris to parse the string 'tty' as an xml doc15:34
<ajs6f>We've been running our tests out of 8080. I would think we would have laready seen it if there was.
tty?15:35
Weird.
<barmintor>this is from the JMS tho
I'm wondering if we accidentally listened to a port they're sending console messages over
<ajs6f>We just hacked Travis?
* github-ff joins15:36
[fcrepo4] ajs6f pushed 1 new commit to master: http://git.io/rBrYxw
fcrepo4/master 8c39edd ajs6f: Cleaned unused imports
* github-ff leaves
<bljenkins>Project fcrepo-kitchen-sink build #129: SUCCESS in 3 min 12 sec: http://ci.projectblacklight.org/jenkins/job/fcrepo-kitchen-sink/129/15:52
Project fcrepo-fixity build #123: SUCCESS in 3 min 22 sec: http://ci.projectblacklight.org/jenkins/job/fcrepo-fixity/123/15:54
* nbanks leaves
* travis-ci joins15:55
[travis-ci] futures/fcrepo4#323 (master - 8c39edd : ajs6f): The build passed.
[travis-ci] Change view : https://github.com/futures/fcrepo4/compare/8c9c62017439...8c39edd10f45
[travis-ci] Build details : http://travis-ci.org/futures/fcrepo4/builds/5995928
* travis-ci leaves
* nbanks joins16:22
* VincentNG leaves16:25
* nbanks leaves16:29
<ajs6f>I don't believe it. That actually worked. I just dynamically proxied the *&*(*&*)& out of those Sessions. Now I'm going to try exercising their Autocloseability. This could be really cool. It would essentially allow to cast a view over any section of state we want… oh, I love the feeling of danger.16:32
* ajs6f leaves16:33
* ajs6f joins16:40
<barmintor>ajs6f: are you using the fcrepo3 eclipse styles? Noticing that your last push looked more dramatic than it might have been, and figuring it might be reformatting.16:47
(that is to say, if you are I should be using them, too)16:48
<ajs6f>Yes, I am— Eddie almost had a stroke until I started doing it.16:49
Aren't you?
<barmintor>err… yeah… sure I am.
* barmintor starts looking for those files
<ajs6f>Hang on...16:50
I'll find 'em.
https://github.com/fcrepo/fcrepo/tree/master/resources/doc/devdocs/eclipse
Real easy to find, right?
And it's good that we had that long and thoughtful discussion about code style for fcrepo4.16:51
BUT I'M NOT BITTER.
<barmintor>:P
I remember it like it was yesterday!
I was *really* tired yesterday.
<ajs6f>Actually, I AM bitter, but about the fact that Autocloseable.close() throws Exception.
That's a _really_ wide contract.16:52
Oh, we _gots_ to get back into that sweet memory-resident-only place that the integration tests used to run in.
My poor ole battery can't take much more of this.16:53
Holy *&(*&(. I just made Session extend Autocloseable. Sort of.16:55
I dynamically proxied our Sessions through a new interface that extends Session and Autocloseable, for which the InvocationHandler just forwards close() to logout().16:56
And it worked.
We can use try-with-resource.
I'm kind of shocked that reflection actually worked.16:57
<barmintor>so did you just have the SessionFactory return the proxy?
<ajs6f>Right.
That's why I waited for you.
<barmintor>that's pretty cool
<ajs6f>You did half the work.
I'm impressed.
This is a lovely new loaded gun Java just put in my hands.16:58
BANG BANG BANG!
Okay, I'll finish the branch and make all the HTTP API endpoints use try-with-resource.16:59
Then other people can look at it and tell me why it makes no sense.
barmintor: you don't like long Spring classnames?
How about AutocloseableJcrSessionInvocationHandler?
* barmintor weeps
<ajs6f>java hurts.
but it wants _the best_ for you.17:00
We are in an abusive relationship with our tools.
We should order the JAX-RS endpoints. Like mutators to the top, or something like that.17:07
You know, maybe FedoraObject and Datastream are just dynamic proxies for Nodes...17:10
<barmintor>think carefully about that one
<ajs6f>Give me a couple of beers to do it on.
* kaarefc leaves17:12
<ajs6f>Oh, bugger.17:14
barmintor: You put SessionFactory in fcrepo-http-commons.
But lots of things use Sessions.
Would you buy that it belongs in the kernel?
<barmintor>well, that's where it made the most sense, since it uses HttpServletRequest and SecurityContext17:15
<ajs6f>&*^*&^)&]
Hm.
<barmintor>I know, I was thinking the same thing about the read only sessions
<ajs6f>Right.
That was my next thought.
<barmintor>but I didn't want to drag the deps in.
<ajs6f>No.17:16
*&)*&
We want a different idea of authN
<barmintor>Maybe there's just a tiny little readOnlySessionFactorySpringAbstractHelperProxy
<ajs6f>but we don't want the burden.
:)
s/:)/:(
If the kernel really is independent of public APIs...17:17
but we must contemplate authN therein...
Urg.
Oh, wait. It's an architectural question. That puts it in the province of our architect, and lacking one, we might naturally turn to our tech lead.17:18
<barmintor>I think the source of sessions can be in one place, the authn check in another, and kernel can depend on the checking module w/o needing to know the source of the session upstream
<ajs6f>Oh, that _is_ good.17:19
But it means something like an fcrepo-authn
<barmintor>well, yes
<ajs6f>w/ various fcrepo-authn-http
fcrepo-authn-i-pulled-it-out-of-my
and so forth.
<barmintor>you-got-your-Z-in-my-N17:20
<ajs6f>No, I think you're right.
That's _not_ a tasty conflation.
If we're serious about kernelizing, this is part of the price.
Okay, you want to write me a ticket for an fcrepo-authn module w/ accompanying fcrepo-authn-http impl?17:21
<barmintor>yes.
<ajs6f>That barmintor. He's a damn sound fellow.
Just remember to include in the success conditions that i've got a large and delicious glass in front of me.17:23
Okay, I'm out. Having surfaced a medium-sized architectural issue, I'm content with my work for the day.17:24
See y'all (some of you) soon, in Beantown.
* barmintor waves
* ajs6f leaves
* VincentNG joins18:28
* github-ff joins18:33
[fcrepo4] barmintor pushed 1 new commit to master: http://git.io/Ri80Kw
fcrepo4/master a534c8c Benjamin Armintor: start unit testing LowLevelStorageService
* github-ff leaves
* VincentNG leaves18:34
<bljenkins>Project fcrepo-kitchen-sink build #130: SUCCESS in 3 min 46 sec: http://ci.projectblacklight.org/jenkins/job/fcrepo-kitchen-sink/130/18:48
Project fcrepo-fixity build #124: SUCCESS in 3 min 45 sec: http://ci.projectblacklight.org/jenkins/job/fcrepo-fixity/124/18:50
* nbanks joins19:22
* nbanks leaves19:27
* nbanks joins21:23
* nbanks leaves21:28
* nbanks joins23:24
* nbanks leaves23:29
<pivotal-bot____>Benjamin Armintor added "Unit test the kernel's Function subclasses" https://www.pivotaltracker.com/story/show/4733739923:41
Benjamin Armintor edited "Unit test the kernel's Function subclasses" https://www.pivotaltracker.com/story/show/4733739923:42
* github-ff joins
[fcrepo4] barmintor pushed 1 new commit to master: http://git.io/G9s8vA
fcrepo4/master 115fb79 Benjamin Armintor: unit testing LowLevelStorageService#getFixity
* github-ff leaves
<pivotal-bot____>Benjamin Armintor edited "Unit test the kernel's Function subclasses" https://www.pivotaltracker.com/story/show/47337399
Benjamin Armintor added comment: "https://github.com/futures/fcrepo4/commit/115fb7992cbc8ac45d58b87ee705d77970e6eb2a only lacking test f..." https://www.pivotaltracker.com/story/show/4682666723:45
* barmintor_ joins23:46
* barmintor_ leaves23:47
* barmintor_ joins23:48
<bljenkins>Project fcrepo4 build #315: UNSTABLE in 14 min: http://ci.projectblacklight.org/jenkins/job/fcrepo4/315/23:56
armintor: unit testing LowLevelStorageService#getFixity
* travis-ci joins00:00
[travis-ci] futures/fcrepo4#325 (master - 115fb79 : Benjamin Armintor): The build passed.
[travis-ci] Change view : https://github.com/futures/fcrepo4/compare/a534c8cea7a6...115fb7992cbc
[travis-ci] Build details : http://travis-ci.org/futures/fcrepo4/builds/6005431
* travis-ci leaves
* nbanks joins00:32

Generated by Sualtam