Abstract:
Embodiments are directed to utilizing reverse dependency injection for managing bootstrapping of applications in web browser and mobile environments. By using reverse dependency injection, embodiments enable a component to declare that it is a “dependency of” another component in a visual analyzer application. This ensures that the dependencies are loaded before the other component is loaded, thereby minimizing delays when a user starts up an application. In some embodiments, information identifying a plugin to be loaded can be received. Embodiments can determine configuration information for the plugin where the configuration information includes both forward and reverse dependencies. Embodiments may generate, based on the configuration information, a data structure that represents the forward and reverse dependencies. Embodiments may analyze the data structure to determine an ordered list of loadings. Some embodiments may load the individual components per the ordered list of loadings and indicate that the plugin is ready for execution.
Abstract:
Embodiments are directed to utilizing reverse dependency injection for managing bootstrapping of applications in web browser and mobile environments. By using reverse dependency injection, embodiments enable a component to declare that it is a “dependency of” another component in a visual analyzer application. This ensures that the dependencies are loaded before the other component is loaded, thereby minimizing delays when a user starts up an application. In some embodiments, information identifying a plugin to be loaded can be received. Embodiments can determine configuration information for the plugin where the configuration information includes both forward and reverse dependencies. Embodiments may generate, based on the configuration information, a data structure that represents the forward and reverse dependencies. Embodiments may analyze the data structure to determine an ordered list of loadings. Some embodiments may load the individual components per the ordered list of loadings and indicate that the plugin is ready for execution.
Abstract:
Embodiments can enable the uploading of a newer version of a plugin package to a plugin service without affecting an existing user session that is using an older version of the plugin package. When a new user session begins, the plugin service can monitor one or more plugin packages and the versions used during the new user session. Throughout the user session, the plugin service continues to make the plugin packages available to the user regardless of newer versions being uploaded to the plugin service. In the meantime, multiple clients with different user sessions may be using different and possibly newer versions of the plugin packages at the same time. The plugin service can remove an older version of a plugin package when it determines that there are no longer any active user sessions utilizing the older version of the plugin package.
Abstract:
Embodiments can enable the uploading of a newer version of a plugin package to a plugin service without affecting an existing user session that is using an older version of the plugin package. When a new user session begins, the plugin service can monitor one or more plugin packages and the versions used during the new user session. Throughout the user session, the plugin service continues to make the plugin packages available to the user regardless of newer versions being uploaded to the plugin service. In the meantime, multiple clients with different user sessions may be using different and possibly newer versions of the plugin packages at the same time. The plugin service can remove an older version of a plugin package when it determines that there are no longer any active user sessions utilizing the older version of the plugin package.