EntwicklerCamp 2014 - DOTS reloaded

1,096 views
935 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,096
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
15
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

EntwicklerCamp 2014 - DOTS reloaded

  1. 1. DOTS - reloaded EntwicklerCamp 2014 René Winkelmeyer midpoints GmbH
  2. 2. René Winkelmeyer Senior Consultant midpoints GmbH http://www.midpoints.de IBM Advanced Business Partner IBM Design Partner Services •  Notes / Domino Consulting •  E-Mail Management •  Mobile Produkte •  IBM Notes Traveler Planung & Deployment •  mobile app development •  Domino basiertes iOS Device Management •  Domino basierte “Dropbox” für Notes and iOS Über mich
  3. 3. René Winkelmeyer Senior Consultant •  Skype muenzpraeger •  Twitter muenzpraeger •  LinkedIn muenzpraeger •  Slideshare muenzpraeger •  Web http://blog.winkelmeyer.com http://www.midpoints.de •  Mail mail@winkelmeyer.com rene.winkelmeyer@midpoints.de OpenNTF •  File Navigator •  Generic NSF View Widget for IBM Connections Über mich
  4. 4. 4 Agenda §  DOTS – was, wie warum §  Startup und Task Extension Point §  Singleton-Nutzung §  Konfiguration über Annotationen §  Custom Console Commands §  Log4J2 §  Links
  5. 5. 5 Agenda §  DOTS – was, wie warum §  Startup und Task Extension Point §  Singleton-Nutzung §  Konfiguration über Annotationen §  Custom Console Commands §  Log4J2 §  Links
  6. 6. 6 DOTS §  Der DOTS-Task ist ein C-Task, welcher auf dem Domino-Server eine autarke OSGi-Runtime erzeugt.
  7. 7. 7 DOTS §  DOTS gibt es für 8.5.x Release auf OpenNTF §  http://www.openntf.org/main.nsf/project.xsp?r=project/OSGI %20Tasklet%20Service%20for%20IBM%20Lotus%20Domino §  Seit Domino 9 Bestandteil des Server-Pakets
  8. 8. 8 DOTS §  Welche Vorteile bietet die Nutzung von DOTS? §  Granulare Zeit- und Eventsteuerung §  Server-side permissions §  Keine Einschränungen à la AgentManager §  Java, Java, Java (und SCM und Eclipse)
  9. 9. 9 DOTS §  Welche Migrationsszenarien für Java-Agenten gibt es? §  LotusScript/Formula => keine => neu schreiben! §  Java => copy & paste §  Geht – aber bitte in neuen Strukturen denken!
  10. 10. 10 DOTS §  Wie kann ich DOTS-Plug-Ins deployen? §  Über das Filesystem §  <dominoprog>/osgi-dots/eclipse/applications/plugins §  Über eine Updatesite.nsf §  notes.ini-Parameter
  11. 11. 11 Agenda §  DOTS – was, wie warum §  Startup und Task Extension Point §  Singleton-Nutzung §  Konfiguration über Annotationen §  Custom Console Commands §  Log4J2 §  Links
  12. 12. 12 Extension Points §  Über so genannte Extension Points können sich OSGi Plug-Ins an von anderen Plug-Ins bereitstellte Extensions „anhängen“. §  Die meist benutzten Extension Points für DOTS sind §  Startup §  Task
  13. 13. 13 Der Startup Extension Point §  Der Code, welcher über diesen Extension Point angesprochen wird, läuft noch vor Ausführung der Tasklets. §  Er eignet sich im Speziellen für die Initialisierung von globalen Werten, z. B. Log-Level o. ä.
  14. 14. 14 Erstellung des initialen Plug-In
  15. 15. 15 Erstellung des initialen Plug-In
  16. 16. 16 Erstellung des initialen Plug-In
  17. 17. 17 Erstellung des initialen Plug-In
  18. 18. 18 Einbindung des Startup Extension Point
  19. 19. 19 Einbindung des Startup Extension Point
  20. 20. 20 Einbindung des Startup Extension Point
  21. 21. 21 Einbindung des Startup Extension Point
  22. 22. 22 Einbindung des Startup Extension Point
  23. 23. 23 Einbindung des Startup Extension Point
  24. 24. 24 Einbindung des Startup Extension Point
  25. 25. 25 Einbindung des Startup Extension Point
  26. 26. 26 Einbindung des Startup Extension Point
  27. 27. 27 Einbindung des Startup Extension Point
  28. 28. 28 Einbindung des Startup Extension Point
  29. 29. 29 Einbindung des Startup Extension Point
  30. 30. 30 Erstes Test-Deployment
  31. 31. 31 Erstes Test-Deployment
  32. 32. 32 Erstes Test-Deployment
  33. 33. 33 Erstes Test-Deployment
  34. 34. 34 Erstes Test-Deployment §  DOTS-Task mit „load dots“ starten
  35. 35. 35 Einbindung des Task Extension Point
  36. 36. 36 Einbindung des Task Extension Point
  37. 37. 37 Einbindung des Task Extension Point
  38. 38. 38 Einbindung des Task Extension Point
  39. 39. 39 Einbindung des Task Extension Point
  40. 40. 40 Test des Task Extension Point §  Plug-In erneut exportieren §  DOTS-Task mit „tell dots quit“ beenden §  Plug-In is osgi-dots Verzeichnis kopieren §  DOTS-Task mit „l dots“ starten
  41. 41. 41 Anatomie des Task Extension Point (XML) §  RunOnStart – startet einmalig mit dem DOTS-Task
  42. 42. 42 Anatomie des Task Extension Point (XML) §  Scheduled Task mit definierten Zeiteinheiten
  43. 43. 43 Anatomie des Task Extension Point (XML) §  Manueller Task
  44. 44. 44 Anatomie des Task Extension Point (XML) §  Periodischer Task mit definiertem Zeitraum
  45. 45. 45 Anatomie des Task Extension Point (GUI)
  46. 46. 46 Wissenswerte DOTS-Commands §  tell dots tasklist §  Übersicht der Tasklets §  tell dots taskstatus §  Aktueller Run-Status der Tasklets §  tell dots ss <name> §  Filtert die Tasklets auf Basis des <name> Parameters
  47. 47. 47 Wissenswerte DOTS-Commands §  tell dots diag <plugin-id> §  Überprüft die vorhandenen Plug-Ins auf (nicht-erfüllte) Dependencies §  tell dots run <task-id> §  Führt das per <task-id> angegebene Tasklet aus (analog ‚tell amr run...) §  tell dots cancel <task-id> §  Unterbricht den aktuellen Lauf des per <task-id> übergebenen Tasklet
  48. 48. 48 Agenda §  DOTS – was, wie warum §  Startup und Task Extension Point §  Singleton-Nutzung §  Konfiguration über Annotationen §  Custom Console Commands §  Log4J2 §  Links
  49. 49. 49 Singleton §  Ein Singleton ist eine Art „globaler Container“. Er wird einmalig initialisiert und steht persistent zur Verfügung.
  50. 50. 50 Singleton §  Wir nutzen einen Singleton um intern den Status der Tasklets zu tracken.
  51. 51. 51 Singleton §  Beim Start und beim Beendes eines Tasklets setzen wir den entsprechenden Status im Singleton.
  52. 52. 52 Singleton – weitere Use-Cases §  Vorhalten Tasklet-übergreifender Konfigurationsinformationen §  Server und Pfad von Datenbanken §  Credentials §  ... §  Nutzung Tasklet-übergreifender Funktionen §  Logging
  53. 53. 53 Agenda §  DOTS – was, wie warum §  Startup und Task Extension Point §  Singleton-Nutzung §  Konfiguration über Annotationen §  Custom Console Commands §  Log4J2
  54. 54. 54 Java-Annotationen allgemein §  Über Annotationen kann Quellcode mit Metadaten versehen werden. §  Eingeführt mit Java 5. §  Bekannte Vertreteter sind z. B. @Deprecated, @Override, @SurpressWarnings
  55. 55. 55 Java-Annotationen allgemein §  Es ist die Definition eigener Annotationen möglich. Diese werden zur Compiletime oder zur Runtime ausgewertet. §  Compiletime => z. B. Anzeige von Warnungen §  Runtime => Interpretation von Konfigurationen http://de.wikipedia.org/wiki/Annotation_(Java)
  56. 56. 56 DOTS-Konfiguration mit Annotationen §  Annontationen ersetzen (teils) die Konfiguration über die plugin.xml. §  Developer sollen damit die Möglichkeit haben die Konfiguration „besser“ vornehmen zu können. §  In der plugin.xml ist nur noch eine Basis-Konfiguration zu hinterlegen.
  57. 57. 57 DOTS-Konfiguration mit Annotationen §  Mögliche Annotationen sind: §  @Run §  @RunEvery §  @RunOnStart §  @Triggered §  @HungPossibleAfter
  58. 58. 58 DOTS-Konfiguration mit Annotationen
  59. 59. 59 DOTS-Konfiguration mit Annotationen
  60. 60. 60 DOTS-Konfiguration mit Annotationen
  61. 61. 61 DOTS-Konfiguration mit Annotationen
  62. 62. 62 Agenda §  DOTS – was, wie warum §  Startup und Task Extension Point §  Singleton-Nutzung §  Konfiguration über Annotationen §  Custom Console Commands §  Log4J2 §  Links
  63. 63. 63 Custom Console Commands §  Durch die Nutzung von Standard-Eclipse Komponenten kann der DOTS-Task um eigene OSGi Consolen Commands erweitert werden. §  Dies ist besonders nützlich, wenn man definierte Funktionen ohne direkte Nutzung der Tasklets bereitstellen möchte. §  Hierzu bedienen wir und der CommandProvider-Klasse aus dem Paket org.eclipse.osgi.framework.console.
  64. 64. 64 Custom Console Commands §  Die Commands werden dabei in einer eigenen Klasse implementiert. Dies ist dann im Activator zu registrieren.
  65. 65. 65 Commands-Klasse erstellen
  66. 66. 66 Commands-Klasse erstellen
  67. 67. 67 Commands-Klasse im Activator registrieren
  68. 68. 68 Custom Console Commands
  69. 69. 69 Agenda §  DOTS – was, wie warum §  Startup und Task Extension Point §  Singleton-Nutzung §  Konfiguration über Annotationen §  Custom Console Commands §  Log4J2 §  Links
  70. 70. 70 Log4J2 §  Log4J2 ist der Nachfolger des weit verbreiteten Java-Logging Frameworks Log4J. §  http://logging.apache.org/log4j/2.x/ §  Das Framework ist hoch-flexibel und skaliert extrem gut. §  Die Konfiguration kann über XML-Dateien oder Java-Code erfolgen.
  71. 71. 71 Log4J2-Implementierung in DOTS §  Erstellung eines Folder im Project
  72. 72. 72 Log4J2-Implementierung in DOTS §  Erstellung eines Folder im Projekt
  73. 73. 73 Log4J2-Implementierung in DOTS §  Hinzufügen der Libraries („api“ und „core“ sind erforderlich, beta9 vertestet, rc1 noch nicht) zum Folder per Drag‘n‘Drop.
  74. 74. 74 Log4J2-Implementierung in DOTS §  Hinzufügen der Libraries zum Build Path
  75. 75. 75 Log4J2-Implementierung in DOTS §  Hinzufügen der Libraries zum Classpath in der MANIFEST.MF
  76. 76. 76 Log4J2-Implementierung in DOTS §  Hinzufügen der Libraries zum Classpath in der MANIFEST.MF
  77. 77. 77 Log4J2-Implementierung in DOTS §  Wir erstellen eine neue Datei „log4j2.xml“ für die Log-Konfiguration.
  78. 78. 78 Log4J2-Implementierung in DOTS §  Definition der Logging-Parameter in der XML-Datei
  79. 79. 79 Log4J2-Implementierung in DOTS §  Erstellung der neuen Klasse „Log“ zum Handling des Logging.
  80. 80. 80 Log4J2-Implementierung in DOTS §  Implementierung der Klasse „Log“ als Singleton.
  81. 81. 81 Log4J2-Implementierung in DOTS §  Erweiterung des Startup-Tasklet um das Setzen der Java-Sytem- Property „mplog.domino.data“
  82. 82. 82 Log4J2-Implementierung in DOTS §  Beispiel-Implementierung des Logging im RunOnStart-Tasklet.
  83. 83. 83 Agenda §  DOTS – was, wie warum §  Startup und Task Extension Point §  Singleton-Nutzung §  Konfiguration über Annotationen §  Custom Console Commands §  Log4J2 §  Links
  84. 84. 84 Links §  Domino OSGi Tasklet Service auf OpenNTF §  http://www.openntf.org/main.nsf/project.xsp?r=project/OSGI %20Tasklet%20Service%20for%20IBM%20Lotus%20Domino §  readme.pdf im Download beachten, enthält vielfältige Informationen §  AD105 – Domino OSGi unleashed §  http://public.dhe.ibm.com/software/dw/ru/download/D-Savustjan- LCTY.pdf §  Lotusphere 2011
  85. 85. 85 Links §  SHOW112 – Domino OSGi DevelopmentDomino OSGi Tasklet Service auf OpenNTF §  http://www.slideshare.net/fiorep/domino-osgi-development §  Lotusphere 2012 §  BP207 – Meet the Java Application Server You Already Own §  http://www.slideshare.net/sbasegmez/bp207-download §  Connect 2013
  86. 86. 86 Links §  DOTS Debugging (Domino Debug Plug-In) §  http://www.openntf.org/internal/home.nsf/project.xsp?name=IBM +Lotus+Domino+Debug+Plugin
  87. 87. 87 Vielen Dank!

×