sonatype/nexus-oss — pull request #713 by mcculls (2014-09-07 23:02:32+00:00)
Title: WIP [NX-451] first go at a normalized component abstraction

Highlights:
* Opaque types for component and asset ids to avoid overuse of strings (and limit implicit meaning)
* Components can have zero-to-many assets, which could be part of an overall archive or exploded
* API signature contains `Record` type from `nexus-componentmetadata` for general metadata access
* Uses `components/nexus-componentbase` for now, need to find proper location for these types
* Prefer immutable types without set methods, thinking any modification should go through a service?
Something like `componentService.addAsset(component, asset);` as it should make managing concurrency easier