Χάρτης δικτυακού τόπου εξυπηρετητή ενημέρωσης
Ο προεπιλεγμένος εξυπηρετητής ενημέρωσης του Eclipse είναι οποιοδήποτε εξυπηρετητής προσβάσιμος μέσω ενός URL. Η προεπιλεγμένη υλοποίηση θεωρεί πως πρόκειται για έναν εξυπηρετητή σταθερής διάταξης. Το περιεχόμενο του εξυπηρετητή (ως προς τις διαθέσιμες λειτουργίες και πρόσθετες λειτουργίες) περιγράφεται σε ένα αρχείο χάρτη δικτυακού τόπου, το site.xml. Αυτό το αρχείο μπορεί να συντηρείται μη αυτόματα ή μπορεί να υπολογίζεται δυναμικά από τον εξυπηρετητή.
Χάρτης δικτυακού τόπου
Το URL του εξυπηρετητή ενημέρωσης μπορεί να καθοριστεί ως πλήρες URL στο αρχείο του χάρτη του δικτυακού τόπου ή ως URL της διαδρομής ενός καταλόγου που περιέχει το αρχείο του χάρτη του δικτυακού τόπου (παρόμοιο με την επεξεργασία του index.html). Η μορφή του αρχείου χάρτη δικτυακού τόπου site.xml ορίζεται από το ακόλουθο dtd:
<?xml encoding="ISO-8859-7"?>
<!ELEMENT site (description?, feature*, archive*, category-def*)>
<!ATTLIST site
type CDATA #IMPLIED
url CDATA #IMPLIED
mirrorURL CDATA #IMPLIED
availableLocales CDATA #IMPLIED
digestURL CDATA #IMPLIED
associateSitesURL CDATA #IMPLIED
pack200 CDATA #IMPLIED
>
<!ELEMENT description (#PCDATA)>
<!ATTLIST description
url CDATA #IMPLIED
>
<!ELEMENT feature (category*)>
<!ATTLIST feature
type CDATA #IMPLIED
id CDATA #IMPLIED
version CDATA #IMPLIED
url CDATA #REQUIRED
patch (false | true) false
os CDATA #IMPLIED
nl CDATA #IMPLIED
arch CDATA #IMPLIED
ws CDATA #REQUIRED
>
<!ELEMENT archive EMPTY>
<!ATTLIST archive
path CDATA #REQUIRED
url CDATA #REQUIRED
>
<!ELEMENT category EMPTY>
<!ATTLIST category
name CDATA #REQUIRED
>
<!ELEMENT category-def (description?)>
<!ATTLIST category-def
name CDATA #REQUIRED
label CDATA #REQUIRED
>
Οι ορισμοί γνωρισμάτων και στοιχείων είναι οι εξής:
- <site> - ορίζει το χάρτη του δικτυακού τόπου
- type - προαιρετική προδιαγραφή του είδους του δικτυακού τόπου. Η τιμή αναφέρεται σε μια σειρά χαρακτήρων είδους που καταχωρείται μέσω του σημείου επέκτασης του πλαισίου εγκατάστασης. Αν δεν καθοριστεί, θεωρείται ότι πρόκειται για το προεπιλεγμένο είδος δικτυακού τόπου του Eclipse (όπως καθορίζεται σε αυτό το έγγραφο).
- url - προαιρετικό URL που καθορίζει το βασικό URL του δικτυακού τόπου
ενημέρωσης (χρησιμοποιείται για τον προσδιορισμό της μεμονωμένης θέσης
<feature> και <archive>). Μπορεί να είναι σχετικό ή απόλυτο. Αν είναι σχετικό, είναι σχετικό με το site.xml. Αν δεν καθορίζεται, η προεπιλογή είναι η θέση URL του αρχείου site.xml.
- mirrorsURL - προαιρετικό URL που υποδεικνύει ένα αρχείο με ορισμούς κατοπτρισμού δικτυακού τόπου ενημέρωσης. Αυτό το URL μπορεί να είναι απόλυτο ή σχετικό με αυτόν το δικτυακό τόπο. Το αρχείο κατοπτρισμών περιγράφεται αργότερα στο παρόν έγγραφο.
- availableLocales - προαιρετική λίστα τοπικών ρυθμίσεων για τις οποίες
διατίθενται πληροφορίες
- digestURL - προαιρετικό URL που κατευθύνει στον κατάλογο που περιέχει τις
πληροφορίες. Κατά την εκτέλεση και βάσει της availableLocales, μια από
τις πληροφορίες του καταλόγου που καθορίζεται στο digestURL θα επιλεγεί μέσω
της χρήσης του ίδιου αλγόριθμου που χρησιμοποιείται για την επιλογή ιδιοτήτων
στην κλάση java.util.ResourceBundle. Τα αρχεία πληροφοριών θα πρέπει να
ονομάζονται digest<locale>.zip, όπου το "locale" θα απαντάται είτε ως κενή
σειρά χαρακτήρων (προεπιλεγμένη πληροφορία) είτε όπως ορίζεται
στο java.util.Locale.
- associateSitesURL - προαιρετικό URL που κατευθύνει στο αρχείο xml, το
οποίο καταχωρεί τους δικτυακούς τόπους που θα πρέπει να είναι ανοιχτοί
συγχρόνως με αυτό το δικτυακό τόπο.
- pack200 - Αυτό το γνώρισμα ειδοποιεί τη λειτουργία διαχείρισης ενημέρωσης
για την πιθανή ύπαρξη συσκευασμένου περιεχομένου, το οποίο η λειτουργία θα
έπρεπε να μεταφορτώσει αντί του συνηθισμένου αρχείου
jar. Εάν το γνώρισμα αυτό δεν οριστεί, η λειτουργία διαχείρισης ενημέρωσης
δεν θα αναζητήσει ποτέ συσκευασμένο περιεχόμενο και θα μεταφορτώνει πάντα το
συνηθισμένο αρχείο jar. Για να λάβει ένα αρχείο jar από ένα δικτυακό τόπο
ενημέρωσης που ορίζει την τιμή του pack200 ως "true" (pack200="true"), η
λειτουργία διαχείρισης ενημέρωσης θα αναζητήσει πρώτα ένα αρχείο pack.gz
δίπλα στο αρχείο jar που θέλει. Για παράδειγμα, όταν μεταφορτώνει ένα αρχείο
foo.jar, η λειτουργία διαχείρισης ενημέρωσης θα αναζητήσει πρώτα για το
αρχείο foo.jar.pack.gz. Εάν το αρχείο pack.gz file υπάρχει, τότε θα
μεταφορτωθεί αυτό αντί του αρχείου jar.
Εφόσον το αρχείο pack.gz file μεταφορτωθεί, αποσυσκευάζεται για να αποδώσει το
αρχικό αρχείο jar.
Εάν το αρχείο pack.gz δεν υπάρχει στο δικτυακό τόπο ενημέρωσης, τότε το
συνηθισμένο αρχείο jar θα μεταφορτωθεί κανονικά.
- <description> - σύντομη περιγραφή ως απλό κείμενο. Προορίζεται για μετάφραση.
- url - προαιρετικό URL για την πλήρη περιγραφή σε μορφή HTML. Το URL μπορεί να οριστεί ως απόλυτο ή ως σχετικό. Αν το URL είναι σχετικό, τότε είναι σχετικό με το site.xml.
Σημειώστε ότι για το χειρισμό NL η τιμή URL πρέπει να διαχωριστεί ώστε να επιτρέπει τον καθορισμό εναλλακτικών URL για κάθε εθνική γλώσσα.
- <feature> - προσδιορίζει το αρχείο αποθήκευσης λειτουργίας στο οποίο γίνεται παραπομπή
- type - προαιρετική προδιαγραφή του είδους της λειτουργίας. Η τιμή αναφέρεται σε μια σειρά χαρακτήρων είδους που καταχωρείται μέσω του σημείου επέκτασης του πλαισίου εγκατάστασης. Αν δεν καθοριστεί, θεωρείται ότι πρόκειται για το προεπιλεγμένο είδος λειτουργίας για το δικτυακό τόπο. Αν το είδος δικτυακού τόπου είναι το προεπιλεγμένο του Eclipse, τότε το προεπιλεγμένο είδος λειτουργίας είναι το συσκευασμένο είδος λειτουργίας (όπως καθορίζεται στο παρόν έγγραφο).
- id - προαιρετική ταυτότητα λειτουργίας. Οι πληροφορίες χρησιμοποιούνται ως βελτιστοποίηση απόδοσης, με σκοπό την επιτάχυνση των αναζητήσεων λειτουργιών. Πρέπει να συμφωνεί με την ταυτότητα που έχει καθοριστεί στο feature.xml του αρχείου αποθήκευσης στο οποίο γίνεται παραπομπή (το γνώρισμα "url").
Αν καθορίζεται, πρέπει επίσης να καθοριστεί το γνώρισμα "version".
- version - προαιρετική εκδοχή λειτουργίας. Οι πληροφορίες χρησιμοποιούνται ως βελτιστοποίηση απόδοσης, με σκοπό την επιτάχυνση των αναζητήσεων λειτουργιών. Πρέπει να συμφωνεί με την εκδοχή που έχει καθοριστεί στο feature.xml του αρχείου αποθήκευσης στο οποίο γίνεται παραπομπή (το γνώρισμα "url").
Αν καθορίζεται, πρέπει επίσης να καθοριστεί το γνώρισμα "id".
- url - απαιτούμενη παραπομπή URL στο αρχείο αποθήκευσης λειτουργιών. Μπορεί να είναι σχετικό ή απόλυτο. Αν είναι σχετικό, είναι σχετικό προς τη θέση του αρχείου site.xml.
Σημείωση:
η προεπιλεγμένη υλοποίηση δικτυακών τόπων επιτρέπει την πρόσβαση στις
λειτουργίες χωρίς ρητή δήλωση με μια εγγραφή <feature>. Από προεπιλογή, η
παραπομπή σε μη δηλωμένες λειτουργίες ερμηνεύεται
ως "features/<id>_<version>.jar".
Σημείωση: για καλύτερη απόδοση της αναζήτησης, να ορίζετε πάντα τα γνωρίσματα "id" και "version".
- patch - προαιρετικό γνώρισμα που δηλώνει ότι η συγκεκριμένη λειτουργία είναι πακέτο επιδιόρθωσης κώδικα (ένα ειδικό είδος λειτουργίας).
Σημείωση: για καλύτερη απόδοση της αναζήτησης, να ορίζετε πάντα αυτό το γνώρισμα.
- os - προαιρετική προδιαγραφή του λειτουργικού συστήματος. Λίστα προσδιοριστικών λειτουργικού συστήματος διαχωρισμένων με κόμμα, που ορίζεται από το Eclipse (δείτε το Javadoc για org.eclipse.core.runtime.Platform). Δηλώνει ότι αυτή η λειτουργία πρέπει να εγκατασταθεί μόνο σε ένα από τα καθορισμένα λειτουργικά συστήματα. Αν αυτό το γνώρισμα δεν καθορίζεται, η λειτουργία μπορεί να εγκατασταθεί σε όλα τα συστήματα (φορητή υλοποίηση). Αυτές οι πληροφορίες χρησιμοποιούνται ως υπόδειξη από την υποστήριξη εγκατάστασης και ενημέρωσης (ο χρήστης μπορεί να εγκαταστήσει υποχρεωτικά τη λειτουργία ανεξάρτητα από αυτή τη ρύθμιση).
- arch - προαιρετική προδιαγραφή της αρχιτεκτονικής υπολογιστή. Λίστα προσδιοριστικών αρχιτεκτονικής διαχωρισμένων με κόμμα, που ορίζεται από το Eclipse (δείτε το Javadoc για org.eclipse.core.runtime.Platform). Δηλώνει ότι αυτή η λειτουργία πρέπει να εγκαθίσταται μόνο σε ένα από τα καθορισμένα συστήματα. Αν αυτό το γνώρισμα δεν καθορίζεται, η λειτουργία μπορεί να εγκατασταθεί σε όλα τα συστήματα (φορητή υλοποίηση). Αυτές οι πληροφορίες χρησιμοποιούνται ως υπόδειξη από την υποστήριξη εγκατάστασης και ενημέρωσης (ο χρήστης μπορεί να εγκαταστήσει υποχρεωτικά τη λειτουργία ανεξάρτητα από αυτή τη ρύθμιση).
- ws - προαιρετική προδιαγραφή του συστήματος παραθύρων. Λίστα προσδιοριστικών συστήματος παραθύρων διαχωρισμένων με κόμμα, που ορίζεται από το Eclipse (δείτε το Javadoc για org.eclipse.core.runtime.Platform). Δηλώνει ότι αυτή η λειτουργία πρέπει να εγκατασταθεί μόνο σε ένα από τα καθορισμένα παραθυρικά συστήματα. Αν αυτό το γνώρισμα δεν καθορίζεται, η λειτουργία μπορεί να εγκατασταθεί σε όλα τα συστήματα (φορητή υλοποίηση). Αυτές οι πληροφορίες χρησιμοποιούνται ως υπόδειξη από την υποστήριξη εγκατάστασης και ενημέρωσης (ο χρήστης μπορεί να εγκαταστήσει υποχρεωτικά τη λειτουργία ανεξάρτητα από αυτή τη ρύθμιση).
- nl - προαιρετική προδιαγραφή τοπικών ρυθμίσεων. Λίστα προσδιοριστικών τοπικών ρυθμίσεων διαχωρισμένων με κόμμα, που ορίζεται από τη Java. Δηλώνει ότι αυτή η λειτουργία μπορεί να εγκατασταθεί μόνο σε συστήματα που εκτελούνται με συμβατές τοπικές ρυθμίσεις (με χρήση των κανόνων συμφωνίας τοπικών ρυθμίσεων Java). Αν αυτό το γνώρισμα δεν καθορίζεται, η λειτουργία μπορεί να εγκατασταθεί σε όλα τα συστήματα (υλοποίηση ουδέτερης γλώσσας). Αυτές οι πληροφορίες χρησιμοποιούνται ως υπόδειξη από την υποστήριξη εγκατάστασης και ενημέρωσης (ο χρήστης μπορεί να εγκαταστήσει υποχρεωτικά τη λειτουργία ανεξάρτητα από αυτή τη ρύθμιση).
- <archive> - προσδιορίζει το αρχείο αποθήκευσης στο οποίο
γίνεται παραπομπή (τα πραγματικά αρχεία στα οποία γίνεται παραπομπή μέσω
των στοιχείων <plugin> or <data> στη δήλωση
λειτουργίας). Ο δικτυακός τόπος απλώς διαχειρίζεται τα αρχεία αποθήκευσης ως αντιστοίχιση διαδρομής σε ένα URL. Η
προεπιλεγμένη υλοποίηση δικτυακών τόπων του Eclipse δεν απαιτεί να
συμπεριληφθεί η ενότητα <archive> στο χάρτη του δικτυακού τόπου (site.xml). Οποιαδήποτε
παραπομπή αρχείου αποθήκευσης δεν έχει οριστεί ρητά ως τμήμα μιας ενότητας
<archive> θεωρείται ότι αντιστοιχεί σε ένα url με τη μορφή
"<archivePath>", σχετικό με τη θέση του αρχείου site.xml.
- path - η απαιτούμενη ταυτότητα της διαδρομής ενός αρχείου αποθήκευσης. Πρόκειται για μια σειρά χαρακτήρων που καθορίζεται από τη λειτουργία που παραπέμπει σε αυτό το αρχείο αποθήκευσης και δεν ερμηνεύεται διαφορετικά από το δικτυακό τόπο (διαφορετικά από διακριτικό στοιχείο αναζήτησης).
- url - απαιτούμενη παραπομπή URL στο αρχείο αποθήκευσης. Μπορεί να είναι σχετικό ή απόλυτο.
Αν είναι σχετικό, είναι σχετικό προς τη θέση του αρχείου site.xml.
- <category-def> - προαιρετικός ορισμός μιας κατηγορίας που μπορεί να χρησιμοποιηθεί από την υποστήριξη εγκατάστασης και ενημέρωσης για να την οργάνωση των λειτουργιών σε ιεραρχίες.
- name - όνομα κατηγορίας. Καθορίζεται ως διαδρομή διακριτικών στοιχείων ονόματος που διαχωρίζονται με το χαρακτήρα "/".
- label - εμφανιζόμενη ετικέτα. Προοριζόμενη για μετάφραση.
- <category> - προδιαγραφή της πραγματικής κατηγορίας για μια εγγραφή λειτουργίας
Σημειώστε ότι γενικά τα έγγραφα δήλωσης feature.xml πρέπει να καθορίζουν κωδικοποίηση UTF-8. Για παράδειγμα:
<?xml version="1.0" encoding="UTF-8"?>
Το μεταφράσιμο κείμενο που περιέχεται στο site.xml μπορεί να διαχωριστεί
σε αρχεία site<_locale>.properties
χρησιμοποιώντας τις συμβάσεις για τη δέσμη ιδιοτήτων Java. Σημειώστε ότι οι μεταφρασμένες σειρές χαρακτήρων χρησιμοποιούνται κατά την εγκατάσταση (δεν χρησιμοποιούν το μηχανισμό χρόνου εκτέλεσης του τμήματος της πρόσθετης λειτουργίας). Η θέση των δεσμών λειτουργιών είναι σχετική με τη θέση του site.xml.
Προεπιλεγμένη διάταξη θέσης
<site root>/
site.xml
features/
αρχεία αποθήκευσης λειτουργιών (π.χ. org.eclipse.javatools_1.0.1.jar)
<featureId>_<featureVersion>/
(optional)
αρχεία που δεν αφορούν πρόσθετες λειτουργίες για τη λειτουργία
plugins/
αρχεία αποθήκευσης πρόσθετων λειτουργιών (π.χ. org.eclipse.ui_1.0.3.jar)
Αρχείο κατοπτρισμών
Το αρχείο κατοπτρισμών ενημέρωσης (που υποδεικνύεται από το γνώρισμα "mirrorsURL" του στοιχείου <site>) περιέχει τον ορισμό για τους κατοπτρισμούς του δικτυακού τόπου ενημέρωσης. Η μορφή του ορίζεται από το ακόλουθο dtd:
<?xml encoding="ISO-8859-7"?>
<!ELEMENT mirrors (mirror*))>
<!ELEMENT mirror EMPTY>
<!ATTLIST mirror
url CDATA #REQUIRED
label CDATA #REQUIRED
>
- <mirrors> - ορίζει τους διαθέσιμους κατοπτρισμούς του δικτυακού τόπου ενημέρωσης
- <mirror> - ορίζει ένα δικτυακό τόπο κατοπτρισμού
- url - το URL του δικτυακού τόπου κατοπτρισμού
- label - εμφανιζόμενη ετικέτα. Προοριζόμενη για μετάφραση.
Αρχείο πληροφοριών
Τα αρχεία πληροφοριών (τα ίδια που υποδεικνύονται από το γνώρισμα digestURL
του <site>) είναι συμπιεσμένα xml αρχεία με το ακόλουθο DDT:
<?xml encoding="ISO-8859-7"?>
<!ELEMENT digest (feature*)>
Όπου ο ορισμός "feature" ("λειτουργία") είναι ο ίδιος όπως στη δήλωση
λειτουργίας.
Το αρχείο συσχέτισης δικτυακών τόπων
Το αρχείο συσχέτισης δικτυακών τόπων (που υποδεικνύεται από το
γνώρισμα associateSitesURL του
<site>) περιέχει τον ορισμό των συσχετισμένων αρχείων. Η μορφή του
ορίζεται από το ακόλουθο:
<?xml encoding="ISO-8859-7"?>
<!ELEMENT associateSites (associateSite*)>
<!ELEMENT associateSites EMPTY>
<!ATTLIST associateSite
url CDATA #REQUIRED
label CDATA #REQUIRED
>
- <associateSites> - ορίζει τους δικτυακούς τόπους που
συσχετίζονται με το δικτυακό τόπο ενημέρωσης
- <associateSite> - ορίζει ένα συσχετιζόμενο δικτυακό τόπο
- url - η διεύθυνση URL του συσχετιζόμενου δικτυακού τόπου
- label - εμφανιζόμενη ετικέτα. Προοριζόμενη για μετάφραση.
Έλεγχος της πρόσβασης
Η προεπιλεγμένη υλοποίηση δικτυακών τόπων του Eclipse παρέχει υποστήριξη για πρόσβαση http με εξακρίβωση βασικών στοιχείων χρήστη (ταυτότητας χρήστη και κωδικού πρόσβασης).
Στις βασικές λειτουργίες του Eclipse μπορούν να προστεθούν προσαρμοσμένοι μηχανισμοί ελέγχου πρόσβασης με έναν από τους δύο ακόλουθους τρόπους:
-
παρέχοντας για τον εξυπηρετητή ενημέρωσης μια λογική από την πλευρά του εξυπηρετητή (π.χ. υλοποιώντας μικροεφαρμογές εξυπηρετητή που υπολογίζουν την αντιστοίχιση site.xml και ελέγχουν την πρόσβαση στα μεμονωμένα αρχεία αποθήκευσης βάσει ορισμένων κριτηρίων χρήστη).
-
παρέχοντας προσαρμοσμένη, υπαρκτή υλοποίηση του αντικειμένου του δικτυακού
τόπου (που είναι εγκατεστημένο στον υπολογιστή-πελάτη, καθορισμένο στον
εξυπηρετητή ενημέρωσης <site type="">).
Η προσαρμοσμένη υπαρκτή υλοποίηση δικτυακών τόπων, μαζί με οποιαδήποτε λογική από την πλευρά του εξυπηρετητή, υποστηρίζουν τους απαιτούμενους μηχανισμούς ελέγχου.
Το Eclipse παρέχει ένα παράδειγμα σχετικά με την υλοποίηση ενός μηχανισμού πρόσβασης με βάση αρχεία κλειδιών λειτουργιών.