-
Notifications
You must be signed in to change notification settings - Fork 291
Open
Labels
Description
Toward 3.0.0 release, I'm thinking about redesigning CompositeAccessPoint
family of classes. Perhaps Internet Archive is the only user of this class at this moment, because of its inflexibility. OpenWayback may want to move it to external (IA-owned) project, I wonder.
If we want to keep it in OpenWayback, I'd like to address some pain points with the framework:
oracleUrl
,staticExclusions
: hard-coding specific combination of exclusion filters. already refactored to useCompositeAccessPoint.getExclusionFactory()
. these deprecated members shall be dropped.AccessPointConfigs
is just a wrapper around aHashMap<String, AccessPointConfig>
, andgetAccessPointConfigs()
exposes that HashMap object (not Map). This makes it hard to implement dynamic loading of configuration, say, from external database. Define an better interface with richer functionalities.isProxyEnabled()
: feels misplaced, because proxy/archival-url is not specific toCompositeAccessPoint
.CompositeAccessPoint
itself does not use this property.AccessPointAdapter.getSwitchCollPath()
: feels misplaced. it simply returnsProxyAccessPoint.SWITCH_COLLECTION_PATH
.AccessPointConfig.beanName
: set through Spring'sBeanNameAware
interface, and used for storing collection identifier. It's unreliable because Spring sometimes modify bean name to ensure uniqueness. While it's nice to be able to write<bean name="collectionId" ...
, it's only useful when you configure collections in Spring config. Rename the member, add setter/getter, and letsetBeanName()
update the member.findConfigForFile(String)
method sounds too specific to particular deployment (=IA). Remove it from OpenWayback.
I'll update this description, as I find more. Inputs are welcome.