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

Using timezone: Eastern Standard Time
* jcoyne leaves00:47
* kaarefc joins01:17
* kaarefc leaves01:18
* kaarefc joins01:19
* kaarefc leaves01:22
* kaarefc joins01:23
* kaarefc leaves02:06
* kaarefc joins03:32
* eddies leaves04:44
* eddies joins04:54
* eddies leaves
* eddies joins
* eddies leaves06:31
* eddies joins06:41
* eddies leaves
* eddies joins
* ppound joins07:40
* kaarefc leaves07:45
* kaarefc joins08:00
* kaarefc leaves
* JasonDGI joins08:15
<ff-pivotal>Paul Pound edited "Expose repo stats in Islandora" https://www.pivotaltracker.com/story/show/4481334908:19
Paul Pound started "Switch Drupal multisite for Islandora to use fcrepo.org" https://www.pivotaltracker.com/story/show/45138217
Paul Pound finished "Switch Drupal multisite for Islandora to use fcrepo.org" https://www.pivotaltracker.com/story/show/45138217
Paul Pound edited "Islandora running on top of fcrepo4" https://www.pivotaltracker.com/story/show/4449071908:21
Paul Pound edited "Expose events feed in Islandora" https://www.pivotaltracker.com/story/show/44716169
<ppound>eddies: shouldn't you be sleeping or do you work 24/708:30
<eddies>heh. it's 9:30pm. just had dinner
* jcoyne joins08:31
* jcoyne leaves09:09
* VincentNG joins09:12
<ff-pivotal>Edwin Shin added comment: "I've already started this: https://github.com/futures/fcrepo-kitchen-sink/commit/d108c9385f82ed50e441042986b2..." https://www.pivotaltracker.com/story/show/4517551709:25
Edwin Shin edited "Update kitchen-sink-webapp to include CMIS support" https://www.pivotaltracker.com/story/show/4517551709:26
Edwin Shin started "Send cbeer CI/Sonatype artifact deploy credentials." https://www.pivotaltracker.com/story/show/45157493
Edwin Shin estimated "Update kitchen-sink-webapp to include CMIS support" as 3 points https://www.pivotaltracker.com/story/show/45175517
* ajs6f joins09:31
* eddies leaves09:32
* eddies joins09:33
* eddies leaves
* eddies joins
<ajs6f>is there any way to stop work on a Pivotal issue without "finishing" it? Can I only move it back to "not started"?09:50
<cbeer>if you started work on it, it was started, no?09:51
<JasonDGI>edit the ticket, there is a way to directly set the status instead of just clicking the button
<ajs6f>Yeah, but there is no "stopped" status.
There is only "not started" , "started" and "finished" and what comes after finished.
<JasonDGI>close it and make a new ticket?09:52
<ajs6f>I want to indicate that I am not actively working on an issue, but that I have not finished it.
Urg. This shouldn't be hard. Even Jira can do this.
<JasonDGI>fedora 3 can probably do it :)
<ajs6f>I'll just put a note in "Activity" saying "I'm paused on this because of X, Y and Z."09:53
<cbeer>it's not something PT thinks is worth tracking. i think that's exactly what you should do.
<ajs6f>Then so shall I do, and let the waves take the consequences!
<cbeer>or, we'd know you're actively working on it if you're at standup and tell us you're actively working on it
otherwise we assume you're not.09:54
so, we got MODE 3.1.3 over night
<ajs6f>Even if it says "Started" you assume that it's not being worked on?
<cbeer>which may fix some clustering trouble
<ajs6f>afk brb
* ajs6f leaves
<cbeer>to me, started just means someone has made a start at it and there's probably code to work from09:55
<ff-pivotal>Vincent Nguyen edited "Update kitchen-sink-webapp to include CMIS support" https://www.pivotaltracker.com/story/show/4517551709:56
Vincent Nguyen started "Update kitchen-sink-webapp to include CMIS support" https://www.pivotaltracker.com/story/show/45175517
* ajs6f1 joins09:59
Okay. Well, anyway, I know what to do with Pivotal.
Actually, I should mention why it came up, because it may be of some interest.
As we all know, JAX-RS is not an MVC framework. I wanted to go do a conneg "produce HTML" example in fcrepo-http-api. I did, but using CXF was painful and ugly and not extensible. It turns out that RESTEasy has awesome extensions for this very task. I've had it. I'm going in and by hook or by crook, with might and main, whether I go over, under, or through, I'm going to rip out CXF, put in RESTEasy, and buy us annotation scanning, easy HTML views, CDI in10:02
<cbeer>vindicated at last :P10:05
<cbeer>i can choose good dependencies with the best of them.10:06
<ajs6f1>I think I switched us to CXF, and I don't know why. Whatever the reason was, it was a total mistake.
CXF is very nice, but RESTEasy is better.
<cbeer>fcrepo4, brought to you by jboss.10:07
<ajs6f1>It's starting to get that way. That does make me uneasy. But the work has to get done.
<cbeer>and, hey, in theory, we could rip it all out and use jackrabbit and cxf instead.
<ajs6f1>"Fedora: PATCHES WELCOME"
<cbeer>that awful jruby/inheritence thing is back to causing me trouble10:11
i guess the only way is to keep creating these stupid shim objects
or doing something really awful
<ajs6f1>We should open the discussion with the MODE guys about making the Sequencer contract better. I think we should suggest splittig Sequence (the abstract class) into a helper class and an interface.10:12
<cbeer>i'm working on the indexer stuff now
* JasonDGI leaves10:24
* JasonDGI joins10:45
* kaarefc joins11:00
<VincentNG>are we on google hangout for the standup today?
<cbeer>sorry, i'm running behind11:01
i dunno if that link works
otherwise, just go to the communities page
<cbeer>worked for me
* ppound_ joins11:02
* ppound leaves11:05
<ff-pivotal>Chris Beer added comment: "Fixed: https://issues.jboss.org/browse/MODE-1830" https://www.pivotaltracker.com/story/show/4502393111:07
<JasonDGI>eddies jon is trying to hangout with us
<ff-pivotal>Chris Beer added comment: "Not working: https://issues.jboss.org/browse/ISPN-2712" https://www.pivotaltracker.com/story/show/45023931
<ajs6f1>Did that fix the clustering problems?11:08
<cbeer>ajs6f1: it fixed the delayed-replication issue
<cbeer>eviction + clustering still doesn't work
<ajs6f1>Mm. So we're entirely in-memory?
<cbeer>well, it works when it's entirely in memory11:09
<ajs6f1>BUt we haven't tried with real persistence?
<cbeer>when eviction is enabled, we don't get all the stuff replicated, seemingly
like, said, namespaces.11:10
Still, getting there.
* ppound_ joins
* ppound leaves
<ff-pivotal>Edwin Shin added comment: "http://islandora.fcrepo.org/fcrepo/#overlay=admin/islandora/configure" https://www.pivotaltracker.com/story/show/4481334911:13
Edwin Shin edited "Expose repo stats in Islandora" https://www.pivotaltracker.com/story/show/44813349
Edwin Shin added comment: "islandora.fcrepo.org" https://www.pivotaltracker.com/story/show/4449071911:14
Edwin Shin edited "Islandora running on top of fcrepo4" https://www.pivotaltracker.com/story/show/44490719
<cbeer>ajs6f1: can you grab https://github.com/cbeer/modeshape-examples/tree/clustering-tests/modeshape-clustering-example11:16
and see if it falls over when you run the Node1?
with "Node types were read from the system content, and appear to be inconsistent or invalid: repo"
<ajs6f1>What exactly do you want me to run? Two nodes, and the second should fall over?11:18
<ajs6f1>Woohoo! Just got the fcrepo-webapp sanity check test to run with RESTEasy! No more CXF?
That's right, no more.
<cbeer>java -cp target/classes:target/classes/org/modeshape/example/clustering:target/dependency/* org.modeshape.example.clustering.ModeShapeExample Node0 10
java -DinfinispanCacheDirPath=target/infinispanCacheDir2 -cp target/classes:target/classes/org/modeshape/example/clustering:target/dependency/* org.modeshape.example.clustering.ModeShapeExample Node1 1011:19
<JasonDGI>ajs6f1 no more cxf? what does that mean for us?
<cbeer>JasonDGI: nothing. it's just another JAX-RS implementation.
<ff-pivotal>Paul Pound edited "Islandora should be able to find an object in the FCR4 prototype" https://www.pivotaltracker.com/story/show/44092173
<ajs6f1>IT's a good thing. With a little more tuning, I should be able to get scanning running. No more constructing huge XML lists of beans to attach to URLs. No more confusion about how to get a new JAX-RS to avoid conflict with others.11:20
CLoser to Eddie's Nirvana of "drop-in modules".
I'm going to leave the old CXF-based test frameworks in place in the modules. If I can get fcrepo-webapp fulling working, that's enough for me for now. We can go rework the tests at leisure.11:21
* ppound leaves
* ppound_ joins
<ajs6f1>Thanks for the examples, cbeer. I'm going to go inside to get power, and I'll try them for you.
afk brb
* ajs6f1 leaves
* ajs6f joins11:31
cbeer- do I need to pull before trying the clustering eamples?11:33
<cbeer>ajs6f: yes, you need my code.
<eddies>ppound: https://docs.jboss.org/author/display/MODE/Query+and+search11:38
<cbeer>ajs6f: ok, i was able to replicate it at the ISPN layer
<ajs6f>It doesn't build:
Tests in error:
Oh, never mind. That's good. So at least we know who to bug. :)11:39
* ppound joins11:40
* ppound_ leaves
* ppound_ joins11:47
* ppound leaves
* ppound leaves
* ppound joins11:48
<eddies>cbeer: emailed you new deploy creds12:00
<cbeer>eddies: good password
<cbeer>except for the not-xml-safe character12:01
i assume i have to xml-escape it for settings.xml?
<eddies>pfft. no idea
didn't think of that. sorry
<cbeer>yeah, i'm just going to assume they use a proper xml parser on that file12:02
<eddies>vincentng or cbeer: is kitchen-sink actually being deployed to futures6?12:04
<cbeer>cbeer: i know nothing about it.
<eddies>it was technically vincentng's task to do it as part of the original kitchen-sink task, but I assumed he would need to query cbeer for some of the deployment details to complete12:05
* kaarefc leaves12:07
<eddies>cbeer: is the following line something you wrote? https://github.com/futures/fcrepo4/blob/master/fcrepo-webapp/src/main/webapp/WEB-INF/web.xml#L3812:09
or is that ajs6f?
<cbeer>git says it is me. i bet i stole it from ajs6f in the ff-modeshape-prototype though
<eddies>because i don't quite get how that works, and in the kitchen-sink app, i get an error
<ajs6f>Me. That's there for the ModeShape HTTP API. If we don't need that, we don't need it.
<eddies>because it's not a url
<ajs6f>Does that matter?12:10
<eddies>well, if we want modeshape's http api it does
<ajs6f>It didn't before… is it beefing now?
<eddies>and for now, i'd like to have it for non-java clients to play with
well, it is in the kitchen-sink app
<ajs6f>Could be the new version of MODE.12:11
<eddies>i tried prefixing it with "file:/" locally
<ajs6f>But it's from the class path. Would that work?
<JasonDGI>is there anything special to deply the kitchen-sink?
<eddies>and while i didn;t get the errors anymore, it also didn't seem to complain when i gave it a totally bogus path
right, that's why i don;t think it's working12:12
i think there's a container-dependent "classpath:" prefix you can use
<ajs6f>If MODE's HTTP API can't find a repo confi, it's going to use some default.
<eddies>so that might work for jetty
jasondgi: nope
just another war to deploy
<ajs6f>So it's not going to die if it dosn't get the config, but it won't be usig the same JCR repo as Fedora.
<eddies>i guess…i think the modeshape folks expect you to use jndi. all the examples use a "jndi:" prefix for the url value or an absolute file path (which would be gross)12:13
<cbeer>YES!!!! i think i've beaten jruby into submission
<ajs6f>Oh, phooey. It turns out that you can't use RESTEasy's scanning ability at the same time as Spring integration. The lifecycles can't mesh. Oh, well. It would have been nice.
<cbeer>eddies: spent more time reading http://static.springsource.org/spring/docs/2.0.8/reference/dynamic-language.html12:14
<lang:jruby id="messenger" script-interfaces="org.springframework.scripting.Messenger">
script-interfaces does what we want it to do.
spring is magic.12:16
<eddies>i wonder what spring is actually doing under the hood…i.e. if it's just building the proxy class for you in the end
<ajs6f>Spring is starting to bug me.
t insists on controlling the lifecycle of everything it touches.
<eddies>only now?
you have such a high tolerance for pain adam =)12:17
<ajs6f>I've never been a proponenet of Spring for its own sake. Im a proponent of DI, and for a long time, Spring was the best thing going.
That time is coming to an end, I think
springs all the way down.
(spring-jms is also magic.)
guess i need some real test now12:18
<eddies>really? i thought https://github.com/futures/fcrepo-jms-indexer-solr/blob/master/src/test/java/org/fcrepo/indexer/solr/DemoRubySolrIndexerTest.java#L14 was remarkably to the point ;-)12:19
<cbeer>guarenteed to pass.
except for all the magic that can go wrong in spring.
<ajs6f>Using Spring == no scanning for JAX-RS == either configure everything in XML or else use Spring-specific annotations all through the code.
<cbeer>oh, is that why we gave up on it?12:20
<ajs6f>I've been reading about the politics of CDI. It seems that almost every moajor vendor agreed that a vendor-independent standard for DI was a good thing. Except Spring.
<cbeer>it = resteasy
<eddies>ajs6f: is there some rationale for that from spring or is it just an observed side-effect?
<ajs6f>It's the lifecycle thing.
If Spring doesn't manage the entire lifecycle of the bean, it won't do anything with it. And JAX-RS scanning takes the instantiation of the bean out of SPrings hands.12:21
That's not neccesarily the case, but it is the case for RESTEasy.
Maybe I'll take a look at Jersey and see if it can do scanning, and if so how.12:22
<eddies>i seem to recall reading once upon a time that jersey had some flavor of scanning
<ajs6f>I'm scanning for Jersey's scanning.
<eddies>i'll play some dj scanner to set the mood
* github-ff joins12:23
[fcrepo4] cbeer pushed 1 new commit to master: http://git.io/Fdoxxw
fcrepo4/master d3b6c4e Chris Beer: bump to MDOE 3.1.3
* github-ff leaves
<ajs6f>Why is every java.net site so incredibly slow?
<eddies>it's all running on a single sun-412:25
<ajs6f>Which is also doing payroll.
<JasonDGI>i put fcrepo-kitchen-sink inside my fcrepo4 (beside kernel and such) and ran the kitchen sink, and im getting
No operation mathing request path "/rest/rss"
<ajs6f>Well, never mind. Jersey's website can't even load. I'll check it later.
JasonDGI: did you include fcrepo-rss in the build of ktichensink?
<JasonDGI>perhaps not...
<ajs6f>Worhth checking.12:26
they have a well-oiled bug triage process12:28
<ajs6f>Can't be as good as ours.
<ajs6f>Yup. Also, "beer welcome".12:29
<eddies>hmm, except the assignee on https://issues.jboss.org/browse/ISPN-2871 set the fix version to 5.3.0.Final which has a due date of 31 May: https://issues.jboss.org/browse/ISPN/fixforversion/1232055012:34
jasondgi: it could be that my recent cmis futzing has borked the kitchen-sink webapp, too12:35
<eddies>if you've pulled a local copy of the project, try nuking src/main/webapp/WEB-INF/web.xml
that's a customized one w/ a bunch of cmis-specific entries
* travis-ci joins
[travis-ci] futures/fcrepo4#145 (master - d3b6c4e : Chris Beer): The build has errored.
[travis-ci] Change view : https://github.com/futures/fcrepo4/compare/fa8191f1b5e8...d3b6c4ee28ee
[travis-ci] Build details : http://travis-ci.org/futures/fcrepo4/builds/5109575
* travis-ci leaves
<JasonDGI>trying now...12:37
<eddies>if you nuke it, you'll just inherit the fcrepo-webapp web.xml
<JasonDGI>thats cause by the part where it unpacks fcrepo-webapp? its inheriting pulling everything in and overriding what it doesnt like?12:38
<eddies>asjs6f, jasondgi: fcrepo-rss is a dependency of kitchen-sink: https://github.com/futures/fcrepo-kitchen-sink/blob/master/pom.xml#L29
jasondgi: i didn't quite parse that12:39
<JasonDGI>no worries, im rambling
* ajs6f leaves13:08
* ajs6f1 joins13:11
<eddies>ajs6f: can you try pulling down the kitchen-sink app and giving it a run?13:15
<ajs6f1>Okay. Give me a minute.
<eddies>i feel like the cmis error i'm getting is a wiring issue w/ the fcrepo4 modeshape config
fyi: here's an example of the sort of error I'm seeing13:16
<ajs6f1>Run it with mvn jetty:run?
<eddies>i was doing MAVEN_OPTS="-Xmx512m" mvn clean jetty:run-war
<ajs6f1>How come run-war? Does run (plain) not work?
<eddies>at one point i was having problems with it picking up the the right pieces of the webapp because of the overlay, i assume13:17
<ajs6f1>Okay, I'll use run-war
hang on. Still pulling dependenecies.
<eddies>i've done some tweaking since, so it may not be an issue now, but i haven't tried going back to plain jetty:run
<ajs6f1>Okay, running....13:18
<eddies>try http://localhost:8080/atom11
(or any of the cmis endpoints defined in src/webapp/WEB-INF/web.xml)
<ajs6f1>Well, before I try any curl I'll note that I'm seing:13:19
WARN 13:18:55.797 (RepositoryManager) Invalid URL:WEB-INF/classes/config/repository.json
--- loaded repository repo
<eddies>ah yes
<ajs6f1>And the URL you suggested blows out with:
Caused by: java.lang.NullPointerException
at org.apache.chemistry.opencmis.jcr.JcrRepository.getRepositoryInfos(JcrRepository.java:158)
<eddies>that's what i was mentioning before
and that too. see the gist i posted earlier13:20
<ajs6f1>Yeah, looks like the same thing.
<eddies>so it seems it thinks there's no repo
<ajs6f1>We may want to ask the MODE guys about this. Maybe there's a better/more elegant way to offer config to their APIs.
(Better than web.xml, anyway)
<eddies>you mean specifically Invalid URL:WEB-INF/classes/config/repository.json?13:21
<cbeer>can someone (ajs6f?) look at this test and make it pass?
that's the failure I'm getting.. so I guess SolrInputDocument doesn't define equals in a useful way?
<eddies>looks that way13:22
i'll trade…i'll look at cbeer's issue if ajs6f keeps poking around mine =)
<ajs6f1>BTW: It's starting to seem to me that the DI vs. JAX-RS thing comes down to this: I can't find a JAX-RS implementation that can do scanning and still work with Spring DI. So we may have to choose. Or we can stick with Spring for now and move to CDI at some conveneient later time.
I know very little about Solr, so if cbeer's issue is about Solr, it oughtn't be me.13:23
<cbeer>eddies: thanks. i started to write a custom matcher and decided that was stupid and there must be a better way
if that's the right thing to do, feel free to throw it back at me
<ajs6f1>eddies: I'm not kidding about asking MODE. I think we need to bring it to their attention that deploying their APIs over a chosen repo isn't easy. They may either know a way to do it or ask for a ticket.13:24
<eddies>cbeer: just cloning…sec
<ajs6f1>In the meantime, I'll start digging into their code and see how the two APIs actually use that param.
<eddies>ajs6f: much appreciated, sir. some virtual apple brandy your way13:25
<ajs6f1>Time to load fcrepo-kitchensink into Eclipse.
<JasonDGI>rest/rss is still failing for me: No operation matching the request path13:29
<ajs6f1>If you've got it in Maven, have you wired it in Spring?
Presumably in rest.xml.
eddies: MODE's CMIS only looks in JNDI for repos.13:30
We're going to have to get it into JNDI.
We should be able to do that right from the JSON config… supposedly. I'll try it.13:31
* kaarefc joins13:32
<ajs6f1>Wait… maybe you _can_ use a non-JNDI url. Urg.13:36
Okay, good-ish news. the CMIS gear _is_ connected to the right repo. But it's throwing a bizarre error from some string manipulation it's doing to get a sesssion.13:46
--- login: FedoraRepository
java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.substring(String.java:1904)
But that's just:
private String workspace(String repositoryId) {
return repositoryId.indexOf(":") > 0 ? null : repositoryId.substring(repositoryId.indexOf(":"), repositoryId.length());
and I really don't see how that exception arises.
<cbeer>wait, isn't the logic backwards?13:47
<ajs6f1>If repositoryId.indexOf(":") returns −1 to indicate no such substring found, the method should return null.
Oh, the greater-than...
You're right.
It's a bug.
Well, eddies, there's the answer. Well, the MODE guys were being truthful— this is pretty experimental stuff. :)13:48
It only showed up for us because our config is so simple— we aren't using workspaces at all.13:49
I'll go see how their CMIS demo WAR works. Maybe there's a temporary workaround.
    "name" : "cmis_repo",
    "jndiName" : "",
    "workspaces" : {
        "predefined" : [],
        "default" : "default",
        "allowCreation" : true
    "security" : {
        "anonymous" : {
            "roles" : ["readonly","readwrite","admin"],
            "useOnFailedLogin" : false
The only difference seems to be that they don't predefine any workspaces, and we predefine "fedora".13:51
I'll change that and see if it avoids the bug.
<JasonDGI>how do i set maven's loglevel?13:52
do i have to edit the logger properties file?
<ajs6f1>The log level for Maven itself or for what Maven is running/testing?
<JasonDGI>i think i need maven itself13:53
<ajs6f1>You can use the command line flag -X for massive logging.
<JasonDGI>i like that
<ajs6f1>-X for eXciting logging!
<JasonDGI>awesome, is there a slightly less exciting version?13:54
<ajs6f1>Don't know.
<eddies>-e just for stacktraces
<ajs6f1>No, changing our JSON config didn't avoid that bug.
I guess we just file a ticket.
I can do that.13:55
<JasonDGI>well apparently -X isnt enough, i need to go deeper13:57
<eddies>ajs6f: thank-you13:58
<cbeer>JasonDGI: what are you doing?
<eddies>cbeer: i'm utterly failing on getting your test to pass so far13:59
(just in case you're wondering)
<cbeer>eddies: good. assert(true) it is!
<JasonDGI>cbeer im trying to get kitchen-sink to respond to /rest/rss and it keeps failing
telling me i need to change my log level to trace if i want to see anything
<cbeer>eddies: want me to pick it back up? like i said, i'm happy to waste time on it if it actually is a hard problem14:01
<eddies>give me 5 more mins…gonna try something else
I would say we should leave CMIS alone until we get some reaction on that.14:04
* ajs6f1 leaves
* ajs6f joins14:08
<eddies>cbeer: ok, that didn't work either
<cbeer>eddies: i've done some digging. looks like SolrInputField gets its equals() from java.lang.Object14:09
<ajs6f>All Objects are equal, but some are more equal than others.
* kaarefc leaves
<cbeer>eddies: thanks for trying, i'll bug ndushay and then actually do the hard work14:12
<eddies>k. sorry i wasn't more help
<cbeer>np. definitely something not right in the solr api, i guess14:13
or java people don
t try to unit test at all
or, at least, not full-blown integration test
<eddies>i'm going to re-caffeinate. afk
<cbeer>we'll just start calling you fasseg.14:14
<JasonDGI>then who's the new eddie?14:15
<ajs6f>rhauch bumped the CMIS issue to critical and assigned it. He labeled it for a backport, as well. I would think we should see some result fairly soon.14:20
* VincentNG leaves14:22
* VincentNG joins14:23
eddies: sorry, i was in a meeting at the CDC. I thought the kitchen-sink was going to be deployed to future6 through Jenkins14:31
<cbeer>ok, banged out a bad Matcher for this solr doc nonsense14:33
ajs6f: please tell me I could have done the same thing in a 2-liner:
<ajs6f>What are you trying to do/14:34
<cbeer>compare the string-values of the fields of the documents and make sure everything listed in the source doc is in the test doc14:35
<ajs6f>Is it a structural equality?
<cbeer>not sure what you mean, but i think the answer is no.14:36
<ajs6f>Between SolrInputDocument test_doc and what? source_doc
<cbeer>yes. test_doc and source_doc
but source_doc.equals(test_doc) is not true.14:37
and source_doc.getField("qwerty").equals(test_doc.getField("qwerty")) is also not true
that was very nice of them.
<ajs6f>Because the real equals here is "each field is equal to the corresponding fiield"?
and field equals is really "contains the same string"?14:38
<cbeer>yes, i'd be happy with that.
<ajs6f>But a field isn't single-valued, right?
<ajs6f>but do we know that they secretly are? Or can we not rely on that?
<cbeer>nope, i don't want to rely on that.
<ajs6f>Okay. Its not a one liner, but yeah, using a better colections api than java's builtin, you could shorten and tighten that a lot.14:40
You want me to write it?
<cbeer>sure. I expect I'll do the same thing in the future, better to get it right now.
<ajs6f>using Predicate<T> and Function<F,T> we can basically do a crappy version of Scala's "pimp-my-library".14:41
I'll pull the code and do it.
<cbeer>ppound: what language do you want to write your islandora solr indexer in?14:42
<ppound>sounds good14:43
what are the options? stuff that will run in a vm
<ajs6f>cbeer- I just cloned th repo and there are errors in it fresh:
Description Resource Path Location Type
The method describeTo(Description) of type DemoRubySolrIndexerTest.MatchesSolrDocument must override a superclass method DemoRubySolrIndexerTest.java /fcrepo-jms-indexer-solr/src/test/java/org/fcrepo/indexer/solr line 159 Java Problem
The method matches(Object) of type DemoRubySolrIndexerTest.MatchesSolrDocument must override a superclass method DemoRubySolrIndexerTest.java 14:44
<ajs6f>and DemoRubySolrIndexerTest doesn't extend or implement anything. Is that intentional?
Or di you leave the Override annotations on those guys by accident?
<cbeer>ajs6f: those are on MatchesSolrDocument14:45
and i don't see a problem locally.
<ajs6f>Oh, right, they are on MatchesSolrDocument, but I do see the problem. Hm
<cbeer>ppound: trying to find out. beanshell, groovy and jruby definitely. but i imagine there are other options
<ajs6f>Did we give up on JYthon?14:46
<cbeer>i'm trying to figure out if jython is supported
i see a lot of 7-8 year old posts about it
<ppound>haven't used any of those
<ajs6f>Clojure? Scala
<ppound>i can see what the guys at DGI have experience in but it might be time we tried some jruby
<cbeer>good answer.14:48
because, apparently: "The supported languages were chosen because a) the languages have a lot of traction in the Java enterprise community, b) no requests were made for other languages within the Spring 2.0 development timeframe, and c) the Spring developers were most familiar with them."
ok, so i'll sort out the talking-back-to-fcrepo4 piece14:49
and then you can take a swing at getting all the data in the right places
<ff-pivotal>Chris Beer finished "Create fcrepo4 <-> solr indexer that uses JSR-223 (or otherwise) to allow scripting language-based indexing" https://www.pivotaltracker.com/story/show/44807121
<cbeer>i guess we also need to decide how the indexer gets executed14:50
* github-ff joins
[fcrepo4] jmacwilliams opened pull request #28: added label to FedoraObject (master...master) http://git.io/nEjdMQ
* github-ff leaves
<cbeer>i guess we also need a way to tell these services "hey, here's what fcrepo 4 is, and here are some credentails you should use"14:51
i wonder if we should build something into the JMS work.. like provide a ticket-granting-ticket of some sort for that object14:55
which can be redeemed for a session with write-access on the object
<JasonDGI>i cant help but notice that travis keeps on hitting 10 minutes and terminating15:04
<cbeer>our tests take 10m to run?
<JasonDGI>i dont think so, i think travis is flaky15:05
or just doing a lot of other stuff at the same time
<cbeer>maven is too much magic for me15:13
<JasonDGI>fedora keeps telling me the @Path I bound doesnt exist
i copy/pasted a function onto that path and it cant seem to find it15:14
oh, is the 3.x api not loaded anymore?15:15
<ajs6f>cbeer— committed a change to that test. Is that more like what you wanted?15:20
<cbeer>does it pass?
<ajs6f>Well, yeah— why would I have committed it otherwise? :-S15:21
ok, i'm just surprised getField().containsAll() works for you
maybe i was doing something wrong
<ajs6f>getField() returns a Collection<SomethingSolrishField>15:22
I don't know why it wasn't working for you. Scream at your computer. That's what I would do.
* ff-github joins15:24
[fcrepo-jms-indexer-solr] cbeer pushed 2 new commits to master: http://git.io/qB2Xyw
fcrepo-jms-indexer-solr/master a122cb8 Chris Beer: we don't need to expose our test activemq
fcrepo-jms-indexer-solr/master 7e712de Chris Beer: add a RepositoryProfile object carrying the repository connection info
* ff-github leaves
<cbeer>ok, so, cool. now on to bigger fish.15:25
i guess i need the fcrepo4 api available during the integration tests15:26
<ajs6f>Oh, cbeer— just to finish the conversation, it's not getField().containsAll() that works. It's getField().getValues.containsAll(). Maybe that's why it worked for me?
<cbeer>ah, maybe.15:27
i thought getField extended some collection/map/whatever
whatever, glad it works now
<ajs6f>I wish someone would pay me to rewrite Solr in Scala. It would be so pretty.
<cbeer>i wonder if fcrepo-webapp should publish a test artifact that could spin up something for these integration tests15:28
<ajs6f>Integration tests are relative to what you're testing, right? Unless you mean system tests?
<cbeer>i think i want to write an integration test for this indexer that actually creates an object in fcrepo4 (-> jms -> indexer picks it up -> does its thing (which probably involves calling back to the fcrepo4 rest api -> etc etc)15:31
i guess maybe it's just adding a dependency on fcrepo-webapp and adding a rest.xml
maybe we've already done what I thought we needed to do15:32
<ajs6f>Maybe fcrepo-webapp itself should evolve in that direction.
* ppound leaves15:56
* JasonDGI leaves15:57
* ajs6f leaves16:11
* VincentNG leaves
* ajs6f joins16:13
<cbeer>ajs6f: ok, stupid spring question. i'm trying to set up the integration tests for the indexer16:14
<ajs6f>Yeah, that _is_ dumb.
Wait— what?
<cbeer>so, i added a bunch of spring-test configs, for repo, rest, jms, etc
<cbeer>(sorry, i'm trying to figure out if my question is extremely stupid now)16:15
basically, i need something to create the activemq connection factory
<ajs6f>Right. Like the jms.xml spring config?16:16
<cbeer>but also need to reference it from my indexer spring config
You can do that.
Just use a name or an id on the beans.
They're all in the same Spring context once the test framework loads them.
<cbeer>ok, so maybe my IDE just doesn't know that
<ajs6f>You probably want the connectionFactory, right?
Is it not seeing the right classes?
You _will_ need to make them available in the class path to write the code. But you could do that in "test" scope.16:17
<cbeer>yeah, hold on. let me actually try to run this test. maybe my IDE is just complaining, but there's really no problem
Acutally, this is kind of like how the repo gets injected everywhere it's needed.16:18
It's only defined in repo.xml.
But AbstractResource @Injects it and subclasses of AbstratRepo come into existence as beans everywhere _but_ repo.xml.16:19
But those other XML files can "see" the stuff in repo.xml. They all come together to compose one large Spring context.
Something similar happens in 3.x, thanks to Ben. Although there are two large Spring contexts there, for some reason that Ben once explained to me but I can't remember.
Or at least there were.16:20
<barmintor>the division into xml files in Spring is largely organizational
Contexts are abstractions that are contributed to by many possible sources. XML files are the obvious big one.16:21
<barmintor>the secondary context in FCR3 is there because one of the beans (Server) has to create and manage other beans16:22
<ajs6f>Does the sec context inherit from the web context?
the child context will delegate upwards for beans that it doesn't have
<ajs6f>There you go. The relationships between contexts are _not_ confined by the relationships between the resources (like XML documents) that contribute to them.
This is one of the nice things about CDI— it defines a strong, well-thought-out abstraction for "context" that everyone can subscribe to. Except Spring. {grrr}16:23
* barmintor doesn't engage16:24
<ajs6f>Awww, come on. :)16:25
Maybe this will be the time we actually agree.
<cbeer>ok, all is good. turns out my question really was just that stupid.
<ajs6f>Not stupid to me. DI, from one POV, is all about context and allowing you to shift work into the context and away from your code.16:26
<ajs6f>Whoa, man. I was just teasing.
cbeer: in my small experience, it's exactly in integration testing when you find out whether you defined the boundaries of your DI contexts well or poorly.16:27
<barmintor>the solirzier and om dependency defs are kinf of messed up16:30
moving a class between two gems without a delegating proxy is a non-backwards cmpatible change16:31
which we don't catch in tests b/c we only use the default impl :(16:32
<ajs6f>Kind of glad I don't work on Hydra.
<barmintor>Hydra, like Fedora, is awesome when it works
<ajs6f>Fair enough.
<barmintor>(and is >>>>>>>>>>>>>>>>>>>>>>>>>> than writing your own ORM for fcrepo)16:33
<ajs6f>I guess I just never ran into the need to map into objects.
Not saying it's not a legit need.
<ajs6f>It does make wonder— how many sites end up writing a mapping from Fedora to objects, and how many end up wrapping Fedora's HTTP APIs with a lightweight set of methods in their language of choice..
One the many things we have no real way of gauging.16:36
<cbeer>until we break the APIs and see how many people complain, that is.
* ff-github joins
[fcrepo-jms-indexer-solr] cbeer pushed 1 new commit to master: http://git.io/MlGjrw
fcrepo-jms-indexer-solr/master dcb6295 Chris Beer: wield a giant hammer and add an integration test.
* ff-github leaves
<ajs6f>But perhaps you meant "Evolve the APIs to the NEXT LEVEL!"
Okay, Fedora-cats. I'm out. See y'all tomorrow.16:38
* ajs6f leaves
<cbeer>hm. this is absurd16:48
the gem-maven-plugin plugin downloads each and every version of a dependency
so i just downloaded activesupport 1.0.0 to 3.2.0
<cbeer>and who needs documentation either.16:56
* ff-github joins17:20
[fcrepo-jms-indexer-solr] cbeer pushed 1 new commit to master: http://git.io/cpFCXA
fcrepo-jms-indexer-solr/master 9234e81 Chris Beer: use rubydora in the jruby indexer script.
* ff-github leaves
* VincentNG joins18:48
* VincentNG leaves18:49
<eddies>oi. that caffeination attempt didn't work at all. passed out and only just woke up20:06
<cbeer>eddies: as you should.20:08
<ff-pivotal>Edwin Shin added comment: "See: https://issues.jboss.org/browse/MODE-1832" https://www.pivotaltracker.com/story/show/4517551720:14
Edwin Shin finished "Send cbeer CI/Sonatype artifact deploy credentials." https://www.pivotaltracker.com/story/show/45157493