Απαιτούμενες αλλαγές κατά την υιοθέτηση των μηχανισμών και των API της εκδοχής 3.2

Αυτή η ενότητα περιγράφει τις αλλαγές που απαιτούνται εάν επιθυμείτε να αλλάξετε την πρόσθετη λειτουργία σας της εκδοχής 3.1 για να υιοθετήσετε τους μηχανισμούς και τα API της εκδοχής 3.2.

  1. Ρυθμίσεις εκκίνησης
  2. Καταστάσεις εκκίνησης
  3. International Components for Unicode for Java (ICU4J)
  4. Διαχωρισμός περιβάλλοντος εκτέλεσης

Ρυθμίσεις εκκίνησης

Αντιστοίχιση πόρων των ρυθμίσεων εκκίνησης

Το Eclipse 3.2 παρέχει νέα υποδομή για τη συσχέτιση ρυθμίσεων εκκίνησης με πόρους. Αυτή η αντιστοίχιση επιτρέπει στην πλατφόρμα να εκτελεί φιλτράρισμα βάσει πόρων σε ρυθμίσεις εκκίνησης και επιτρέπει στην πλατφόρμα να διαγράφει προαιρετικά ρυθμίσεις εκκίνησης κατά τη διαγραφή συσχετισμένου έργου. Το πλαίσιο διαλόγου εκκίνησης έχει βελτιωθεί έτσι ώστε να υποστηρίζει ένα σύνολο φίλτρων για την προαιρετική απόκρυψη ρυθμίσεων που συσχετίζονται με κλειστά ή διαγραμμένα έργα. Επίσης, το πλαίσιο διαλόγου εκκίνησης υποστηρίζει το φιλτράρισμα βάσει επιλεγμένων συνόλων εργασίας στο ενεργό παράθυρο του πάγκου εργασίας, το οποίο μπορεί επίσης να επιλεγεί στο πλαίσιο διαλόγου εκκίνησης.

Η διαχείριση της αντιστοίχισης πόρων για τις ρυθμίσεις εκκίνησης αποτελεί ευθύνη του πελάτη. Προστέθηκε API στο ILaunchConfigurationWorkingCopy για τον ορισμό των πόρων που συσχετίζονται με μια ρύθμιση και προστέθηκε API στο ILaunchConfiguration για τη λήψη των πόρων που συσχετίζονται με μια ρύθμιση. Για παράδειγμα, οι καρτέλες εκκίνησης, οι συντομεύσεις εκκίνησης και τα στοιχεία συμμετοχής βελτιστοποίησης δομής πρέπει να λαμβάνονται υπόψη κατά τη μετάβαση. Ο κώδικας που δημιουργεί ή τροποποιεί ρυθμίσεις εκκίνησης πρέπει επίσης να ενημερώνει τις αντιστοιχίσεις πόρων.

Υποστήριξη μετάβασης ρυθμίσεων εκκίνησης

Το Eclipse 3.2 παρέχει νέα υποδομή για τη μετάβαση ρυθμίσεων εκκίνησης έτσι ώστε να είναι συμβατές με τα νέα εργαλεία. Για παράδειγμα, στο Eclipse 3.2, προστέθηκε υποστήριξη για την εκτέλεση φιλτραρίσματος βάσει πόρων σε ρυθμίσεις εκκίνησης. Οι ρυθμίσεις εκκίνησης πρέπει να αναβαθμιστούν έτσι ώστε να παρέχουν αντιστοιχίσεις πόρων για την ενίσχυση αυτής της νέας λειτουργίας. Οι χρήστες μπορούν να μεταβιβάσουν με μη αυτόματο τρόπο τις ρυθμίσεις εκκίνησης στο χώρο εργασίας τους από τη σελίδα προτιμήσεων Εκτέλεση/εντοπισμός και διόρθωση σφαλμάτων > Εκκίνηση > Ρυθμίσεις εκκίνησης, πατώντας το κουμπί Μετάβαση.

Έχει προστεθεί ένα νέο προαιρετικό γνώρισμα ανάθεσης μετάβασης στο σημείο επέκτασης launchConfigurationTypes, με τον προσδιορισμό μιας κλάσης η οποία υλοποιεί τη νέα διεπαφή ILaunchConfigurationMigrationDelegate. Μια ανάθεση μετάβασης ευθύνεται για τον προσδιορισμό υποψήφιων για μετάβαση και τη μετάβασή τους.

Καταστάσεις εκκίνησης

Έχει προστεθεί ένα νέο προαιρετικό γνώρισμα στο σημείο επέκτασης launchModes για την κατάλληλη υποστήριξη της τοπικής προσαρμογής των ετικετών για τις ενέργειες των επικαλυπτόμενων μενού εκκίνησης. Οι πελάτες που συνεισφέρουν καταστάσεις εκκίνησης πρέπει να προσδιορίζουν την κατάλληλη ετικέτα που θα χρησιμοποιηθεί για τα επικαλυπτόμενα μενού εκκίνησης, όπως του "Εκτέλεση ως". Το νέο γνώρισμα ονομάζεται launchAsLabel. Παρέχονται κατάλληλες ετικέτες από την πλατφόρμα για τις καταστάσεις εκκίνησης εκτέλεσης, εντοπισμού και διόρθωσης σφαλμάτων και προφίλ. Για λόγους συμβατότητας με προηγούμενες εκδοχές, όταν δεν προσδιορίζεται το νέο γνώρισμα για μια κατάσταση εκκίνησης, οι ετικέτες των επικαλυπτόμενων μενού δημιουργούνται όπως και πριν, μέσω της MessageFormat με "{0} ως". Ανατρέξτε στο σχετικό σφάλμα 105235.

International Components for Unicode for Java (ICU4J)

Το ICU4J αποτελεί ένα σύνολο βιβλιοθηκών σε Java οι οποίες παρέχουν μια περισσότερο ολοκληρωμένη υποστήριξη του Unicode, της καθολικής χρήσης λογισμικού και της διεθνούς προσαρμογής. Για την παροχή αυτής της λειτουργικότητας στην κοινότητα του Eclipse, το ICU4J προστέθηκε στην δόμηση πλατφόρμας του Eclipse 3.2. Θα το δείτε στη δόμηση ως πρόσθετη λειτουργία με το όνομα com.ibm.icu. Η πλατφόρμα Eclipse χρησιμοποιεί τα API του ICU στο Eclipse 3.2.

Μετάβαση

Η μετάβαση του κώδικα της εφαρμογής μπορεί να γίνει αυξητικά, κάτι που σημαίνει ότι δεν είναι απαραίτητη η πλήρης υιοθέτηση όλων των λειτουργιών του ICU4J για επωφεληθεί από τη χρήση του ICU4J. Ανατρέξτε στη σελίδα του ICU4J στο δικτυακό τόπο Eclipse Wiki για περισσότερες λεπτομέρειες σχετικά με τον τρόπο μετάβασης του κώδικά σας έτσι ώστε να χρησιμοποιεί το ICU4J.

Πρόσθετη λειτουργία αντικατάστασης του ICU4J

Η προσθήκη της πρόσθετης λειτουργίας ICU4J προσθέτει τη σειρά των 3MB στον καταλαμβανόμενο χώρο. Ορισμένες εφαρμογές ενδέχεται να μην θέλουν να απορροφήσουν το ICU4J αν το μέγεθος της εφαρμογής υπερισχύει της υιοθέτησης της λειτουργίας ICU4J. Σε αυτή την περίπτωση, διατίθεται μια πρόσθετη λειτουργία αντικατάστασης (com.ibm.icu.base) από τη σελίδα δόμησης πλατφόρμας του Eclipse. Μεταφορτώστε την πρόσθετη λειτουργία, αφαιρέστε την πρόσθετη λειτουργία com.ibm.icu και την αντίστοιχη πρόσθετη λειτουργία προέλευσης από τον κατάλογο /plugins και εναποθέστε την πρόσθετη λειτουργία αντικατάστασης. Αυτό είναι απαραίτητο επειδή η πλατφόρμα του Eclipse υιοθέτησε τα API του ICU για την εκδοχή 3.2, κατά συνέπεια απλά η αφαίρεση της πρόσθετης λειτουργίας ICU θα έχει ως αποτέλεσμα σφάλματα μεταγλώττισης στον κώδικα της πλατφόρμας. Η πρόσθετη λειτουργία αντικατάστασης έχει μέγεθος μόνο 100KB και μέσω της προεπιλεγμένης υλοποίησης του JDK πραγματοποιεί απλά κλήσεις των κλάσεων και των API που χρησιμοποιούνται συχνότερα στο ICU4J. Ομοίως, μπορείτε να ανατρέξετε στη σελίδα του ICU4J στο δικτυακό τόπο Eclipse Wiki για περισσότερες λεπτομέρειες σχετικά με τον τρόπο χρήσης της πρόσθετης λειτουργίας αντικατάστασης ICU.

Αποτελέσματα στο JFace - Κλάσεις ViewerSorter και StructuredViewer

Για να είναι δυνατή η υποστήριξη του ICU4J στο JFace, απαιτούνταν ορισμένες δημιουργικές προσθήκες API για την αποτροπή της παραπομπής των κλάσεων ICU στο API. Αυτό είχε ως αποτέλεσμα την προσθήκη των εξής:

  1. μιας νέας κλάσης με το όνομα org.eclipse.jface.viewers.ViewerComparator, της οποίας η org.eclipse.jface.viewers.ViewerSorter αποτελεί πλέον υποκλάση.
  2. δύο νέες μέθοδοι στην org.eclipse.jface.viewers.StructuredViewer για την υποστήριξη της προσθήκης της org.eclipse.jface.viewers.ViewerComparator.

Αιτιολογία

Η κλάση ViewerSorter διαθέτει μια δημόσια μέθοδο getCollator() η οποία επιστρέφει μια java.text.Collator. Εφόσον αυτή η μέθοδος αποτελεί API, δεν μπορεί απλά να αλλάξει έτσι ώστε να χρησιμοποιεί ένα ICU Collator. Επίσης , οι κλάσεις ICU δεν μπορούν να αποτελούν μέρος του API (υπογραφές) καθώς μια άμεση εξάρτηση πρόσθετης λειτουργίας στο ICU μπορεί να αποτρέψει την ανεξάρτητη χρήση του JFace (με το SWT). Για την επίλυση αυτών των περιορισμών, προστέθηκε η κλάση ViewerComparator η οποία χρησιμοποιεί μια java.util.Comparator, αντί ενός ICU Collator. Αυτό γίνεται επειδή η κλάση του ICU Collator υλοποιεί την java.util.Comparator, συνεπώς οποιαδήποτε StructuredViewer μπορεί πλέον να χρησιμοποιεί το ICU Collator αντί της java.text.Collator αλλά το JFace δεν χρειάζεται να προσθέσει μια εξάρτηση στην πρόσθετη λειτουργία του ICU4J. Οι δύο νέες μέθοδοι που προστέθηκαν στην StructuredViewer υποστηρίζουν τη χρήση του ICU Collator για την ταξινόμηση των περιεχομένων της λειτουργία προβολής μέσω μιας ViewerComparator, αντί μιας ViewerSorter. Συνιστάται κάθε StructuredViewer να χρησιμοποιεί πλέον αυτές τις μεθόδους για τη λήψη/ορισμό του τρόπου ταξινόμησης της λειτουργία προβολής (ρουτίνα σύγκρισης), αντί των μεθόδων getSorter() και setSorter(ViewerSorter).

Διαχωρισμός περιβάλλοντος εκτέλεσης

Νέα API περιβάλλοντος εκτέλεσης

Η δέσμη org.eclipse.equinox.common περιλαμβάνει ορισμένες νέες κλάσεις API (π.χ., την Assert και την ListenerList) που έχουν κοινά ονόματα. Αν ο κώδικάς σας περιέχει μια κλάση με το ίδιο όνομα και χρησιμοποιεί προτάσεις * εισαγωγής για την εισαγωγή τόσο της τοπικής κλάσης όσο και των κλάσεων από το περιβάλλον εκτέλεσης, ενδέχεται να λάβετε το ακόλουθο μήνυμα σφάλματος:

   Το είδος ABC είναι ασαφές
  

Το πρόβλημα μπορεί να επιλυθεί με την οργάνωση των στοιχείων εισαγωγής και την επιλογή της κατάλληλης προέλευσης εισαγωγής.

Ρητές διαδρομές κλάσεων στα προσαρμοσμένα σενάρια δόμησης

Λόγω της μετακίνησης του κώδικα στις νέες πρόσθετες λειτουργίες περιβάλλοντος εκτέλεσης, τα προσαρμοσμένα σενάρια που παραπέμπουν ρητά στην org.eclispe.core.runtime ενδέχεται να χρειαστεί να προσθέσουν μία ή περισσότερες από τις ακόλουθες πρόσθετες λειτουργίες: