Προσθήκη λειτουργιών εκκίνησης στην πλατφόρμα

Η πρόσθετη λειτουργία σας μπορεί να προσθέσει είδη ρυθμίσεων εκκίνησης στην πλατφόρμα χρησιμοποιώντας το σημείο επέκτασης org.eclipse.debug.core.launchConfigurationTypes.  Αυτό το σημείο επέκτασης σας επιτρέπει να δηλώνετε ένα είδος ρυθμίσεων χρησιμοποιώντας μια μοναδική ταυτότητα.  Πρέπει να παρέχετε μια αντίστοιχη υλοποίηση της ILaunchConfigurationDelegate. Ο εκπρόσωπος είναι υπεύθυνος για την εκκίνηση των δικών του ρυθμίσεων εκκίνησης σε μια καθορισμένη κατάσταση λειτουργίας. Προαιρετικά, μπορείτε να υλοποιήσετε το ILaunchConfigurationDelegate2, το οποίο βελτιώνει τη διεπαφή εκπροσώπου για να επιτρέψει στον εκπρόσωπό σας να ματαιώσει μια εκκίνηση, να εκτελέσει δόμηση σχετικών έργων στο χώρο εργασίας πριν μια εκκίνηση και να ελέγξει τη δημιουργία του αντικειμένου εκκίνησης που χρησιμοποιείται σε μια εκκίνηση.

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

Ο κώδικας που ακολουθεί δείχνει τον τρόπο με τον οποίο τα εργαλεία Java δηλώνουν ρυθμίσεις εκκίνησης Java για την εκκίνηση τοπικών προγραμμάτων Java:

<extension point = "org.eclipse.debug.core.launchConfigurationTypes">
<launchConfigurationType
   	   id="org.eclipse.jdt.launching.localJavaApplication"
	   name="%localJavaApplication"
	   delegate="org.eclipse.jdt.internal.launching.JavaLocalApplicationLaunchConfigurationDelegate"
	   modes= "run, debug"
	   sourceLocatorId="org.eclipse.jdt.launching.sourceLocator.JavaSourceLookupDirector"
       sourcePathComputerId="org.eclipse.jdt.launching.sourceLookup.javaSourcePathComputer">
   </launchConfigurationType>
   </extension>

Αυτή η επέκταση ορίζει έναν εκπρόσωπο ρυθμίσεων εκκίνησης ο οποίος μπορεί να χρησιμοποιηθεί για την εκτέλεση ή τον εντοπισμό και διόρθωση σφαλμάτων προγραμμάτων των οποίων γίνεται εκκίνηση χρησιμοποιώντας τις τοπικές ρυθμίσεις εκκίνησης Java.

Ορισμός νέων καταστάσεων λειτουργίας εκκίνησης

Αναφέραμε προηγουμένως ότι η πλατφόρμα ορίζει καταστάσεις λειτουργίας εκκίνησης για την εκτέλεση, τον εντοπισμό και τη διόρθωση σφαλμάτων και τη δημιουργία προφίλ ενός προγράμματος. Αυτές οι καταστάσεις λειτουργίας ορίζονται με τη χρήση του σημείου επέκτασης org.eclipse.debug.core.launchModes. Αυτό το σημείο επέκτασης σας επιτρέπει να δηλώσετε μια κατάσταση λειτουργίας ορίζοντας το όνομα κατάστασης λειτουργίας σειράς χαρακτήρων και την ετικέτα η οποία θα πρέπει να εμφανιστεί στο χρήστη για την περιγραφή της κατάστασης λειτουργίας. Ο κώδικας που ακολουθεί δείχνει τον ορισμό των τριών τυπικών καταστάσεων λειτουργίας εκκίνησης της πλατφόρμας:

<extension point="org.eclipse.debug.core.launchModes">
	<launchMode
		label="%run"
		mode="run">
	</launchMode>
	<launchMode
		label="%debug"
		mode="debug">
	</launchMode>
	<launchMode
		label="%profile"
		mode="profile">
	</launchMode>
</extension>   

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

Ορισμός εκπροσώπων εκκίνησης

Αφού οι καταστάσεις λειτουργίας μπορούν να προσδιοριστούν ανεξάρτητα από τα είδη ρυθμίσεων εκκίνησης, είναι δυνατόν να οριστούν νέες καταστάσεις λειτουργίας οι οποίες δεν θα υλοποιούνται από τον αρχικό εκπρόσωπο για κάποιες ρυθμίσεις εκκίνησης. Σε αυτή την περίπτωση, μια πρόσθετη λειτουργία μπορεί να ορίσει έναν εκπρόσωπο εκκίνησης ο οποίος να υλοποιεί μια συγκεκριμένη κατάσταση λειτουργίας για ένα συγκεκριμένο είδος ρυθμίσεων εκκίνησης. Αυτό μπορεί να γίνει χρησιμοποιώντας το σημείο επέκτασης org.eclipse.debug.core.launchDelegates. Αυτό το σημείο επέκτασης σας επιτρέπει να ορίσετε έναν εκπρόσωπο εκκίνησης ο οποίος να υλοποιεί τις καθορισμένες καταστάσεις λειτουργίας για ένα δεδομένο είδος ρυθμίσεων. Ο κώδικας που ακολουθεί δείχνει τον τρόπο με τον οποίο μπορείτε να ορίσετε έναν εκπρόσωπο για τη δημιουργία προφίλ μιας τοπικής εφαρμογής Java:

<extension point="org.eclipse.debug.core.launchDelegates">
<launchDelegate
   id="com.example.MyJavaProfileDelegate"
   delegate="com.example.MyJavaProfileDelegate"
   type="org.eclipse.jdt.launching.localJavaApplication"
   modes="profile">
  </launchDelegate>
</extension>   

Τα στοιχεία καθορισμού του εκπροσώπου είναι παρόμοια με τον τρόπο που αυτό γίνεται κατά τον ορισμό ενός είδους ρυθμίσεων εκκίνησης, με εξαίρεση ότι σε αυτή την περίπτωση το είδος των ρυθμίσεων εκκίνησης προσδιορίζεται μαζί με τις υποστηριζόμενες καταστάσεις λειτουργίας. Όπως είδαμε προηγουμένως, ο εκπρόσωπος πρέπει να υλοποιεί το ILaunchConfigurationDelegate και μπορεί προαιρετικά να υλοποιεί το ILaunchConfigurationDelegate2 για περισσότερο έλεγχο της ακολουθίας εκκίνησης.

Άλλες παραπομπές

Στο άρθρο We Have Lift-off: The Launching Framework in Eclipse παρέχεται ένα ολοκληρωμένο παράδειγμα από την αρχή μέχρι το τέλος αναφορικά με τον τρόπο ορισμού του δικού σας είδους εκκίνησης.