Features of the JWAM IntegrationServer


Given the requirements and observations mentioned earlier, we developed a specialized tool to support the continuous integration process. This tool can be thought of as a unit testing addition to a normal version management system. It is based on two components.

  • The IntegrationServer is a server process that runs on a server machine that is accessible to all developers. This server machine defines the reference machine and controls and manages the complete source code using a version management system.

  • The IntegrationClient is a client-side tool that enables the user to update source code on the reference machine and obtain changed source code from it. The client tool works as the artifact for the developer and offers the user an easy-to-use interface.

The typical use case for this tool is that the developer has changed a number of pieces of source code and would like to integrate them to provide the other developers inside the team with the changes. This task is supported by the IntegrationClient, where the developer can list the changed files. The developer can then integrate them by simply pushing a button. This single action guarantees that:

  1. The changed pieces of source code are transferred to the server reference machine.

  2. The complete source code is compiled.

  3. All test cases run on the reference machine.

Only if all three actions are successful and no failure occurs during unit testing are the updated pieces of source code accepted on the reference machine and the integration successful. If one unit test fails or an error occurs during one of the actions, the integration is canceled. As a result of a failed integration, the changed versions of the pieces of source code are rejected, and none of the code base is changed on the reference machine. Feedback about a successful or failed integration is reported to the developer sitting in front of the IntegrationClient tool.

Test cases are handled as normal source code by the IntegrationClient. The developer can add, modify, or delete test-case classes using the same tool as for every other piece of source code.

The other use case that often occurs is that another developer has changed some source code on the reference machine. In this case, the IntegrationClient shows all changed pieces of source code, and the developer has the opportunity to download all new or changed pieces of source code to the development machine.

Another interesting case is the occurrence of conflicts for example, when two developers on the team have changed the same source code. In this case, the IntegrationClient indicates the conflict and does not allow the changed source code to be uploaded to the server. First, the developer has to download the changed version from the server, transfer the changes into this source code, and then integrate the new merged version.



Extreme Programming Perspectives
Extreme Programming Perspectives
ISBN: 0201770059
EAN: 2147483647
Year: 2005
Pages: 445

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net