Oct 6, 2011

Καθαρίζοντας (clean) σκουπίδια στο jazn-data.xml

Κατά τη διάρκεια της ανάπτυξης μιας ADF εφαρμογής, οι προγραμματιστές φτιάχνουν και αφαιρούν task flows. Ίχνη αυτής της εξέλιξης βρίσκονται στο jazn-data.xml εφόσον τα task flows συνδέονται με security (γεγονός που ισχύει σχεδόν πάντα) Ωστόσο, ο JDeveloper και ειδικά ο security configuration editor για το ADF, ποτέ δεν πρόκειται να μας επισημάνει πως κάποιες εγγραφές στο jazn-data.xml δεν ισχύουν, αφού πια δεν υπάρχουν τα pages, task flows ή regions στα οποία αναφέρονται. Σε ένα έργο που απουσιάζει αυτός ο έλεγχος, δεν θα αργήσει να καταλήξουμε σε ένα τεράστιο jazn-data.xml αρχείο με πολλά στοιχεία του ανενεργά ή λανθασμένα.

Δεν υπάρχει ένας τυποποιημένος και απλός τρόπος να κάνουμε το housekeeping του jazn-data.xml. H μέθοδος που ακολουθώ, στηρίζεται στα εξής βήματα:

1. Από το υπάρχον jazn-data.xml βρίσκουμε όλες τις αναφορές που αναφέρονται σε task flows. Μπορούμε να χρησιμοποιήσουμε το XPath Search για να ανακτήσουμε όλη τη λίστα των task flows, pages ή regions που είναι αντικείμενα security permissions. Η έκφραση που αναζητώ είναι η "//permission/name/text()". Τον πίνακα των αποτελεσμάτων τον κάνω copy-paste σε ένα αρχείο.



2. Ως προς τη λίστα των ενεργών task flows, με βοήθησαν τα custom build scripts (προσοχή: καμία σχέση με JDeveloper ή ojdeploy) που συγκεντρώνουν σε έναν κατάλογο όλα τα task flows. Με Linux scripting μπορώ να πάρω όλα τα ονόματα των αρχείων, ή καλύτερα των task flows files αν προτιμάτε και να την αποθηκεύσω σε ένα δεύτερο αρχείο.

3. Συγκρίνοντας τα δυο αρχεία, εντοπίζουμε τις διαφορές και τελικά διορθώνουμε το αρχικό μας jazn-data.xml ώστε να περιλαμβάνει μόνο έγκυρες και ισχύουσες εγγραφές.

No comments: