Extending Alfresco Subsystem

Introduction 

 
If you're extending an Alfresco repository then ensure you've used proper extension paths. Otherwise, your customization will not be loaded into Alfresco.
  
Last week, we were trying to extend, Lucene searches to SOLR. When I used the following paths it was not working:
 
classpath*:alfresco/extension/subsystems/Search/noindex/*-context.xml
classpath*:alfresco/extension/subsystems/Search/solr/*-context.xml
classpath*:alfresco/extension/subsystems/Search/lucene/*-context.xml
 
I encountered NoSuchBean exception. Then I debugged the spring and Alfresco bootstrap code and found the following path for Alfresco extensions.
 
Later I found I needed one level down to extend the search subsystem.
 
classpath*:alfresco/extension/subsystems/Search/noindex/noindex/*-context.xml 
classpath*:alfresco/extension/subsystems/Search/solr/solr/*-context.xml 
classpath*:alfresco/extension/subsystems/Search/lucene/lucene/*-context.xml
 
SysAdmin
 
classpath*:alfresco/subsystems/sysAdmin/default/*-context.xml 
classpath*:alfresco/extension/subsystems/sysAdmin/default/default/*-context.xml
  
Authentication
 
classpath*:alfresco/subsystems/Authentication/alfrescoNtlm/*-context.xml 
classpath*:alfresco/extension/subsystems/Authentication/alfrescoNtlm/alfrescoNtlm1/*-context.xml
  
MIME Type
 
classpath:alfresco/mimetype/mimetype-map.xml 
classpath:alfresco/mimetype/mimetype-map-openoffice.xml 
classpath*:alfresco/module/*/mimetype-map*.xml 
classpath*:alfresco/extension/mimetype/*-map.xml
 
 
Third-party
 
classpath*:alfresco/subsystems/thirdparty/default/*-context.xml 
classpath*:alfresco/extension/subsystems/thirdparty/default/default/*-context.xml
  
Audit
 
classpath*:alfresco/audit/*.xml 
classpath*:alfresco/enterprise/audit/*.xml 
classpath*:alfresco/module/*/audit/*.xml 
classpath*:alfresco/extension/audit/*.xml
  
Search - SOLR
 
classpath*:alfresco/subsystems/Search/solr/*-context.xml 
classpath*:alfresco/extension/subsystems/Search/solr/solr/*-context.xml
  
Search - LUCENE
 
classpath*:alfresco/subsystems/Search/lucene/*-context.xml 
classpath*:alfresco/extension/subsystems/Search/lucene/lucene/*-context.xml
  
Search - NOINDEX
 
classpath*:alfresco/subsystems/Search/noindex/*-context.xml 
classpath*:alfresco/extension/subsystems/Search/noindex/noindex/*-context.xml
  
Quartz
 
classpath:alfresco/domain/quartz.properties 
classpath*:alfresco/enterprise/*-quartz.properties 
classpath*:alfresco/extension/*-quartz.properties 
 
IMAP
 
classpath*:alfresco/subsystems/imap/default/*-context.xml 
classpath*:alfresco/extension/subsystems/imap/default/default/*-context.xml
  
Outbound SMTP
 
classpath*:alfresco/subsystems/email/OutboundSMTP/*-context.xml 
classpath*:alfresco/extension/subsystems/email/OutboundSMTP/outbound/*-context.xml
  
Synchronization
 
classpath*:alfresco/subsystems/Synchronization/default/*-context.xml 
classpath*:alfresco/extension/subsystems/Synchronization/default/default/*-context.xml
  
OOoDirect
 
classpath*:alfresco/subsystems/OOoDirect/default/*-context.xml 
classpath*:alfresco/extension/subsystems/OOoDirect/default/default/*-context.xml
  
ActivitiesFeed
 
classpath*:alfresco/subsystems/ActivitiesFeed/default/*-context.xml 
classpath*:alfresco/extension/subsystems/ActivitiesFeed/default/default/*-context.xml
  
fileServers
 
classpath*:alfresco/subsystems/fileServers/default/*-context.xml 
classpath*:alfresco/extension/subsystems/fileServers/default/default/*-context.xml
  
OOoJodconverter
 
classpath*:alfresco/subsystems/OOoJodconverter/default/*-context.xml 
classpath*:alfresco/extension/subsystems/OOoJodconverter/default/default/*-context.xml
  
InboundSMTP
 
classpath*:alfresco/subsystems/email/InboundSMTP/*-context.xml 
classpath*:alfresco/extension/subsystems/email/InboundSMTP/inbound/*-context.xml
  
googledocs
 
classpath*:alfresco/subsystems/googledocs/default/*-context.xml 
classpath*:alfresco/extension/subsystems/googledocs/default/default/*-context.xml
  
Subscriptions
 
classpath*:alfresco/subsystems/Subscriptions/default/*-context.xml 
classpath*:alfresco/extension/subsystems/Subscriptions/default/default/*-context.xml
  
Replication
 
classpath*:alfresco/subsystems/Replication/default/*-context.xml 
classpath*:alfresco/extension/subsystems/Replication/default/default/*-context.xml