Bootstrapping is the process which occurs on server start up. It allows clear decoupling of Core module from other installed modules. During this process different components and resources are injected into the Core module which effectively changes behavior of Core module itself. In the rest of the text we will describe which resources and components could be injected.
Before we begin, let's shortly review an example of bootstrapping xml
<bean class="org.jibeframework.core.app.bootstrap.BootstrapWorker" init-method="init" depends-on="core.Bootstrap">
<property name="configFiles">
<list>
<value>/alfresco/module/org.jibeframework.contentmanager/config/configuration-config.xml</value>
<value>/alfresco/module/org.jibeframework.contentmanager/config/repo-properties-config.xml</value>
<value>/alfresco/module/org.jibeframework.contentmanager/config/repo-versions-config.xml</value>
<value>/alfresco/module/org.jibeframework.contentmanager/config/repo-viewport-config.xml</value>
<value>/alfresco/module/org.jibeframework.contentmanager/config/web-client-config-actions.xml</value>
</list>
</property>
<property name="javaScriptFiles">
<list>
<value>alfresco/module/org.jibeframework.contentmanager/scripts/breadcrumbs.js</value>
<value>alfresco/module/org.jibeframework.contentmanager/scripts/categories.js</value>
<value>alfresco/module/org.jibeframework.contentmanager/scripts/component-initializers.js</value>
<value>alfresco/module/org.jibeframework.contentmanager/scripts/components.js</value>
<value>alfresco/module/org.jibeframework.contentmanager/scripts/contentGrid-dndsupport.js</value>
<value>alfresco/module/org.jibeframework.contentmanager/scripts/permissions-management.js</value>
</list>
</property>
<property name="templatesPath">
<value>/alfresco/module/org.jibeframework.contentmanager/template</value>
</property>
<property name="cssPath">
<value>alfresco/module/org.jibeframework.contentmanager/css</value>
</property>
<property name="messageBootstrapDescriptor">
<bean class="org.jibeframework.core.app.bootstrap.MessagesBootstrapDescriptor">
<property name="serverBundles">
<list>
<value>alfresco/module/org.jibeframework.contentmanager/messages/bundle</value>
<value>alfresco/module/org.jibeframework.contentmanager/messages/model</value>
<value>alfresco/module/org.jibeframework.contentmanager/messages/exception</value>
</list>
</property>
</bean>
</property>
<property name="groovyClassesPath">
<value>alfresco/module/org.jibeframework.contentmanager/groovy</value>
</property>
</bean>
configFiles
Type of the property is java.util.List<String>. Content of XML configuration files listed in this property will be analyzed.
<property name="configFiles">
<list>
<value>/alfresco/module/org.jibeframework.contentmanager/config/configuration-config.xml</value>
<value>/alfresco/module/org.jibeframework.contentmanager/config/repo-properties-config.xml</value>
<value>/alfresco/module/org.jibeframework.contentmanager/config/repo-versions-config.xml</value>
<value>/alfresco/module/org.jibeframework.contentmanager/config/repo-viewport-config.xml</value>
<value>/alfresco/module/org.jibeframework.contentmanager/config/web-client-config-actions.xml</value>
</list>
</property>
javaScriptFiles
Type of the property is java.util.List<String>. Content of JavaScript files listed in this property will be merged, minimized, cached and downloaded to client together with ExtJs distribution on page load.
<property name="javaScriptFiles">
<list>
<value>alfresco/module/org.jibeframework.contentmanager/scripts/breadcrumbs.js</value>
<value>alfresco/module/org.jibeframework.contentmanager/scripts/categories.js</value>
<value>alfresco/module/org.jibeframework.contentmanager/scripts/component-initializers.js</value>
<value>alfresco/module/org.jibeframework.contentmanager/scripts/components.js</value>
</list>
</property>
templatesPath
Type of the property is java.lang.String. It defines the root folder of hierarchy of Freemarker templates.
<property name="templatesPath">
<value>/alfresco/module/org.jibeframework.contentmanager/template</value>
</property>
cssPath
Type of the property is java.lang.String. It defines the folder where CSS Stylesheet files are stored.
<property name="cssFiles">
<value>/alfresco/module/org.jibeframework.contentmanager/css</value>
</property>
messageBootstrapDescriptor
Type of the property is org.jibeframework.core.app.bootstrap.MessagesBootstrapDescriptor. It defines server and client message bundles. Client message bundles will be available from JavaScript on the client.
<property name="messageBootstrapDescriptor">
<bean class="org.jibeframework.core.app.bootstrap.MessagesBootstrapDescriptor">
<property name="serverBundles">
<list>
<value>alfresco/module/org.jibeframework.contentmanager/messages/bundle</value>
<value>alfresco/module/org.jibeframework.contentmanager/messages/model</value>
</list>
</property>
<property name="clientBundles">
<list>
<value>alfresco/module/org.jibeframework.contentmanager/messages/client</value>
</list>
</property>
</bean>
</property>
groovyClassesPath
Type of the property is java.lang.String. It defines root folder from which Groovy classes will be loaded.
<property name="groovyClassesPath">
<value>alfresco/module/org.jibeframework.contentmanager/groovy</value>
</property>
applicationInitializedListeners
Type of property is java.util.List<org.jibeframework.core.app.ApplicationInitializedListener>. Beans listed in this property will be invoked on application start up.
<property name="applicationInitializedListeners">
<list>
<ref bean="jibe.ConfigStore" />
<ref bean="jibe.JavascriptStore" />
<ref bean="jibe.CssStore" />
<ref bean="jibe.MethodStore" />
</list>
</property>
authenticator
Type of property is org.jibeframework.core.app.authentication.Authenticator. Beans injected with this property will be used to authorize user of the applications.
<property name="authenticator">
<bean class="org.jibeframework.alfresco.authentication.AlfrescoAuthenticator">
<property name="authenticationService" ref="AuthenticationService" />
<property name="serviceRegistry" ref="ServiceRegistry" />
</bean>
</property>
candidatesForReloading
Type of the property is java.util.List<org.jibeframework.core.app.Reloadable> Beans listed in this property will be checked periodically in the background if reloading is required.
<property name="candidatesForReloading">
<list>
<ref bean="jibe.ConfigStore" />
<ref bean="jibe.MessagesStore" />
<ref bean="jibe.MethodStore" />
</list>
</property>requestHandlers
Type of the property is java.util.List<org.jibeframework.core.app.request.RequestHandler> With this property custom request handlers could be added to the request serving pipeline.
<property name="requestHandlers">
<list>
<bean class="org.jibeframework.core.app.request.UIComponentRequestHandler" />
</list>
</property>
applications
dictionaryAdapters