Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

 

Spring

PicoContainer

Guice

Supports start/stop lifecycle hooks for components

Yes (interface or xml-configured)

Yes (interface or annotation)

No

Supports autowiring

Yes

Yes

Yes

Supports in-code wiring and configuration

Yes (JavaConfig)

Yes

Yes

Supports external wiring (outside of code)

Yes (xml)

No

Not directly (but it's possible)

Supports external config (outside of code)

Yes (xml and/or properties)

No

Yes (Names.bindProperties)

OSGi-Friendly

Yes (Spring-DM)

Unknown

Yes (Guice-Peaberry)

JSR-330 Support

Yes, 3.0+

In Progress

In Progress

Jar Footprint (non-OSGi)

750kb

300kb

650kb

Analysis of Existing Modules

Current Inter-Module Dependencies

Module Interface

Implementation(s)

Depends-on

Access

DefaultAccess
DynamicAccessModule
 

Authorization
DOManager
DynamicAccess
ExternalContentManager
OAIProvider

Authorization

DefaultAuthorization

DOManager 

BackendSecurity

DefaultBackendSecurity
 

- none -

ConnectionPoolManager

ConnectionPoolManagerImpl
 

- none -

DOManager

DefaultDOManager
GSearchDOManager
RebuildDOManager
 

ConnectionPoolManager
DOTranslator
DOValidator
ExternalContentManager
FieldSearch
ILowlevelStorage
Management
PIDGenerator
ResourceIndex

DOTranslator

DOTranslatorImpl
DOTranslatorModule

- none - 

DOValidator

DOValidatorImpl
DOValidatorModule

- none -

DynamicAccess

DynamicAccessImpl
DynamicAccessModule

Access
DOManager 

ExternalContentManager

DefaultExternalContentManager
 

Authorization
BackendSecurity

FieldSearch

FieldSearchSQLImpl
FieldSearchSQLModule

ConnectionPoolManager
DOManager 

ILowlevelStorage

AkubraLowlevelStorage
AkubraLowlevelStorageModule
DefaultLowlevelStorage
DefaultLowlevelStorageModule

Third-Party...

ConnectionPoolManager (only used by DefaultLowlevelStorage) 

Management

DefaultManagement
ManagementModule

Journaler
JournalCreator
JournalConsumer

Authorization
DOManager
  ExternalContentManager

Messaging

MessagingImpl
MessagingModule

- none - 

OAIProvider

FedoraOAIProvider
FedoraOAIProviderModule
SampleOAIProvider

DOManager
  FieldSearch

PIDGenerator

DBPIDGenerator
BasicPIDGenerator

ConnectionPoolManager 

ResourceIndex

ResourceIndexImpl
ResourceIndexModule

- none - 

ThreadMonitor

ThreadMonitorImpl
ThreadMonitorModule

- none -