Είδαμε τον τρόπο με τον οποίο μια πρόσθετη λειτουργία μπορεί να χρησιμοποιήσει ονομασμένα γνωρίσματα και τιμές για την αποθήκευση σημαντικών δεδομένων με ρυθμίσεις εκκίνησης. Αφού η ερμηνεία των γνωρισμάτων μιας πρόσθετης λειτουργίας δεν είναι γνωστή από την πλατφόρμα, παρέχεται ένα σημείο επέκτασης το οποίο σας επιτρέπει την παροχή μιας ρουτίνας σύγκρισης για ένα συγκεκριμένο γνώρισμα. Αυτή η ρουτίνα σύγκρισης χρησιμοποιείται για να καθοριστεί εάν τα γνωρίσματα του καθορισμένου ονόματος είναι ίσα. Σε πολλές περιπτώσεις, η απλή σύγκριση σειράς χαρακτήρων που παρέχεται από το java.lang.Object.equals(Object) είναι κατάλληλη για τη σύγκριση γνωρισμάτων. Αυτή η τεχνική θα χρησιμοποιηθεί εάν δεν έχει παρασχεθεί κάποια ρουτίνα σύγκρισης. Ωστόσο, κάποιες τιμές γνωρισμάτων μπορεί να απαιτούν ειδικό χειρισμό, όπως η αφαίρεση των τιμών κενών διαστημάτων από το κείμενο πριν τη σύγκριση για ισότητα.
Οι ρουτίνες σύγκρισης συνεισφέρονται με τη χρήση του σημείου επέκτασης org.eclipse.debug.core.launchConfigurationComparators.
Τα εργαλεία Java παρέχουν ρουτίνες σύγκρισης ρυθμίσεων εκκίνησης για τη σύγκριση διαδρομών πρωτογενούς κώδικα και διαδρομών κλάσεων των προγραμμάτων.
<extension point = "org.eclipse.debug.core.launchConfigurationComparators"> <launchConfigurationComparator id = "org.eclipse.jdt.launching.classpathComparator" class = "org.eclipse.jdt.internal.launching.RuntimeClasspathEntryListComparator" attribute = "org.eclipse.jdt.launching.CLASSPATH"/> <launchConfigurationComparator id = "org.eclipse.jdt.launching.sourcepathComparator" class = "org.eclipse.jdt.internal.launching.RuntimeClasspathEntryListComparator" attribute = "org.eclipse.jdt.launching.SOURCE_PATH"/> </extension>
Οι ρουτίνες σύγκρισης πρέπει να υλοποιούν τη διεπαφή java.util.Comparator.