cornercorner
FeaturesPluginsDocs & SupportCommunityPartners

Off-line Mode Functional Specification

There exists two categories of versioning systems. One targeted to local area networks (e.g. VSS) and others supporting more distributed environments (e.g. CVS). Users of the later systems often works in off-line mode, disconnected from actual repository. Setting IDE into off-line mode must limit IDE operations to work only over local caches.

Offline mode could be also used for LAN targeted systems to catch situations before IDE users authorize themselves to use the system.

Entering Off-line Mode

Users can enter off-line mode explicitly by invoking respective action. Reasoning can be various e.g. they want to protect their modem connection from being flooded by versioning system communication.

The second option is automatic repository connection problems detection. Any action explicitly invoked by users checks progress and if it detects network failure it asks users for confirmation that it can enter off-line mode. Background actions in this case almost silently fails. They cannot take users focus so they are limited to signaling into a log file or an icon, whatever.

Leaving Off-line Mode

Users can leave off-line mode explicitly by invoking respective action. Reasoning can be various.

The second option is automatic repository connection detection. Any action explicitly invoked by users in off-line mode that requires repository access tests the repository connection and on success it asks users for confirmation that it can enter on-line mode. On failure it notifies user about problem (missing network connection or missing password) and suggests resolution. Background actions requiring repository never trigger leaving off-line mode.

Implementation Issues

  • API for querying and setting actual mode and authorization is needed.
  • Commands must be able to report connection problems (net failure and authorization) to framework.
  • SPI for connection probes and authorization setup is needed.
All requirements can be eliminated if mode handling becomes command responsibility. It's not yet obvious what solution is better.
Initial DRAFT
Petr Kuzel on Dec 22 2004
Companion
Projects:
MySQL Database Server   GlassFish Community: an Open Source Application Server   Open Solaris  Open JDK: an Open SourceJDK   Mobile & Embedded Community     Sponsored by 
Sponsored by Sun Microsystems