Posts Tagged: ‘eclipse’

Detail Formatter erleichtern das Debuggen in Eclipse

9. Januar 2013 Posted by Ralf Petter

Wer kennt nicht diese ärgerlichen Klassen, die toString() nicht überschreiben und deshalb im Debugger keine vernünftigen Informationen zu Objekten dieser Klassen angezeigt werden.


Man sieht hier auf den ersten Blick nur, dass das eine Objekt die id 18 hat und das andere die id 31. Erst wenn man das Objekt aufklappt, wird einem eine unter Umständen lange und unübersichtliche Liste aller Felder dieses Objekts angezeigt.  Bei eigenen Klassen kann man die fehlende toString() Methode ja noch nachrüsten, aber bei fremden Klassen wäre man verloren wenn es nicht die "Detail Formatter" Funktion von Eclipse geben würde.

Einfach einen Rechtsklick auf das Objekt für den man einen Formater erstellen und die Funktion "New Detail Formatter" aufrufen.


Jetzt kann man den Javacode angeben, der den String berechnet, den man gerne als Anzeige für diese Klasse im Debugger haben möchte. In meinen Fall hätte ich gerne für jedes Person Objekt den Vor und Nachname angezeigt.


Schon haben wir in der Detailanzeige des Debuggers nicht mehr die Objektid sondern schon unseren schönen aussagekräftigen Inhalt.



Immer noch nicht ganz ideal, den viel schöner wäre wenn man nicht auf eine Zeile klicken müsste, sondern wenn gleich unter Value der berechnete Wert stehen würde. Aber auch dafür bietet Eclipse eine Lösung. Unter Preferences->Java->Debug->Detail Formatters kann man die Option "As the label for variables with detail formatters" auswählen und schon wird der berechnete Text auch in der Value Spalte angezeigt.



Die Detail Formatters bleiben persistent, das heißt sobald ich mir diesen einmal für eine Klasse erstellt habe, wird dieser in jeder Debugsession von Eclipse verwendet. Ich muss also jeden "Detail Formater" nur einmal definieren.


Problem beim Build von Plugins für Notes in PDE

11. November 2012 Posted by Ralf Petter

Beim letzten Update meiner diversen selbst erstellten Plugins zum Notes Client kam es zu einem rätselhaften Fehler. Ich habe alle Plugins ausgiebig durchgetest, in dem ich Notes aus Eclipse aufgerufen habe. Alles lief absolut problemlos. Also in Eclipse eine Updatesite erstellt und alle Plugins bauen lassen. Der Buildprozess lief ohne ersichtlichen Fehler durch. Doch nach der Ausrollung der neuen Plugins in unsere Notesumgebung kam es plötzlich an manchen Stellen der Anwendung zu Abbruchfehlern (The method beginTask(String, int) of type DummyProgressMonitor must override a superclass method). Eine schnelle Kontrolle in Eclipse zeigte aber alles in Ordnung. beginTask überschreibt die Methode beginTask in IProgressMonitor. Auch funktionieren die Plugins einwandfrei, wenn ich Notes aus Eclipse starte.

Eine kurze Internetrecherche zeigt, dass es im JDK 1.5 ein Problem gab, dass die @Override Anotation beim Überschreiben von Methoden aus Interfaces nicht zulässig war. Aber ich verwende doch überall das 1.6 JDK. Also, die Ausgabelogs des Build nach Error durchsucht und in den Builds an jeder Stelle an der ein Interface überschrieben wird, beim Compilieren die oben angeführte Fehlermeldung gefunden. Hm alles klar, das Plugin Development Environment verwendet für den Build für die Updatesite einen 1.5 Compiler statt eines 1.6, obwohl ich in den Standardeinstellungen von Eclipe überall 1.6 festgelegt habe.

Die Lösung fand sich im MANIFEST.MF file des Plugins. Dort war die Direktive "Bundle-RequiredExecutionEnvironment: JavaSE-1.5" angegeben. Diese Direktive wirkt scheinbar ausschließlich auf den Buildprozess beim Erstellen einer Updatesite. Beim normalen Build für den Test des Plugins aus Eclipse wird diese Einstellung nicht verwendet. Diese Direktive kann auch über das UI eingestellt werden und sollte natürlich für den Export in Lotus Notes auf 1.6 stehen.


Für mich haben sich aus diesem Problem zwei Lehren ergeben. Erstens immer die erstellten Logs des Buildprozess durchsehen, da Eclipse keinen Fehler bringt, wenn beim Build Fehler kommen. Und zweitens immer nach dem Erstellen der Updatesite noch einmal alles durchtesten.

Content Assist in Domino Designer oder Eclipse anpassen.

6. November 2012 Posted by Ralf Petter

Aufgrund der historisch gewachsenen API der Notes.jar können die Syntaxvervollständigungsvorschläge teilweise etwas verwirrend sein. Es gibt die selben Typennamen in bis zu 4 Paketen. Es ist auf den ersten Blick nicht leicht zu erkennen welchen Namen man jetzt importieren soll.


Der Richtige in dem Fall wäre der Erste.

Eclipse bzw. DDE bieten aber eine komfortable Einstellungsmöglichkeit mit der man die Vorschläge für die falschen Paketen ausschließen kann.

Unter DDE muss man den Menüpunkt "Datei->Vorgaben" und unter Eclipse "Windows->Preferences" aufrufen. Dort kann man dann  unter "Java->Darstellung->Typfilter" die Pakete hinzufügen, für die man keine Syntaxvervollständigung mehr haben will.


Und schon klappt es auch mit der verbesserten Syntaxvervollständigung.


Übrigens für Entwickler die viel mit SWT und jface arbeiten, kann man mit der selben Funktion auch awt und swing unterdrücken, da es auch hier viele Überschneidungen der Typnamen gibt.

vbscript in eclipseplugin verpacken und aufrufen

31. Oktober 2012 Posted by Ralf Petter

Ein vbscript in ein Eclipse Plugin einbauen und aus diesem Plugin aufrufen, ist nicht ganz einfach. Folgende Schritte müssen beachtet werden.

1. Das vbscript muss in das Plugin entweder direkt in das Hauptverzeichnis, oder ein beliebiges Unterverzeichnis des Plugins importiert werden.



2. In den build.properties des Plugins muss das script zum export ausgewählt sein, da es sonst beim Pluginexport nicht in das Plugin eingefügt wird.


3. In dem Feature mittels dem dieses Plugin installiert wird, muss man die Option, dass das Plugin bei der Installation entpackt wird, anwählen. Sonst wird das vbscript in ein jar eingepackt und man kann es nicht ohne grössere Probleme aufrufen.


4. Wenn die Vorbereitungen passen, dann kann man das vbscript aus jeder Eclipse RCP wie z.B. Lotus Notes mit folgenden Javacode aufrufen.


URL url = FileLocator.find(Activator.getDefault().getBundle(), 
new Path(File.sperator+"test.vbs"), null);
Process p = Runtime.getRuntime().exec(System.getenv("WINDIR") + File.seperator+"system32"+File.seperator+"cscript.exe \""
+ FileLocator.resolve(url).getPath().substring(1) + "\"");

Natürlich kann man mit der selben Vorgehendsweise auch andere ausführbare Dateien, die in einem Plugin enthalten sind aufrufen.

Ich verwende diese Technik z.B. in einem Plugin das in Lotus Notes mithilfe von externen vbscripts ein Hardware und Softwareinventory des Rechners auf dem der Notesclient installiert ist erstellt. Wie man seinen Code bei jedem start des Notesclient automatisch ausführen kann, hebe ich mir dann für einen anderen Post auf.

Internationale Sonderzeichen in Lotus Notes plugins

22. Oktober 2012 Posted by Ralf Petter

Wenn man in seinem Javacode internationale Sonderzeichen wie z.B. Umlaute in String Literalen verwendet, kann es passieren dass nach dem Export des Plugins die Sonderzeichen falsch angezeigt werden. Dies passiert dadurch, dass beim Kompilieren von Plugins standardmäßig nicht UTF-8 sondern ein nicht Unicode fähiger Characterset verwendet wird. Man kann das Problem einfach lösen, in dem man in die build.properties seines Plugins den Eintrag "javacDefaultEncoding.. = UTF-8" ergänzt.

Eine Beispiel "build.properties" Datei sieht dann folgendermaßen aus:

source.. = src/
output.. = bin/
javacDefaultEncoding.. = UTF-8
bin.includes = META-INF/,\
               .,\
               plugin.xml,\
               icons/


Dann sollte String Literale in diesem Plugin richtig angezeigt werden.

Selektives Auto Deployment von Widgets

19. Oktober 2012 Posted by Ralf Petter

Das Verpacken von Eclipse Features und Plugins in Widget ist wirklich eine praktische Sache und über den Widgetkatalog kann man diese Widgets auch gut anderen Benutzern zur Verfügung stellen. Weniger elegant sind aber die Möglichkeiten mit denen man die Installation von Widgets automatisieren kann. Standardmäßig kann man einem Widget mehrere Kategorien zuweisen. Man kann dann bei einem Benutzer eine oder mehrere dieser Kategorien in den Benutzervorgaben einstellen (oder per Desktop Policy setzen) und es werden alle Widgets dieser Kategorien bei dem Benutzer installiert und im Bedarfsfall aktualisiert.

So weit so gut, aber bei intensiverer Verwendung dieser Technik zeigen sich doch ein paar Schwachstellen:

  • Man kann zwar über Desktoppolicy festlegen welche Kategorien von Widgets bei einem Benutzer installiert werden sollen, ich kann aber nicht verhindern, dass sich ein Benutzer andere Widgetkategorien selber nachinstalliert. Das ist natürlich problematisch, wenn man Widgets hat die nicht jeder Benutzer installieren können soll.
  • Wenn man mehr als eine handvoll Widgets und Gruppen von Personen die unterschiedliche Arten von Widgets benötigen hat dann braucht man sehr viele verschiedene Desktoppolicy Dokumente und das ganze wird schnell unübersichtlich.
  • Die zur Verfügungstellung von neueren Versionen von Widgets zum Testen ist schwer oder gar nicht möglich.

Da ich in meiner Umgebung mittlerweile von allen oben angeführten Problemen betroffen bin, habe ich eine Möglichkeit zur Lösung der Probleme gesucht die ich kurz erklären möchte.

Ich habe das Design des Widgetkatalogs dahingehend erweitert, dass ich ein Mehrfachwert Leserfeld zu der Widgetmaske hinzugefügt habe. Weiters habe ich das bereits bestehende berechnete Leser Feld in der Maske von "" auf "LocalDomainServers" geändert, damit es keine Probleme bei der Replizierung von Widgets zwischen den Servern gibt.


Nun habe ich die Kategorie aller Widgets auf eine Kategorie gesetzt die bei allen Benutzern installiert wird und kann aber über das Leserfeld ganz exakt steuern wer dieses Widget bekommen soll oder nicht. Natürlich lassen sich in dem Leserfeld auch wieder Gruppen eintragen.

2 Nachteile dieser Lösung:

  • Designänderungen von Systemdatenbanken bergen immer wieder das Risiko, dass es bei Updates zu Problemen kommt. 
  • Wenn man einen Benutzer aus dem Leserfeld entfernt, wird zwar das Widgetdokument aus seinem lokalen Widgetkatalog entfernt aber leider der Provisioningprozess nicht angestartet. Das heißt das Widget wird nicht sofort entfernt, sondern erst bei der nächsten Änderung eines Widgets das auf den Rechner des Benutzers repliziert wird. Ich löse das Problem in dem ich ein Dummywidget habe, dass ich bei einer Entfernung eines Benutzers neu speichere. Dann erkennt der Notesclient die Änderung und entfernt auch das verschwundene Widget aus dem Client.

Eclipse Befehlszeilenparameter an notes.exe übergeben.

23. August 2012 Posted by Ralf Petter

Eclipse als Basis für Lotus Notes ab der Version 8 bietet jede Menge praktischer Befehlszeilenparameter. Normalerweise kann man diese bei einer RCP Anwendung einfach hinter die ausführbare Datei anhängen.

z.B. "eclipse.exe -console" um die OSGI Console mit eclipse mitzustarten.

Bei Lotus Notes geht das nicht so einfach, da Notes eigene Befehlszeilenparameter wie z.B. den "-sa" Parameter verwendet. Es gibt aber Abhilfe, in dem man den  Parameter "-RPARAMS" + den eclipse RCP Befehlszeilenparameter voranstellt.

z.B. um die OSGI Console mit Notes mitzustarten kann man "notes.exe -RPARAMS -console" aufrufen.

Ein anderer praktischer Befehlszeilenparamter ist "-clean" Es weist Eclipse an nicht den Extension Registry Cache zu verwenden, sondern die Plugins neu einzulesen. Dies muss man z.B. machen, wenn man neue Plugins in die Verzeichnisstruktur von Lotus Notes einkopiert hat und diese beim start von Notes verwendet werden sollen.


Eine Übersicht über alle Befehlszeilenparameter die Eclipse und damit auch Lotus Notes unterstützt findet man in der Eclipse Doku.

Workspace Pfad mit Einstellungen für Plugins in Notes/Eclipse

22. Mai 2012 Posted by Ralf Petter

Jedes Plugin in Notes/Eclipse kann Einstellungen haben, die bestimmte Funktionalitäten des Plugins steuern.

Diese Einstellungen werden in dem Pfad "workspace\.metadata\.plugins\org.eclipse.core.runtime\.settings" abgelegt. Für jedes Plugin, dass Einstellungen (Preferences) verwendet, wird ein eigenes Prefs File erstellt. Diese PrefsFiles können mit einem Texteditor problemlos editiert werden und sind als Schlüsselwort Wert Paare aufgebaut. Normalerweise ist es so, dass wenn man die Prefsdatei löscht, wird das File beim nächsten Laden des Plugins wieder mit Defaulteinstellungen erstellt. Das kann auch helfen, wenn in Lotus Notes irgendwas nicht so funktioniert wie es soll. Statt des Löschen des gesamten workspace Ordner kann man zielgerichtet einzelne Einstellung rauslöschen.

Stacküberlauf beim Debuggen von Notesplugins

19. April 2012 Posted by Ralf Petter

Wenn man Lotus Notes aus Eclipse zum Debuggen von selbsterstellten Plugins aufruft, wird das UI von Lotus Notes nicht richtig angezeigt und man bekommt einen sehr langen Stacktrace der mit

at java.util.regex.Pattern$Curly.match1(Pattern.java:3808) 
at java.util.regex.Pattern$Curly.match(Pattern.java:3757)
at java.util.regex.Pattern$GroupHead.match(Pattern.java:4179)
at java.util.regex.Pattern$GroupHead.match(Pattern.java:4179)
at java.util.regex.Pattern$Curly.match0(Pattern.java:3800)
at java.util.regex.Pattern$Curly.match(Pattern.java:3755)
at java.util.regex.Pattern$Begin.match(Pattern.java:3131)
at java.util.regex.Matcher.search(Matcher.java:1116)
at java.util.regex.Matcher.find(Matcher.java:546)
at com.ibm.css.parser.CSSParserImpl.parse(CSSParserImpl.java:106)
at com.ibm.css.parser.CSSParserImpl.parse(CSSParserImpl.java:59)
at com.ibm.rcp.ui.css.StyleManager.handleRules(StyleManager.java:269)
at com.ibm.rcp.ui.css.StyleManager.handleRules(StyleManager.java:275)
at com.ibm.rcp.ui.css.StyleManager.parse(StyleManager.java:218)
at com.ibm.rcp.ui.internal.themes.ThemeManager.setCurrentTheme(ThemeManager.java:303)
at com.ibm.rcp.ui.internal.themes.ThemeManager.<init>(ThemeManager.java:187)
at com.ibm.rcp.ui.internal.themes.ThemeManager.getInstance(ThemeManager.java:216)
at com.ibm.rcp.ui.internal.themes.ThemeServiceFactory.getService(ThemeServiceFactory.java:30)
at org.eclipse.osgi.framework.internal.core.ServiceUse$1.run(ServiceUse.java:117)
at java.security.AccessController.doPrivileged(AccessController.java:202)
at org.eclipse.osgi.framework.internal.core.ServiceUse.getService(ServiceUse.java:115)

 .. 51 more

endet.


Der Grund dafür ist, dass im DebugMode der Speicher auf dem Stack ausgeht. Dieses Problem kann man einfach umgehen in dem man in der Launch Configuration von Lotus Notes in Eclipse den JVM Parameter Xss1m setzt.

Folgende Schritte sind für die Änderung durchzuführen:

Den Debug Configurations Dialog über das Menü aufrufen


In der Launchconfiguration von Lotus Notes auf dem zweiten Tab "Arguments" den zusätzlichen Paramter Xss1m setzen.

Dann auf Apply drücken und die Debug Configuration starten. Dann sollte Notes ohne UI Probleme auch im Debug Mode laufen.

Den Öffnen Knopf im Lotus Notes Client erweitern

16. April 2012 Posted by Ralf Petter

Standardausgabe von Javaplugins im Notesstandardclient

13. April 2012 Posted by Ralf Petter

Oft schreibt man zu Debugzwecken in eigenen Plugins Statusmeldungen an die Standardausgabe. Diese werden wenn man den Notesclient aus Eclipse aufruft auch toll in der Console von Eclipse angezeigt. Aber wo findet man diese Ausgabe wenn man den Client normal gestartet hat. Die Antwort ist ganz einfach im Menü "Hilfe" ->Support gibt es den Punkt "Trace anzeigen" wenn man diesen aufruft, bekommt man eine XML Seite in der neben vielen anderen Meldungen auch die Ausgaben die man in seien Plugins an die Standardausgabe geschickt hat angezeigt werden.


Bestehende Eclipse RCP auf den Mac portieren Teil2

13. April 2012 Posted by Ralf Petter

Nach dem ich mich in Teil 1 damit beschäftigt habe, wie man eine Eclipse RCP für den Mac kompilieren kann, möchte ich mich jetzt damit beschäftigen, was man beim Zugriff auf Lotus Notes aus der RCP heraus beachten muss. damit diese auch auf dem Mac funktioniert.


Bevor wir uns um die Portierung auf den Mac kümmern ein paar prinzipielle Dinge wie der Zugriff auf Notes technisch funktioniert. 


Die Klassen des Java APIs von Lotus Notes befinden Sich in der Notes.jar. Diese Datei finden Sie unter Windows im Verzeichnis C:\Program Files (x86)\IBM\Lotus\Notes\jvm\lib\ext.  Diese Datei muss sich im Klassenpfad befinden, damit Sie verwendet werden kann. Ich habe diese Datei der Einfachheit in ein Plugin importiert, dass die Klassen exportiert, damit ich nicht jedesmal die Notes.jar suchen muss. Prinzipiell kennt das Java API von Notes zwei Zugriffsmöglichkeiten:

DIIOP

Dafür muss ein eigener DIIOP Task am Server laufen, der die Zugriffe auf die Dominodaten durchführt. Auf den Client ist dann nichts mehr weiter nötig als die Notes.jar. Ich verwende diese Möglichkeit nicht sehr gerne, da erstens die Performance sehr bescheiden ist und DIIOP viele Bugs hat.

Lokaler Zugriff

Dabei fungiert die Notes.jar nur als leichtgewichtiger Wrapper für die DLL nlsxbe.dll die Teil des Notes Clients ist. Die Notes.jar besteht sozusagen nur aus JNI Aufrufen. Jeder Aufruf einer Methode in der Notes.jar ruft im Hintergrund eigentlich eine Methode in der nlsxbe.dll auf. Das API der liblsxbe.dll wurde ursprünglich für Lotusscript erstellt und wird von der Notes.jar mitbenützt. Der Vorteil davon ist, dass sich das Java Api praktisch 1:1 zu dem Lotusscript API verhält. Was die Einarbeitung von Lotusscript Anwendern verkürzt. Der Nachteil für Javaentwickler ist, dass das API teilweise seltsame Eigenheiten wie z.B. die Notwendigkeit von recycle() zum aufräumen von C++ Objekten aus nlsxbe.dll notwendig macht.

Leider ist es jetzt aber so, dass die nlsxbe.dll im Hintergrund noch andere DLL's des Notes Client verwendet.

Warum muss man das ganze überhaupt wissen? Ganz einfach wenn man in sein Programm die Notes.jar einbindet und per lokalen Zugriff auf Notes Daten zugreifen will, muss die JVM die notwendigen DLL's finden. Die JVM sucht die DLL's im sogenannten Library_Path. Dieser wird mittels der JVM Option "-Djava.library.path="C:\Program Files (x86)\IBM\Lotus\Notes" gesetzt. Nun findet die JVM zumindest mal die nlsxbe.dll. Aber das die nlsxbe.dll noch andere DLL's laden will, dabei aber vom Java library path nichts mehr weiß, muß das selbe Verzeichnis wie oben auch im Windows PATH sein.

In einer RCP setzt man den Library Path am besten in der Product Beschreibung auf der Launcherseite. Diese Einstellungen können und müssen für jede Plattform extra gesetzt werden.

Hier die Einstellung für Windows

Die Doppelten "\\" sind notwendig, damit beim Erstellungsvorgang der RCP keine Zeilenschaltungen eingefügt werden.

Zusätzlich muss auf Windows unbedingt noch in der Systemsteuerung des Zielcomputers die Pfadvariable angepasst werden. Leider gibt es keine Möglichkeit dies direkt in der RCP Anwendungen zu machen. Da ich sowieso immer MSI installer baue, ist das aber kein Problem.

Hier die Einstellung für den Mac

Am Mac werden DLL's die hier die Endung .dyld haben nicht über den Pfad aufgelöst, sondern der Mac sucht diese in diversen Standardsuchpfaden in denen Notes aber nicht enthalten ist und in den Verzeichnissen die in der Umgebungsvariable "DYLD_Library_PATH" angegeben sind. Wie kann man so eine Umgebungsvariable am Mac setzen. Wie immer am Mac geht das nicht so einfach wie in anderen Umgebungen. Während es unter Windows ein UI gibt um die Umgebungsvariablen zu ändern muss man in Mac OS X wie in Unix mit Konfigurationsdateien arbeiten:

Eine globale Änderung der Umgebungsvariablen kann man für einen Benutzer machen indem man die Datei "environment.plist" im versteckten Verzeichnis ".MacOSX"anlegt. (Wie zeige ich versteckte Dateien und Ordner am Mac an?)

Die Datei muss folgenden Aufbau haben:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>
DYLD_Library_PATH</key>
<string>
/Applications/Notes.app/Contents/MacOS</string>
</dict>
</plist>

Falls man Lotus Notes in ein anderes Verzeichnis installiert hat, muss man natürlich den Pfad anpassen.

Diese Vorgehendsweise hat aber den Nachteil, dass auch andere Programme durch diese Änderung beeinflusst werden und Apple in manchen Versionen seines Betriebssystems diese Vorgehendsweise überhaupt unterbunden hat.

Deshalb die bessere Möglichkeit ist es in der von Eclipse erstellten Applikation die info.plist zu ändern. Die info.plist ist am Mac die zentrale Datei die steuert wie ein Programm aufgerufen werden soll. Man findet die Datei wenn man mit der rechten Maustaste auf eine Applikation klickt und in dem Kontextmenü den Punkt "Paketinhalt zeigen" aufruft. Dann zeigt der Finder den Inhalt der Applikation an. Im Verzeichnis Contents befindet sich dann die info.plist. Einfach die Datei mit dem Editor öffnen und innerhalb des dict Blocks folgenden Inhalt einfügen.

<key>LSEnvironment</key>
<dict>
     <key>DYLD_LIBRARY_PATH</key>
     <string>/Applications/Notes.app/Contents/MacOS</string>
</dict>

Vorsicht Änderungen an der info.plist werden in MacOSX gecached und der Mac erkennt diese Änderungen leider nicht. Deshalb muss man nach der Änderung unbedingt den Cache aktualisieren:

Dazu geht man in ein Terminal und führt folgenden Befehl aus:

/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -v -f /Applications/eclipse/XXX.app

Wobei XXX durch den Applikationsnamen ersetzt werden sollte.

Dann sollte auch der Zugriff auf das Java API von Notes funktionieren.

Bestehende Eclipse RCP auf den Mac portieren Teil1

12. April 2012 Posted by Ralf Petter

Ich habe eine Eclipse RCP Anwendung erstellt, die Daten über das Java API aus einer Notesdatenbank ausliest und verarbeitet. Diese Anwendung wurde in erster Linie für Windows erstellt aber durch die Plattformunabhängigkeit von Java sollte die Anwendung ja auch problemlos am Mac laufen. Bei meinen Versuchen der Portierung auf den Mac bin ich dabei auf ein paar Hürden gestossen, die nicht ganz einfach zum Umschiffen waren:

Teil1: Installation des Deltapacks in die Targetplattform

Das Deltapack muss die selbe Version haben wie die Targetplattform. Für 3.7 findet man das Delta Pack z.B. auf http://download.eclipse.org/eclipse/downloads/drops/R-3.7-201106131736/winPlatform.php .


Den Inhalt des Zips dann einfach in das Verzeichnis der Targetplattform entpacken.

In seiner Eclipse Entwicklungsumgebung muss man nach dem Entpacken die Targetplattform neu einlesen, damit Eclipse die Änderungen erkennt.


Danach sollte es problemlos möglich sein die bestehende Anwendung nicht nur für die aktuelle Plattform sondern auch für andere Plattformen wie den Mac zu erstellen.

Man geht dazu in die Produktdefinition der RCP Anwendung. Als erstes auf die Seite "Dependencies" und klickt dort auf den Knopf "Add required plugins". Es sollten dann automatisch die Fragmente für die verschiedenen Platfformen hinzugefügt werden.

 Jetzt kann man auf der Overview Seite auf den Link "Eclipse product export wizard" klicken. Wenn das Deltapack ordnungsgemäß installiert wurde, dann bekommt man in dem Assistenten die Möglichkeit die RCP für verschiedene Plattformen zu packen. Ganz wichtig ist, es wenn man eine Anwendung für den Mac erstellt diese unbedingt in ein ZIP zu exportieren, da es sonst zu Problemen mit den Dateinamen unter Windows kommen kann.

Auf der nächsten Seite des Assistenten kann man dann die Zielplattform auswählen dier erstellt werden soll. In meinen Fall Mac OS cocoa.


Das erstellte ZIP kann man dann einfach auf dem Mac in den Programme ordner entpacken und die Anwendung kann schon mal aufgerufen werden.

Für den Zugriff auf Notes sind jedoch noch weitere Schritte nötig, die ich im nächsten Blog Post näher erklären will.


Erfahrungsbericht: Notes Entwickler Camp 2012

28. März 2012 Posted by airwolf89

Ja, schöne Dinge vergehen viel zu schnell. Heute war der letzte Tag des Notes Entwickler Camps 2012. Ich möchte an dieser Stelle meine Erfahrungen teilen und jedem ans Herz legen zu überlegen dort auch mal teilzunehmen.

Tag 1

Nach einer größtenteils unproblematischen Anreise kamen mein Kollege Sven Hasselbach und ich in Gelsenkirchen im Maritim Hotel an. Das Hotel war völlig in Ordnung, nichts über die Maße luxuriöses, aber zu meckern gab’s auch nichts.

Pünktlich um 10:30 Uhr startete das Camp mit der Begrüßung durch Rudi Knegt, dem Initiator und Veranstalter des Camps, welcher scheinbar immer gut gelaunt zu sein scheint =)

Anschließend teilte Philippe Riand in einer Präsentation mit, was in Zukunft in Sachen ICS, Social Business und XPages tun wird. Ein Kommentar, mit Live-Demo stach besonders heraus. Nämlich dass es bald einen richtigen Serverside Javascript Debugger geben wird. Dies wurde durch einen spontanen Begeisterungsausbruch der ca. 230 Teilnehmer kurz unterbrochen.
Quintessenz der Vorstellung war denke ich, dass sich IBM in Zukunft, wie zu erwarten war, auf den Bereich Social Business und XPages konzentrieren wird. Serverside Javascript soll sich zu Lingua Franca entwickeln, denn es wird an vielen Schnittstellen zu anderen Systemen, beispielsweise auch Sharepoint gearbeitet und soll zukünftig eine generische Schnittstelle für eine Vielzahl von Web-Anwendungen bereitstellen.

Anschließend gab es wie immer das kurze “Speed-Agendaing” (wahrscheinlich ein Produkt der von Rudi Knegt zum Leben erweckten Sprache “Rudisch”), in welchem die Referenten ein kurzen Abriss über die anstehenden Präsentationen gaben, um dem Teilnehmer die Entscheidung zu erleichtern an welchem von den 5 gleichzeitigen Sessions man denn teilnehmen sollte.

Ich entschied mich für die Session von Detlev Pöttgen von Midpoints, welche von Widgets, Livetext und Plugins handelte. In dieser Session stellte er die Einsatzmöglichkeiten und die Handhabung von Widgets dar. Wie man eines anlegt, wie man selbst welche mit Hilfe von Plugins erstellt und wie man sie unter den Usern verteilt. Letzteres kam leider aufgrund vieler Fragen ein wenig zu kurz, doch es gab über dieses Thema am nächsten Tag noch eine Session die sich auschließlich mit diesem Thema beschäftigte, von daher nicht so schlimm. Außerdem wurde ein konkretes Pluging gezeigt, welches intern beim Referenten genutzt wird. Es war ein Plugin, welches bei Markierung einer E-Mail Daten über den Absender aufruft und anzeigt welche Tickets und Aufträge dieses Kunden noch offen sind. Coole Idee.

Mein Fazit dazu: Eine sehr schöne Technologie, die meinerseits und bei mir in der Firma bisher ziemlich kurz kam. Jedoch sieht man alleine an den Plugins, welche wir für die Entwicklung verwenden, was damit möglich ist. Auch bieten sie eine schöne Schnittstelle mit denen man auf Web-Anwendungen zugreifen kann, auch auf XPages. Ich werde mir in Zukunft auf jeden Fall mal genauer anschauen was man damit machen kann und schauen dass wir das unseren Kunden anbieten können.

Parallel hielt Ulrich Krause einen Vortrag über die Grundlagen der XPages Entwicklung, Rocky Oliver über die bis heute große Macht von Lotusscript, Manfred Meise einen Vortrag über Security in Notes, sowohl auf Admin, als auch auf Entwickler Seite, was selbst erfahrenen Notes Entwicklern noch das ein oder andere erneut ins Gedächtnis rief bzw. klar gemacht hat, was Security angeht. Manuel Nientit. Zeigte in seiner Hands-On Session praktisch wie man in Javascript einsteigt.

Nach der Kaffepause ging es für mich mit dem Vortrag von Niklas Heidloff weiter, in welchem er kurz die schönsten Projekte auf OpenNTF vorstellte. Dabei zeigte er ein paar interne Zahlen von OpenNTF, beispielsweise dass fast jeden Tag ein neues Projekt auf OpenNTF hochgeladen wird und mittlerweile über 800 Projekte beherbergt. Er ging auf eine Vielzahl von Projekten ein, dessen Erwähnung diesen ohnehin schon viel zu langen Post sprengen würde. Zum größten Teil die wirklich gut gelungenen Projekte für die beiden vergangenen Development Contests und nutzte gleich die Chance den auf dritten Development Contest aufmerksam zu machen. Er zeigte sich stolz auf die Community wie viele Projekte jeden Monat neu hochgeladen werden und welche Qualität diese vorweisen können. Auch kündigte er an dass bereits an einem Plugin gearbeitet wird, mit dem man auf die veröffentlichten XSnippets direkt aus dem Domino Designer zugreifen kann.

Mein Fazit dazu: Man sollte auf jeden Fall einmal ein wenig Zeit investieren sich die Projekte auf OpenNTF anzuschauen und zu evaluieren welche man davon verwenden kann. Ich möchte fast schon garantieren dass für jeden das ein oder andere Projekt interessant sein wird. Auch ich werde, in Zukunft, versuchen mich dort ein wenig mehr einzubringen und XSnippets zu posten und auch mal das ein oder andere Control oder sogar Projekt zu veröffentlichen.

Parallel hielt Matthew Fyleman einen Vortrag darüber wie man bestehende Notes Applikationen am besten in XPages Anwendungen verwandelt. Gerd Hildebrandt zeigte in seinem Vortrag dass LotusScript noch lange nicht tot ist. Christian Habermüller zeigte wie man am besten Workflows analysiert und dokumentiert und dabei auch ein wenig über den Tellerrand des Entwicklerhorizonts schaut. Das Hands-On von Thomas Schneider über Composite Applications fiel leider aufgrund eines Unfalls in der Familie aus. Gute Besserung an dieser Stelle.

Das Abendprogramm bestand dann aus “Speed-Demoing” bei welchem jeder der ein interessantes Problem oder Konzept vorzustellen hatte, 5 bis 10 Minuten Zeit bekam dies mit einer kurzen Präsentation zu zeigen. Anschließend gab es eine offene Fragerunde, in welcher jeder seine Problemchen auf die man während der Entwicklung traf vorstellen und mit allen Teilnehmern diskutieren konnte. Bei diesen Fragerunden, welche jeden Abend stattfanden, wurde eine Vielzahl von Problemen auch direkt gelöst oder zumindest Herangehensweisen vorgeschlagen, was einige Entwickler, denke ich, ziemlich glücklich gemacht haben dürfte. Allerdings ist mir in diesen Veranstaltungen bewusst geworden, wie wenige Leute sich so intensiv mit XPages beschäftigen, so wie ich das bei mir auf Arbeit tue. Der Großteil der Probleme waren allgemeine Probleme mit Notes (im Klassischen Notes Umfeld) oder Probleme mit Lotusscript oder Formelsprache.
Danach gab es dann, moderiert von Gregory Engels, Präsentations-Karaoke.

Anschließend wurden die Teilnehmer von den Veranstaltern dazu genötigt bis 22:30 Uhr die Bier- und Weinreserven des Hotels zu vernichten. Bei dieser überaus unangenehmen Aufgabe wurde viel gefachsimpelt, Erfahrungen ausgetauscht und Bekanntschaften geschlossen und Kontakte geknüpft. Als dann gegen 2 Uhr die letzte Bar im Hotel schloss ging dann auch der letzte Notes-Entwickler glücklich ins Bett und freute sich auf den nächsten Tag.

Tag 2

Pünktlich um 08:10 Uhr startete man dann mit einigen Organisatorischen Dingen und Speed-Agendaing zu den aktuellen Präsentationen in den neuen Tag. Danach machten sich die Teilnehmer, motiviert und ausgeschlafen wie man das nach dem vorherigen Abend erwarten würde auf zu den Sessions.

Ich besuchte die Präsentation von Ulrich Krause in welcher er die Extension Library, wie sie funktioniert, wie man sie installiert und wie man sie verwendet ausführlich beschrieb. Dabei stellte er auch das eine oder andere Modul aus der Extension Library ein. Auch wurden ein paar allgemeine Themen rund um die neuen Features in 8.5.3 vorgestellt. Auch Themen wie Themes wurden angesprochen. Nebenbei wurden natürlich viele Fragen beantwortet.

Mein Fazit: Wie schon vorher für mich feststand wird es für mich, freiwillig, keine Entwicklung mehr ohne die Extension Library geben. Dazu gibt es einfach zu viele geniale Module in der Library welche sich perfekt für die Entwicklung eigener Anwendungen eignen, als dass man sie ignorieren könnte. Außerdem, da durch das Upgrade Pack 1 die Extension Library, in leicht abgespeckter Version, nun vollständig von der IBM supported wird, gibt es nun keinen Grund mehr für Notes Admins sich dagegen zu wehren die “ach so böse openSource Software” auf den eigenen Notes Servern zu installieren.

Parallel hielt Werner Motzet einen Vortrag über agile Software- und Projektmanagementmethoden und gab einige Tipps über eine effizientere Projektführung im Notes Umfeld. Jürgen Kunert stellte vor wie man Richtig(er) kommuniziert, ein Vortrag über Kommunikationsmittel und wie man sie im Entwicklungsumfeld besser nutzen kann. Matthias Schneider stellte den Lotus Protector von IBM ein wenig genauer vor und erläuterte wie man ihn einsetzen und selbst erweitern und anpassen kann. Howard Greenberg lehrte in einer Hands-On Session den Einstieg in die XPages Entwicklung.

Anschliessend besuchte ich die Session von Manfred Meise, in welcher er detailliert die Einsatzmöglichkeiten von Themes darstellte und einen Einstieg in diese Thematik gab. Für mich war leider wenig neues dabei, trotzdem ein interessanter Vortrag.

Mein Fazit: Mit Themes hatte ich mich ja bereits zuvor beschäftigt. Ich wurde jedoch darin bestätigt dass es keinen Grund sie nicht einzusetzen, da sie einem einfach sehr viele Möglichkeiten geben die grafische Gestaltung seiner Anwendungen effektiv aufzubauen und zu verwalten.

Parallel hielt Gregory Engels einen Vortrag, genannt “Ich weiß was du diesen Sommer tun wirst”, in welchem er einen Blick in die Kristallkugel warf und darstellte wie es wahrscheinlich mit Notes und den XPages weitergehen wird und was sich hinter den einzelnen Schlagwörtern, mit welchen die IBM auf der LotusSphere um sich warf, verbirgt und was man damit alles machen könnte. Phil Riand und Niklas Heidloff komprimierten den Inhalt einer Wochenfüllenden Vorstellung über die Features von 8.5.3, der Extension Library, JDBC Datasources, REST Schnittstellen, OAuth, der XPages Workflowengine XFlow, OSGi Tasklets und Plugins. Ich hörte von Teilnehmern die mit Kopfschmerzen und einem von Ideen überquellenden Hirn aus dieser Präsentation herausgingen. Ein Kollege von Thomas Schneider war so freundlich sich mit der Präsentation über Webservices unter Notes auseinanderzusetzen, sodass sie doch noch stattfinden konnte. Vielen Dank für die Anstrengungen. Howard Greenberg setzte sein Hands-On über den Einstieg in XPages fort.

Nach der Mittagspause und einem dringend benötigten, aber viel zu kurzen Mittagsschlaf, besuchte ich die Session von Rocky Oliver, in welcher er über die gute alte Formelsprache referierte und Einsatzmöglichkeiten und das immer noch enorme Potential herausstellte und die wichtigsten Befehle vorstellte und zeigte dass manche Befehle doch mehr können als manch einer denkt. Auch über Stolperfallen und Schwierigkeiten wurden einige Worte verloren. Allerdings gab es auch ein Kapitel wie man Formelsprache in Serverside Javascript einsetzt.

Mein Fazit: Für mich sehr nützlich, da ich ja direkt mit der XPages Entwicklung eingestiegen bin und daher noch die ein oder andere Lücke in Standard Notes Entwicklung habe.

Parallel hielt Niklas Heidloff einen Vortrag wie man XPages Applikationen social macht und ging dabei auf die Möglichkeiten des Social Enablers ein, welcher es aber leider nicht in das Upgrade Pack 1 geschafft hat. Christian Habermüller referierte über agile Methoden im IT-Projektmanagement. Bernhard Köhler hielt einen Vortrag über das leidige Thema wenn man als Entwickler Altlasten erbt und sich mit der Herausforderung konfrontiert sieht alte, historisch gewachsene Anwendungen zu erweitern. Detlev Pöttgen zeigte in seiner Hands-on Session wie man Plugins und Widgets in einer Notes Infrastruktur verteilen kann.

Anschließend besuchte ich den Vortrag von René Winkelmeyer, welcher vorstellte wie man eigene Extensions mit der Extensibility API (!= Extension Library) entwickelt und eigene Module (wie in der Extension Library) entwickelt und installiert. Dabei zeigte er wie man sich eine Entwicklungsumgebung aufsetzt um diese Extensions auf dem Domino Server installiert. Mit dieser Session nahm er einigen Entwicklern, darunter auch mir, die Angst vor diesem Thema, welches nach eigener Aussage von René Winkelmeyer “… nichts für kleine Mädchen ist…”

Mein Fazit: Anhand der Extension Library sieht man ja wie mächtig diese Technologie ist. Extension sind einfach die beste Möglichkeit wiederverwendbare Module zu entwickeln. Mit diesem Thema werde ich mich zukünftig auf jeden Fall auseinandersetzen und hoffentlich auch ein paar Erfolge erzielen. Ich bin ja schließlich kein kleines Mädchen…. =)

Parallel hielt Frank van der Linden wie man das unmögliche mit XPages möglich macht. Dabei ging er auf Themen ein die nur sehr schwer mit Standard Notes Mitteln vor den Xpages umzusetzen waren und nun möglich geworden sind. Matthias Schneider zeigte wie man mit mobilen Anwendungen auf Notes-Daten zugreifen kann. Dabei stellte er zahlreiche Werkzeuge für mobile Anwendungsentwicklung vor, wie z.B die Extension Library, den Lotus Traveler und den Notes Application Player vor. Karsten Lehmann stellte den Einsatz von weiteren NoSQL-Datenbanken und deren Einsatzmöglichkeiten im Notes-Umfeld vor. Peter Klett gab in seiner Hands-On Session einen Einstieg in LotusScript.

Im Abendprogramm gab es wieder eine offene Fragerunde, Speed-Demoing und eine Verlosung in der Dinge wie eine Nintendo Wii, ein Monitor, fernsteuerbare Hubschrauber, Geek-Toys, Entwickler-Treibstoff (Sekt und Wein) und einige T-Shirts von TLCC verlost wurden.
Anschließend wurden wir wieder gezwungen die verbliebenen Bier- und Wein Vorräte des Hotel zu vernichten. Eine Aufgabe der zahlreiche Entwickler widerstrebend aber pflichtbewusst nachgingen und dabei wieder viel fachsimpelten und Erfahrungen austauschten.

Tag 3

Der Endspurt des Entwicklercamps wurde wieder mit organisatorischen Dingen und Speed-Agendaing eingeläutet.

Für mich ging es weiter mit Versionskontrolle im Domino Designer mithilfe von GIT/ eGIT, vorgestellt von Holger Chudek. Hier zeigte er welche Möglichkeiten es im Domino Designer für Versionskontrolle gibt, welche Stolperfallen es gibt und wie man ein solches System einrichten und benutzen kann.

Mein Fazit: Ein sehr schönes Tool, welches natürlich Vor- und Nachteile mit sich bringen kann. Da es in meiner Firma sowieso angedacht war so etwas im Entwicklungsbereich zu verwenden, war dieser Vortrag natürlich sehr hilfreich und aufschlussreich und half bereits einigen Stolpersteinen im vornherein zu umgehen.

Parallel hielt Bernd Hort einen Vortrag über Java-Entwicklung im Notes-Umfeld, in welchem er die Einsatzmöglichkeiten in Agenten, Servlets, Libraries und XPages darstellte. Frank van der Linden hielt einen Vortrag über den Activity Stream und das Social Business Toolkit der IBM, in welchem er darauf einging wie man es verwendet und einsetzten kann. Bernhard Köhler ging in seinem Vortrag “Notes und die Zeit” darauf ein wie man die immer wieder auftretenden Probleme mit Zeit-Daten im Notes-Umfeld in den Griff kriegt. Matthias Schneider zeigte im Hands-On wie man mit mobiler Applikationsentwicklung beginnt.

In der letzten Session lauschte ich den Ausführungen von Richard Sharpe, in welchen er darstellte wie man mobile Applikationen mithilfe der Extension Library entwickelt und gab einige sehr hilfreiche Tipps und nahm vielen Entwicklern die Angst vor diesem Themengebiet.

Mein Fazit: Mobile Applikationsentwicklung ist eigentlich nicht so schwer wie man es sich vielleicht vorstellt. Vor allem mit JQuery hat ein sehr wertvolles und mächtiges Werkzeug an der Hand. Ich werde in Zukunft auf jeden Fall keine Schweissausbrüche bekommen wenn Kunden mal so etwas fordern.

Parallel hielt Matthias Bierl einen Vortrag über die Einsatzmöglichkeiten des Dojo Toolkits zu verfügung, auch abseits der XPages Entwicklung. Peter Klett zeigte Eindrucksvoll wie man im Notes Umfeld Riesenprojekte (nach eigener Aussage ein System mit über 30 Mio. Dokumenten in über 5.500 Datenbanken, was nur ein Projekt von vielen ist) aufsetzen und verwalten kann und räumte mit dem Vorurteil auf dass es mit Notes nicht möglich sei große Systeme zu betreiben. Andreas Artner stellte Schnittstellenentwicklung mit dem Tivoli Directoty Integrator vor und zeigte dass sich hinter diesem Tool mehr verbirgt als der Name glauben lässt. René Winkelmeyer zeigte in einem Hands-On wie man sich eine Entwicklungsumgebung für die Entwicklung mit der Extensibility API aufsetzt und ließ die Teilnehmer erste Erfahrungen in diesem Thema sammeln.

Anschließend startete, während meiner Teilnahme an den kostenlos angebotenen Zertifizierungstests, ein Vortrag von Werner Motzet, in welchem er in sehr interessanter und witziger Art und Weise auf sein Leiden aufmerksam machte, welches er durchleben muss seit seine Firma auf Microsoft Produkte (Outlook und Exchange) umgestiegen ist. Allerdings war dieser Vortrag nicht (nur) eine Hass-Tirade gegen Microsoft Produkte, sondern hinterfragte konstruktiv und kritisch die Unternehmenskultur, das Marketingverhalten und Verhaltensweisen von IBM und Microsoft. Hier stellte er einige sehr wichtige und interessante Fragen, die einige Entwickler nachdenklich stimmten. Damit dies auch bei der IBM passiert kündigte er an auf der nächsten DNUG eine Podiumsdiskussion mit IBM anzustoßen, in welchem Fragen wie Zukunft einiger Produkte, Unternehmenszukunft und Marketingverhalten geklärt werden sollen.

Damit war das Entwicklercamp 2012 vorbei und die Teilnehmer machten sich wieder auf den Heimweg, mit den Köpfen voller Ideen, den Taschen voller Visitenkarten neu geschlossener Kontakte und dem Finger im Terminkalender um nach freier Zeit zu suchen die nötig ist sich mit all den neuen Themen und Ideen auch auseinandersetzen zu können.

Mein Fazit zum Entwicklercamp:

Es macht Spass
Es lohnt sich
Es ist wertvoll

Wenn es in meiner Macht liegt werde ich definitiv wieder teilnehmen. Es waren sehr interessante Themen dabei, von denen ich leider nur einen kleinen Teil mitbekommen konnte. Man konnte sich mit anderen Entwicklern austauschen und Erfahrungen sammeln und tauschen. Auch sehr wertvoll war die Ecke, in welcher man seinen Laptop anschließen konnte um mit anderen Teilnehmern Themen anschaulich besprechen konnte und versuchen neue Ideen und Lösungen für Probleme zu finden. Genau darum ging es auch bei dieser Veranstaltung, welche von Entwicklern für Entwickler gemacht ist, hier geht es nicht darum Technologien oder Dienstleistungen zu verkaufen, sondern um gegenseitig neue Ideen und Lösungen zu entdecken und zu erlernen. Von daher sehr wertvoll für jeden Entwickler, der nicht einfach nur seinen Job macht, sondern das liebt was er tut.

An dieser Stelle nochmal vielen Dank an die Veranstalter, die Referenten und auch an den Sponsor Teamstudio.


Einsortiert unter:Notes & XPages Tagged: Andreas Artner, Android, Apple, Bernd Hort, Bernhard Köhler, Blog, Christian Habermueller, Composite Applications, Datasource, Debugger, Detlev Pöttgen, Development Contest, DNUG, Dojo, Eclipse, eGIT, Extensibility API, ExtLib, Formel, Formula, Frank van der Linden, Gerd Hildebrandt, Gergory Engels, GIT, Holger Chudek, Howard Greenberg, ibm, ICS, Java, Jürgen Kuhnert, JDBC, JQuery, Karsten Lehmann, Livetext, Lotus Protector, Lotus Traveler, Lotusscript, LotusSphere, Manfred Meise, Manuel Nientit, Matthew Fyleman, Matthias Bierl, Matthias Schneider, Mobile, Module, Niklas Heidloff, NoSQL, Notes, Notes 8.5.3, Notes Application Player, Notes Entwickler Camp 2012, OAuth, OpenNTF, OSGi, Peter Klett, Philippe Riand, Plugin, Presentation Karaoke, Rene Winkelmeyer, REST, Richard Sharpe, RKJSoft, Rocky Oliver, Rudi Knegt, Security, Serverside Javascript, Servlet, Social Business, Social Business Toolkit, Social Enabler, Stolperfalle, Tasklet, Teamstudio, Themes, Thomas Schneider, Tivoli Directory Integrator, TLCC, Tools, Ulrich Krause, Werner Motzet, Widget, XFLow, XPages, XSnippets

Tools: Formul8 & Secret Agent – Wo sind sie hin?

17. März 2012 Posted by airwolf89

Hi,

kleine Anmerkung: Heute wollte ich nen neuen Client und natürlich auch meine geliebten Plugins installieren. Leider scheinen die bisherigen Verweise auf die Seite des Entwicklers von Formul8 und Secret Agent nicht mehr zu existieren, scheinbar macht er jetzt nur noch Android Apps: Jeff Gilfelt

Wie auch immer, nach einer gefühlten Ewigkeit auf Google habe ich dann doch noch den Link zum Eclipse Repository gefunden. Dies ist die Adresse die ihr als “Remote Updatesite” angeben müsst.

http://www.jeffgilfelt.com/eclipseplugins/

Für die, die gerade nicht wissen wovon ich rede:

Formul8 ist ein wunderschönes Sidebar Plugin, mit welchem es möglich ist direkt Formelsprachen Code auf ein oder mehrere Dokumente in einer View loszulassen um damit mal eben schnell etwas zu testen. Sehr nützlich.
Secret Agent ist ein Sidebar Plugin welches einem alle verfügbaren Agenten der Anwendung anzeigt. Das ganze halt etwas komfortabler und übersichtlicher als im Standard. Man sieht auch direkt wer den Agent signiert hat, ob er gescheduled ist und ob er aktiviert ist. Natürlich kann man die Agenten auch direkt ausführen.

Ich nutze beide Plugins sehr häufig und kann sie daher nur empfehlen. Natürlich auch wie schon in einem Post erwähnt den DocViewer von Domiclipse


Einsortiert unter:Tools Tagged: DocViewer, Domiclipse, Eclipse, Formul8, Formula, Jeff Gilfelt, Notes, Plugin, repository, Secret Agent, Sidebar, Tools, Updatesite