The Source for Java Technology Collaboration


Update Center 2.0 Release - Feature Wish List

General Requirements

# Description Priority Notes
GEN001 - Generic Update Center There should not be any explicit dependency on GlassFish (Application Server). Update Center should work with other middle-ware products. P1 We also should not make any assumptions that all products are Java based.
GEN002 - Multi-Install Support Update Center client should be able to work against one INSTALL_HOME at a time. Under the INSTALL_HOME, user should be able to install multiple middle-ware products. Update Center code should use the INSTALL_HOME property and should not assume any relative directory structure from where the client was initially launched. P1 Currently, Update Center is integrated under GlassFish. We may need to adjust configuration. This should mostly work.
GEN003 - User Experience Consistency Update Center shipped with GlassFish and other middle-ware should offer uniform user experience. For example, using the update center shipped with GlassFish, it should be possible to install other middle-ware softwares that are part of SWI (Software Infrastructure) and vice-versa. P1 Need an uniform filesystem layout
GEN004 - Default Install Location For each module, we should have a default install location under the INSTALL_HOME. User may not be asked to provide these details during installation. The goal would be to offer a very simple user experience. P2 --
GEN005 - Support for Arbitrary Module Type Add installers to handle other container types beyond Application Server container. Support for arbitrary types of modules may need to be added. P1 We may also expose a SPI to deliver installer with the module.
GEN006 - Updates for an Installed Middleware It must be possible to send updates for an installed middle-ware/container. P1 Upgrade between major releases of the middle-ware may require seperate tools and manual steps. It should be possible to deliver minor releases (bug fixes, patches) where there are no major configuration changes.
GEN007 - Add Command Line Interface Support CLI for basic package management and basic update center operations. P1 e.g. "apt-get foo"
GEN008 - Entitlement It should be possible to send certain content to only certain set of clients. P2 User registration and entitlement checking might be made visible to users.
GEN009 - RSS Feed Ability to send RSS feeds to the update center client. P2 This will allow us to send our blogs/articles/screencasts to users and make it compelling for users to try our technologies.
GEN010 - Provisioning Support Integrate with a provisioning system where downloaded modules can be provisioned for a large data center environment. We may allow the possiblity of integration of a 3rd party provisioning system also. P2 Provisioning capabilities will be leveraged from other softwares.
GEN011 - OS Support The update center must support all popular operating systems. P2 Solaris, Linux, Windows, MacOSX

Packaging and Repository Requirements

# Description Priority Notes
PKG001 - Pre/Post Install Script Support Support for allowing pre/post installation script. P1 --
PKG002 - Versioning Support Support multiple versions of the same module. It is likely that different middle-ware products may have dependency on different versions of the same module. P1 --
PKG003 - Unpack Support Add jar unpack support in base installer. Modules should be able to deliver packed jars. P2 --
PKG004 - Dependency on Files Ability to specify dependencies on raw files. For example, the ability to specify a dependency on "/usr/bin/sh". This is important for components which have a dependency on technology which may not be delivered via well-defined packages (or are delivered as a very small part of a very large package, and can optionally be delivered independently of the large package). In this case it is impossible to specify a requirement on another package. A dependency on a well-defined file location is more suitable. P3 For examples, see the Apache HTTPD RPM spec file, looking for Prereq's such as: Prereq: sh-utils, textutils, /usr/sbin/useradd, Prereq: /sbin/chkconfig, /bin/mktemp, /bin/rm, /bin/mv
PKG005 - Local Repository Support Ability to setup local repositories. P3 Enterprise customers may want to set up local repositories of certified bits that should be used by their departments.
PKG006 - Pkg Automation Need tools to help automate generation of packages. P3 Consider automated generation of both nbm packages and OS-native packages when necessary.
PKG007 - Requires OS Support Support broader "requires OS" and introduce "requires processor" options. P1 To enable auto selection of OS and processor-specific content depending on the client platform.
PKG008 - Need better Dependency Mechanism Current module dependency specification is weak for enterprise usecase. P2 No support for varying degrees of dependency. I.e. "Depends, Recommends, Suggests", only supports "==" and ">=" for version checks, "feature" dependencies are non-versioned.
PKG009 - Dealing with Shared Components and Different Containers We need a clear strategy for dealing with shared components and different containers. P1 Some of the questions to anster are: Are we going to have different catalogs for different containers based on client's operating systems? How do you define shared components in that environment? How do we ensure that the containers will work together?

Download and Installation Requirements

# Description Priority Notes
DI001 - Install Ordering Installation of the modules must take dependency into consideration. All dependent modules must be installed befor the module. If a dependent module installation fail, the overall installation of the module should also fail. P1 --
DI002 - Manual Install/Un-install/Update Ability to install, un-install or update an installed package (CLI should provide these support). P1 This will address disconnected update support on a system that does not have Internet access.
DI003 - Small Initial Download with JNLP Need a small bootstrap install image. May support Java Web Start based installation of Update Center. P2  
DI004 - Smart Download Add smart download support. Sudden loss of connectivity should not require the download to start over again. P2 Integrate with SDM.
DI005 - Install Wizards Integrate with a installer so that module installation can walk through the user with a set of wizards. P2 --
DI006 - JNLP Install Allow module installation to launch JNLP. P2 --
DI007 - JDK Detection Stand alone update center installation should detect JDK installed on the system. P1 Need something similar to Java EE SDK installer.
DI008 - Generic Addon Feature Ensure that OpenSSO, Portlet Container, etc. add-on modules can be installed and updated by the generalized UC. P2 --
DI009 - JAVA_HOME in Path We should not require user to set JAVA_HOME in user's environment. P1 --

Updates

# Description Priority Notes
U001 - Backout Changes Ability to rollback or backout to a previous installed snapshot of a module. P1 --
U002 - Update Overwrites Editable Files Updates should not change existing configurations set by user. User preferences (example, proxy) should not be changed by an update of update center. P1 --
U003 - Sparse Update Support Would be nice to have as an alternative to downloading an entire package again. P2 See Debian's use of this feature.

Administration

# Description Priority Notes
ADM001 - Show Stability for a Module Different modules may have different stability. The server repositories may be divided into stable/beta/early access/community/extras. Update Center client should clearly show the stability of a module. P1 --
ADM002 - Search Search for availability of modules by name or key words. P2 --
ADM003 - Run-as Support Current Update Center implementation supports non-root users. We need a clear story for root installation. P3 --
ADM004 - Improve Error Messages Dependency errors don't list failed dependencies, XML parsing errors don't state input file. Other errors don't appear to generate useful error messages (you just get "Install Failed"). P2 --
ADM005 - Improve log file contents Fix logging P2 Log file (updatecenter.log) is mostly empty.
ADM006 - Audit Trail An audit trail of installations should be provided. P3 This may have information like module name, version number, data installed, etc.

Update Center GUI

# Description Priority Notes
GUI001 - Progress Status Current progress status is not very intuitive when user selects multiple modules to install. Often shows completely filled out yet the download has not completed. We should do a better progress status. P1 Mac has great progress status.
GUI002 - Better Look and Feel We need x-design support to come up with better UI look and feel. P2 --
GUI003 - Continuity Need better continuity from end of install to next steps. P2 --
GUI004 - User Ratings Allow user to write reviews for a module and give ratings. P3 --
GUI005 - Stats Share statics such as number of downloads for a module. P3 User should be able to see most downloaded or modules with best user ratings.
GUI006 - Drag and Drop Allow user to drag and drop catalogs instead of up and down buttons. P3 --
GUI007 - Minimize Group Allow user to minimize a group. Update center should remember user preferences. It should remember when a group is minized. P3 --
GUI008 - Install Location Show installation location of a installed module. P3 --
GUI009 - Component Selection Component selection ease of use. P2 For example, by default, hide underlying packages that are not usually of primary interest to admins.
GUI010 - UC GUI Size GUI window size too large in some cases. P3 Auto adjust size based on desktop size.
GUI011 - Change Logs for an Update Helps user decide whether or not an update should be installed. P1 --
GUI012 - Module Size Size rounds down rather than stating at least tenths of MBs. For example, a module with size 1,600,000 is listed as 1MB. P2 --
GUI013 - List Files Ability to list files contained in each package. P3 --
GUI014 - List INSTALL_HOME Consider uber UC that can provide a view to each of the INSTALL_HOMEs that are accessible to the user. P3 --

Update API

# Description Priority Notes
API001 - UC API Expose the update center APIs so that it is possible to integrate update center with 3rd party softwares. P2 Several groups (e.g. OpenDS) have asked how they could enhance their own tooling to use an update center API to query whether updates are available, list the number of updates available and launch the update center GUI.
API002 - RSS Feed RSS feed for available updates and additions. P3 --

Desktop Integration

# Description Priority Notes
DT001 - Multiple INSTALL_HOME We should not have multiple desktop icons for different INSTALL_HOMEs. User should be able to right click and choose the INSTALL_HOME from the desktop icon. P1 This may require a re-start of the UC GUI.
DT002 - Start Menu Enable packages to populate start menu P2 When desktop integration is desired, enable packages to update appropriate areas of at least the Start Menu. For example, when OpenDS packages are installed, if desktop integration is desired, let those packages populate the start items of interest such as Configure, Start, Stop, Status, etc.
DT003 - Distinguish Types of Updates Distinguish types of updates and provide appropriate notifications via desktop tray icon. P3 Show security fix available for Apache HTTP. For example: Bug Fix Update, Security Update, New Feature
DT004 - Better Icon Need snazier notification/tray icon P2 --
DT005 - Update Notification Message Clicking "You have N updates available" notification should bring updatecenter GUI up showing a dynamic UI "Updates" tab not "Available Software" tab. P3 --

File Layout

# Description Priority Notes
FL001 - Filesystem Layout Spec Ensure all packages conform to Filesystem Layout Spec P1 Get upstream projects to buyback filesystem layout and wiring changes. By default, all projects distributed outside update center should not have a very different file layout. For example, GlassFish file layout does not have a "etc" or "var" directory.

Topic UpdateCenterNext . { Edit | Ref-By | Printable | Diffs r10 < r9 < r8 < r7 < r6 | More }
 XML java.net RSS

Revision r10 - 28 Jun 2007 - 10:01:42 - Main.ai109478
Parents: WebHome > Updatecenter