There are a few problems with the existing Article content model that
needs to be fixed:
- Stop creating objects in fedora for article categories; also,
remove pid and state fields from Category
- Remove state from ObjectInfo and put it in Article only. Update
ArticleOtmService.setState() and deny-inactive xacml rule
- Make Article.parts an RdfSeq or RdfList, and get rid of
ObjectInfo.nextObject
- Add rdf:type to ObjectInfo
Turns out that ingestion also needs to be cleaned up here in a big way.
The main thing is that ingest needs to start using OTM instead of
inserting rdf and fedora objects directly - blob handling especially
needs to go through OTM too so A) ingest is not fedora specific and
can use whatever blob-store is configured, such as the
SimpleBlobStore for testing, and B) blob handling falls under the
global transaction too.
To do this pmc2obj will generate xml descriptions of the OTM model
classes and those will be used to instantiate and populate model
instances. It might also be worth considering replacing the pmc2obj
functionality with, say, a groovy script, though there's still the
article-munging which is easier in xslt.
As part of this work some of the model fixes above will come for free.
This work is being coordinated with that on #856.