IBM - Recommended reading list: Java EE and WebSphere Application Server

Sree Anand Ratnasinghe (sreer@us.ibm.com), Certified IT Specialist, IBM  
Summary:  Learn about using Java™ Enterprise Edition (Java EE) and IBM® WebSphere® Application Server with this list of essential reading, compiled for customers, consultants, and other technical specialists by IBM Software Services for WebSphere. Updated with resources for new related products, technologies, and feature packs.

Introduction

This list of recommended reading connects you to documents that contain essential information that practitioners should know and understand before diving into Java™ EE application design and implementation using IBM® WebSphere® Application Server.
This list is intended for anyone interested in using or learning more about WebSphere Application Server.

About versions: Unless otherwise noted, the items in this list contain information that is generally applicable to all currently-supported versions of WebSphere Application Server, even though the information might be discussed in the context of older releases. When an item pertains only to one or more specific versions of WebSphere Application Server (or other IBM software), the applicable versions are noted after the title.

About other products: Although this list provides some starting points for learning about Web application development using other IBM products and related technologies, the focus here is on the WebSphere Application Server product family. Check the IBM developerWorks Rational® zone for more comprehensive reference material on Web development and IBM Rational products, the SOA and Web services zone for Service Oriented Architecture articles and design tips, and the Project Zero development community for information about using IBM WebSphere sMash to build rich Internet applications.

The list

The items in this list are organized into these categories:
  1. Fundamentals
  2. Architecture
  3. Administration
  4. Migration
  5. Data integration
  6. Web services
  7. Application development
    1. Rational Application Developer basics
    2. Java EE development
    3. Web 2.0
    4. Service Component Architecture
    5. OSGi
    6. Development with XML
    7. Other frameworks
  8. Security
  9. Problem determination
  10. Performance, scalability, and high availability
    1. High availability
    2. Performance tuning
  11. Virtualization
  12. WebSphere DataPower Appliances
  13. Maintenance

More you can find here >>>

Cheers!

How to make GWT - GXT applications testable with Selenium?

As you are working on your WEB application, you have learnt to use the GWT, then you wanted nicer UI controls (if you are a Java developer at core) from another framework, 'cause you have not time and interest to tweak (play) with .CSS styles. So, eventually you may end up, like many of us, with the GXT library from Sencha (fromer ExtJS).

And as long as you kept the development within the pure GWT, you managed the IDs and names of your controls. Doing this (all manually hard work) it pays back, because you can easily use the Selenium for testing your application.

"Selenium is a portable software testing framework for web applications. Selenium provides a record/playback tool for authoring tests without learning a test scripting language. Selenium provides a test domain specific language (DSL) to write tests in a number of popular programming languages, including C#, Java, Ruby, Groovy, Python, PHP, and Perl. Test playback is possible in most modern web browsers. Selenium deploys on Windows, Linux, and Macintosh platforms." from Wikipedia, the free encyclopedia.

Now if you use the GXT (official name is called Ext GWT, not to be confused with the old dead framework GWT-Ext) you'll see that all controls have an automatic generated ID (i.e. "x-auto-234") in the class "Component", which is the base of all GXT UI widgets, using the helper function XDOM.getUniqueId().

Now the problem is simple, because the UI widgets have these IDs auto-increment generated, depending of the workflow of your application (which dialogs, windows you open first)  you'll have for sure different IDs for the same controls. You can say, "no problem, we can always overide the IDs, or set the names of the controls" (which is true), but what about the built-in dialogs like MessageBox, which are very "enclosed", and you cannot override or set anything from its implementation?

I found not solution yet, but I'm still digging, so if you have any ideas or solutions, please don't be shy to share them with everybody here, in a small comment !

Cheers and happy testing!