Κανόνες πρόσβασης

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

Τα πακέτα μπορούν να ταξινομηθούν ως εξής:

  1. Προσβάσιμο
  2. Απαγορευμένο
  3. Εσωτερικό
  4. Εσωτερικό με φιλικά στοιχεία

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

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

 

Προσβάσιμα πακέτα

Τα προσβάσιμα πακέτα είναι ορατά σε πρόσθετες λειτουργίες προς τους πελάτες άνευ όρων.   Ενώ τα πακέτα API πρέπει σαφώς να εμπίπτουν σε αυτή την κατηγορία, η απόφαση για το ποια θα είναι τα υπόλοιπα πακέτα στα οποία θα πρέπει να δοθεί αυτό το επίπεδο ορατότητας, εξαρτάται εξ’ολοκλήρου από τον προγραμματιστή.

Για να δηλώσετε ένα πακέτο ως προσβάσιμο, πρέπει να το συμπεριλάβετε στη λίστα της ενότητας Εξαγόμενα πακέτα στη σελίδα Περιβάλλον εκτέλεσης της λειτουργίας επεξεργασίας δηλώσεων πρόσθετων λειτουργιών και να αφήσετε την προεπιλεγμένη ρύθμιση της ορατότητας ως έχει.

Προσβάσιμα πακέτα

 

Πακέτα απαγορευμένης πρόσβασης

Μπορείτε πάντοτε να αποκρύπτετε ένα πακέτο από τις πρόσθετες λειτουργίες προς τους πελάτες εξαιρώντας το από τη λίστα στην ενότητα Εξαγόμενα πακέτα της σελίδας Περιβάλλον εκτέλεσης της λειτουργίας επεξεργασίας δηλώσεων πρόσθετων λειτουργιών.

Οι παραπομπές σε είδη που προέρχονται από ένα αρχείο απαγορευμένης πρόσβασης, έχουν ως αποτέλεσμα να προκύπτουν σφάλματα φόρτωσης στο περιβάλλον εκτέλεσης.

 Για την αποφυγή τέτοιων δυσάρεστων καταστάσεων:

  1. Ο μεταγλωττιστής θα επισημαίνει τις παραπομπές σε πακέτα απαγορευμένης πρόσβασης ως σφάλμα.
  2. Τα είδη από πακέτα απαγορευμένης πρόσβασης ΔΕΝ είναι διαθέσιμα ως προτάσεις στην αυτόματη συμπλήρωση περιεχομένου.

Σημειώσεις:

  1. Όλες οι πρόσθετες λειτουργίες στο Eclipse SDK απαριθμούν όλα τα πακέτα τους στην ενότητα Εξαγόμενα πακέτα και, κατά συνέπεια, κανένα από τα πακέτα στο SDK δεν είναι απαγορευμένης πρόσβασης.
  2. Το επίπεδο σοβαρότητας για τις παραπομπές απαγορευμένης πρόσβασης ορίζεται στη σελίδα προτιμήσεων Java > Μεταγλωττιστής > Σφάλματα/προειδοποιήσεις > Καταργημένο και περιορισμένης πρόσβασης 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 αυτό το αρχείο μπορεί να δημιουργηθεί ως εξής:

  1. Ανοίξτε το plugin.xml στη λειτουργία επεξεργασίας δηλώσεων πρόσθετων λειτουργιών.
  2. Στην ενότητα Περιεχόμενο πρόσθετης λειτουργίας της σελίδας Επισκόπηση, πατήστε στη διασύνδεση δημιουργήστε μια δήλωση δέσμης OSGi.

Μετατροπή σε αρχείο manifest.mf

 

Επιθεώρηση των κανόνων πρόσβασης

Μπορείτε να επιθεωρήσετε τους κανόνες περιορισμού πρόσβασης, που επιβάλλονται σε κάθε καταχώρηση διαδρομής κλάσεων από το PDE, στις σελίδες ιδιοτήτων Διαδρομή δόμησης Java του έργου πρόσθετης λειτουργίας σας.

Ιδιότητες της διαδρομής δόμησης Java