Thank
                              you Konstantin for your detailed feedback.
                              I have included the developer, Sarika
                              Sinha, in this email chain.
                         
                        
                        
                          Please
                              see my responses in green
                         
                        
                        
                          I
                              love seeing improvement in this area and
                              workflow like the one described would be a
                              big usability improvement. Having said
                              that, I am concerned that there isn’t
                              sufficient time left in Mars.1 development
                              cycle for adopters to fully test, provide
                              feedback and get bug fixes. I’d rather see
                              this iterated on in the Neon release.
                               
                         
                        
                          The
                              idea behind the fix is to ensure existing
                              server adapter providers are not broken
                              and that they do not need to react to this
                              new change. If the providers choose to
                              react, then their changes will get picked
                              up. If not, then nothing will be broken
                              (e.g. their server adapter will still show
                              up and install as before).
                           
                          [kosta]
                              I understand that this is the intention,
                              but there are a lot of details and corner
                              cases to get right here. If UX isn’t quite
                              right or there are caching/network
                              glitches, then adopters are going to be
                              dealing with user support cases when users
                              aren’t able to installer the adapters.
                              What is the driver for rushing this out in
                              Mars.1 without taking the time to ensure
                              that the feature is robust and polished?
                         
                        
                          [sghung]
                              Mars SR1 is still a release that allows
                              for enhancements. By providing a method of
                              reverting to the old behaviour, we ensure
                              the corner cases and glitches can be
                              resolved. In addition, as users are
                              exposed to this enhancement, the feedback
                              can be used towards improving this
                              enhancement in SR2 and beyond. 
                          
                            My
                              feedback and questions:
                             
                            1.
                              The wiki only mentions the New Server
                              wizard. Is it safe to assume that similar
                              changes would be made to the New Runtime
                              wizard?
                               
                         
                        
                          No,
                              this feature will not be in the Runtime
                              wizard. Having it in the New Server Wizard
                              provides a better flow for the user, as it
                              is easier to access. To access the Runtime
                              configuration page (as there is no Runtime
                              wizard), the user has to open the
                              Preferences page. This preference page is
                              less visible than creating a new server
                              as the Servers view is opened by default
                              in the Java EE perspective, so the user
                              can more easily create a server than a
                              runtime.
                           
                          [kosta]
                              I see this disparity causing a lot of user
                              confusion as this page of the New Runtime
                              and New Server wizards has before looked
                              and behaved the same. This feature should
                              be extended to the New Runtime wizard.
                         
                        
                          [sghung]
                              Having the two wizards be the same sounds
                              like a much larger enhancement, which is
                              outside of the scope of this particular
                              enhancement. Even before this enhancement,
                              I would argue that the two wizards are not
                              the same. The New Server Wizard would link
                              back to the Runtime preferences page for
                              server adapter that already exists. If it
                              does not exist, there is no linkage. 
                          
                            2.
                              Install feasibility validation should not
                              be performed on selection of item in the
                              tree. No expensive operation should be
                              performed on this event as users have a
                              habit of clicking around while exploring.
                              A better approach would be to always
                              enable the Next button and only validate
                              when user elects to move forward. Wizard
                              progress bar should be used while
                              validation is in progress. If successful,
                              the user gets the license screen. If not
                              successful, the user gets a page with
                              failure details. The current approach of
                              directing user to the Error Log is not a
                              good practice. The Error Log should not be
                              used for communicating expected failures.
                               
                         
                        
                          Thanks
                              for your suggestion, Sarika will try and
                              implement this tomorrow.
                         
                        
                          
                            [sghung]
                                This issue has been fixed. Clicking on
                                the tree item no longer performs the
                                validation. Once the user clicks on the
                                desired downloadable server adapter, the
                                user would click "Next". Only then, will
                                the server adapter perform the
                                validation. If there is an error, the
                                error message (which includes the
                                diagnostic information) will be printed
                                out to the user on the wizard page.
                           
                           
                            3.
                              When is the list of downloadable adapters
                              initially fetched and is there visible
                              feedback that fetch is in progress?
                             
                         
                        
                          The
                              list of downloadable adapters initially
                              fetched is a snapshot created at the time
                              of this feature's development (mid August
                              2015). This cache is used to ensure the
                              New Server wizard loads quickly. 
                           
                          [kosta]
                              Having a pre-fetched cache in WTP
                              distribution does avoid the problem of the
                              initial fetch, but what is the process for
                              updating the static snapshot? Is someone
                              going to have to remember to do this for
                              every WTP release?
                          [sghung]
                              For Mars SR1, this method of using a
                              snapshot is the current approach. For Mars
                              SR2, I have confirmed with the developers
                              that they will work on an approach that
                              will do an automatic cache update to avoid
                              this stale cache problem. Currently, if
                              the user does click on a downloadable
                              server adapter, that particular entry will
                              be refreshed automatically (without
                              requiring the user to click the "Refresh"
                              button). That is, if the server's update
                              site has an updated version, this new
                              version would be installed (not the
                              timestamp and version that is stored in
                              the cache).
                          When
                              the "Refresh" button is pressed, there is
                              progress in the Progress view showing the
                              fetching. The progress is not in the
                              wizard, but the user will see a background
                              process showing up in the progress bar on
                              the lower right corner.
                           
                          [kosta]
                              If user initiates an action, especially
                              from within a dialog, the progress
                              feedback needs to be more obvious than the
                              jobs progress indicator. A typical UX
                              pattern employed elsewhere in Eclipse is
                              to run the task in the progress dialog
                              that has a “run in the background” button.
                         
                        
                          
                            [sghung]
                                I agree that showing progress would be
                                better. Currently, the "Refresh" button
                                becomes disabled while the refresh is
                                occurring. The behaviour is similar to
                                when the user modifies the compiler
                                settings (e.g. validation). The job will
                                be kicked off in the background and if
                                the user closes the preference page, the
                                progress dialog will appear with the
                                "Run in background" button. I will bring
                                up this concern to the developer. I feel
                                like having the progress bar in the
                                wizard (instead of a separate dialog)
                                would be more ideal.
                           
                          
                            
                              4.
                                Is there feedback when downloadable
                                adapters list could not be downloaded?
                                We need to ensure that we avoid user
                                confusion when they don’t see their
                                server listed due to network issues.
                               
                           
                         
                        
                          On
                              failure, there is a message in the Logs
                              view to help the user diagnose the issue.
                           
                          [kosta]
                              Using the Error Log view for expected
                              failures messages is a bad UX practice. In
                              the case of a failure of a
                              manually-activated action, any failure
                              should be displayed in a message box.
                         
                        
                          
                            [sghung]
                                This issue has been fixed and the
                                explanation of how it works is seen on
                                point #2.
                           
                          
                            5.
                              What exactly is cached? These details are
                              needed to help evaluate the likelihood
                              that the cached data will be stale when a
                              new version of an existing adapter is
                              released.
                             
                         
                        
                          The
                              cache contains the following information:
                              feature description, feature id, feature
                              name, feature provider, and feature
                              version. For example:
                         
                        
                        
                          <feature
                              description="Tools for developing
                              applications for Oracle WebLogic Server
                              (versions 12.1.x, 10.3.x, 10.0 and 9.2)."
                              id="oracle.eclipse.tools.weblogic.feature.group"
                              name="Oracle WebLogic Server Tools"
                              provider="Oracle" uri="http://download.oracle.com/otn_software/oepe/mars/"
                              version="8.2.0.201507100122"/>
                           
                          [kosta]
                              What is the purpose of caching the
                              version? This bit of data will grow stale
                              the quickest. What happens when the cache
                              contains an older version than what’s
                              currently published?
                         
                        
                          
                            [sghung]
                                The version is cached in order to allow
                                for future validation and discovery of
                                downloadable adapters. By having the
                                framework in place with this extra
                                information, it will also help with the
                                automatic refresh of the cache in the
                                future. Currently, the version in the
                                cache does not have any effect.
                           
                          
                            
                              6.
                                Is there a policy for updating cached
                                data without having the user click on
                                the refresh button? I would recommend
                                triggering a refresh job when server
                                tools is initially activated as well as
                                after certain number of days have
                                expired in case the user keeps Eclipse
                                open for a long time.
                                 
                           
                         
                        
                          No,
                              currently there is no policy for updating
                              the cache without having the user click
                              the button. Kicking off the job in the
                              background can take more than one minute,
                              so it is more ideal to have an initial
                              cache (a snapshot from mid August 2015)
                              and provide a way for the user to update
                              the cache themselves (by clicking the
                              "Refresh" button). 
                           
                          [kosta]
                              Automated cache refresh can happen in the
                              background on Eclipse startup and provides
                              a better user experience than requiring
                              the user to hit the refresh button
                              manually, especially once the distribution
                              is a bit older and the cache is so out of
                              date that every new installation _requires_
                              the user to hit refresh before they can
                              use the feature.
                         
                        
                          
                            [sghung]
                                The automatic caching mechanism will be
                                examined as part of Mars SR2 by the
                                developers. The fix will remove the need
                                for the "Refresh" button and out-of-date
                                cache.
                           
                           
                            7.
                              The installation seems to use a separate
                              progress dialog box. It would be best to
                              use the built-in progress bar of the
                              wizard.
                               
                         
                        
                          The
                              separate progress dialog existed before.
                              To add this into the wizard would be
                              something to investigate after Mars SR1.
                         
                        
                           
                            8.
                              There is a terminology mismatch caused by
                              mixing feature names and server names in
                              the same tree. Whereas all entries should
                              be a server type, some are “X Server
                              Adapter” or “X Tools”. This could be
                              solved by adding metadata to the adapter
                              repo so that it advertises the list of
                              supported server types.
                             
                         
                        
                          The
                              terminology mismatch is caused by the
                              server adapter's metadata. It will be up
                              to the server adapter providers to provide
                              the correct metadata (but we are not
                              forcing them to do so right now).
                           
                          [kosta]
                              You are using feature name in place of
                              server name. The two will never match.
                              It’s not something that adapter providers
                              can fix on their own. For instance, the
                              dialog needs “WebLogic Server”, but the
                              feature name will always be “WebLogic
                              Server Tools” or “WebLogic Server
                              Adapter”. Additional metadata properties
                              need to be defined to allow adapter
                              providers to supply you with server names
                              as opposed to feature names.
                         
                        
                          
                            [sghung]
                                For comments #8-10, thank you for
                                elaborating on this metadata issue. I
                                will talk with the developers on this.
                                In the future, the metadata to provide
                                the correct labels and what server would
                                be installed would be there. However,
                                even in the future, the need for showing
                                the downloadable server if the server
                                adapter does not react still needs to be
                                in place. By using the currently
                                existing metadata, it can populate the
                                New Server wizard with its best effort.
                           
                          
                            9.
                              Many of the downloadable adapters support
                              multiple server versions. This leads to
                              the contents of the tree changing after
                              the install is completed. Ideally, only
                              downloadable indicator icon would change.
                              This can be solved with additional
                              metadata like #8.
                               
                         
                        
                          Yes,
                              the metadata provider can change how the
                              server appears in this list. 
                           
                          [kosta]
                              I don’t understand this answer. I am
                              looking for a solution for the case where
                              one adapter feature handles multiple
                              server versions and the provider wants to
                              keep it as one feature.
                         
                        
                           
                            10.
                              How is vendor/category determined for
                              downloadable adapters?
                             
                         
                        
                          The
                              vendor/category is taken from the metadata
                              retrieved from querying for the server
                              adapter. For point #5, I have pasted an
                              example of a query where we get the
                              feature provider (in that case, it is
                              Oracle). That is used as the
                              vendor/category.
                           
                          [kosta]
                              That sort of works. You are conflating
                              adapter vendor with server vendor. The two
                              don’t have to be the same, even if they
                              are the same for all current examples.
                         
                        
                          
                            11.
                              Ideally, the user should be able to resume
                              where they left off in the wizard after
                              the download completes and Eclipse
                              restarts. Upon the restart, the wizard
                              should restart with the desired server
                              type pre-selected and page advanced to the
                              next page, as if the download didn’t need
                              to happen. This requires #9 in order to
                              know which server type/version the user
                              intended to create.
                             
                         
                        
                          This
                              issue is more of a limitation on the
                              Eclipse platform. It's definitely a nice
                              to have and would bring convenience to
                              this item. However, this feature would be
                              outside of the scope of this fix for SR1.
                           
                          [kosta]
                              Without ability to resume, the UX strikes
                              me as unfinished. It contains the promise
                              that the user can install as part of the
                              wizard flow without actually allowing the
                              flow to resume properly after restart.
                              This UX issue didn’t exist in the old UI
                              as the action to install the adapter was a
                              separate command outside the main flow of
                              the wizard.
                         
                        
                          
                            [sghung]
                                Getting back to the New Server wizard
                                after a refresh is tricky. As mentioned
                                before, this seems to be a limitation on
                                the Eclipse platform. For instance, I
                                know of an extender of WTP, which will
                                bring up a dialog on startup (in some
                                situations) or a different welcome page.
                                As a result, the New Server wizard
                                automatically coming up again would
                                create multiple wizards shown at the
                                same time. I believe something needs to
                                be changed on the Eclipse platform side
                                to create a proper snapshot of what's
                                happening  and then bring up the exact
                                same snapshot on a restart.
                           
                          
                            
                              12.
                                What happens to the “New Server”/”New
                                Runtime” wizard if the user chooses not
                                to restart?
                                 
                           
                         
                        
                          A
                              restart is required whenever the user
                              installs a new server adapter (e.g.
                              Eclipse marketplace or through the Install
                              New Software). Otherwise, the server will
                              not show up in the New Server Wizard.
                         
                        
                        
                          The
                              new server type feature is marked as
                              installed in the current configuration
                              only after a restart. As a result, the
                              server will show up in the wizard as
                              "downloadable" and allow users to install
                              (again). The behavior is similar to the
                              old behavior if you don't restart - the
                              newly installed Server Type will not be
                              available until restart. If the user
                              selects and installs it again, it
                              successfully completes and ask for restart
                              (this time around it goes faster as the
                              artifacts are present locally).
                           
                          [kosta]
                              My question pertains specifically to the
                              wizard? Does the wizard exit?
                         
                        
                          
                            [sghung]
                                yes, the wizard exits when the
                                installation has completed and requires
                                a restart.
                           
                          
                            13.
                              Why is there a hyperlink on “Show
                              additional server adapters”?
                               
                         
                        
                          This
                              hyperlink exists to provide the old
                              behaviour. In case the user wants to go
                              through the old flow, the user can uncheck
                              the checkbok. The hyperlink will be
                              enabled and click on the hyperlink will
                              launch the old wizard
                           
                          [kosta]
                              That’s pretty confusing UX. Why is it
                              necessary to preserve the old UX? In my
                              mind, if the new UX is working properly
                              there is no need for the old one. Multiple
                              UX paths will only serve to confuse users.
                         
                        
                          
                            [sghung]
                                At least for the initial release in SR1,
                                preserving the old behaviour is desired
                                in case the user does not like the new
                                approach. By getting feedback from the
                                initial release in SR1, these issues can
                                be addressed in SR2 and beyond.
                           
                           
                            14.
                              The “Show additional server adapters”
                              checkbox and the refresh button take up
                              valuable prime real estate in the wizard,
                              yet most users should not have a cause to
                              interact with these controls. I suggest
                              moving these to preferences.
                               
                         
                        
                          The
                              real estate of this dialog has not changed
                              significantly with this change. The old
                              dialog had a hyperlink at the top of the
                              New Server wizard too:
                           
                          [kosta]
                              In the old UX, the hyperlink was essential
                              to access the install facility. Once UX
                              and caching issues in the new approach are
                              smoothed out, users aren’t going to need
                              to interact with those controls except in
                              very rare cases. As such, there is little
                              need to continue to take up the space in
                              the wizard. 
                         
                        
                          [sghung]
                              This issue will be fixed as described in
                              point #6.
                         
                        
                        
                        
                          Going
                              to the Preferences page is a lot harder to
                              find for the user and the "Refresh" button
                              approach is still preferred, so it makes
                              more sense to keep these features in the
                              New Server Wizard.
                           
                          [kosta]
                              The user should not have to hit Refresh
                              button at all, except in some very rare
                              corner cases, so there is no need to have
                              it in a prominent location.
                         
                        
                          [sghung]
                              This issue will be fixed as described in
                              point #6.
                          
                            Thanks
                              for your consideration of this feedback.
                             
                            -
                              Konstantin