Configuration des mises à jour du BOM pour ignorer les différences

Vous pouvez configurer la fonction de mise à jour du BOM afin d'ignorer sélectivement certaines différences entre le BOM et le XOM.

Si vous ajoutez un fichier .cfg avec de nouvelles propriétés pour le fichier BOM à mettre à jour, vous pouvez filtrer les différences qui sont détectées lors de l'exécution d'une mise à jour du BOM. Autrement dit, la fonction de mise à jour du BOM filtre les différences que vous ne voulez pas afficher. Cependant, lorsque vous ignorez des différences entre le BOM et le XOM, cela n'évite pas nécessairement leur modification. Les méthodes et les attributs BOM peuvent encore être mis à jour dans l'action. Par exemple, si l'attribut que vous ignorez est la seule différence entre le BOM et la classe XOM, la fonction de mise à jour du BOM ne propose aucune action. Toutefois, si vous changez un autre attribut dans la même classe BOM, l'action de mise à jour du BOM met à jour toute la classe, y compris les attributs à ignorer.

Le fichier .cfg doit être placé dans le même répertoire que le fichier .bom auquel il s'applique. Le nom du fichier doit être identique au nom du fichier .bom, mais avec l'extension .cfg.

Les valeurs sont des glob séparés par des virgules. Chaque glob doit être précédé d'un signe plus "+" signe (inclusion) ou un signe moins "-"(exclusion). L'ordre d'apparition des globs est important. Les globs sont convertis en REGEX en remplaçant "*" et "?" avec les équivalents JRE REGEX, et "." et "\" sont échappées. Tous les autres caractères ne sont pas convertis et apparaissent en l'état dans l'expression régulière. Le REGEX est précédé d'un "ˆ" et est ajouté avec un "$".

L'exemple suivant montre un fichier .cfg annoté :

/** This property ignores the following missing BOM elements:  
* + the 'ignore' package and all sub-packages  
* - except for the ignore.exception package and all sub-packages  
* + the XOM class 'bank.Loan'  
* + all classes in the 'branch' package as well as all sub-packages  
* + the method 'bank.Customer.doSomething' taking a java.lang.String  
* + all classes with 'test' in their package name  
* + the attribute bank.Customer.age  
* + classes starting with the name 'Test' followed by any 3 characters
*
* These classes/methods are not listed as missing from the BOM. 
*/  
update.ignoreMissingBomElement = +ignore.,\ 
-ignore.exception.*,\ 
+bank.Loan,\ 
+branch.*,\ 
+bank.Customer.doSomething[(]java.lang.String[)],\ 
+*.test.*,\ 
+bank.Customer.age,\ 
+*.Test???
/** This property ignores the following missing XOM elements: 
* + the BOM class 'new.BomClass' 
* 
* These classes/methods are not listed as missing from the XOM. 
*/  
update.ignoreMissingXomElement = +new.BomClass
/** This property ignores the following differences between BOM and XOM classes: 
* + all attributes on 'bank.Customer' 
* - except for the bank.Customer.name attribute 
* 
* These attributes/methods/domains are not analyzed for differences. 
*/  
update.ignoreDifferences = +bank.Customer.,-bank.Customer.name