A method for adapting, in a first server computer, application software to a change in a dependency software component, the application software executing on the first server computer, the method comprising:
- receiving by the first server computer a software bundle comprising:
- the application software configured to execute on the first server computer;
- source code of the application software;
- testing software comprising test scripts and configured to cause the first server computer to test the application software using the test scripts;
- and
- self-adaptation software configured to execute on the first server computer;
- executing by the first server computer the application software;
- and
- executing by the first server computer the self-adaptation software, wherein the self-adaptation software is configured to cause the first server computer to:
- obtain by the first server computer a dependency descriptor comprising information identifying a plurality of dependency software components of the application software and, for each of the dependency software components of the plurality of the dependency software components:
- a second server computer associated with the dependency software component;
- and in-use version information identifying an in-use version of the dependency software component that was in use when the application software was last built and tested,
- wherein each of the dependency software components comprises a software component that the application software uses during execution;
- for each of the dependency software components of the plurality of the dependency software components:
- obtain by the first server computer current version information identifying a current version of the dependency software component from the second server computer associated with the dependency software component;
- compare by the first server computer the current version information and the in-use version information to determine whether the current version is more recent than the in-use version;
- and
- if the current version is more recent than the in-use version, identify by the first server computer the dependency software component as a changed dependency software component;
- obtain by the first server computer the changed dependency software component, based on the information identifying the changed dependency software component;
- generate by the first server computer rebuilt application software by rebuilding the source code of the application software using the changed dependency software component;
- determine by the first server computer whether the rebuilt application software was successfully generated;
- if the rebuilt application software was not successfully generated, send by the first server computer a rebuild failure message to a user of the first server computer;
- if the rebuilding of the application software was successful:
- test by the first server computer the rebuilt application software using the testing software;
- determine by the first server computer whether testing of the rebuilt application software was successful;
- if the testing of the rebuilt application software was not successful, send by the first server computer a testing failure message to the user of the first server computer;
- if the testing of the rebuilt application software was successful:
- load by the first server computer the rebuilt application software;
- stop execution by the first server computer of the application software;
- and begin execution by the first server computer of the rebuilt application software.