Extensibility
The customization provides the foundation for the extensibility of ALM Migrator. It is possible to
- 
			
add panels to the GUI
 - 
			
add transformation rules to the migration process
 - add AbstractALM adapters for accessing additional source or target repositories.
 
The vendor tool is derived from the framework, by implementing a class based on net.sourceforge.almmigrator.gui.Migrator. The derived class provides the main method of the application and has to implement some abstract methods. The abstract methods include the following methods, among several others:
		
		public
		
		
		abstract 
		Panel[] loadPanels();
		public
		
		
		abstract 
		Operation[] loadOperations();
		public
		
		
		abstract 
		Class<Connection>[] loadSourceAdapters();
		public
		
		
		abstract 
		Class<Connection>[] loadDestinationAdapters();
The first 
		method (loadPanels) 
		returns all panels that should be added to the GUI. They are shown in 
		the order they are ordered in the vector. There are more panels 
		displayed by the GUI. For example, before the vendor panels are shown, 
		the GUI shows the welcome panel and the legacy repository panel. After 
		the vendor panels have been displayed, the summary of all panels are 
		displayed, the progress is shown and a final panel is shown. 

		GUI Activities
Above figure shows the GUI activities. The CustomPanels partition contains all vendor specific panels that should be displayed by the migration tool.
To generate 
		a complete summary, the framework asks the individual panels for 
		providing an individual summary. This is done by requiring the panels to 
		implement an abstract method 
		
		getSummary. All panels 
		must be derived from 
		
		net.sourceforge.almmigrator.gui.Panel. 
		This class also requires the derived panels to implement methods for 
		providing a title and description displayed in the GUI.
The second 
		method (loadOperations) 
		returns all operations that should be part of the migration process. 
		They are also executed in the same order as they are ordered in the 
		sequence. The migration process is just a sequence of operations 
		executed sequentially. If one operation fails, for example because of 
		corrupted data or an internal failure, the thrown exception is logged 
		and ALM Migrator proceeds to the next operation.
ALM Migrator 
		provides several default operations, such as operations to checking 
		packages out of the source repository and into the target repository. 
		Also an operation is provided to log the activities of the migration. 
		This is required for audit and post processing activities.
The 
		operations also allow the consultant or vendor to improve the quality of 
		the migrated data. Operations checking for corrupt data can be added for 
		this purpose. Organization-specific operations transform misused 
		properties to the correct target properties.
Finally, the 
		vendor tool provides the adapters that are available for the source and 
		for the target. These adapters come from the AbstractALM framework.