Project

General

Profile

Offline Mode » History » Revision 3

Revision 2 (Henning Blohm, 17.07.2016 21:52) → Revision 3/6 (Henning Blohm, 17.07.2016 21:55)

h1. Offline Mode 

 The purpose of the offline mode is to avoid long synchronisation times when developing in a situation poor network connectivity. The expected behavior is that of having no network connectivity at all - without imposing this on other applications. 

 The offline mode can be turned on and off via a system property and interactively on the GUI. 

 h2. Design 

 * Component Repository use @AbstractRepository.checkOffline()@ whenever a connection is normally required. 

 The method looks essentially like this: 

 <pre><code class="java"> 
	 protected void checkOfflineMode() { 
		 if (Foundation.isOffline()) { 
			 throw new IllegalStateException("Running offline"); 
		 } 
	 } 
 </code></pre> 

 where @Foundation.isOffline()* checks for the boolean String value of the system property *com.zfabrik.offline*. 

 * Changing the system property can happen any time 
 * Initially the property is assumed as @false@ and should only be specified otherwise in @runtime.properties@. 
 * The system property status is backed reflected in a JMX MBean attribute of the newly created Foundation MBean.  
 * TBD. We use the internal JMX implementation to broadcast attribute changes to all worker processes. 
 * There is a toggle checkbox in the GUI.