...
- Using Java 8 Streams for RdfStream interface
(Pull Request)Jira server DuraSpace JIRA columns key,summary,type,created,updated,due,assignee,reporter,priority,status,resolution serverId c815ca92-fd23-34c2-8fe3-956808caf8c5 key FCREPO-1312 - Package naming and organization
Removing /fcr:nodetypes endpoint
(Pull Request)Jira server DuraSpace JIRA columns key,summary,type,created,updated,due,assignee,reporter,priority,status,resolution serverId c815ca92-fd23-34c2-8fe3-956808caf8c5 key FCREPO-1890 - Moving away from LevelDB to... MySQL? Postgres? other?
- Is there some context for this? Problems with LevelDB? Are there tickets documenting why we no longer like it?
- Fedora Specification updates
- Messaging SPI
- Atomic Batch Operations - name? BatchOps?
- CRUD
- Resource Versioning (A. Soroka will start work on this at the top of the coming week)
- Binary Fixity Checking
- Authorization
- Recent test results
- ...
Status of "in-flight" tickets
Expand Jira server DuraSpace JIRA columns key,summary,type,created,updated,due,assignee,reporter,priority,status,resolution maximumIssues 20 jqlQuery filter=13202 serverId c815ca92-fd23-34c2-8fe3-956808caf8c5
...
- (Providing the background for the issue)
- Current implementation of Fedora Commons (fcrepo) extensively uses Guava iterators
- Allows one to do lazy processing...functional idioms for writing codes
- Java 8 allows one to use core streams library, deprecating the need for Guava
- Best to use core packages rather than rely upon Guava
- Addressing the #getTriples function:
- The function accepts returns an iterator (must, hence, be changed to a stream, as specified above)
- However, accepted by the function are name of implemented Classes
- These correspond to approximately 8 sets of triples which could be requested (e. g. membership, versioning, fixity...)
- As a consequence, this introduces a hard dependency on ModeShape implementation of fcrepo
- In turn, this precludes any further abstraction, inhibiting the implementation of non-ModeShape fcrepo
- Hence, this PR introduces an enum
- Covers all of the cases currently in case with the ModeShape implementation and prefer headers in REST API
- As an enum, it doesn't allow for any extension of these values
- An idea proposed by Soroka is, rather than using the enum, use an interface or set of interfaces which can be passed in
...
- Is there time to find a more ideal solution to enum now?
- Or, is it viable to avoid merging now (merging the PR without an alternative to the enum solution requires that work be thrown away later)
...
- The PR is quite large
- 1/10th of the entire code base; Rebasing it is complete hell
- To keep iterating on this in order to add additional functionality while merging other PR's into the code base presents other problems
- Specifically, the task of managing the PR becomes increasingly difficult
- Definitely should remove enum, but advocates merging the PR as it is
- Then, replace enum immediately after
Soroka:
- Why would this approach prevent us from not using the enum at all and taking the time now to refactor the PR?
...
- Somewhat related to agenda item #1
- Number of new classes and interfaces in kernel API (4)
- 3 are in the base level org.frepo.kernel.api
- 1 is an implementation api.rdf
- Uncertain of a good location for these...do some constitute an implementation?
- What are these packages inside and outside of the kernel API?
- Generally speaking, all of the code within a given package may be referencedBut, try to avoid loopsyou should avoid cyclical dependencies between packages
- e. g. The api.exception package references code in the api package, which internally, then itself references code in the api.exception package
- Usually not the best practice
- Raises the larger question of...what are these packages?
- RDF package has one class within it
- More inclined to have have fewer packages
- Other approaches prefer more specific package names
- Circular dependencies are also really bad in the ModeShape module
Soroka:
- ModeShape is a monolith
- Discussions have been had regarding similar
...
- Few or no circular dependencies are found within the APIHTTP modules
Woods:
- Intensive assessment of modules and the packages within each module
...
3. Removing the FCR nodetypes
Coburn:
- fcr:nodetypes endpoints permits endpoint is undiscoverable by an LDP client to find all of the resources within Fedora
- The link endpoint describes all of the RDF classes, includes all of the JCR hierarchies
- Most of the time, repository resources shouldn't need to know anything about the JCR hierarchies
- No strong argument to retain this endpoint
...
- E-mailed the list 2 weeks ago
- https://groups.google.com/forum/#!msg/fedora-tech/1Gfsln0Ugug/lcoIP3DBCQAJ
- 4.5.1 deprecation release should issue the warning
- 4.6.0 deprecation release should no longer feature the endpoint
- Note that this information is not in the header for the current PR
...
- Perhaps distinguish between core features people are using and those not likely being used by many
- For features being actively changedused, 6 - 12 months
Johnson:
- Several months might be a good guideline
- But, far less time might be fine for core features which aren't used
- Key is to effectively use version numbers
...
Atomic Batch Operations
Whiklo
- https://docs.google.com/document/d/1Ij4lFomcOJuOiWptZPyhP_wBRtxbqBP3_Rdw1eKmClM/edit
- As this was essentially an initial attempt, would appreciate someone to hack it apart
- Still would prefer to iterate and refine the document
...