Med uppdateringsfunktionen i Eclipse kan användaren söka efter uppdateringar för installerade funktioner. För varje installerad funktion används den inbäddade URL-adressen för att ansluta till fjärrservern och söka efter nya versioner. Om det finns uppdateringar kan användarna själva påbörja installationsproceduren. Efter hämtning, installation och omstart av plattformen kan den nya versionen användas.
I företag där många använder samma Eclipse-baserade produkt (vanligen en kommersiell produkt) kan ett antal problem uppstå med den här modellen:
Första steget för en produktadministratör är att konfigurera en lokal Eclipse-uppdateringsplats på en server som är ansluten till företagets lokala nätverk (bakom brandväggen). Uppdateringsplatsen kan betraktas som en underuppsättning av produktuppdateringsplatsen eftersom den endast innehåller funktioner och insticksprogram för de uppdateringar som vid en viss tidpunkt är intressanta för företaget. Tekniskt sett är det fråga om en vanlig Eclipse-uppdateringsplats med arkiv för site.xml, funktioner och insticksprogram.
Administratören kan konstruera platsen på två sätt:
Eftersom URL-adressen till en funktions uppdateringsplats är inbäddad i manifestet, känner funktionen inte av de lokala uppdateringsplatser som konfigureras av administratören. Därför är det viktigt med en funktion för omdirigering. Du kan ange den och andra uppdateringsregelinställningar för en Eclipse-produkt genom att skapa en uppdateringsregelfil och konfigurera Update så att den filen används vid sökning.
Filen ifråga använder XML-formatet och kan heta vad som helst. Filen kan anges i
Inställningar > Installera/uppdatera
i fältet Uppdateringsregel. Textfältet är tomt som standard och användarna kan ange URL-adressen till uppdateringsregelfilen. Filen administreras av den lokala administratören och delas av alla produktinstallationer. Delningen kan ske på två olika sätt:
org.eclipse.update.core/updatePolicyURL = <URL value>
Regelfilen måste överensstämma med följande DTD:
<?xml encoding="ISO-8859-1"?>
<!ELEMENT update-policy (url-map)*>
<!ATTLIST update-policy
><!ELEMENT url-map EMPTY>
<!ATTLIST url-map
mönster CDATA #REQUIRED
url CDATA #REQUIRED
>
Elementet används för att åsidosätta de URL-adresser för Update som är inbäddade i funktionsmanifestet. När nya uppdateringar söks kontrolleras om någon url-map för det matchande funktionsprefixet är angiven i uppdateringsregeln (om det finns någon sådan). Om det finns en träff används den avbildade URL-adressen istället för den inbäddade adressen. På så sätt kan administratörerna konfigurera Eclipse-produkterna till att söka efter uppdateringar på den lokala servern bakom brandväggen. Tredjepartsfunktioner som installeras av Eclipse Update kommer att uppdateras med hjälp av standardfunktionen eftersom det inte finns några träffar i regeln.
Det kan finnas flera url-map-element i filen. Funktionsprefix kan vara mer eller mindre specifika. Om du till exempel vill omdirigera alla Eclipse-uppdateringar blir mönsterattributet "org.eclipse"
. Du kan även använda ett fullständigt funktions-ID som mönster om omdirigeringen ska ske funktion för funktion.
Mönstren i filen kan väljas för att stegvis minska antalet möjliga träffar. Det kan ge flera träffar för en viss funktion. I det här fallet används det längsta träffmönstret. Ett exempel:
<?xml version="1.0" encoding="UTF-8"?> <update-policy> <url-map pattern="org.eclipse" url="URL1"/> <url-map pattern="org.eclipse.jdt" url="URL2"/> </update-policy>
I ovanstående exempel uppdateras alla Eclipse-funktionerna från URL1, förutom org.eclipse.jdt
som använder URL2.
Uppdateringsregelfiler innehåller inga översättningsbara strängar och kräver därför ingen särskild språkspecifik hantering. I allmänhet används UTF-8 i filerna.
Den tredje delen i den övergripande lösningen behandlas i ett annat avsnitt men nämns ändå här eftersom den är en viktig del av lösningen. Med Automatiska uppdateringar söks uppdateringar automatiskt enligt ett angivet schema (vid start vilket är standard, dagligen, en gång i veckan osv.).
Här följer lösningen i sin helhet: