Τελευταία τροποποίηση: Παρασκευή 18 Ιουνίου 2004, 15:20
Τα προϊόντα που βασίζονται στο Eclipse πρέπει να εγκαθίστανται σωστά στον υπολογιστή του τελικού χρήστη. Εργαλεία συσκευασίας για ειδικούς σκοπούς, όπως είναι το InstallShield και το RPM, χρησιμοποιούνται συχνά για τη δόμηση προγραμμάτων εγκατάστασης εκτελέσιμων αρχείων που αυτοματοποιούν την εγκατάσταση, την ενημέρωση και την απεγκατάσταση. Σε αυτή τη σημείωση περιγράφεται ο τρόπος μεταγραφής ενός προγράμματος εγκατάστασης για προϊόντα που βασίζονται στο Eclipse καθώς και για ξεχωριστά εγκαταστάσιμες επεκτάσεις τέτοιου είδους προϊόντων.
Θεωρούμε ότι έργο της ομάδας ανάπτυξης ενός προϊόντος είναι να παρέχει τις πρώτες ύλες που πρέπει να φτάσουν στους υπολογιστές των τελικών χρηστών συσκευασμένες ως προγράμματα εγκατάστασης εκτελέσιμων αρχείων. Η δημιουργία προγραμμάτων εγκατάστασης εκτελέσιμων αρχείων γίνεται βάσει σεναρίου, όπως και οι ενέργειες της εγκατάστασης που απαιτούνται για την αλληλεπίδραση με τον τελικό χρήστη και την κατάθεση αρχείων για φύλαξη στον υπολογιστή του. Σε αυτή τη σημείωση παρέχεται μια λεπτομερής περιγραφή των ενεργειών που πρέπει να εκτελούν αυτά τα προγράμματα εγκατάστασης και του τρόπου λειτουργίας τους.
Αυτή η σημείωση πρέπει να αντιμετωπιστεί σαν συνιστώμενη μέθοδος για το άτομο που έχει την ευθύνη της μεταγραφής ενός προγράμματος εγκατάστασης για ένα προϊόν που βασίζεται στο Eclipse. Υπάρχουν δύο σημαντικοί λόγοι για τους οποίους συνιστούμε σε όλους τους μεταγραφείς προγραμμάτων εγκατάστασης να ακολουθήσουν τη μέθοδό μας:
Ένα πρόγραμμα εγκατάστασης προϊόντος πρέπει να είναι αυτόνομο - το είδος που θα διένειμαν σε ένα CD και θα εγκαθιστούσαν σε οποιονδήποτε υπολογιστή με το κατάλληλο λειτουργικό σύστημα.
Το Eclipse απαιτεί Java2 Java Runtime Environment (JRE) για την εκτέλεση του κώδικα Java. Τα JRE είναι λογισμικό για το οποίο απαιτείται άδεια χρήσης και το οποίο μπορεί να προμηθευτεί κάποιος από τους προμηθευτές προγραμμάτων Java. Όταν υπάρχει άδεια αναδιανομής ενός JRE από έναν προμηθευτή JRE, μια εταιρεία μπορεί να συμπεριλάβει ένα JRE στο προϊόν της και να το εγκαταστήσει στον υπολογιστή του τελικού χρήστη κατά την εγκατάσταση του προϊόντος. Η εναλλακτική λύση είναι να απαιτείται το JRE να είναι εκ των προτέρων εγκατεστημένο στον υπολογιστή του τελικού χρήστη και να συσχετίζεται κατά την εγκατάσταση του προϊόντος. Σε κάθε περίπτωση, ένα προϊόν που βασίζεται στο Eclipse απαιτεί ένα κατάλληλο JRE και το πρόγραμμα εγκατάστασης του προϊόντος πρέπει να διαδραματίσει ένα ρόλο είτε στην εγκατάσταση ενός JRE είτε στον εντοπισμό και τη διασύνδεση με ένα προϋπάρχον JRE.
Ας υποθέσουμε ότι πρόκειται να εγκατασταθεί μαζί με το προϊόν ένα JRE. Ένας κατάλογος που περιέχει το JRE είναι μία είσοδος για το σενάριο δημιουργίας του προγράμματος εγκατάστασης. Δηλώστε αυτό τον κατάλογο ως <JRE>. Αυτός ο κατάλογος πρέπει να έχει τυπική δομή καταλόγου JRE, με το εκτελέσιμο αρχείο Java στη θέση jre/bin/java.exe
και τη βιβλιοθήκη κλάσεων στο jre/lib/rt.jar
κάτω από τον κατάλογο <JRE>.
Παρακάτω βλέπετε ένα δείγμα της σκελετικής δομής αυτού του καταλόγου:
<JRE>/
jre/
bin/
java.exe
lib/
rt.jar
Υπάρχουν πρόσθετα αρχεία (και υποκατάλογοι) σε αυτούς τους καταλόγους. Εμείς παρουσιάσαμε μόνο ένα δείγμα για να απεικονίσουμε τη γενική δομή. Τα ονόματα με πλάγια γραφή εξαρτώνται από το προϊόν.
Η δεύτερη είσοδος για το σενάριο δημιουργίας του προγράμματος εγκατάστασης είναι ένας κατάλογος, <product head
>, που περιέχει την λειτουργία εκκίνησης για το εκτελέσιμο αρχείο του προϊόντος και οποιαδήποτε αρχεία δεν σχετίζονται με το Eclipse. Ένα παράδειγμα της σκελετικής δομής αυτού του καταλόγου θα είχε περίπου την παρακάτω μορφή (η πλάγια γραφή δηλώνει ονόματα αρχείων που διαφέρουν από προϊόν σε προϊόν):
<product head>/
Η τρίτη είσοδος για το σενάριο δημιουργίας του προγράμματος εγκατάστασης είναι ένας κατάλογος, <
acmeproduct.exe
product body
>, που περιέχει τις λειτουργίες και τις πρόσθετες λειτουργίες που έχουν αναπτυχθεί για το προϊόν. Παρακάτω βλέπετε ένα δείγμα της σκελετικής δομής αυτού του καταλόγου:
<product body>/
eclipse/
features/
com.example.acme.acmefeature_1.0.0/
feature.xml
com.example.acme.otherfeature_1.0.0/
feature.xml
plugins/
com.example.acme.acmefeature_1.0.0/
plugin.xml
about.ini
about.properties
about.mappings
plugin_customization.ini
splash.bmp
com.example.acme.otherfeature_1.0.0/
plugin.xml
about.ini
about.properties
about.mappings
com.example.acme.myplugin_1.0.0/
plugin.xml
myplugin.jar
com.example.acme.otherplugin_1.0.0/
plugin.xml
otherplugin.jar
Η τέταρτη είσοδος για το σενάριο δημιουργίας του προγράμματος εγκατάστασης είναι ένας κατάλογος, <platform
>, που περιέχει τις λειτουργίες και τις πρόσθετες λειτουργίες για την ίδια την πλατφόρμα Eclipse και για οποιαδήποτε εργαλεία τρίτου μέρους περιλαμβάνονται.
Αυτός ο κατάλογος περιλαμβάνει επίσης την τυπική λειτουργία εκκίνησης του εκτελέσιμου αρχείου του Eclipse, eclipse.exe
, (ονομάζεται eclipse
σε λειτουργικό περιβάλλον Unix), το συνοδό του στοιχείο startup.jar
, και οποιαδήποτε άλλα αρχεία της πλατφόρμας Eclipse απαιτείται να βρίσκονται στον κεντρικό κατάλογο της εγκατάστασης. Παρακάτω βλέπετε ένα δείγμα της σκελετικής δομής αυτού του καταλόγου:
<platform>
Τα ακριβή περιεχόμενα των καταλόγων εισόδου <
eclipse/
eclipse.exe
startup.jar
features/
org.eclipse.platform_2.0.0/
org.eclipse.platform.win32_2.0.0/
org.eclipse.jdt_2.0.0/
org.eclipse.pde_2.0.0/
plugins/
org.eclipse.platform_2.0.0/
org.eclipse.core.runtime_2.0.0/
org.eclipse.core.boot_2.0.0/
org.eclipse.core.resources_2.0.0/
org.eclipse.ui_2.0.0/
org.eclipse.jdt_2.0.0/
org.eclipse.jdt.core_2.0.0/
org.eclipse.jdt.ui_2.0.0/
org.eclipse.pde_2.0.0/
org.eclipse.pde.core_2.0.0/
org.eclipse.pde.ui_2.0.0/
(more org.eclipse.* plug-in directories)
JRE
>, <product head
>, <product body
>, και <platform
> καθορίζουν ποια αρχεία θα εγκατασταθούν στον υπολογιστή του τελικού χρήστη.
Τα τελικά δεδομένα εισόδου στο σενάριο δημιουργίας του προγράμματος εγκατάστασης είναι οι σειρές χαρακτήρων ταυτότητας και εκδοχής για την κύρια λειτουργία του προϊόντος, π.χ., "com.example.acme.acmefeature"
, και "1.0.0
"; και το όνομα του εκτελέσιμου αρχείου του προϊόντος, π.χ., "acmeproduct
.exe
".
Για προϊόντα που δεν απαιτούν το δικό τους εκτελέσιμο αρχείο προϊόντος, αυτό θα ήταν η διαδρομή της τυπικής λειτουργίας εκκίνησης του εκτελέσιμου αρχείου του Eclipse "eclipse/eclipse.exe
".
Αυτές οι σειρές χαρακτήρων έχουν ιδιαίτερη σημασία για το πρόγραμμα εγκατάστασης, καθώς εμφανίζονται στα ονόματα αρχείου και καταλόγου και στα περιεχόμενα των αρχείων δεικτών που δημιουργούνται κατά την εγκατάσταση.
Κατά την εγκατάσταση, το πρόγραμμα εγκατάστασης πρέπει να έχει την τυπική συμπεριφορά (περισσότερες λεπτομέρειες θα αναφερθούν μετά τη λίστα με τα βήματα) και να εκτελέσει τις παρακάτω ενέργειες:
Αν η θέση που καθορίστηκε στο βήμα 5 είναι η <install
>, το πρόγραμμα εγκατάστασης αντιγράφει όλα τα αρχεία των καταλόγων <JRE
>, <platform>,
<product
>, και <product plug-ins>
στο <install
>.
Αρχείο εισόδου | Εγκατεστημένο αρχείο |
<JRE>/* |
<install>/eclipse/* |
<product head>/* |
<install>/* |
<product body>/* |
<install>/* |
<platform>/* |
<install>/* |
Το αρχείο δεικτών που δημιουργήθηκε στο βήμα 8 είναι το <install>/eclipse/.eclipseproduct
και χρησιμοποιείται για τη σημείωση ενός καταλόγου στον οποίο έχει εγκατασταθεί ένα προϊόν που βασίζεται στο Eclipse, κυρίως για να μπορεί να εντοπιστεί από προγράμματα εγκατάστασης επεκτάσεων. Αυτό το αρχείο δεικτών είναι αρχείο με μορφή java.io.Properties (κωδικοποίηση χαρακτήρων ISO 8859-1 με χαρακτήρα διαφυγής "\") και περιέχει τις ακόλουθες πληροφορίες που προσδιορίζουν το προϊόν στο χρήστη και ξεχωρίζουν το ένα προϊόν που βασίζεται στο Eclipse από το άλλο:
name=Acme Visual Tools Pro
id=com.example.acme.acmefeature
version=1.0.0
Οι τιμές για τις ιδιότητες "id" και "version" είναι είσοδοι για το σενάριο δημιουργίας του προγράμματος εγκατάστασης. Το όνομα του προϊόντος θεωρείται γνωστό και είναι ενσωματωμένο. (Τα προϊόντα κανονικά δεν έχουν πρόσβαση σε αυτό το αρχείο δεικτών. Η εγγραφή και η ανάγνωση του αρχείου δεικτών γίνεται μόνο από προϊόντα εγκατάστασης προϊόντων και επεκτάσεων.)
Το βήμα 6 απαιτεί έλεγχο για ένα ήδη υπάρχον αρχείο <install>/eclipse/.eclipseproduct
ή <install>/eclipse/.eclipseextension
. Δεν είναι δυνατή η εγκατάσταση ενός προϊόντος ακριβώς στην ίδια θέση με ένα άλλο προϊόν ή επέκταση.
Μετά την εγκατάσταση όλων των αρχείων, η δομή ανώτερου επιπέδου του καταλόγου εγκατάστασης θα περιέχει τα ακόλουθα αρχεία και υποκαταλόγους (ίσως και άλλα):
<install>/
Αν το πρόγραμμα εγκατάστασης ενός προϊόντος ζητήσει από το χρήστη πληροφορίες σχετικά με την άδεια χρήσης, όπως όνομα εξουσιοδοτημένου κατόχου και κλειδί άδειας χρήσης, οι πληροφορίες αυτές πρέπει να καταχωρηθούν στο πλαίσιο διαλόγου πληροφοριών του προϊόντος (βήμα 10).
acmeproduct.exe
eclipse/
.eclipseproduct
eclipse.exe
startup.jar
features/
plugins/
jre/
Αυτό γίνεται καταγράφοντας τις απαντήσεις του χρήστη στο αρχείο "about.mapping
" στην πρόσθετη λειτουργία της κύριας λειτουργίας. Για παράδειγμα, στο <install>/plugins/com.example.acme.acmefeature_1.0.0/about.mapping
.
Το αρχείο "about.mapping
" μπορεί να υπάρχει ήδη στην είσοδο <product head
> ή ενδέχεται να πρέπει να δημιουργηθεί από το πρόγραμμα εγκατάστασης κατά την εγκατάσταση..
Τα κλειδιά είναι αριθμοί. Η τιμή του κλειδιού "n" αντικαθιστά την υπο-σειρά χαρακτήρων "{n}
" στην ιδιότητα "aboutText
".
Αν, για παράδειγμα, ένα κλειδί άδειας χρήσης ήταν το πεδίο με αριθμό 0, θα έπρεπε να δημιουργηθεί ένα αρχείο "about.mapping
" που θα περιείχε μια γραμμή του τύπου "0=T42-24T-ME4U-U4ME
".
Σημείωση:
Το αρχείο "about.mapping
" είναι ένα αρχείο μορφής java.io.Properties (κωδικοποίηση χαρακτήρων ISO 8859-1 με χαρακτήρα διαφυγής "\").
Όταν η ενσωματωμένη κωδικοποίηση χαρακτήρων διαφέρει κατά την εγκατάσταση από το πρότυπο ISO 8859-1, το πρόγραμμα εγκατάστασης είναι υπεύθυνο για τη μετατροπή της ενσωματωμένης κωδικοποίησης χαρακτήρων σε Unicode καθώς και για την προσθήκη των χαρακτήρων διαφυγής "\", όπου απαιτείται. Οι χαρακτήρες διαφυγής απαιτούνται όταν οι σειρές χαρακτήρων περιέχουν ειδικούς χαρακτήρες (όπως "\") ή μη λατινικούς χαρακτήρες. Για παράδειγμα, το πεδίο με αριθμό 1 που περιέχει τα πρώτα 3 γράμματα του ελληνικού αλφάβητου θα γραφόταν "1=\u03B1\u03B2\u03B3
".
Στο βήμα 12, το πρόγραμμα εγκατάστασης προϊόντος εκκινεί το εκτελέσιμο αρχείο του προϊόντος, <install>/acmeproduct.exe
, με την ειδική επιλογή -initialize [οι ακριβείς λεπτομέρειες πρέπει να καθοριστούν]. Με αυτή την ενέργεια η πλατφόρμα εκτελεί ομαλά όλες τις χρονοβόρες διεργασίες πρώτης επεξεργασίας και αποθηκεύει στη λανθάνουσα μνήμη (cache) τα αποτελέσματα, ώστε όταν ο χρήστης ξεκινήσει το προϊόν, αυτό βρίσκεται άμεσα σε κατάσταση λειτουργίας.
Κατά την απεγκατάσταση, το πρόγραμμα απεγκατάστασης πρέπει να έχει την τυπική συμπεριφορά και να εκτελέσει τα παρακάτω βήματα:
install
> και όλων των αρχείων στο <install
>/eclipse/features
και <install
>/eclipse/plugins
, συμπεριλαμβανομένων εκείνων που τοποθετήθηκαν εκεί από μέρη άλλα από το συγκεκριμένο πρόγραμμα εγκατάστασης (π.χ. από τη διαχείριση ενημερωμένων εκδόσεων του Eclipse)Όταν ολοκληρωθεί η απεγκατάσταση του προϊόντος, τα αρχεία που κατατέθηκαν για φύλαξη κατά την εγκατάσταση πρέπει να διαγραφούν, μαζί με τις ενημερωμένες λειτουργίες και τις πρόσθετες λειτουργίες που δημιουργήθηκαν από τη διαχείριση ενημερωμένων εκδόσεων του Eclipse. Σημαντικό: Κατά την απεγκατάσταση, ενδέχεται να υπάρχουν άλλοι κατάλογοι και αρχεία στον κατάλογο <install>
, κυρίως τα <install>/eclipse/workspace/
, <install>/eclipse/links/
, και <install>/eclipse/configuration/
, που περιέχουν σημαντικά δεδομένα τα οποία πρέπει να διατηρηθούν μετά την απεγκατάσταση του προϊόντος. Ο χρήστης πρέπει να έχει δυνατότητα απεγκατάστασης και επανεγκατάσταης ενός προϊόντος στην ίδια θέση χωρίς να χάσει σημαντικά δεδομένα.
Όταν το προϊόν έχει ήδη εγκατασταθεί στον υπολογιστή του χρήστη, το πρόγραμμα εγκατάστασης πρέπει να επιτρέψει την εφαρμογή μιας ενημέρωσης συντήρησης ή μιας αναβάθμισης εκδοχής στο εγκατεστημένο προϊόν.
Κατά την εγκατάσταση, το πρόγραμμα εγκατάστασης πρέπει να έχει την τυπική συμπεριφορά και να εκτελέσει τα παρακάτω βήματα:
Στο βήμα 2, ένα εγκατεστημένο προϊόν μπορεί να αναγνωριστεί αμέσως από την παρουσία ενός καταλόγου "eclipse
" που περιέχει ένα αρχείο με όνομα ".eclipseproduct
".
Ο γονικός κατάλογος του "eclipse
" είναι ο κατάλογος εγκατάστασης ενός προϊόντος, δηλαδή το <install>/eclipse/.eclipseproduct
.
Οι πληροφορίες που περιέχονται σε αυτό το αρχείο δεικτών πρέπει να εμφανιστούν στο χρήστη για να επιβεβαιώσει ότι ενημερώνεται το σωστό προϊόν (ενδέχεται να υπάρχουν διάφορα προϊόντα που βασίζονται στο Eclipse στον υπολογιστή του χρήστη).
Το πρόγραμμα εγκατάστασης πρέπει να εκτελέσει ελέγχους συμβατότητας στο βήμα 3 με απλή αντιστοίχιση μοτίβου έναντι των υποκαταλόγων του καταλόγου <install>/eclipse/features
. Για παράδειγμα, η παρουσία μιας αντιστοίχισης φακέλου "com.example.acme.otherfeature_1.0.1
" θα διαβεβαίωνε ότι έχει εφαρμοστεί μια συγκεκριμένη ενημέρωση συντήρησης στο εγκατεστημένο προϊόν.
Στο βήμα 7, το πρόγραμμα εγκατάστασης μπορεί να διαγράψει ή να αντικαταστήσει οποιοδήποτε από τα αρχεία που εγκατέστησε αρχικά και να προσθέσει περισσότερα αρχεία. Σημαντικό: Διάφορα αρχεία και κατάλογοι, συμπεριλαμβανομένων των <install>/eclipse/workspace/
, <install>/eclipse/configuration
, ενδέχεται να βρίσκονται στην ίδια θέση με την εγκατάσταση και να περιέχουν σημαντικά αρχεία δεδομένων που θα πρέπει να διατηρηθούν κατά την αναβάθμιση του προϊόντος.
Σε περιπτώσεις αναβάθμισης, υπάρχει μεγάλη πιθανότητα τα περισσότερα αρχεία κάτω από το <install>/eclipse/plugins/
να είναι ίδια (το ίδιο ισχύει και για το <install>/eclipse/features/
).
Υπάρχει μια σημαντική ευκαιρία για βελτιστοποίηση στο <install>/eclipse/plugins/
, καθώς το όνομα του υποκαταλόγου, που ενσωματώνει τον αριθμό εκδοχής της πρόσθετης λειτουργίας (ή του τμήματος κώδικα), αλλάζει αποκλειστικά μόνο όταν αλλάξει οποιοδήποτε αρχείο κάτω από αυτό. Με άλλα λόγια, δεν χρειάζεται να αγγίξει κανείς τα αρχεία στο <install>/eclipse/plugins/org.eclipse.ui_2.0.0
/, αν αυτός ο υποκατάλογος πρέπει επίσης να διατηρηθεί μετά την αναβάθμιση. Αν αλλάξουν οποιαδήποτε αρχεία της πρόσθετης λειτουργίας, ο αριθμός εκδοχής της πρόσθετης λειτουργίας αναθεωρείται, με αποτέλεσμα να εγκατασταθούν τα αρχεία της αναβαθμισμένης πρόσθετης λειτουργίας σε έναν παράλληλο κατάλογο <install>/eclipse/plugins/org.eclipse.ui_2.0.1
/.
Το JRE αναμένεται να βρίσκεται στο <install>/eclipse/jre/bin/javaw.exe
.
Αν η θέση του διαφέρει, πρέπει να καθοριστεί η απόλυτη διαδρομή μέσω της επιλογής -vm
στη γραμμή εντολών, π.χ., -vm C:\j2jre1.3.0\jre\bin\javaw.exe
.
Σε αυτή την περίπτωση, το πρόγραμμα εγκατάστασης πρέπει να προσθέσει αυτή την επιλογή στη γραμμή εντολών της συντόμευσης της επιφάνειας εργασίας που δημιουργεί.
Με τον όρο "επέκταση" εννοούμε ένα σύνολο λειτουργιών και τις πρόσθετες λειτουργίες τους που εγκαθίσταται ξεχωριστά, τα οποία μπορούν να συσχετιστούν με και να χρησιμοποιηθούν από ένα ή περισσότερα προϊόντα που βασίζονται στο Eclipse και είναι εγκατεστημένα στον ίδιο υπολογιστή. Σε αντίθεση με τα προϊόντα, οι επεκτάσεις δεν είναι αυτόνομες. Δεν περιλαμβάνουν εκτελέσιμα αρχεία προϊόντων, την πλατφόρμα Eclipse, ένα JRE.
Γενικεύοντας μπορούμε να πούμε ότι μια επέκταση αποτελείται από μία λειτουργία. Η πρώτη είσοδος για το σενάριο δημιουργίας του προγράμματος εγκατάστασης είναι ένας κατάλογος, <extension
>, που περιέχει τη λειτουργία του και τις πρόσθετες λειτουργίες. Υποθέτουμε ότι μια επέκταση δεν έχει αρχεία που σχετίζονται με το Eclipse. Αν είχε, θα τοποθετούνταν στο <extension>/
και όχι στο <extension>/eclipse/
. Παρακάτω βλέπετε ένα δείγμα της σκελετικής δομής αυτού του καταλόγου:
<extension>/
eclipse/
features/
com.example.wiley.anvilfeature_1.0.0/
feature.xml
plugins/
com.example.wiley.anvilfeature_1.0.0/
plugin.xml
about.ini
about.properties
about.mappings
com.example.wiley.mainplugin_1.0.0/
com.example.wiley.otherplugin_1.0.0/
Τα ακριβή περιεχόμενα του καταλόγου εισόδου <extension
> προσδιορίζουν ποια αρχεία θα εγκατασταθούν στη συνέχεια στον υπολογιστή του τελικού χρήστη.
Τα τελευταία δεδομένα εισόδου για το σενάριο δημιουργίας του προγράμματος εγκατάστασης είναι οι σειρές χαρακτήρων για την ταυτότητα και την εκδοχή της λειτουργίας της επέκτασης, π.χ. "com.example.wiley.anvil
" και "1.0.0
". Αυτές οι σειρές χαρακτήρων έχουν ιδιαίτερη σημασία για το πρόγραμμα εγκατάστασης, καθώς εμφανίζονται στα ονόματα αρχείου και καταλόγου και στα περιεχόμενα των αρχείων δεικτών που δημιουργούνται κατά την εγκατάσταση.
Το πρόγραμμα εγκατάστασης μιας επέκτασης μοιάζει με το πρόγραμμα εγκατάστασης ενός προϊόντος στο μεγαλύτερο μέρος. Τα σημεία στα οποία διαφέρει επισημαίνονται παρακάτω:
Κατά την εγκατάσταση, το πρόγραμμα εγκατάστασης έχει την τυπική συμπεριφορά και εκτελεί τα παρακάτω βήματα:
Αν η θέση που καθορίστηκε στο βήμα 5 είναι το <install
>, το πρόγραμμα εγκατάστασης αντιγράφει όλα τα αρχεία του καταλόγου <extension>
στο <install
> στο βήμα 11.
Αρχείο εισόδου | Εγκατεστημένο αρχείο |
<extension>/* |
<install>/* |
Στο βήμα 7, υποψήφιο είναι οποιοδήποτε προϊόν Eclipse. Τα προϊόντα που βασίζονται στο Eclipse αναγνωρίζονται από την παρουσία ενός αρχείου <product install>/eclipse/.eclipseproduct
. Ο χρήστης πρέπει να μπορεί να ζητήσει μια περιορισμένη αναζήτηση εγκατεστημένων προϊόντων στο δίσκο (κουμπί αναζήτησης εγκατεστημένων προϊόντων) διαφορετικά θα μεταβεί σε έναν κατάλογο που περιέχει το προϊόν (κουμπί αναζήτησης).
Το πρόγραμμα πρέπει να εκτελέσει ελέγχους συμβατότητας στο βήμα 8 με απλή αντιστοίχιση μοτίβου έναντι των υποκαταλόγων του καταλόγου <product install>/eclipse/features
. Για παράδειγμα, η παρουσία μιας αντιστοίχισης φακέλου "org.eclipse.jdt_2.*
" σημαίνει ότι το JDT περιλαμβάνεται στο εγκατεστημένο προϊόν.
Το αρχείο δεικτών που δημιουργήθηκε στο βήμα 10 είναι το <install>/eclipse/.eclipseextension
και χρησιμοποιείται για τη σημείωση ενός καταλόγου στον οποίο έχει εγκατασταθεί μια επέκταση που βασίζεται στο Eclipse, κυρίως για να μπορεί να εντοπιστεί από προγράμματα εγκατάστασης επεκτάσεων (ανάλογο με το αρχείο δεικτών ενός προϊόντος .eclipseproduct
). Αυτό το αρχείο δεικτών είναι αρχείο με μορφή java.io.Properties (κωδικοποίηση χαρακτήρων ISO 8859-1 με χαρακτήρα διαφυγής "\") και περιέχει τις ακόλουθες πληροφορίες που προσδιορίζουν την επέκταση στο χρήστη και ξεχωρίζουν τη μία επέκταση που βασίζεται στο Eclipse από την άλλη:
name=Wiley Anvil Enterprise Edition
id=com.example.wiley.anvilfeature
version=1.0.0
Οι τιμές για τις ιδιότητες "id" και "version" είναι είσοδοι για το σενάριο δημιουργίας του προγράμματος εγκατάστασης. Το όνομα της επέκτασης θεωρείται γνωστό και είναι ενσωματωμένο. (Τα προϊόντα κανονικά δεν έχουν πρόσβαση σε αυτό το αρχείο δεικτών. Η εγγραφή και η ανάγνωση του αρχείου δεικτών γίνεται μόνο από προϊόντα εγκατάστασης προϊόντων και επεκτάσεων.)
Μετά την εγκατάσταση όλων των αρχείων, η δομή ανώτερου επιπέδου του καταλόγου εγκατάστασης θα περιέχει τα ακόλουθα αρχεία και υποκαταλόγους:
<install>/
eclipse/
.eclipseextension
features/
plugins/
Η μοναδική σημαντική διαφορά από ένα πρόγραμμα εγκατάστασης προϊόντος είναι ότι το πρόγραμμα εγκατάστασης δημιουργεί επίσης αρχεία διασυνδέσεων σε άλλα προϊόντα που βασίζονται στο Eclipse και έχουν ήδη εγκατασταθεί στον υπολογιστή του χρήστη. (Κατ' αυτό τον τρόπο, ο χρήστης δεν χρειάζεται να συσχετίσει μη αυτόματα τη νέα επέκταση μέσα από κάθε προϊόν χρησιμοποιώντας τη διαχείριση ενημερωμένων εκδόσεων του Eclipse.)
Το αρχείο διασύνδεσης που δημιουργείται στο βήμα 14 είναι το <product install>/eclipse/links/com.example.wiley.anvilfeature.link
, δηλαδή έχει το ίδιο όνομα με τον κατάλογο της λειτουργίας της επέκτασης μείον το επίθημα του αριθμού της έκδοσης. Ένα αρχείο διασύνδεσης είναι ένα αρχείο με τη μορφή java.io.Properties (κωδικοποίηση χαρακτήρων ISO 8859-1 με χαρακτήρα διαφυγής "\").
Το κλειδί είναι το "path" και η τιμή είναι η απόλυτη διαδρομή της εγκατεστημένης επέκτασης, <install>
. Π.χ. μια καταχώρηση μπορεί να έχει τη μορφή "path=C:\\Program Files\\Wiley\\Anvil
".
Το πρόγραμμα εγκατάστασης έχει την ευθύνη για τη μετατροπή της ενσωματωμένης κωδικοποίησης χαρακτήρων σε Unicode και την προσθήκη των χαρακτήρων διαφυγής "\", όπου απαιτείται. Οι χαρακτήρες διαφυγής συνήθως απαιτούνται καθώς το <install>
συνήθως περιέχει ειδικούς χαρακτήρες (όπως το χαρακτήρα "\") και μπορεί να αναφέρει καταλόγους με μη λατινικούς χαρακτήρες στο όνομα. Το προϊόν εκτελεί ανάγνωση των αρχείων διασυνδέσεων κατά την εκκίνηση. Το πρόγραμμα εγκατάστασης τηρεί ένα αρχείο των αρχείων διασυνδέσεων που δημιουργεί, ώστε να μπορούν να εντοπιστούν κατά την ενημέρωση ή την απεγκατάσταση της επέκτασης.
Κατά την απεγκατάσταση, το πρόγραμμα απεγκατάστασης πρέπει να έχει την τυπική συμπεριφορά, ώστε να εκτελέσει τα παρακάτω βήματα:
install
> και όλων των αρχείων στο <install
>/eclipse/features
και <install
>/eclipse/plugins
, συμπεριλαμβανομένων εκείνων που τοποθετήθηκαν εκεί από μέρη άλλα από το συγκεκριμένο πρόγραμμα εγκατάστασης (π.χ. από τη διαχείριση ενημερωμένων εκδόσεων του Eclipse)Όταν γίνεται απεγκατάσταση μιας επέκτασης, όλα τα αρχεία πρόσθετων λειτουργιών και λειτουργιών πρέπει να διαγραφούν. Δεν υπάρχουν σημαντικά αρχεία δεδομένων τα οποία θα πρέπει να διατηρηθούν σε αυτούς τους υποκαταλόγους. Αυτό επιτρέπει στο χρήστη την πλήρη απεγκατάσταση μιας επέκτασης, συμπεριλαμβανομένων των ενημερωμένων εκδόσεων που έχουν εφαρμοστεί από τη διαχείριση ενημερωμένων εκδόσεων του Eclipse.
Όταν η επέκταση έχει ήδη εγκατασταθεί στον υπολογιστή του χρήστη, το πρόγραμμα εγκατάστασης πρέπει να επιτρέψει την εφαρμογή μιας ενημέρωσης συντήρησης ή μιας αναβάθμισης εκδοχής στην εγκατεστημένη επέκταση.
Κατά την εγκατάσταση, το πρόγραμμα εγκατάστασης πρέπει να έχει την τυπική συμπεριφορά και να εκτελέσει τα παρακάτω βήματα:
Στο βήμα 2, μια εγκατεστημένη επέκταση μπορεί να αναγνωριστεί αμέσως από την παρουσία ενός καταλόγου "eclipse
" που περιέχει ένα αρχείο με όνομα ".eclipseextension
".
Ο γονικός κατάλογος του "eclipse
" είναι ο κατάλογος εγκατάστασης μιας επέκτασης, δηλαδή το <install>/eclipse/.eclipseextension
.
Οι πληροφορίες που περιέχονται σε αυτό το αρχείο δεικτών πρέπει να εμφανιστούν στο χρήστη για να επιβεβαιώσει ότι ενημερώνεται η σωστή επέκταση (ενδέχεται να υπάρχουν διάφορες επεκτάσεις που βασίζονται στο Eclipse στον υπολογιστή του χρήστη).
Στο βήμα 7, το πρόγραμμα εγκατάστασης δεν πρέπει να διαγράψει ή να αντικαταστήσει κανένα από τα αρχεία που εγκατέστησε αρχικά. Αντιθέτως, πρέπει να προσθέσει τα αρχεία για τις νέες εκδοχές των λειτουργιών και της πρόσθετης λειτουργίας και ενδεχομένως να εγγράψει ξανά το αρχείο δεικτών <install>/eclipse/.eclipseextension
. Η παραμονή των παλαιών εκδοχών δίνει στο χρήστη την επιλογή να ανακαλέσει την ενημέρωση. Όπως και στην περίπτωση της εγκατάστασης ενός προϊόντος, δεν χρειάζεται να αγγίξει κανείς τα αρχεία στο <install>/eclipse/plugins/com.example.wiley.otherplugin_1.0.0
/ αν αυτός ο υποκατάλογος πρόκειται επίσης να παραμείνει μετά την αναβάθμιση. Αν αλλάξουν οποιαδήποτε από τα αρχεία της πρόσθετης λειτουργίας, ο αριθμός εκδοχής της πρόσθετης λειτουργίας θα αναθεωρηθεί, το οποίο θα έχει ως αποτέλεσμα την εγκατάσταση των αρχείων της αναβαθμισμένης πρόσθετης λειτουργίας σε έναν παράλληλο κατάλογο <install>/eclipse/plugins/com.example.wiley.otherplugin_1.0.1
/.