Story #1652
Refactor Metacat MN and CN classes to reflect 0.6.2 API
100%
Description
At the moment Metacat's MN implementation is handled entirely by CrudService, and the CN implementation thus far is handled by CNCoreImpl. The implementation should be modularized to reflect the MN and CN service levels:
From IRC and scratchpad with Ben:
abstract class MNBase {}
MNCoreImpl extends MNBase implements MNCore
MNReadImpl extends MNBase implements MNRead
MNAuthorizationImpl extends MNBase implements MNAuthorization
MNStorageImpl extends MNBase implements MNStorage
MNReplicationImpl extends MNBase implements MNReplication
abstract class CNBase {}
CNCoreImpl extends CNBase implements CNCore
-partial Metacat implementation
CNReadImpl extends CNBase implements CNRead
-all Metacat?
CNAuthorizationImpl extends CNBase implements CNAuthorization
-all Metacat (sysMeta)
**CNIdentityImpl extends CNBase implements CNIdentity
-implemented outside of Metacat
**CNRegisterImpl extends CNBase implements CNRegister
-implemented outside Metacat
CNReplicationImpl extends CNBase implements CNReplication
-proxies to Metacat
- many existing methods in CrudService refactored to MNBase
- sysMeta-related methods in IdentityManager moved to SystemMetadataManager
- similar CN and MN methods will reuse classes/methods for that shared function (e.g., SystemMetadataManager.getInstance().getSystemMetadata()) rather than sharing the root of a class hierarchy for shared methods. We want to keep the distinction between CN and MN stacks very clear at least in the class hierarchy.
- refactor ResourceHandler to minimize duplicate code when handling the REST calls
- Metacat won't implement CNIdentity, CNRegister
Subtasks
History
#1 Updated by Chris Jones over 13 years ago
- Status changed from New to In Progress
After discussions with Matt and Ben, we decided to not break out each API section into classes in favor of two implementing classes and a common super class:
D1NodeService (abstract)
CNodeService extends D1NodeService implements CNCore, CNRead, CNAuthorization, CNIdentity, CNRegister, CNReplication
MNodeService extends D1NodeService implements MNCore, MNRead, MNAuthorization, MNStorage, MNReplication
Handling different D1 API versions is an outstanding issue, but will be handled within each of these service implementations.
#2 Updated by Chris Jones over 13 years ago
- Position set to 1
- Target version set to Sprint-2011.26-Block.4
#3 Updated by Chris Jones over 13 years ago
- Position changed from 1 to 209
- Target version changed from Sprint-2011.26-Block.4 to Sprint-2011.23-Block.3
- Position deleted (
1) - Position set to 1
#4 Updated by Dave Vieglais over 13 years ago
- Position deleted (
210) - Target version changed from Sprint-2011.23-Block.3 to Sprint-2011.26-Block.4
- Position set to 11
#5 Updated by Chris Jones over 13 years ago
- Milestone set to None
Will leave this open until the MNCore outstanding method responses are defined and the Metacat MNodeServiceis complete.
#6 Updated by Dave Vieglais about 13 years ago
- Position deleted (
30) - Target version deleted (
Sprint-2011.26-Block.4) - Position set to 1
#7 Updated by Dave Vieglais about 13 years ago
- Position deleted (
25) - Position set to 3
#8 Updated by Dave Vieglais about 13 years ago
- Position deleted (
11) - Position set to 2
#9 Updated by Dave Vieglais about 13 years ago
- Position set to 2
- Target version set to Sprint-2011.35-Block.5
- Position deleted (
2)
#10 Updated by Chris Jones about 13 years ago
- Status changed from In Progress to Closed
Tasks are fulfilled