Domino 9 und frühere Versionen > ND9: Administration & Userprobleme

[gelöst] Plugin- Installation über gesonderten Installationsaufruf

<< < (3/3)

Tode:
Den entscheidenden Hinweis habe ich bei Stackoverflow bekommen, allerdings erst, nachdem ich einen Bounty von 200 Punkten ausgesetzt hatte.

Danach war es Trial & Error. Aber ich mache sowas gerne, ich habe wieder jede Menge gelernt, was mir in meiner weiteren Berufslaufbahn definitiv nützen wird.
Hier mal die "Lessons learned" aufgelistet, nur damit man sieht, dass sich so ein Aufwand durchaus lohnen kann:

Die folgende Auflistung ist ohne Sortierung nach Wichtigkeit o.ä. Viele der Punkte sind wahrscheinlich Allgemeinwissen, waren mir aber zu dem Zeitpunkt neu / nicht so bewusst


* jar- Files sind ganz einfach ZIP- Archive mit anderer Endung. Es braucht kein Spezielles Programm, sie zu öffnen / erstellen / bearbeiten
* Signierte jar- Files sind nicht etwa speziell modifiziert sondern enthalten schlicht einen Ordner "META-INF", der eine .SF und eine .RSA - Datei mit den Signaturen enthält.
* Mit Hilfe des Java JDK und dem darin enthaltenen keytool kann jeder ganz simpel einen Java- Keystore erstellen und mit einem self- signed- Zertifikat bestücken:
     keytool -genkey -keyalg RSA -alias cert-selfsigned -keystore cert-selfsigned.jks -storepass myP4ssword -validity 3600 -keysize 2048
* mit dem jarsigner (ebenfalls aus dem JDK) kann man problemlos jars signen (wenn Sie nicht bereits eine Signatur enthalten, sonst hat man nacher 2 signaturen im jar, und das geht nicht:
jarsigner" -keystore cert-selfsigned.jks -signedjar com.endava.jabber4notes.feature_2.11.8.298.jar com.endava.jabber4notes.feature_2.11.8.298_unsigned.jar cert-selfsigned
* Der Notes- Client möchte seine jar- files bitte mit JDK 1.6 signiert, denn SHA256 schluckt er in dem Kontext nicht.
* Der Ort einer Eclipse- Plugin- Installation kann sowohl durch die install.xml mittels des dort vorhandenen shared="true" als auch durch die feature.xml (innerhalb jar) mittels der dort vorhandenen colocation-affinity gesteuert werden. Letztere hat höhere Präzedenz
* Plugins / Features werden mit einer install.xxx.xml installiert. Diese wird mit der install.xml im framework\rcp\deploy gemerged und dann die dort enthaltenen Komponenten installiert / aktualisiert / entfernt
* Die einzelnen Features enthalten in den jar- Dateien separate Install- Anweisungen in der feature.xml, die die install.xml ergänzen / überschreiben kann.
* Aus einem Plugin, das man als UpdateSite vorhanden hat, kann man relativ leicht eine per MSI Installierbare Version machen mit Hilfe der CustomizeAddon.exe

JürgenT:

--- Zitat von: Tode am 21.11.17 - 15:40:27 ---Hier die versprochene Rückmeldung. Mit Hilfe der "CustomizeAddon.exe" aus dem Notes- Client- Installationskit funktioniert es -nach einigen Startschwierigkeiten- ganz gut. Einziges Problem: Obwohl ich in der install.addon.xml beim feature angegeben habe, das es "shared" installiert werden soll (also nach Programme (x86)\IBM\Notes\rcp\shared), installiert die generierte MSI das Plugin immer ins Workspace- Verzeichnis des Benutzers.

Wenn ich das noch rauskriegen könnte, wäre echt genial...

So sieht im übrigen meine install.addon.xml aus:

--- Code: ---<?xml version="1.0" encoding="UTF-8"?>

<ibm-portal-composite>
<domain-object name="com.ibm.rcp.installmanifest">
<object-data>
<install>
<installfeature id="Platform.XPD" required="true">
<requirements>
<feature id="com.endava.jabber4notes.feature"
version="2.11.8.298" match="compatible"
action="install" shared="true" mergeaction="add"
url="jar:${installer.root}/updateSite.zip!/" />
<feature id="com.endava.jabber4notes.IMPFragmentFeature"
version="2.11.8.298" match="compatible"
action="install" shared="true" mergeaction="add"
url="jar:${installer.root}/updateSite.zip!/" />
</requirements>
</installfeature>
</install>
</object-data>
</domain-object>
</ibm-portal-composite>
--- Ende Code ---

dazu noch diese plugin_customization.ini, damit ich kein problem mit der Signatur habe, und die Plugin- Vorkonfiguration gleich mal mitkommt:


--- Code: ---com.ibm.notes.branding/enable.update.ui=true
com.endava.jabber4notes/jid.field=InternetAddress
com.ibm.rcp.security.update/UNTRUSTED_SIGNATURE_POLICY=ALLOW
com.ibm.rcp.security.update/TRUST_CERTIFICATE_AUTHORITIES=true
--- Ende Code ---

Ich weiss, eigentlich müsste ich mit sauberen Signaturen arbeiten, aber jetzt muss es erstmal laufen...

--- Ende Zitat ---

Hallo Tode, der Call liegt schon etwas zurück. Eine Frage bzgl. der plugin_customization.ini:
Ich habe versucht die Einstellungen über eine  Security-Richtlinie vorzunehmen, diese scheinen aber nicht zu greifen (Domino10). Wenn die Einstellungen in der plugin_customization.ini funktioniert das, weißt du, wieso das mit den Richtlinien nicht funktioniert? (in der Policy in der names.nsf sehe ich, dass der Client die Werte gezogen hat, beim Installieren des Plugin kommt es aber zu einer Fehlermeldung, das dieses nicht signiert ist)

Güße
Jürgen

Navigation

[0] Themen-Index

[*] Vorherige Sete

Zur normalen Ansicht wechseln