Κανόνες πρόσβασης
Το περιβάλλον εκτέλεσης Eclipse 3.1 παρέχει στον προγραμματιστή τη δυνατότητα να ελέγχει την ορατότητα του κώδικα των πρόσθετων λειτουργιών προς τους πελάτες ανά πακέτο.
Τα πακέτα μπορούν να ταξινομηθούν ως εξής:
Το PDE μεταφράζει αυτούς τους κανόνες ορατότητας περιβάλλοντος εκτέλεσης σε κανόνες περιορισμού πρόσβασης για το μεταγλωττιστή, κατά το χρόνο μεταγλώττισης. Έτσι, η παραβίαση ενός κανόνα ορατότητας επισημαίνεται από το μεταγλωττιστή ως προειδοποίηση ή σφάλμα, ανάλογα με τη σοβαρότητα της παραβίασης.
Με τέτοιου τύπου υποστήριξη κατά το χρόνο μεταγλώττισης, κανείς δεν εκπλήσσεται όταν η κλάση του περιβάλλοντος εκτέλεσης φορτώνει σφάλματα και όλοι γνωρίζουν τις παραπομπές εσωτερικού τύπου.
Προσβάσιμα πακέτα
Τα προσβάσιμα πακέτα είναι ορατά σε πρόσθετες λειτουργίες προς τους πελάτες άνευ όρων. Ενώ τα πακέτα API πρέπει σαφώς να εμπίπτουν σε αυτή την κατηγορία, η απόφαση για το ποια θα είναι τα υπόλοιπα πακέτα στα οποία θα πρέπει να δοθεί αυτό το επίπεδο ορατότητας, εξαρτάται εξ’ολοκλήρου από τον προγραμματιστή.
Για να δηλώσετε ένα πακέτο ως προσβάσιμο, πρέπει να το συμπεριλάβετε στη λίστα της ενότητας Εξαγόμενα πακέτα στη σελίδα Περιβάλλον εκτέλεσης της λειτουργίας επεξεργασίας δηλώσεων πρόσθετων λειτουργιών και να αφήσετε την προεπιλεγμένη ρύθμιση της ορατότητας ως έχει.
Πακέτα απαγορευμένης πρόσβασης
Μπορείτε πάντοτε να αποκρύπτετε ένα πακέτο από τις πρόσθετες λειτουργίες προς τους πελάτες εξαιρώντας το από τη λίστα στην ενότητα Εξαγόμενα πακέτα της σελίδας Περιβάλλον εκτέλεσης της λειτουργίας επεξεργασίας δηλώσεων πρόσθετων λειτουργιών.
Οι παραπομπές σε είδη που προέρχονται από ένα αρχείο απαγορευμένης πρόσβασης, έχουν ως αποτέλεσμα να προκύπτουν σφάλματα φόρτωσης στο περιβάλλον εκτέλεσης.
Για την αποφυγή τέτοιων δυσάρεστων καταστάσεων:
Σημειώσεις:
Συνίσταται ιδιαίτερα να διατηρείται η παραπομπή απαγορευμένης πρόσβασης ως σφάλμα.
Εσωτερικά πακέτα
Τα εσωτερικά πακέτα είναι εκείνα που δεν προορίζονται για χρήση από τις πρόσθετες λειτουργίες προς τους πελάτες. Αυτά τα πακέτα είναι ορατά στις πρόσθετες λειτουργίες προς τους πελάτες από προεπιλογή.
Τα εσωτερικά πακέτα αποκρύπτονται από τις πρόσθετες λειτουργίες προς τους πελάτες μόνο όταν το Eclipse πραγματοποιεί εκκίνηση σε κατάσταση λειτουργίας με περιορισμούς (π.χ όταν η εκκίνηση γίνεται με το όρισμα VM -Dosgi.resolverMode=strict).
Τα εσωτερικά πακέτα πρέπει να παρατίθενται στην ενότητα Εξαγόμενα πακέτα στη σελίδα Περιβάλλον εκτέλεσης της λειτουργίας επεξεργασίας δηλώσεων πρόσθετων λειτουργιών με την επιλογή απόκρυψη ενεργοποιημένη.
Λαμβάνονται δυο μέτρα προκειμένου να μη συνίσταται η παραπομπή εσωτερικών πακέτων από τις πρόσθετες λειτουργίες προς τους πελάτες:
Το επίπεδο σοβαρότητας για τις παραπομπές μη συνιστώμενης πρόσβασης ορίζεται στη σελίδα προτιμήσεων
Java > Μεταγλωττιστής > Σφάλματα/Προειδοποιήσεις
> Καταργημένο και περιορισμένης πρόσβασης API.
Εσωτερικά πακέτα με φιλικά στοιχεία
Είναι σημαντικό για μια πρόσθετη λειτουργία να μπορεί να εκχωρήσει δικαιώματα πλήρους πρόσβασης στα εσωτερικά της πακέτα σε καθορισμένες πρόσθετες λειτουργίες που αποτελούν "φιλικά στοιχεία". Για παράδειγμα, ο κώδικας του PDE μοιράζεται σε πολλές πρόσθετες λειτουργίες και η πρόσθετη λειτουργία org.eclipse.pde.ui θα πρέπει να έχει δικαιώματα πλήρους πρόσβασης στα εσωτερικά πακέτα της πρόσθετης λειτουργίας org.eclipse.pde.core.
Στο παρακάτω παράδειγμα, η φιλική πρόσθετη λειτουργία org.eclipse.pde.ui διαθέτει πλήρη πρόσβαση στο πακέτο org.eclipse.pde.internal.core.bundle από την πρόσθετη λειτουργία org.eclipse.pde.core .
Τα φιλικά στοιχεία είναι ελεύθερα από το μεταγλωττιστή να παραπέμψουν σε οποιοδήποτε είδος από το πακέτο org.eclipse.pde.internal.core.bundle.
Από την άλλη, εάν οποιαδήποτε άλλη πρόσθετη λειτουργία παραπέμψει σε ένα είδος από το πακέτο org.eclipse.pde.internal.core.bundle, ο μεταγλωττιστής επισημαίνει αυτή την παραπομπή ως μη συνιστώμενη παραπομπή, όπως περιγράφεται στην προηγούμενη ενότητα.
Ενεργοποίηση των περιορισμών πρόσβασης
Προκειμένου να επωφεληθείτε από την υποστήριξη περιορισμού πρόσβασης στο PDE, η μόνη προϋπόθεση είναι οι εν λόγω πρόσθετες λειτουργίες να περιέχουν ένα αρχείο MANIFEST.MF δέσμης OSGi. Το PDE αναλαμβάνει τα υπόλοιπα, συμπεριλαμβανομένης και της διαχείρισης της διαδρομής κλάσεων της πρόσθετης λειτουργίας.
Εάν η πρόσθετη λειτουργία δεν περιέχει αρχείο MANIFEST.MF αυτό το αρχείο μπορεί να δημιουργηθεί ως εξής:
Επιθεώρηση των κανόνων πρόσβασης
Μπορείτε να επιθεωρήσετε τους κανόνες περιορισμού πρόσβασης, που επιβάλλονται σε κάθε καταχώρηση διαδρομής κλάσεων από το PDE, στις σελίδες ιδιοτήτων Διαδρομή δόμησης Java του έργου πρόσθετης λειτουργίας σας.