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

Using timezone: Eastern Standard Time
* kaarefc joins02:36
* kaarefc leaves02:53
* kaarefc joins03:00
* kaarefc leaves03:06
* kaarefc joins04:29
* eddies leaves04:54
* eddies joins05:57
* eddies leaves
* eddies joins
* eddies leaves06:15
* eddies joins06:49
* eddies leaves
* eddies joins
* kaarefc leaves09:02
* gregjansen joins09:07
* ajs6f joins09:11
<bljenkins>Yippie, build fixed!09:16
Project fcrepo4 build #506: FIXED in 28 min: http://ci.projectblacklight.org/jenkins/job/fcrepo4/506/
* github-ff joins09:28
[fcrepo4] ajs6f created ProviderForSession (+1 new commit): http://git.io/1jascA
fcrepo4/ProviderForSession 27fe449 ajs6f: Not yet compiling
* github-ff leaves
<bljenkins>Project fcrepo-kitchen-sink build #230: SUCCESS in 10 min: http://ci.projectblacklight.org/jenkins/job/fcrepo-kitchen-sink/230/
* nbanks joins09:31
* kaarefc joins09:33
* github-ff joins09:36
[fcrepo4] ajs6f pushed 1 new commit to ProviderForSession: http://git.io/ljLYfQ
fcrepo4/ProviderForSession d217f22 ajs6f: Compiles, but fails tests
* github-ff leaves
<ajs6f>Hm. http://stackoverflow.com/questions/11944434/jersey-injectableprovider-not-picked-up-spring09:41
* nbanks leaves09:43
* nbanks joins
* gregjansen leaves09:44
* gregjansen joins09:45
* gregjansen leaves09:54
<cbeer>ajs6f: do you know how the jersey path matching stuff works? or do i need to wait for barmintor?09:57
hm. or maybe i misunderstand what's going on.09:58
<ajs6f>barmintor knows a lot more about what's going on there.09:59
<cbeer>i'm not sure why the /objects node is an nt:unstructured node
rather than a fedora:object
time to find out.10:00
whack-a-mole refactoring :/10:14
* kaarefc leaves10:15
* gregjansen joins10:18
* gregjansen leaves10:20
* barmintor joins10:21
I need to get sudo on gluck. at least to tomcat.10:28
<eddies>weekly committers call10:29
<barmintor>Momentarily.10:30
<ajs6f>https://docs.jboss.org/author/display/MODE/REST+Service+3.x10:31
https://docs.jboss.org/author/display/MODE/REST+Service+3.x#RESTService3.x-5.Updateanodeoraproperty10:32
* bljenkins leaves
<eddies>nbanks? you coming?10:33
* bljenkins joins10:35
* fasseg joins
* github-ff joins10:36
[fcrepo4] cbeer created move-fcr-describe (+5 new commits): http://git.io/KjzNLg
fcrepo4/move-fcr-describe 34ee280 Chris Beer: reorganize fcr:describe and fcr:children actions
fcrepo4/move-fcr-describe ee04d59 Chris Beer: update SitemapIT to use fcr:new
fcrepo4/move-fcr-describe fd426f6 Chris Beer: allow the AtomJMSIT to take up to 5 seconds
* github-ff leaves
<barmintor>five seconds?!10:37
<cbeer>in 1 second chunks
i'm sick of that test failing.
(and, yes, i should have broke out of the loop.. but didn't.)10:38
barmintor: i can try just adding you to the sudoer group.. i'm not sure what it'll do for you though10:40
<barmintor>cbeer: I got thomas to add me to tomcat's sudoers
<cbeer>k10:41
<barmintor>cbeer: I just want to be able to look at the jenkins working directories to figure out where the damned jacoco output files end up
<cbeer>ah, and looks like he may have just added you directly
i've added you to the blacklight group now too.10:42
barmintor: i might need you to take a look at that branch. i'm running it on another machine now, but i'm pretty confused what's happening (and where/how i broke the FedoraRepositoryIT tests)10:44
<barmintor>cbeer: sure thing.
<cbeer>the worst part is, i get different failures through mvn and my IDE10:45
<barmintor>ick.
<cbeer>hm. and no failures remotely.10:46
oh, wait. wrong branch
<ajs6f>cbeer: are you working over two projects/modules? CLI Maven goes to your local Maven repo for dependencis, but your IDE may be using code from an open project.10:48
<cbeer>yes, but they're both using the same local code.
<fasseg>barmintor: can I add the jacoco plugin to the the m2e lifecycle mappings?10:49
or will this be changed to emma again in the near future?
<barmintor>fasseg: I think we should try to stick with jacoco, but I'm flailing around trying to get anything to work on jenkins10:50
fasseg: I hope to stay on jacoco
<fasseg>okay ill just keep the change local then for now
<cbeer>barmintor: ok, i get my same failure remotely (whew.). Failed tests:10:51
FedoraRepositoryIT.testGetObjects:35 expected:<200> but was:<404>
http://www.w3.org/TR/sparql11-update/ <-- in the body?10:54
PREFIX dc: <http://purl.org/dc/elements/1.1/>10:55
<barmintor>cbeer: noting that10:56
<bljenkins>Project fcrepo4 build #509: UNSTABLE in 24 min: http://ci.projectblacklight.org/jenkins/job/fcrepo4/509/11:00
<ajs6f>https://www.pivotaltracker.com/story/show/4906578311:10
<pivotal-bot>feature: Could we use JAX-RS context to inject an authenticated session (started) / owner: A. "Reticulated" Soroka
<cbeer>barmintor: ah ha. i've unearthed a bug with the deep-path code, i think11:14
but the exception was getting squelched
<pivotal-bot>Edwin Shin edited "Could we use JAX-RS context to inject an authenticated session" https://www.pivotaltracker.com/story/show/4906578311:15
Chris Beer started "Make a HTTP path-reference request return a "describe" response" https://www.pivotaltracker.com/story/show/49064877
Nigel Banks started "Update Tuque to support both Fedora 3 and 4 concurrently" https://www.pivotaltracker.com/story/show/4906743711:22
* github-ff joins11:23
[fcrepo4] ajs6f pushed 1 new commit to ProviderForSession: http://git.io/3SRwcw
fcrepo4/ProviderForSession 0c8cf26 ajs6f: Works now, only used on fcr:describe and getDatastreams()
* github-ff leaves
<pivotal-bot>A. "Reticulated" Soroka added comment: "Yes, we can: ""11:24
https://github.com/futures/fcrepo4/commit/0c8cf2657eccff35c3a1715e0c241b2d5485c2ad" https://www.pivotaltracker.com/story/show/49065783
A. "Reticulated" Soroka finished "Could we use JAX-RS context to inject an authenticated session" https://www.pivotaltracker.com/story/show/49065783
Edwin Shin edited "Transactions-enabled API" https://www.pivotaltracker.com/story/show/4900920911:32
Edwin Shin edited "Ensure REST API supports workspace identifier prefixes by adding tests" https://www.pivotaltracker.com/story/show/4901238911:34
<bljenkins>Yippie, build fixed!11:44
Project fcrepo4 build #510: FIXED in 20 min: http://ci.projectblacklight.org/jenkins/job/fcrepo4/510/
<cbeer>ajs6f: i'll fix the session logout stuff in http-api
i think i probably introduced most of them anyway11:45
<ajs6f>Hmm.11:46
I've been thinking about that.
Two things:
1) If we want to use multiple methods with one Session (for xactionaltiy)
we _don't_ want to log out.11:47
2) We may be reaching a point at which the operations and the interactions between them are complex enough that
we should no longer be using single mthods to represent them— they might become classes in their own right
.
Operation classes are a pattern we see all the time for when an operation carries a lot of context around with it.11:48
In that world, the JAX-RS stuff would get much smaller.
And new classes to represent abstract operations on the repo would come into existence.11:49
Do you see what I'm getting at?
<cbeer>sure. but that sounds like a bigger task than not doing stupid stuff right now.11:50
so i'll just add them in as needed and we can figure it out next11:51
"NOW: DuraCloud offers low-cost secondary storage in Amazon Glacier–more long-term storage options!"
huh.
<ajs6f>Oh, yeah, much more long term. But even right now, what I'm saying in point #1 is that if you add that stuff in, you might be slowing down Frank.11:52
<cbeer>no more so than he was already slowed down.11:53
<ajs6f>?
<cbeer>all the mutating methods probably used logout() already
<ajs6f>He's going to want to use a Session with a method, then another, etc.
Yeah, but let's not add any more of that.
<bljenkins>Project fcrepo-kitchen-sink build #232: SUCCESS in 8 min 6 sec: http://ci.projectblacklight.org/jenkins/job/fcrepo-kitchen-sink/232/11:54
<ajs6f>The question is: who logs out a Session.
In a single-endpoint-single-operation world,
which is where we were living, the endpoint itself.
But in a single-endpoint-multiple-operation world, where Frank is going,
it's not as clear.
Because we still want the existing endpoints to work well.
What's more, they all now do Session.save(),11:55
<cbeer>or.. we just inject a session that can't be logged out like normal?
<ajs6f>and that's what we wanted to use for xacation commit.
Hm.
An invincible session? Or one that has a special logout that only we know about?
So ordinary methods can save() and logout() but the transaction keeps going?11:56
* github-ff joins
[fcrepo4] cbeer pushed 6 new commits to master: http://git.io/Av6ULQ
fcrepo4/master a70d5e3 Chris Beer: reorganize fcr:describe and fcr:children actions
fcrepo4/master f664455 Chris Beer: update SitemapIT to use fcr:new
fcrepo4/master a0d9050 Chris Beer: allow the AtomJMSIT to take up to 5 seconds
* github-ff leaves
<cbeer>a special logout that can only be invoked from our magic transactions endpoint
i don't know. it's a thought.
<ajs6f>We could do that with dynamic proxy...
Like TransactionalSession?
<pivotal-bot>Chris Beer finished "Make a HTTP path-reference request return a "describe" response" https://www.pivotaltracker.com/story/show/49064877
<ajs6f>with an null-op save() and logout(), but a new "commit()"...
<pivotal-bot>Chris Beer added comment: "https://github.com/futures/fcrepo4/commit/a70d5e308c04880d73f2a0dcf034307b75c61ccc" https://www.pivotaltracker.com/story/show/49064877
<ajs6f>That's a pretty cool idea. I wonder if there's a general pattern there. If there is, I'd want to recognize is before using the idea.11:57
<pivotal-bot>Chris Beer added "FedoraObject#getSize calculation is broken when your object contains other objects" https://www.pivotaltracker.com/story/show/4913728511:58
Chris Beer started "FedoraObject#getSize calculation is broken when your object contains other objects" https://www.pivotaltracker.com/story/show/49137285
<ajs6f>I was able to do an Autocloseable Session with dynamic proxy and it only took an hour or so. Hm...
<pivotal-bot>Chris Beer delivered "FedoraObject#getSize calculation is broken when your object contains other objects" https://www.pivotaltracker.com/story/show/49137285
<ajs6f>Maybe we could do a Session implements UserTransaction in the same way...11:59
http://docs.oracle.com/javaee/6/api/javax/transaction/UserTransaction.html
fasseg: any thoughts on that idea?12:01
fasseg: or the general question of how to do both
good single-use and good multiple-use methods?
<fasseg>hoppa sry was just merging testhelpers...
have to read up12:02
<ajs6f>No prob.
It started at 11:44
<fasseg>but shouldn't the transactions be exposed to the user? so we cant really use annotations...12:03
* travis-ci joins
[travis-ci] futures/fcrepo4#458 (master - 65c7975 : Chris Beer): The build has errored.
[travis-ci] Change view : https://github.com/futures/fcrepo4/compare/fb6c8ea0fd3d...65c7975062e0
[travis-ci] Build details : http://travis-ci.org/futures/fcrepo4/builds/6824054
* travis-ci leaves
<fasseg>ahh ok i get it
<ajs6f>Yeah, definitely exposed. That's why we'd want a concrete type of object associated to them.12:04
Like some kind of special Session, as cbeer proposed.
<cbeer>ajs6f: wow. i'm looking at the jena source trying to figure out how they do SPARQL/Update.
that's a project that took their java seriously.
<ajs6f>Like in a good way?12:05
Hopefully?
<fasseg>Couldn't we use a jax-rs provider as you did it for the session injection just now?
<ajs6f>To inject a transaction?
<fasseg>yeah
and then have jax-rs use the injected tx as a response entity12:06
<ajs6f>We could, but who commits it?
Who pulls the trigger?
<fasseg>and the user has control via exposed rest methods sth like POST /tx/commit
<ajs6f>Wouldn't that mean the user would have to engage with a transaction for _every single_ operation?12:07
<fasseg>and he can attach the tx object as json to the request
<ajs6f>That's fine for people who _want_ to use xactions...
<fasseg>we could have autocommit like hibernate does
* kaarefc joins12:08
<fasseg>and set auto-commit to false and you have complete control over transactions
<ajs6f>I still don't understand how a single operation method knows whether or not to commit.
Or whether some other method is going to commit.
<fasseg>the method wouldn't commit it would just return an open tx object to the user
<ajs6f>Then doesn't the user have to engage with a transaction even when he/she doesn't want to?12:09
<fasseg>not when you set e.g. autocommit
<ajs6f>We want to let users make simple calls as well as transactional call.s
<fasseg>then the service can commit the session
<ajs6f>Hm.
<fasseg>but if the user wants to he can have complete tx control
<ajs6f>So every endpoint could either return a concrete value (like a profile, or content) _or_ a transaction...
<fasseg>nah i would have a additional endponit for tx opening12:10
<ajs6f>I don't see how that helps. Take addDatastream. It may return a 201, or it may return a transaction.
<fasseg>sth like GET /tx/open, POST /fcr:datastream, POST /datastream, POST /tx/commit12:11
and with autocommit you just leave out the tx calls
<ajs6f>Sure, but that doesn't help. addDatastream will still sometimes return a value, and sometimes return a transaction. You can't know statically.
<fasseg>and if you've got autocommit off and no tx is open you get an exception/or nothing happens
<ajs6f>This is not my point.12:12
I'm wondering about the code in endpoint methods.
<fasseg>oh so the datastreamservice.addDatastream returns a trasnaction or a value?
<ajs6f>In your design, it's going to have to return both at different times.
<fasseg>shall we talk a bit on the hangout?
<ajs6f>Okay.
See you in a minute.12:13
* eddies leaves12:15
<cbeer>hm. pulling in all of JENA to parse SPARQL/UPDATE seems pretty stupid12:17
<bljenkins>Project fcrepo4 build #511: UNSTABLE in 22 min: http://ci.projectblacklight.org/jenkins/job/fcrepo4/511/12:18
* Chris Beer: reorganize fcr:describe and fcr:children actions
* Chris Beer: update SitemapIT to use fcr:new
* Chris Beer: allow the AtomJMSIT to take up to 5 seconds
* eddies joins
<bljenkins>* Chris Beer: use the ObjectService to create /objects and /federated
* eddies leaves
* eddies joins
<bljenkins>* Chris Beer: update FedoraObject#getSize to only count the nt:file sizes under the object.
* Chris Beer: be sure to logout of our session when we're done with it.
<cbeer>i wonder if any23 can parse the format..12:19
<ajs6f>https://docs.jboss.org/author/display/MODE/Repository+and+Session#RepositoryandSession-Threadsafety12:28
<cbeer>so, any23 can't handle SPARQL/UPDATE12:40
(not too surprising)
but it would have been nice.. we could have written a JcrProperties writer and been done with it.12:41
<bljenkins>Yippie, build fixed!12:42
Project fcrepo4 build #512: FIXED in 22 min: http://ci.projectblacklight.org/jenkins/job/fcrepo4/512/
Project fcrepo-client build #234: FAILURE in 1 min 28 sec: http://ci.projectblacklight.org/jenkins/job/fcrepo-client/234/12:44
<cbeer>ajs6f: i guess if we're declaring SPARQL/UPDATE as the way to manage properties, i guess we should have an RDF serialization of those properties too12:46
<ajs6f>cbeer: Doesn't the rdf-generator do that?12:49
<cbeer>yeah, although it maybe does too much... and i think we'd need to make GET /path/to/object spit out triples too12:50
<ajs6f>you mean _just_ the properties...?
the rdf-generator can spit out properties from only certain namespaces, which might help.
The exxample in test just takes fedora: and dc:, not jcr:.12:51
+1 to GET /path/to/object spit out triples too
RDF, ideally, is just another serialization format.
cwilper's semantic packages live!
* github-ff joins
[fcrepo4] barmintor pushed 1 new commit to master: http://git.io/kyPgCw
fcrepo4/master 9fff429 Benjamin Armintor: configuring jacoco
* github-ff leaves
<ajs6f>"JaCoCo" sounds like an overly hip restaurant.12:52
<barmintor>there's an area in Brooklyn people call "BoCoCa"12:53
<bljenkins>Project fcrepo-kitchen-sink build #233: SUCCESS in 11 min: http://ci.projectblacklight.org/jenkins/job/fcrepo-kitchen-sink/233/12:55
Project fcrepo4 build #513: ABORTED in 3 min 52 sec: http://ci.projectblacklight.org/jenkins/job/fcrepo4/513/
armintor: configuring jacoco
<ajs6f>From now on, I'd like to be referred to as "SoRoKa".12:56
On my way to the office. Back online in a bit.
* ajs6f leaves
<bljenkins>Project fcrepo4 build #514: SUCCESS in 20 min: http://ci.projectblacklight.org/jenkins/job/fcrepo4/514/13:17
<barmintor>I think… that just might have worked...13:18
* travis-ci joins
[travis-ci] futures/fcrepo4#459 (master - 9fff429 : Benjamin Armintor): The build passed.
[travis-ci] Change view : https://github.com/futures/fcrepo4/compare/65c7975062e0...9fff4294959e
[travis-ci] Build details : http://travis-ci.org/futures/fcrepo4/builds/6825770
* travis-ci leaves
<barmintor>maybe better, anyway
still doesn't appear to be completely tracking the executed code from the tests13:20
* jonathangee joins13:32
<cbeer>barmintor: got a fcrepo 3.x question for you..13:44
<barmintor>cbeer: fire away
<cbeer>rubydora is sending this request: "POST /fedora/objects/transactions%3A1/relationships/new?subject=info%3Afedora%2Ftransactions%3A1&predicate=uri%3Aasdf&object=fedora%3Aobject HTTP/1.1\r\nAccept: */*; q=0.5, application/xml\r\nAccept-Encoding: gzip, deflate\r\nUser-Agent: Ruby\r\nAuthorization: Basic ZmVkb3JhQWRtaW46ZmVkb3JhQWRtaW4=\r\nHost: localhost:8983\r\nContent-Length: 0\r\nContent-Type: application/x-www-form-urlencoded\r\n\r\n"
and getting back a 404.
(JAXRSUtils) No operation matching request path "/fedora/objects/transactions%3A1/relationships/new" is found, Relative Path: /transactions%3A1/relationships/new, HTTP Method: POST, ContentType: application/x-www-form-urlencoded, Accept: application/xml,*/*;q=0.5,. Please enable FINE/TRACE log level for more details.
here's the api doc about it: https://wiki.duraspace.org/display/FEDORA36/REST+API#RESTAPI-addRelationship13:45
and i'm pretty sure it used to work.
any idea what we're doing wrong?
<barmintor>what's the transactions part?
<cbeer>it's just a pid
<barmintor>oh
* barmintor is looking now13:46
cbeer: it looks like it should work13:49
* barmintor goes to look at the IT
cbeer: can you do a GET to /fedora/objects/transactions%3A1/relationships ?13:53
<cbeer>yes
and got some rdf/xml back
<barmintor>the only thing I see sending 404 back is ObjectNotInLowlevelStorageException and DatastreamNotFoundException13:54
* nbanks leaves13:55
<barmintor>what happens if you drop the Accept header?13:56
I know that shou;dn't matter, but I'm wondering if CXF is trying to enforce it
since I don't see either of the two exceptions making sense there13:57
and I notice that /new doesn't have a @Produces annotation
<cbeer>i'm trying to download some older versions of fcrepo and see if it was a fcrepo regression14:02
but the hydra-jetty package is so mess up..14:03
* github-ff joins
[fcrepo4] fasseg pushed 3 new commits to master: http://git.io/lY8J1Q
fcrepo4/master 9fde1fa fasseg: added jacoco to me2 lifecyclemappings
fcrepo4/master a753706 fasseg: merged Testhelpers from http-api to http-common test jar
fcrepo4/master 87c642a fasseg: merged changes from master, updated FedoraNodesTest and FedoraChildrenTest to use the updated TestHelpers from http-common
* github-ff leaves
<fasseg>hmpf travis error14:06
* travis-ci joins
[travis-ci] futures/fcrepo4#460 (master - 87c642a : fasseg): The build has errored.
[travis-ci] Change view : https://github.com/futures/fcrepo4/compare/9fff4294959e...87c642ac94b8
[travis-ci] Build details : http://travis-ci.org/futures/fcrepo4/builds/6827770
* travis-ci leaves
<fasseg>hmm... Could not find artifact org.modeshape.bom:modeshape-bom-parent:pom:3.3-SNAPSHOT in travis-ci-sonatype-snapshots14:07
<cbeer>fasseg: i don't understand your commits there.. how/why are you making those "merged changes from master" commits?14:08
<fasseg>there was a commit in between my changes and i merged it in
so a ff with conflicts
can you restart the travis build? I'm lacking the necessary permissions14:10
* ajs6f joins
<barmintor>eddies: This is good to know- if you use PowerMock on the class that you're currently testing, it interferes with the instrumentation (b/c it's no longer the same class)14:12
<cbeer>fasseg: that's not a good way to resolve conflicts. you removed code in one commit and added it back in in the next. check out git rebase or even (less preferable, but better than what you did there) git merge, please.14:14
<ajs6f>fasseg: I was once like you. But then cbeer and barmintor took me out in the alley and beat the git rebase love into me. It was tough, but it was the right thing to do.14:15
barmintor: Was that what screwed up the coverage algorithms?14:16
<barmintor>ajs6f: eddies and I decided to move the jacoco analysis into the maven build, and then I had the sonar post-build reuse the test results14:17
<ajs6f>So local builds are now going to run analysis?
<barmintor>ajs6f: Now I'm trying to account for the discrepancies between the sonar reports and the eclipse plugin's coverage view14:18
<cbeer>barmintor: so, bad news. the POST works in fcrepo 3.5
<barmintor>cbeer: well, shit
<fasseg>i see, so FedoraDescribe and FedoraChildren would have incremental changes using rebase but using just git pull/add to resolve the conflicts did result in the complete classes ebing readded
<cbeer>hm. looks like hydra-jetty was only 3.6.1.. there's a 3.6.2, right?
<fasseg>sry about that14:19
<barmintor>cbeer: yes
<fasseg>ill make a big sticker on my display saaying "REBASE!"
<barmintor>ajs6f: yes to you too, but it only dumps on mvn veirfy, so mvn test should still be pretty snappy
* nbanks joins
<ajs6f>cool.
<barmintor>ajs6f: it does argue for moving static factory methods into a separate class, and not just having a separate test for static code14:20
<cbeer>iirc, i can just drop the 3.6.2 war over the 3.6.1 war and call it good
<barmintor>cbeer: yes
<cbeer>yup, fails there too14:21
<ajs6f>barmintor: I thought we already thought that was a good idea?
<cbeer>i guess this is where i file a bug
<barmintor>cbeer: I know where you can find all of the FCR3 committers
<cbeer>where's that?!14:22
<barmintor>ajs6f: I was debating between FooTest.java and FooStatic.java vs. FooTest.java and StaticHelper.java
StaticHelperTest.java, that is
1 class & 2 test classes vs. 2 classes & 2 test classes14:23
<ajs6f>oh.
<cbeer>https://jira.duraspace.org/browse/FCREPO-119114:25
<pivotal-bot>Chris Beer added comment: "blocked by FCREPO-1191 " https://www.pivotaltracker.com/story/show/4882472114:31
<cbeer>on the bright side, this is proof that hydra can't be using the fcrepo-provided relationship api14:35
<barmintor>cbeer: hydra reserializes RELS-EXT14:41
<cbeer>yes
<barmintor>like all decent folk, apparently
* travis-ci joins14:43
[travis-ci] futures/fcrepo4#460 (master - 87c642a : fasseg): The build passed.
[travis-ci] Change view : https://github.com/futures/fcrepo4/compare/9fff4294959e...87c642ac94b8
[travis-ci] Build details : http://travis-ci.org/futures/fcrepo4/builds/6827770
* travis-ci leaves
<eddies>cbeer: just wrapped up my calls and trying to catch up on irc. I take it https://jira.duraspace.org/browse/FCREPO-1191 is not related to FF? Something that came up in hydra-land?14:45
<cbeer>eddies: well, it breaks my rubydora tests against fcrepo 3.
but, yes. jcoyne has apparently known forever that it didn't work14:46
<eddies>cbeer: that's weird. i haven't re-run it just now, but i have an integration test in fedora-client that POSTs to /objects/<pid>/relationships/new with subject, pred, object query params that was certainly working a month or so ago and certainly since every point release of Fedora for awhile.14:50
<cbeer>barmintor suggested it might be the content-type or accepts headers rubydora is sending14:51
but we're not setting them ourselves.
* ajs6f1 joins14:53
* ajs6f leaves14:54
* kaarefc leaves14:55
<barmintor>eddies: I think I'm making some progress. Now trying to get jacoco to split unit from IT15:00
supposedly sonar can handle that
<eddies>barmintor: so are you driving the instrumentation from the maven build with a profile now?15:01
<barmintor>eddies: I actually just have jacoco dump in the report phase of the verify goal now15:02
when I get it working the way we want, I'll try to sort out the profile thing
<eddies>ok. is that working for the multi-module setup too?
s/the/our/15:03
<barmintor>yeah- sonar just accumulates all the different files
<ajs6f1>barmintor/eddies: If the Maven setup is in the pom for fcrepo4 (the parent) does that mean it will affect all the modules that inherit from that (all the modules, that is).15:04
?
<barmintor>yeah
<eddies>ajs6f1: yes
<barmintor>OH YEAH!
<ajs6f1>HELL YEAH!
Well, then we really should get it into a profile.15:05
<barmintor>1 step at a time
<eddies>patches welcome!
<ajs6f1>When barmintor is happy with the way that it works now, I'm happy to do the profile-ification.
<barmintor>first I have to make sure we are appropriately shamed by showing how much of our coverage is in IT
<ajs6f1>You're making the assumption that I have a sense of shame about my code. Bad assumption.15:06
<barmintor>s/we are/I am/
<ajs6f1>Right. :)
<eddies>i wanted to curse the obscure way in which one has to start the cargo plugin for fedora-client but then i realized i wrote the fedora plugin so i feel no gratification from cursing
<ajs6f1>"Why do the righteous suffer?" — the Book of Job15:07
Because they don't properly unit test.
<eddies>ajs6f1: do you know how to invoke (in general) a maven plugin's id/goal?
e.g., the way you do mvn cargo:run15:08
<ajs6f1>A specific goal from a plugin is normally invoked:
plugin-namespace:goal
Just like your example.
What's not working?
<eddies>and that namespace is defined how/where?
<ajs6f1>By the plugin itself. We can't change it.
<eddies>well, it's my plugin so i could change it
<ajs6f1>There's a Maven help: goal that tells you all of namespaces in scope.15:09
Oh, okay. What did _you_ set it to?
<eddies>ah. that's helpful. let me try that. damned if i know. i only wrote it :P
it was the first and only maven plugin i ever wrote and i tried to evict the memory of it as soon as i got it working15:10
<ajs6f1>Your GC is too eager.
<eddies>mvn help:goal and mvn help give me no love
<ajs6f1>Oh, check this:15:11
http://maven.apache.org/guides/plugin/guide-java-plugin-development.html
"And, you [can] specify a fully-qualified goal in the form of:
mvn groupId:artifactId:version:goal"
So you can get away without a goal namespace prefix if you use fully-qual'd form.
<eddies>yeah, i just saw that too. ok, this is turning out to be more of a detour than i anticipated in investigating cbeer's fcrepo3 regression report15:12
<ajs6f1>What does this have to do with the relationships API?
<eddies>i just thought it would be faster to diagnose b/c i know i have a working system test in fedora-client that does exactly what chris reports is failing15:13
<ajs6f1>Oh, ok. Don't we have an i-test in fcrepo3 for that?15:14
<eddies>i figured i could just trace the logs to verify headers that are being issued in the working test
<ajs6f1>(Or sys-test, really.)
<eddies>i dunno, i never look at that codebase ;-)
no, the tests there drive me nuts
i can't cope with our fcrepo3 tests except as a last resort15:15
<barmintor>there's an IT in FCR3, but it goes through the client
<ajs6f1>I find they're much more reasonable after a bottle of bourbon.
barmintor: the "official" client?
<eddies>you may be joking, but i poured myself a cognac before starting this
<barmintor>the one in the fcrepo project
<ajs6f1>The cognac in the fcrepo project?15:16
<eddies>required emotional support
<ajs6f1>This explains a good deal.
Well, we should be able to look at the client code, then. Unless it's autogen'd from WSDL.
<eddies>yes, but i don't know what the full set of headers are that are being sent out15:17
it's whatever jersey is doing when issuing a POST by default
<ajs6f1>Mm. But the Hydra code runs tests that succeed, right? Maybe the headers are shown there?
<eddies>(fedora-client uses jersey-client)
no, this whole thing was prompted by rubydora test code that is failing against fcrepo3 (3.6.x)15:18
<ajs6f1>Urg.
cbeer: can you paste the original URL again? I've lost it in my IRC log.
<cbeer>https://jira.duraspace.org/browse/FCREPO-119115:19
<ajs6f1>thanks
* nbanks leaves15:20
<ajs6f1>One thing I wonder about:
Content-Type: application/x-www-form-urlencoded
But I don't know what would make more sense.
Okay, I'm going to open the fcrepo3 code. This is going to hurt.15:22
<cbeer>stand-up tomorrow: we all wasted our time trying to fix a bug in an API no one consumes and that we want to kill15:23
<ajs6f1>"Vanity of vanities, all is vanity." — http://www.bartleby.com/108/21/1.html
<eddies>wow. in a rare episode of foresight, i thoughtfully included support for a test.debug system property in fedora-client15:26
<ajs6f1>Must have been the cognac.
The JAX-RS Resource RelationshipResource looks pretty straightforward.15:28
I don't know why it wouldn't pick up that request.
And Eddie wrote it, so you _know_ it's good stuff.15:29
<eddies>cbeer: https://gist.github.com/eddies/550474115:30
^^ all the debug output i get of a successful post to add a relationship
(and fetching it back)
<ajs6f1>One thing:
<cbeer>hm.
<eddies>if it's to be believed, no additional headers set
<ajs6f1>eddies's example shows:
Content-Type: text/html
Not a multipart form.15:31
Maybe the change to CXF changed some global behavior concerning multiparts?
<eddies>eww, that pasted terribly
<ajs6f1>Or rather, just plain forms, not multiparts.
cbeer: can you easily change the test to use Content-Type: text/html?15:32
<cbeer>ajs6f1: isn't that in the response?
<eddies>cbeer: yes
<ajs6f1>In the issue as you posted it, the request is going out with:
Content-Type: application/x-www-form-urlencoded
<eddies>ajs6f1: but the text/html you're referring to is in the client in-bound response in my gist15:33
<ajs6f1>Oh, you're right.
But you're not setting a Content-type: on the way in at all.
And I still wonder if application/x-www-form-urlencoded is throwing CXF off somehow.
<eddies>cbeer: but anyway, i'd try ajs6f1's suggestion of dropping that urlencoded header15:34
if it's possible
<cbeer>i can't /not/ send a content-type header. an empty content type didn't help.. trying with text/xml15:36
no good.15:37
<eddies>i also notice that in my gist, i haven't url encoded anything
not the pid, nor the query params15:38
<ajs6f1>But would that stop the JAX-RS impl from finding a resource to serve the request?
<eddies>which, if anything, should be a problem
i dunno. i'm just trying to think of what's differing between our POSTs
<ajs6f1>New issue for 3.7— deprecate everything and remove all the code.
<cbeer>https://gist.github.com/cbeer/4c51e58231a37c59a07e15:39
just with plain curl.
<ajs6f1>cbeer: Do the tests for retrieving/mutating relationships work?
<cbeer>ajs6f1: retrieving, yes.
<ajs6f1>For the example you just gist'd with plain curl, does the log show the same JAX-RS exception?15:40
* github-ff joins
[fcrepo4] barmintor pushed 1 new commit to master: http://git.io/6_dk4g
fcrepo4/master 35c395f Benjamin Armintor: fixing up tests in fcrepo-jms for better instrumentation; splitting falsafe and surefire into separate jacoco reports
* github-ff leaves
<cbeer>eddies: hm, that's interesting. i took out the urlencoded ":"
and it worked
<ajs6f1>??!!!?!!
<cbeer>curl -X POST "http://fedoraAdmin:fedoraAdmin@localhost:8983/fedora/objects/transactions:1/relationships/new?subject=transactions%3A1&predicate=uri%3Aasdf&object=fedora%3Aobject" -v15:41
good ^
<ajs6f1>So it wasn't finding the object.
<cbeer>curl -X POST "http://fedoraAdmin:fedoraAdmin@localhost:8983/fedora/objects/transactions%3A1/relationships/new?subject=transactions%3A1&predicate=uri%3Aasdf&object=fedora%3Aobject" -v
bad ^
<eddies>fcrepo3: we only support anti-spec requests!
<ajs6f1>That's where the 404 was arising.
Criminy.
<cbeer>wasn't there an issue about the relations api recently?
<ajs6f1>Yeah, you just filed one.15:42
<eddies>relationships always have issues
<cbeer>https://jira.duraspace.org/browse/FCREPO-1187
<ajs6f1>Okay, so it's fixed in 3.7
<eddies>oh. evidently i fixed it
my memory really is short
<ajs6f1>Good work! You owe yourself a cognac.15:43
<cbeer>eddies++
fixing it before i knew it was a problem
so, barmintor. when's 3.7 coming out?
<eddies>hey, i like my commit message on that fix: "Despite my best efforts to craft a unit test for this, org.fcrepo.Server has defeated me."
<barmintor>ask the release manager
<ajs6f1>barmintor, aren't you the release manager?
<eddies>lol15:44
<ajs6f1>not_barmintor, aren't you not not the release manager?
* not_barmintor points at theRealBarmintor
<theRealBarmintor>I, the one true Benjamin Armintor, promise to release Fedora 3.7 tonight15:45
<cbeer>barmintor++15:46
you're the best!
<eddies>my work here is done
<not_barmintor>I think I cannot release 3.7
* nbanks joins
<not_barmintor>until I get one of those cert things
and have some people sign it
<eddies>cbeer: for rubydora, can you work around this for now to get your tests working?
<cbeer>eddies: yeah, i've just marked the whole test as pending.15:47
<eddies>we should have done key-signing when we were in boston. opportunity missed
<cbeer>how will you ever know if barmintor is theRealBarmintor?!
<eddies>now i'll have trust some unsavory types via email
or hangouts or somesuch
i think ajs6f1 needs his key signed as well, if i recall15:48
<ajs6f1>I'm not reading my key out loud.
<barmintor>ok, can sonar find the output files?!
* barmintor is on the edge of his seat
<eddies>back in 5mins. i need to pour myself another drink to reward myself for persevering with fcrepo315:49
<barmintor>cbeer: I know you don't exactly <3 mockito, but holy crap when I look at the FCR3 test suite15:50
* nbanks leaves15:51
<ajs6f1>barmintor: isn't reason we have all that Mockito because of MODE?15:54
<barmintor>Oh, I don't think so. It's because we have unit tests. It's just that mocking n Java is much uglier than mocking in Ruby15:55
My goodness- I think it worked.15:57
<eddies>barmintor/ajs6f1: while i wouldn't go so far as to say mocking is evil, i would say that insofar as we need mocks to test our own code (e.g. not MODE's or someone else's), it's a bit of code smell16:00
<barmintor>Nonsense!
it just means you're separating your testing concerns!
and also: BEHOLD! http://sonar.fcrepo.org/dashboard/index/1?did=116:01
* eddies is afraid barmintor might be serious
<ajs6f1>That's what I meant, eddies.
<eddies>hot damn
barmintor++
<barmintor>Integration and unit test coverage separated!
Reasonable accurate line coverage reporting!16:02
Meaningful cloud reports!
<eddies>barmintor: so that jump in our unit test coverage is just because of the better/correct instrumentation?16:03
<cbeer>barmintor++
* travis-ci joins
[travis-ci] futures/fcrepo4#461 (master - 35c395f : Benjamin Armintor): The build passed.
[travis-ci] Change view : https://github.com/futures/fcrepo4/compare/87c642ac94b8...35c395f63412
[travis-ci] Build details : http://travis-ci.org/futures/fcrepo4/builds/6830267
* travis-ci leaves
<cbeer>barmintor++
<barmintor>it's also because I've been writing some unit tests, but yes
<eddies>ah, so this is the kind of view i used to get w/ cobertura back in the day: http://sonar.fcrepo.org/drilldown/measures/1?metric=coverage&rids[]=2&rids[]=14#16:04
oh wait. that link doesn't drill you down to the class i selected
<barmintor>yeah, the class selection is ajaxy
<eddies>just pick a class with some but not 100% coverage16:05
and you see which lines are missing coverage
which is nice
man that fcrepo-audit module has some great coverage
*cough*16:06
we should all write one-liner modules so we can have 100% coverage throughout
barmintor: so can you recollect all that you had to do for this?16:07
i'd like to repeat it on fcrepo3 actually
<barmintor>The jacoco stuff is in the pom
you can see where failsafe and surefire produce different report files16:08
and then the sonar stuff is in the fcrepo4 jenkins config
<eddies>ok, maybe i'll give it a shot tomorrow. i fear trying to start this at 4am
<barmintor>yeah, that's a bad idea
<eddies>barmintor: anyway great work. i know how shitty it is to muck with maven and worse to start throwing sonar and jacoco and jenkins into the mix16:09
<barmintor>finally, I can get back in the van!16:10
<eddies>+1 for excellent idiomatic construction
* nbanks joins
<ajs6f1>I'm outta here.16:12
barmintor++
See you guys later...
* ajs6f1 leaves
<pivotal-bot>Chris Beer added "Add text/xml output to field search api" https://www.pivotaltracker.com/story/show/4915602316:18
* github-ff joins16:47
[fcrepo4] barmintor pushed 1 new commit to master: http://git.io/lObyNg
fcrepo4/master 300599f Benjamin Armintor: begin testing rss and webhooks
* github-ff leaves
* fasseg leaves16:59
<bljenkins>Project fcrepo4 build #517: UNSTABLE in 18 min: http://ci.projectblacklight.org/jenkins/job/fcrepo4/517/17:05
armintor: begin testing rss and webhooks
* travis-ci joins17:10
[travis-ci] futures/fcrepo4#462 (master - 300599f : Benjamin Armintor): The build passed.
[travis-ci] Change view : https://github.com/futures/fcrepo4/compare/35c395f63412...300599fcd111
[travis-ci] Build details : http://travis-ci.org/futures/fcrepo4/builds/6832569
* travis-ci leaves
<barmintor>ok, that's it for me. G'night!17:17
* barmintor leaves
<cbeer>eddies: ping? i assume (and hope) it's still too early for you, but i'm struggling with the right behavior for the mode-1908 patch19:50
<pivotal-bot>Chris Beer started "Update fixity and datastream location information for composite stores configurations" https://www.pivotaltracker.com/story/show/4905742120:01
<eddies>cbeer: i'm up20:10
<cbeer>eddies: hey, so:
<eddies>unfortunately…i can't seem to sleep more than 2.5hrs at a time :-(
<cbeer>one of the features in binary stores is a minimum size, below which the binary store will just return an in-memory value that gets serialized as part of the object20:11
in the first pass at the composite binary store, i allowed the minimum size to be different between the different stores20:12
but it seems to lead to some weird edge cases (e.g. you have two stores, one with a low min size, one with a high min size.. your hint says to put it in the one with the high min size, but your stream isn't big enough.. so it ends up as an in-memory value instead)20:13
i'm thinking about just declaring one-size-fits-all, and push whatever size-based logic we need off onto the size-based hint that we haven't built yet
make sense?
<eddies>point of clarification: a binary store's min size means a resource never gets to the binary store?20:15
* a resource less than the min size20:16
<cbeer>yes. it goes into the object store
as part of the bson blob
oh, i know how to make this make sense... i guess we need a binary store that is 'always store this value in the object'20:18
and then the size-based hints can actually explicitly choose that20:19
<eddies>ok. currently the configuration of the min size is per binary store that is a child of the CompositeBinaryStore, but you want to have a single min size configured at the level of the CompositeBinaryStore?
i think i may not be understanding: "you have two stores, one with a low min size, one with a high min size.. your hint says to put it in the one with the high min size"20:22
<cbeer>yes, that's right.20:23
<eddies>i didn't envision a use that selects a store based on the store's min size
<cbeer>well, it'd be based on the object size. same deal.
<eddies>it was always along the lines of: given a resource at a given size threshold, use store X20:24
ok, the way you described, it sounded more like select a store based on some attribute of the store (i.e. its min size)
<cbeer>well, that's kinda the current behavior. and by doing what i'm about to do, i'm junking that20:25
<eddies>ok
<cbeer>but, yeah, it's ok as long as we add a way to explicitly ask for a value to go into the object serialization
<eddies>i guess i did hear someone (at the wgbh meeting, i think) say i'd like to select a store based on some attribute of the store—i think it was pick a store based on the free space available. but i don't want to deal with that now20:26
<bljenkins>Project fcrepo-kitchen-sink build #234: ABORTED in 8 hr 16 min: http://ci.projectblacklight.org/jenkins/job/fcrepo-kitchen-sink/234/21:35
Project fcrepo-kitchen-sink build #235: UNSTABLE in 3 min 45 sec: http://ci.projectblacklight.org/jenkins/job/fcrepo-kitchen-sink/235/21:39
* nbanks leaves22:12
* eddies leaves22:57
* eddies joins23:01
* eddies leaves
* eddies joins
* nbanks joins23:09
* nbanks leaves23:14
* github-ff joins23:16
[fcrepo4] barmintor pushed 1 new commit to master: http://git.io/i0wllw
fcrepo4/master e709a87 Benjamin Armintor: unit tests for exception mappers
* github-ff leaves
* travis-ci joins23:36
[travis-ci] futures/fcrepo4#463 (master - e709a87 : Benjamin Armintor): The build passed.
[travis-ci] Change view : https://github.com/futures/fcrepo4/compare/300599fcd111...e709a875f154
[travis-ci] Build details : http://travis-ci.org/futures/fcrepo4/builds/6840391
* travis-ci leaves
<bljenkins>Yippie, build fixed!23:40
Project fcrepo4 build #519: FIXED in 24 min: http://ci.projectblacklight.org/jenkins/job/fcrepo4/519/
armintor: unit tests for exception mappers

Generated by Sualtam