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

Using timezone: Eastern Standard Time
* anusha joins06:07
* anusha leaves06:19
* anusha joins06:26
<ff-pivotal>Edwin Shin added comment: "JSR 292 aka invokedynamic looks to be the way to go going forward. Also, specifically for JRuby, there's Embe..." https://www.pivotaltracker.com/story/show/4480712107:16
* ppound joins07:29
* eddies leaves07:31
* eddies joins07:39
* eddies leaves
* eddies joins
* jcoyne joins08:12
* JasonDGI joins08:18
<ff-pivotal>A. Soroka started "PUT /rest/objects/{pid} must accept requests without a request body" https://www.pivotaltracker.com/story/show/4484658508:37
* github-ff joins08:53
[fcrepo4] ajs6f pushed 1 new commit to master: http://git.io/AY0T_Q
fcrepo4/master 8abf937 ajs6f: Altered PUT to /rest/objects/[pid] for: https://www.pivotaltracker.com/story/show/44846585
* github-ff leaves
* ajs6f joins
<ff-pivotal>A. Soroka added comment: "Request body is now gone. See: https://github.com/futures/fcrepo4/commit/8abf9373f96370af9c1cc2ea77422812b93d9c03" https://www.pivotaltracker.com/story/show/4484658508:54
A. Soroka edited "PUT /rest/objects/{pid} must accept requests without a request body" https://www.pivotaltracker.com/story/show/44846585
* JasonDGI leaves09:02
* JasonDGI joins09:04
* travis-ci joins09:07
[travis-ci] futures/fcrepo4#109 (master - 8abf937 : ajs6f): The build passed.
[travis-ci] Change view : https://github.com/futures/fcrepo4/compare/3c8073df6583...8abf9373f963
[travis-ci] Build details : http://travis-ci.org/futures/fcrepo4/builds/4956601
* travis-ci leaves
* VincentNG joins09:16
* github-ff joins09:38
[fcrepo4] ajs6f pushed 1 new commit to master: http://git.io/jfVAAQ
fcrepo4/master 22d7817 ajs6f: Added configurable stack trace returns in 500 errors
* github-ff leaves
<ff-pivotal>A. Soroka added comment: "Finished with https://github.com/futures/fcrepo4/commit/22d7817bb0e710f2ff489d98ff687fe8aa1ce3d2" https://www.pivotaltracker.com/story/show/44821755
A. Soroka edited "Use JAX-RS exception handling for fcrepo-legacy-api" https://www.pivotaltracker.com/story/show/44821755
* travis-ci joins09:52
[travis-ci] futures/fcrepo4#110 (master - 22d7817 : ajs6f): The build passed.
[travis-ci] Change view : https://github.com/futures/fcrepo4/compare/8abf9373f963...22d7817bb0e7
[travis-ci] Build details : http://travis-ci.org/futures/fcrepo4/builds/4957510
* travis-ci leaves
<ff-pivotal>Jason MacWilliams added comment: "successfully ingested an object at http://islandora.fedora4lib.org/islandora/object/islandora:1" https://www.pivotaltracker.com/story/show/4349720510:11
Jason MacWilliams added comment: "also forked tuque and islandora (for fedora4) into futures repo" https://www.pivotaltracker.com/story/show/4349720510:12
* barmintor_ joins10:13
* github-ff joins10:24
[fcrepo4] ajs6f pushed 1 new commit to master: http://git.io/Jw7mEw
fcrepo4/master ecdfb5f ajs6f: Added FedoraObject abstraction for use with ObjectService
* github-ff leaves
* avessey joins10:32
<JasonDGI>anyone else getting permgen errors when running fcrepo4 for a couple of hours straight?10:36
<ajs6f>Ben— you want to come to the fcrepo3 commiters' meeting?
You _are_ release manager. :)10:37
<eddies>barmintor barmintor_ where art thou?
<ajs6f>Jason— no, but turning on ClassUnloading may help.
* travis-ci joins10:38
[travis-ci] futures/fcrepo4#111 (master - ecdfb5f : ajs6f): The build passed.
[travis-ci] Change view : https://github.com/futures/fcrepo4/compare/22d7817bb0e7...ecdfb5f37ce9
[travis-ci] Build details : http://travis-ci.org/futures/fcrepo4/builds/4958486
* travis-ci leaves
<JasonDGI>ajs6f how? is it just a command line switch?
Best committers' meeting _ever_.10:44
<cbeer>ajs6f++ # going to bed and coming back to fixed bugs feels good10:50
<ajs6f>If you just slept in for a couple of hours we'd be done with the project! :)10:51
<cbeer>would if it were true.10:52
<JasonDGI>between requester and owner, who is supposed to deliver a ticket?10:55
<ajs6f>Owner finishes, requester delivers, Eddie (wearing product owner hat) accepts.
<ff-pivotal>Chris Beer finished "Make the demo hydra app use our branch of rubydora" https://www.pivotaltracker.com/story/show/4484499311:00
<JasonDGI>lost connection11:10
<ff-pivotal>Chris Beer edited "Update rubydora to use the batch-modify-object endpoint instead of multiple sequential requests." https://www.pivotaltracker.com/story/show/44807579
* github-ff joins
[fcrepo4] ajs6f pushed 2 new commits to master: http://git.io/wwdtyw
fcrepo4/master 0224771 ajs6f: Introduced Datastream abstraction for use with DatastreamService
fcrepo4/master 731ba8a ajs6f: Updated Spring for use with DatastreamService
* github-ff leaves
<jcoyne>cbeer: nice.11:15
<cbeer>jcoyne: yeah, really easy. i don't know how to handle deletes, or datastream properties11:16
<jcoyne>cbeer: by "datastream properties" you mean, how do we read them?
<cbeer>jcoyne: no, write.11:17
jcoyne: e.g. adding datastream labels to the datastreams
<jcoyne>Mmmm, hm.
<cbeer>but we don't have any in fcrepo4, so...
<jcoyne>cbeer: is there any read optimization yet?11:18
<cbeer>eddies: ha.
<jcoyne>give me the object, with 3 (utf-8) datastreams?
That would make hydra much more efficient.
<ajs6f>jcoyne|cbeer: I just added classes for Object and Datastream, and that seems like where we should add helper methods for properties.11:19
<ajs6f>That would hide the JCR API from clients.
<cbeer>eddies: you got passed the abstract class inheritence problem?
<jcoyne>ajs6f: I was thinking that was necessary.
<ajs6f>jcoyne: Have at it!
<jcoyne>cbeer: I'd love to write a patch, but I can't even do a simple refactor and get the tests passing.11:20
<cbeer>eddies: shouldn't your ruby classes have a java-land class name?
eddies: and i think we should have this conversation off of standup
jcoyne: the tests pass out-of-the-box for you, though?11:21
<jcoyne>cbeer: doing 'mvn test' ?
<jcoyne>cbeer: Tests run: 19, Failures: 3, Errors: 0, Skipped: 011:25
<cbeer>mvn clean test?
<jcoyne>I'l give that a shot
<ff-pivotal>Chris Beer added "Retrieve multiple datastream content from a single request" https://www.pivotaltracker.com/story/show/44889419
Chris Beer estimated "Retrieve multiple datastream content from a single request" as 2 points https://www.pivotaltracker.com/story/show/44889419
<cbeer>(i notice pivotal is still public. i'm happy for it to stay that way)11:26
* travis-ci joins
[travis-ci] futures/fcrepo4#112 (master - 731ba8a : ajs6f): The build passed.
[travis-ci] Change view : https://github.com/futures/fcrepo4/compare/ecdfb5f37ce9...731ba8af7b56
[travis-ci] Build details : http://travis-ci.org/futures/fcrepo4/builds/4959599
* travis-ci leaves
<jcoyne>cbeer: Yeah, looks good when clean.11:28
* github-ff joins
[fcrepo4] ajs6f pushed 1 new commit to master: http://git.io/fqoNvg
fcrepo4/master 6f45553 ajs6f: Refactored and cleaned up DatastreamServiceTest
* github-ff leaves
<cbeer>eddies: https://github.com/futures/fcrepo4/pull/411:30
that was my pull request
i think ce8a795 is exactly what you have
* anusha leaves11:33
<ff-pivotal>Chris Beer added "Create an org.fcrepo.BasicSequencer that provides a concrete class for dynamic language sequencers to extend." https://www.pivotaltracker.com/story/show/4489052911:39
* github-ff joins11:41
[fcrepo4] ajs6f pushed 1 new commit to master: http://git.io/KAfAPQ
fcrepo4/master e98b514 ajs6f: Made DublinCore JAX-RS use ObjectService
* github-ff leaves
* ajs6f leaves
* travis-ci joins11:44
[travis-ci] futures/fcrepo4#113 (master - 6f45553 : ajs6f): The build passed.
[travis-ci] Change view : https://github.com/futures/fcrepo4/compare/731ba8af7b56...6f45553e0db7
[travis-ci] Build details : http://travis-ci.org/futures/fcrepo4/builds/4960048
* travis-ci leaves
<ff-pivotal>Edwin Shin delivered "Update rubydora to use the batch-modify-object endpoint instead of multiple sequential requests." https://www.pivotaltracker.com/story/show/44807579
Edwin Shin accepted "Update rubydora to use the batch-modify-object endpoint instead of multiple sequential requests." https://www.pivotaltracker.com/story/show/44807579
<barmintor_>sorry, I thought not being on the sprint meant not having to apologize for missing a standup. I was interviewing a job candidate.11:48
<eddies>you're still the 3.7 release manager =) nothing to do with us futures folks ;-P11:50
* travis-ci joins11:57
[travis-ci] futures/fcrepo4#114 (master - e98b514 : ajs6f): The build passed.
[travis-ci] Change view : https://github.com/futures/fcrepo4/compare/6f45553e0db7...e98b514e857d
[travis-ci] Build details : http://travis-ci.org/futures/fcrepo4/builds/4960303
* travis-ci leaves
* VincentNG leaves12:20
* JasonDGI leaves12:21
* JasonDGI joins
objects/{pid}/versions, does this endpoint no longer exist?12:22
<cbeer>doesn't look like it. if you need it, make it (or at least file a ticket)12:25
i think there's a datastreams one you could crib from12:26
* VincentNG joins12:53
<barmintor_>jcoyne: FWIW, you're technically right that you can't override static methods in Java (at least through se 6). It just looks like you can b/c of name shadowing. Evidence: Try to call super() in a static method.13:03
<jcoyne>barmintor_: come on and chime in. Be a pendant too!13:04
<barmintor_>also, I think JavaScript has primitives? I was totally blown away the first time I wrote a Ruby script that used array refs to point at bit switches in an int.
jcoyne: that thread… no.13:05
<jcoyne>Now I want to know the behavior for Smalltalk static methods.
barmintor: you're totally right about primitives in javascript, that's hidden because it can silently coerce between the object and the primitive type.13:07
<barmintor_>which Java does sometimes now, so as to confuse the crap out of people13:08
<JasonDGI>do we have a model for datastreams and how they attach to objects?13:09
* jcoyne just goes with Lisp
* eddies leaves13:19
<barmintor_>jcoyne: on further reflection, the fact that super isn't bound in static contexts suggests that Java classes really arent instances of Class, but that the reflection api makes them appear to be so.13:23
<ff-pivotal>Chris Beer added "Introduce ourselves on the MODE forum" https://www.pivotaltracker.com/story/show/4489920113:24
* github-ff joins13:25
[fcrepo4] cbeer pushed 1 new commit to master: http://git.io/bWfhDw
fcrepo4/master 158f169 Chris Beer: update to ISPN 5.2.1.Final
* github-ff leaves
<jcoyne>barmintor_ funny how that thread went from "Am I a coder?" to "No questions asked, if you're still reading, you ARE a coder"13:28
<cbeer>oh, i guess i'm not a coder then?13:29
or i'm a coder because i have better things to do than read a thread about if i'm a coder?13:30
<barmintor_>cbeer: I've always had my suspicions about you. A little too smart and productive to be a coder, IMO. I think you might be a management spy.13:31
<cbeer>i just outsource all my work to China.
* ajs6f joins13:37
* travis-ci joins13:40
[travis-ci] futures/fcrepo4#115 (master - 158f169 : Chris Beer): The build passed.
[travis-ci] Change view : https://github.com/futures/fcrepo4/compare/e98b514e857d...158f1693a0c2
[travis-ci] Build details : http://travis-ci.org/futures/fcrepo4/builds/4962998
* travis-ci leaves
<cbeer>ajs6f: i was chatting with rhauch about the clustering trouble
<cbeer>and the clustercacheloader was new to him, and he suggested it was unnecessary
and i think he might be right
New to him?
Well, okay. Let's pull it out and drive away.13:41
<cbeer>rhaunch: cbeer: the use of clustered cache loader is interesting, especially with a 20sec timeout
10:17 cbeer
interesting.. good? bad? (we probably don't know what we're doing yet)
10:17 rhauch
cbeer: basically, if a node is needed and is not owned by the local process' cache, then upon demand the clustered cache loader will find it
cbeer: honestly, I've never used it
10:17 cbeer
ok, that's what we expected to happen
10:18 rhauch
cbeer: that's my theoretical understanding. but it's unclear to me why the cache wouldn't work that way without it.
cbeer: state transfer would ship any changes, but since the local process' cache doesn't own the node, it would basically ignore any state changes.
anyway, i've hit a different error now, but it's one i recognize
essentially, on the initial sync, it tries to copy some namespaced nodes and hits:13:42
Caused by:
org.modeshape.jcr.value.NamespaceException: There is no namespace registered for the prefix "fedora"
<ajs6f>Do we want an initial sync to occur?
<cbeer>i guess, or, ISPN 5.2.1 fixed some critical bug in clustering.
i suppose i should check13:43
<ajs6f>It's always nice when version bumps fix stuff.
<cbeer>yeah, let me back out the ispn config change
and see
ajs6f: i think it needs to do an initial ISPN state sync.13:45
<ajs6f>But not content
<cbeer>well, in our current config, no.
we said 1 owner.
(which also surprised rhauch)
i really should do that forum post13:46
<ajs6f>So why would the namespace prefix be coming up as an issue… unless MS is doing some kind of sync.
<ppound>has anyone had jetty unload the web application and restart on them
<ajs6f>Sure, if you change the code of the webapp. It shouldn't restart on module-code changes, tho'.13:47
<ppound>things were working and I had a few objects in the repo but after reloading it says 0 object and a size of 0?
did modify and code except drupal php code13:48
i'll watch for it happening and I maybe to give more info if it happens again
<ajs6f>That's what should happen after a restart. The config currently purges the repo on startup. Obviously not good for the future, but for development that seemed appropriate. You can change that behavior in the Inifinispan config.13:50
<JasonDGI>but why would it restart in the first place?13:51
<ajs6f>Hard to say without seeing the setup.13:52
<ppound>it would be a pretty standard setup just pulled the code down and did the build and then ran it, I'll keep an eye out for it happening again13:53
<ajs6f>Thanks. Let me know if it does.
* github-ff joins14:00
[fcrepo4] ajs6f pushed 1 new commit to master: http://git.io/jYninA
fcrepo4/master 2e7fe72 ajs6f: Made all methods in [Object|Datastream]Service static to prevent need to use actual [Object|Datastream]Service instances
* github-ff leaves
<ajs6f>jcoyne: I wasn't paying attention a I should have been this morning— did you want some kind of methods having to do with datastream labels? Am I remembering that correclty?14:01
<jcoyne>ajs6f: I think you're thinking of cbeer.14:07
<cbeer>ajs6f: i don't know if the request was for labels, or an observation that we just didn't have them
ajs6f: and i decided to do something that doesn't anticipate needing ds labels.
<ajs6f>Well, I'm happy to do it if we have an actual thing we want to do. :) With Datastream class it's now easy.14:08
<cbeer>ajs6f: it'll just take some work on the multipart upload endpoint to figure out how to support it
i suspect it's some abuse of query parameters
<ajs6f>So… I'll go ahead and do it, and it will be waiting. I can use it in FedoraDatastreams.getDatastream() right away.14:09
<cbeer>e.g. /objects/{pid}/datastreams?ds1[label]=abc
<ajs6f>In the message body there is no place to put them? Like the message body is just pure content?14:10
which doesn't mean it needs to stay that way
but that's how it is.
(i know, let's include a checkm manifest!)
<ajs6f>I don't know much about multipart forms… is there a good place to put them, in there?
Like some kind of "filename"-type deal?14:11
<cbeer>yes, but i'm using the content-disposition name to mean the dsid
<ajs6f>Fair enough.
<cbeer>(heading to the office.. where i'll bang my head against this clustering + namespace issue)
if it gets solved before i get there.... :P14:12
<JasonDGI>+1 for banging heads
* travis-ci joins14:15
[travis-ci] futures/fcrepo4#116 (master - 2e7fe72 : ajs6f): The build passed.
[travis-ci] Change view : https://github.com/futures/fcrepo4/compare/158f1693a0c2...2e7fe72f835a
[travis-ci] Build details : http://travis-ci.org/futures/fcrepo4/builds/4963812
* travis-ci leaves
<cbeer>ajs6f: rhauch got more information out of #infinispan for us14:45
<cbeer>cbeer: Tristan on #infinispan says the following: "a clustercacheloader makes sense when you disable statetransfer, so a node is not quite part of the cluster, but can read data from the other nodes in the cluster on-demand"
and there's more, but that's the gist of it.14:46
<ajs6f>Okay, that makes sense.
That's not really what we want at the moment, tho', eh?
we want a proper cluster
this was also good: "tristan wasn't sure of a use case."
<ajs6f>I can think of one.14:47
If you're doing something very complex with the data, but not doing it in MS.
And you need to bring more compute on line.
But you don't need more throughtput to persistence.
<cbeer>hm. i guess. like a batch loader,i guess14:48
* VincentNG leaves14:50
<ajs6f>Sort of.
Anyway, we don't want it. Go away, CCL!
<cbeer>i'll remove it, once i figure out this new stack trace
(or, old stacktrace that's resurfaced)
ajs6f: we also need a way for these nodes to all talk to the same activemq instance, i think14:51
<ajs6f>Yeah, but that's a whole different story.14:52
<cbeer>of course, if you're doing clustering, i guess you're doing your own configs and things
* VincentNG joins
<ajs6f>If you need to cluster JMS, you should be talking to the JMS guys, not the Fedora guys.
<cbeer>hm. new ISPN stack traces14:57
<barmintor_>"requiring rubydora < 2.0"++15:02
* github-ff joins15:03
[fcrepo4] ajs6f pushed 1 new commit to master: http://git.io/CZ6YBQ
fcrepo4/master efe1db1 ajs6f: Added getLabel() and setLabel() to Datastream
* github-ff leaves
<cbeer>barmintor_: hm?15:17
<barmintor_>cbeer: i have some gems that work against rubydora from like 0.3.0 and up. I trust you not to do anything crazy in the 1.x line15:18
* travis-ci joins
[travis-ci] futures/fcrepo4#117 (master - efe1db1 : ajs6f): The build passed.
[travis-ci] Change view : https://github.com/futures/fcrepo4/compare/2e7fe72f835a...efe1db194f10
[travis-ci] Build details : http://travis-ci.org/futures/fcrepo4/builds/4965327
* travis-ci leaves
<cbeer>you can trust me.. jcoyne, on the other hand... :)
<barmintor_>I trust jcoyne not to break backwards compat in the 1.x line. I don't trust him to not release 2.0 in the next couple of weeks :)15:19
<jcoyne>barmintor_: 1.4.0 is the last change I'm anticipating in rubydora for some time.15:20
barmintor_: I'd rather not touch rubydora unless absolutely necessary.15:21
* github-ff joins15:29
[fcrepo4] ajs6f pushed 1 new commit to master: http://git.io/uTc2LA
fcrepo4/master 92209d6 ajs6f: For legacy-api, less returning JAX-RS Response instances, more returning actual Fedora classes
* github-ff leaves
<cbeer>ok, i've decided to abandon sharding and try straight replication.15:30
<ajs6f>Urg. Why? I thought we were super-interested in sharding...?
<cbeer>because something weird is going on. at least if replication just works, we know the clustering part is good
and the distribution part is wrong.
<ajs6f>Fair enough.
Take out parts 'til we find the broken one15:31
<cbeer>ok, good. i get that stupid namespace error in replication too
TRACE time15:33
<ajs6f>Are we auto-registering that namespace? We were at one time.15:34
Let me look.
No, we aren't that I can find.15:35
We do seem to be reg'ing "test":"info:fedora/test".
But wait, no, I'm wrong. It comes in through the node types declaration.
<cbeer>ajs6f: it
s in the cnd
<cbeer>i'm following the stack trace now, maybe it tries to sync from the cluster before reading the cnd15:36
<ajs6f>That's exactly what I was about to suggest.
INSPN is outrunning MODESHAPE.
* travis-ci joins15:45
[travis-ci] futures/fcrepo4#118 (master - 92209d6 : ajs6f): The build passed.
[travis-ci] Change view : https://github.com/futures/fcrepo4/compare/efe1db194f10...92209d67fb7c
[travis-ci] Build details : http://travis-ci.org/futures/fcrepo4/builds/4966030
* travis-ci leaves
* github-ff joins15:47
[fcrepo4] ajs6f pushed 1 new commit to master: http://git.io/5mZsMA
fcrepo4/master 09669b4 ajs6f: Added JavaDocs
* github-ff leaves
* travis-ci joins16:01
[travis-ci] futures/fcrepo4#119 (master - 09669b4 : ajs6f): The build passed.
[travis-ci] Change view : https://github.com/futures/fcrepo4/compare/92209d67fb7c...09669b41a2e3
[travis-ci] Build details : http://travis-ci.org/futures/fcrepo4/builds/4966377
* travis-ci leaves
* github-ff joins16:03
[fcrepo4] ajs6f pushed 1 new commit to master: http://git.io/cPLR7Q
fcrepo4/master 914b035 ajs6f: Moved getObjects() machinery from FedoraObjects to ObjectService
* github-ff leaves
<cbeer>ajs6f: want to join #modeshape? i'm about to head to lunch, and have 't gotten a response from rhauch on that latest error16:11
rhauch: sorry, here's a new problem (again, happy to take it to the forum). When I try to join a new node to my modeshape/infinispan clusters, I get a pretty gnarly error complaining about missing namespaces: https://gist.github.com/cbeer/f536eefafdbe92409082#file-stdout-L616
12:58 danflo has left IRC (Quit: Leaving.)
12:58 cbeer
that namespace, in particular, is defined in our CND
(here: https://github.com/futures/fcrepo4/blob/master/fcrepo-webapp/src/main/resources/config/fedora-node-types.cnd#L17)
(afk, lunch)
<ajs6f>Okay, but I'm in a conf call now, so I'll be using only half my brain.
<cbeer>it's ok, he's not around now either
<ajs6f>Okay, I'll hang out in case he comes back.16:12
<cbeer>i just don't want to miss an opportunity for him to solve our problem for us :)
<ajs6f>I hear ya.
* JasonDGI leaves16:17
* travis-ci joins
[travis-ci] futures/fcrepo4#120 (master - 914b035 : ajs6f): The build passed.
[travis-ci] Change view : https://github.com/futures/fcrepo4/compare/09669b41a2e3...914b0355ae27
[travis-ci] Build details : http://travis-ci.org/futures/fcrepo4/builds/4966831
* travis-ci leaves
* github-ff joins16:18
[fcrepo4] ajs6f pushed 1 new commit to master: http://git.io/WfSTsA
fcrepo4/master 9f7c318 ajs6f: More JavaDocs
* github-ff leaves
* eddies joins16:23
* eddies leaves
* eddies joins
<barmintor_>oh, hey, it used to be cool for my rake task t have a method caled "load". whoops.16:29
<ajs6f>What a load.
* github-ff joins16:33
[fcrepo4] ajs6f pushed 1 new commit to master: http://git.io/Gu81qQ
fcrepo4/master 10a569b ajs6f: More logging
* github-ff leaves
<ajs6f>Ben— do we have any docs/requirements for what the dates in a classic Fedora atom message look like, or is it all by example?
I was going to see what Joda could do for us to erase some of that cut-and-paste from fcrepo3, but I don't know what we're supposed to be producing.
<barmintor_>ajs6f: I got the format I put in the ATOM serializer from the FCR3 code16:36
<ajs6f>I know, but was there any documentaiton around it, or just the code?
<barmintor_>maybe eddies knows if the ATOM format is documented somewhere16:37
<ajs6f>Fair enough.
If we have to pack the legacy code away for all time, it's not so bad as long as it stays in *-legacy-* modules.
<barmintor_>yeah, shorter: I was just trying to make errors go away, I don't know the answer to your question ;)
<ajs6f>I wonder if (except GSearch) anyone _cares_ about the format of dates...16:38
Probably never know.
<barmintor_>oh, that's a good point: If gsearch tries to put that value unmodified into a date field in solr, I think it has to be in the w3c datetime format16:39
<eddies>not much more than: https://wiki.duraspace.org/display/FEDORA34/Messaging
(good morning, folks :-P)
<ajs6f>If we could just be sure that it is w3c (XSD) format, I would rip that stuff out pronto and replace it with two lines of JAXB.16:40
Oh, well.
<barmintor_>Good morning, eddies!
<ajs6f>Thousands of eddies, roaming the streets and fields of Singapore...
<barmintor_>ajs6f: http://lucene.apache.org/solr/api-4_0_0-BETA/org/apache/solr/schema/DateField.html16:41
I think that's the format it has to go to
<ajs6f>Right, but is anyone using that Atom member for anything else…?
<eddies>“Eddies,” said Ford, “in the space-time continuum.”
“Ah,” nodded Arthur, “is he? Is he?”
<ajs6f>Well, if we want to just make the call, I'm happy to make the code look better.16:42
<barmintor_>let's ask the product manager
<ajs6f>He's in the space-time continuum.
Unless he isn't, which would be a remarkable use of scope.16:43
<barmintor_>was that a maven joke, or a CDI joke?
* ppound leaves
<ajs6f>It was a joke about functional programming.16:44
<ajs6f>Nothing funnier than recursion!
<eddies>what exactly are you wanting to decide about date formats?16:45
<barmintor_>if shenanigans are funny, and increasing shenanigans correspond to increasing humor, then nothing is funnier than recursion. Well, maybe concurrency.
<ajs6f>Scale the humor out, not up!
<eddies>that lucene link is basically using xsd datetimes
* travis-ci joins
[travis-ci] futures/fcrepo4#122 (master - 10a569b : ajs6f): The build passed.
[travis-ci] Change view : https://github.com/futures/fcrepo4/compare/9f7c31891436...10a569b6160d
[travis-ci] Build details : http://travis-ci.org/futures/fcrepo4/builds/4967393
* travis-ci leaves
<ajs6f>Eddie— the question is whther there is a defined format for the dates in fcrepo classic atom messages.
Or whether it's just by example.
If there is a defined format, we can match it with tight modern code.
<eddies>they are supposed to be following http://www.w3.org/TR/xmlschema-2/#dateTime16:46
<barmintor_>are you changing the legacy jms stuff to use jaxb?16:47
<eddies>if you're really going to be sticklers about the dates, fedora 3 (should be) following: "'0000' will be the lexical representation of 1 BCE (which is a leap year), '-0001' will become the lexical representation of 2 BCE (not 1 BCE as in this (1.0) version), '-0002' of 3 BCE, etc." per ISO 8601:2000 Second Edition16:49
<ajs6f>Ben— maybe. Just anything cleaner than the string munging we got from fcrepo316:50
Eddie- yay ISO!
<eddies>i.e. it's a slight diversion from http://www.w3.org/TR/xmlschema-2/#dateTime in handling the year 0, but in line with what the XSD folks say they want going forward. man those were good times working through datetime handling :-P
luckily, there should be plenty of unit tests in fcrepo3 to refer to if you really want16:51
<barmintor_>for all of those objects in your repository that were last updated in the early moments of the previous millenium…16:53
<barmintor_>is there a clay tablet cache impl for infinispan?
<eddies>ajs6f you might shoot an email to frank about use of joda and performance
i seem to recall he had some benchmarks last year where he traced a big performance hit to some joda related date formatting16:54
although my memory is a bit fuzzy on that one. i think we discussed it on a committer's call16:55
<ajs6f>Eddie et al.— how about I just go ahead and xmlschema-2/#dateTime and we see if anyone cares?
<eddies>why wouldn't we use xmlschema-2/#dateTime?16:56
<ajs6f>Isn't that what I just said?16:59
<eddies>yes…i'm saying i don't understand why there is even a question about it—was there an alternative on the table?17:01
<ajs6f>No, not as such— it was more that we weren't at all clear that xmlschema-2/#dateTime _was_ in fact the right answer. Thanks, product manager! :)17:02
* VincentNG leaves17:03
<cbeer>jcoyne: if i added the multipart datastream response format, would you be willing to add it to rubydora?17:17
(worth asking, at least :) )
<jcoyne> cbeer: eventually.17:18
I'm not having much time right now.17:19
Maybe ldcx
* jcoyne leaves17:24
<ajs6f>On to date formatting, the most favorite-ist thing that anyone ever codes!17:32
<cbeer>ajs6f: yeah, i'm not sure i follow rhauch's notes. i'll try to follow up with him tomorrow17:35
or get a post on the forum
<ajs6f>Right on, Donkey KNog.17:36
They've been pretty good about answering our questions.
* github-ff joins17:50
[fcrepo4] ajs6f pushed 1 new commit to master: http://git.io/UWnWNw
fcrepo4/master 21a5699 ajs6f: Cleared out fcrepo3 date code in favor of Joda date code
* github-ff leaves
* travis-ci joins18:05
[travis-ci] futures/fcrepo4#123 (master - 21a5699 : ajs6f): The build passed.
[travis-ci] Change view : https://github.com/futures/fcrepo4/compare/10a569b6160d...21a56992666a
[travis-ci] Build details : http://travis-ci.org/futures/fcrepo4/builds/4969205
* travis-ci leaves
* github-ff joins18:14
[fcrepo4] ajs6f pushed 1 new commit to master: http://git.io/IIG47w
fcrepo4/master 448d54f ajs6f: Added more helper methods on FedoraObject and Datastream
* github-ff leaves
* travis-ci joins18:29
[travis-ci] futures/fcrepo4#124 (master - 448d54f : ajs6f): The build passed.
[travis-ci] Change view : https://github.com/futures/fcrepo4/compare/21a56992666a...448d54fdc489
[travis-ci] Build details : http://travis-ci.org/futures/fcrepo4/builds/4969631
* travis-ci leaves
* jcoyne joins20:20
<eddies>cbeer, ajs6f: working example of ruby class implementing abstract method https://github.com/eddies/hello-jruby/blob/master/src/test/java/org/fcrepo/example/HelloJRubyTest.java20:22
<cbeer>eddies: not sure i'm following, but eddies++20:23
* jcoyne leaves20:26
<eddies>it relies on the interpreter to do the work of constructing the object, rather than the compiler20:28
i may, however, have lost the thread of how this actually helps us w/ sequencers :-P20:29
<cbeer>ok, but is HelloJruby actually an subclass of AbstractHello?
<cbeer>i don't know the java but in ruby:
HelloJruby.new.is_a_kind_of? AbstractHello
that's the key to making the sequencer work in MOIDE20:30
<cbeer>yeah, i see you've done that. but is it actually true in java-land?
(or, i've done that, and it wasn't true)
<cbeer>because the jruby object actually extend RubyObject or something
<eddies>container.runScriptlet("require 'hello_jruby'; foo = HelloJruby.new; puts HelloJruby.new.kind_of? org.fcrepo.example.AbstractHello");20:34
returns true
if that's what you mean
<cbeer>sure, in jruby-land
but what about in java-land?
<eddies>AbstractHello ah =20:35
(AbstractHello) container.runScriptlet("require 'hello_jruby'; HelloJruby.new");
<cbeer>if it works, cool.
<eddies>is instantiating a new object from HelloJruby
and it is and instanceOf AbstractHello
<cbeer>that's the prereq for adding it as a modeshape sequencer
<eddies>yes, but i'm still unclear how to get this shiny new ruby-cum-java class added as a sequencer20:38
<cbeer>eddies: you just need to add it in the JSON under it's java class name
which should be..
i think
<eddies>right, but i can't do this via the json config20:40
<cbeer>you should be able to...
<eddies>unless modeshape using this interpreter-based way of instantiating the object
you have to do (AbstractHello) container.runScriptlet("require 'hello_jruby'; HelloJruby.new"); to get your object as the right abstract class
<cbeer>got it
then you'll have to use the programmatic api, right?
<eddies>right, but that was what i said last night i wasn't clear if/how modeshape supported that
<cbeer>ok, right. it does.20:42
and i think ajs6f linked to the docs about it.. one sec
<eddies>only stuff i saw let you programmatically muck w/ the json config which was useless
ah. great. a link would be super helpful
<cbeer>here's what he linked to https://docs.jboss.org/author/display/MODE/ModeShape+in+Java+applications#ModeShapeinJavaapplications-Modifyingtheconfigurationprogrammaticallybeforedeployment%28advanced%2920:43
which is what you don't want
<eddies>yeah, i think i posted that link earlier too :P20:44
that's just manipulating the json config
<cbeer>ok, now we're on the same page
<eddies>and i guess has some utility cause you can apply it to a running repo
but doesn't help us any20:45
(or at least not that i can see)
<ajs6f> Just caught up— eddies, you figured out how to inherit from an abstract class, eh? But.. what does it mean to rely on the interpreter?20:48
Does that mean that the fact of inheritance isn't visible in the JVM type system?
* jcoyne joins20:49
<eddies>no it is
<ajs6f>Great… so what's the problem with using it in MS JSON config?20:50
<eddies>(sequencers) Unable to initialize the sequencer "{ "description" : "Example fcrepo sequencer in JRuby\'" , "classname" : "org.fcrepo.example.ReverseContentSequencer" , "pathExpressions" : [ "fedora:/jruby/(.*)[jcr:content/@jcr:data] => fedora:/jruby/$1" ] }" for repository "repo": org.fcrepo.example.ReverseContentSequencer20:51
java.lang.ClassNotFoundException: org.fcrepo.example.ReverseContentSequencer
you can run the junit test yourself to see
<ajs6f>So… it's _not_ visible in the type system, or it's not visible at a certain moment..
<eddies>not visible when modeshape wants it evidently20:52
But it's there as a compiled .class file when MS starts up?
there's no compiled .class file20:53
<ajs6f>Ah. Some kind of reflection-fu?
<eddies>that's was the whole thing—i'm creating the object at run-time using the ruby interpreter
<ajs6f>Ah— now I get what you meant earlier. Okay.20:54
So maybe I can take a look at what MS is doing
<eddies>a little IoC for the MS repo config would go a long way, i think
<ajs6f>to parse that file and instantiate the contents.
Aye, agreed.
But we got to start with what they gave us.20:55
And we can go forward from there.
I don't know how they deal with the class name in that bit of JSON, but I can find out.
It's got to be somewhere in their code.
And that should tell us the exact conditions under which a type becomes visible.
(Visible for instantiation as a sequencer, that is.)20:56
<eddies>that would be mahvelous
<ajs6f>Oh, dahling, I live to make Fedora better.
<eddies>the hello-jruby project has everything you need to test
<ajs6f>But probably not this evening.
I'll use that as the standard
<eddies>slacker. it's not even the witching hour ;-)
<ajs6f>And I'm no witch.20:57
Is it the weekend in Singapore yet?
<eddies>yeah, i was just doing a little cursory checking of how modeshape is doing things under the hood, but haven't found the relevant bits
it's friday morning20:58
<ajs6f>It's a big codebase, but then again, it does a lot.
<eddies>ah, stacktraces are your friend:
at org.infinispan.util.Util.loadClassStrict(Util.java:137) ~[infinispan-core-5.2.0.Final.jar:5.2.0.Final]
at org.infinispan.util.Util.loadClass(Util.java:98) ~[infinispan-core-5.2.0.Final.jar:5.2.0.Final]
at org.infinispan.util.Util.getInstance(Util.java:221) ~[infinispan-core-5.2.0.Final.jar:5.2.0.Final]
at org.modeshape.jcr.RepositoryConfiguration$Component.createGenericComponent(RepositoryConfiguration.java:2524) ~[modeshape-jcr-3.1.2.Final.jar:3.1.2.Final]
at org.modeshape.jcr.RepositoryConfiguration$Component.createInstance(RepositoryConfiguration.java:2518) ~[modeshape-jcr-3.1.2.Final.jar:3.1.2.Final]
at org.modeshape.jcr.Sequencers.<init>(Sequencers.java:125) ~[modeshape-jcr-3.1.2.Final.jar:3.1.2.Final]
<ajs6f>Thar she blows!
Wait— org.infinispan.util.Util? infinispan?20:59
<eddies>pfft. i dunno. i just paste what they tell me
<ajs6f>Well, I guess they're reusing code from a major dependency.
I've never done that.
I always maintain perfect agnosticism towards my dependencies21:00
Let's see what Github can tell us.
<eddies>here's a more complete stacktrace: https://gist.github.com/eddies/5010180
<ajs6f>Well, at least they haven't implemented their own Classloaders. That kind of &^#$Q#$ does happen.21:01
<eddies>just to step back on the big picture: if we could get this to work, it means rubyists could just drop their ruby code in src/main/ruby and with a little maven magic, we produce a ready-made jar dependency21:03
<eddies>which would be oh so nice. and then the same pattern should apply for all the other scripting languages
<ajs6f>Well, as long as all the DI and JAX-RS lifecycles mesh.
And ideally, without demanding the use of Spring code.21:04
It's hard to imagine a sequencer that wouldn't make use of resources like the JCR repository and [Object|Datastream]Service -s.
There's loadClassStrict.
It looks like it just tries a bunch of Classloaders in field cls. So how does that get set up?21:06
by this:21:07
   public static ClassLoader[] getClassLoaders(ClassLoader appClassLoader) {
      return new ClassLoader[] {
            appClassLoader, // User defined classes
            Util.class.getClassLoader(), // Infinispan classes (not always on TCCL [modular env])
            ClassLoader.getSystemClassLoader() // Used when load time instrumentation is in effect
and the sig of loadClassStrict is:21:08
public static <T> Class<T> loadClassStrict(String classname, ClassLoader userClassLoader)
<eddies>looks like passed in from outside infinispan, in org.modeshape.jcr.RepositoryConfiguration
<ajs6f>Good— that puts it back where we can more easily deal with it.
At least a little more easily
<eddies>which is a nice, small, 2700-line class21:09
* eddies leaves
* jcoyne leaves
* eddies joins21:10
* eddies leaves
* eddies joins
<ajs6f>eddies: where do you see it there? I just did a find and couldn't see it. (It = loadClassStrict)21:11
<ajs6f>Ah, wait, loadClass
Ah, line 879: private transient Environment environment = new LocalEnvironment();21:13
<eddies>And also https://github.com/ModeShape/modeshape/blob/master/modeshape-jcr/src/main/java/org/modeshape/jcr/Sequencers.java#L125
<ajs6f>Okay. Virtually everything in the config becomes a Component.21:14
Sequencers included.
But getClass().getClassLoader() implies that it's the Classloader available to Sequencers.java.21:15
Now if the JRuby class appears by reflection… it is visible to that Classloader?21:16
Oh, boy. I'm going to bed. Good luck, Eddie. I'll be back on the case tomorrow.21:17
Good night, all.
<eddies>night adam =)
* ajs6f leaves21:18
* jcoyne joins21:41
* jcoyne leaves23:49

Generated by Sualtam