Plugins
Programs are composed of plugins, which configure a set of element types used to implement a service, facility or application. Every program has a .plugin file which lists the plugins on which it depends. Specifically, a plugin is a class which implements the Plugin interface.
1. Core Element Model Plugins
| Plugin | Dependencies | Requires | Provides |
| EMPlugin | - | /Home, /SystemResources/UserGroups/admin | - |
| IdentityPlugin | EMPlugin | /AutoStart/SmtpService | /Home |
| AccessControlPlugin | IdentityPlugin | - | /SystemResources/UserGroups/admin |
| SmtpServicePlugin | AccessControlPlugin | - | /AutoStart/SmtpService |
| SmtpTestServicePlugin | AccessControlPlugin | - | /AutoStart/SmtpService |
Architecture
- EMPlugin - Kernel
- [IdentityPlugin]
- [AccessControlPlugin]
- [SmtpServicePlugin]
- [SmtpTestServicePlugin]
2. P2P Plugins
| Plugin | Dependencies | Requires | Provides |
| UsersPlugin | IdentityPlugin | - | - |
| CPlugin | UsersPlugin | - | - |
| JettyProxyClientPlugin | UsersPlugin | - | - |
| JettyProxyServletPlugin | JPlugin, UsersPlugin | - | - |
| FileProxyPlugin | IdentityPlugin | - | - |
Architecture
- [UsersPlugin] - Multi-User Support
- CPlugin - NIO Socket-based Peers
- [JettyProxyClientPlugin] - HTTP Client Peers
- [JettyProxyServletPlugin] - HTTP Server Peers
- [FileProxyPlugin] - Controlled Access to the File System
3. Swing Plugins
| Plugin | Dependencies | Requires | Provides |
| GPlugin | EMPlugin | - | - |
| LoginPlugin | IdentityPlugin, GPlugin | - | - |
| NoLoginPlugin | IdentityPlugin, GPlugin | /AutoStart/SmtpService | - |
| RemoteLoginPlugin | IdentityPlugin, GPlugin | - | - |
| LocalFilesPlugin | FileProxyPlugin, GPlugin | - | - |
Architecture
- GPlugin - Swing
- [LoginPlugin]
- [NoLoginPlugin]
- [RemoteLoginPlugin]
- [LocalFilesPlugin]
5. Demo Plugins
| Plugin | Dependencies | Requires | Provides |
| HelloForever | GPlugin | - | - |
| MiscPlugin | EMPlugin | - | - |
| ServletsPlugin | UsersPlugin, FileProxyPlugin | - | - |
Architecture
- [HelloForever] - Swing demo
- [MiscPlugin] - Commands exercising various capabilities
- [ServletsPlugin] - Exposes the ElementModel via the Jetty Web Server