codice/ddf

Decouple CSW enpoint into an API and implementation

ahoffer opened this issue · 2 comments

Description

I work on a downstream project that uses DDF's CSW enpoint.
The project has dependencies issues because the CSW endpoint app brings in a lot of implementations.
The purpose of this issue to create an interface bundle, so that the CSW endpoint depends only on interfaces.
There is probably also be a factory bundles that depends on CsW API and factory classes that instantiate the actual implementations.

Version

N/A

Tried it. After a lot of messing around, I didn't actually get anything removed from the POMs except Glassfish. Just not enough of a win to justify all the changes. A lot of the dependencies went this this: Code relies on catalog-api-impl because it needs AttributeImpl because it has to create a new Attribute. No easy way to reduce the dependencies without breaking up the catalog-api-impl . Even then, how to break it up? Put the most common dependencies in a "Catalog's All-Time Most Popular Classes Bundle"? There are tricks that could be done with the shader plugin or the bundle plugin to strip unused things out of the JAR. I'm not sure it is worth it to go down that road because it is a "high-touch" kind of thing.

stale commented

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs within 7 days. Thank you for your contributions.