Affects Version/s: None
Fix Version/s: None
I am testing an ActiveMQ queue in a "standalone" configuration and I have noticed that there is a difference in the way that fcrepo-triplestore-indexer consumes these messages from a queue instead of a topic. Basically, any triple with a subject skolem/bnode is not consumed/updated with a queue, but is with a topic. Object skolems are indexed in both cases.
Steps to reproduce:
1. Change jms.xml to use JmsQueuePublisher.
2. Insert into container a skolem type graph. (e.g. <> <http://iiif.io/api/presentation/2#hasImageAnnotations> _:c14n18 .
_:c14n18 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> _:c14n12 .
_:c14n12 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/ns/oa#Annotation> .)
3. Check indexing.
I have paused the indexing consumer so that I could see the messages in the ActiveMQ queue. As expected, there is only one message queued for the modification of the parent container. I noticed that the number of Camel exchanges with a topic versus a queue was more (6 vs. 3). With a topic, 2 messages are produced in activemq for the above example, but a queue only produces one.
Since it is not possible to get the second two triples from the parent container using a URI like http://localhost:8080/fcrepo/rest/test2?preferInclude=PreferMinimalContainer&accept=application/rdf+xml, I am guessing that a topic must include more messages, particularly relating to the creation of the bnode/skolems.
According to the http://fedora.info/spec/#message-data, a Skolem, being an LDPR should produce events. But it seems that https://github.com/fcrepo4/fcrepo4/blob/master/fcrepo-kernel-modeshape/src/main/java/org/fcrepo/kernel/modeshape/observer/DefaultFilter.java does not include it as a type.