evenos Consulting GmbH 1
Plug-In Development
Jan Thielemann
evenos Consulting GmbH 2
Inhaltsverzeichnis
 Warum sollte ich Plug-Ins benutzen?
– Der ADempiere Weg
– Der iDempiere Weg
...
evenos Consulting GmbH 3
Warum sollte ich Plug-Ins benutzen?
ADempiere Weg:
 ADempiere auschecken und den Workspace konfi...
evenos Consulting GmbH 4
Warum sollte ich Plug-Ins benutzen?
iDempiere Weg:
 iDempiere auschecken und Workspace konfiguri...
evenos Consulting GmbH 5
Warum sollte ich Plug-Ins benutzen?
Gründe für die Nutzung von Plug-Ins:
 Funktionen für den pri...
evenos Consulting GmbH 6
Was kann ich mit Plug-Ins anstellen?
Spezielle Aufgaben:
 Payment Processor
 Shipment Processor...
evenos Consulting GmbH 7
Wie entwickle ich mein eigenes Plug-In?
 iDempiere Source Code auschecken und Workspace konfigur...
evenos Consulting GmbH 8
Wie entwickle ich mein eigenes Plug-In?
Best Practice - Neues Plug-In erstellen
evenos Consulting GmbH 9
Wie entwickle ich mein eigenes Plug-In?
evenos Consulting GmbH 10
Wie entwickle ich mein eigenes Plug-In?
evenos Consulting GmbH 11
Wie entwickle ich mein eigenes Plug-In?
evenos Consulting GmbH 12
Wie entwickle ich mein eigenes Plug-In?
evenos Consulting GmbH 13
Wie entwickle ich mein eigenes Plug-In?
evenos Consulting GmbH 14
Wie entwickle ich mein eigenes Plug-In?
evenos Consulting GmbH 15
Wie entwickle ich mein eigenes Plug-In?
Best Practice – Manifest konfigurieren
evenos Consulting GmbH 16
Wie entwickle ich mein eigenes Plug-In?
evenos Consulting GmbH 17
Wie entwickle ich mein eigenes Plug-In?
evenos Consulting GmbH 18
Wie entwickle ich mein eigenes Plug-In?
evenos Consulting GmbH 19
Wie entwickle ich mein eigenes Plug-In?
evenos Consulting GmbH 20
Wie entwickle ich mein eigenes Plug-In?
evenos Consulting GmbH 21
Wie entwickle ich mein eigenes Plug-In?
evenos Consulting GmbH 22
Wie entwickle ich mein eigenes Plug-In?
evenos Consulting GmbH 23
Wie entwickle ich mein eigenes Plug-In?
Best Practice - 2Pack
evenos Consulting GmbH 24
Wie entwickle ich mein eigenes Plug-In?
evenos Consulting GmbH 25
Wie entwickle ich mein eigenes Plug-In?
evenos Consulting GmbH 26
Wie entwickle ich mein eigenes Plug-In?
evenos Consulting GmbH 27
Wie entwickle ich mein eigenes Plug-In?
evenos Consulting GmbH 28
Wie entwickle ich mein eigenes Plug-In?
evenos Consulting GmbH 29
Wie entwickle ich mein eigenes Plug-In?
evenos Consulting GmbH 30
Wie entwickle ich mein eigenes Plug-In?
Best Practice - RegisterBuddy, Extensions and
Components
evenos Consulting GmbH 31
Wie entwickle ich mein eigenes Plug-In?
RegisterBuddy
evenos Consulting GmbH 32
Wie entwickle ich mein eigenes Plug-In?
RegisterBuddy
evenos Consulting GmbH 33
Wie entwickle ich mein eigenes Plug-In?
RegisterBuddy
evenos Consulting GmbH 34
Wie entwickle ich mein eigenes Plug-In?
RegisterBuddy
evenos Consulting GmbH 35
Wie entwickle ich mein eigenes Plug-In?
Extension
evenos Consulting GmbH 36
Wie entwickle ich mein eigenes Plug-In?
Extension
evenos Consulting GmbH 37
Wie entwickle ich mein eigenes Plug-In?
Component
evenos Consulting GmbH 38
Wie entwickle ich mein eigenes Plug-In?
Component
evenos Consulting GmbH 39
Wie entwickle ich mein eigenes Plug-In?
Component
evenos Consulting GmbH 40
Wie entwickle ich mein eigenes Plug-In?
Component
evenos Consulting GmbH 41
Wie entwickle ich mein eigenes Plug-In?
Component
evenos Consulting GmbH 42
Wie entwickle ich mein eigenes Plug-In?
Component
evenos Consulting GmbH 43
Wie entwickle ich mein eigenes Plug-In?
Component
evenos Consulting GmbH 44
Wie entwickle ich mein eigenes Plug-In?
Component
evenos Consulting GmbH 45
Wie entwickle ich mein eigenes Plug-In?
Best Practice - Plug-Ins in den Client integrieren
evenos Consulting GmbH 46
Wie entwickle ich mein eigenes Plug-In?
evenos Consulting GmbH 47
Wie entwickle ich mein eigenes Plug-In?
evenos Consulting GmbH 48
Wie entwickle ich mein eigenes Plug-In?
evenos Consulting GmbH 49
Wie entwickle ich mein eigenes Plug-In?
evenos Consulting GmbH 50
Wie entwickle ich mein eigenes Plug-In?
Best practice - Export eines Plug-Ins als p2
Repositorie...
evenos Consulting GmbH 51
Wie entwickle ich mein eigenes Plug-In?
evenos Consulting GmbH 52
Wie entwickle ich mein eigenes Plug-In?
evenos Consulting GmbH 53
Wie entwickle ich mein eigenes Plug-In?
evenos Consulting GmbH 54
Wie entwickle ich mein eigenes Plug-In?
evenos Consulting GmbH 55
Wie entwickle ich mein eigenes Plug-In?
evenos Consulting GmbH 56
Wie entwickle ich mein eigenes Plug-In?
evenos Consulting GmbH 57
Wie entwickle ich mein eigenes Plug-In?
evenos Consulting GmbH 58
Wie kann ich meine Plug-Ins ausliefern?
 „The p2 project is a sub-project of Equinox that focus...
evenos Consulting GmbH 59
Wie kann ich meine Plug-Ins ausliefern?
 Auf dem Server können Plug-Ins via Apache Felix Web Co...
evenos Consulting GmbH 60
●
installing/updating/removing plug-ins
evenos Consulting GmbH 61
●
installing/updating/removing plug-ins
evenos Consulting GmbH 62
Tips und Tricks
 Extending/Overriding base models
– Extend the base model and just create a new...
evenos Consulting GmbH 63
Tips und Tricks
 Wo finde ich Hilfe?
– iDempiere nahezu den selben Core wie ADempiere, daher si...
evenos Consulting GmbH 64
Fazit
 iDempiere benutzt das Equinox OSGi Framework
 iDempiere erlaubt es, Funktionen einfach ...
evenos Consulting GmbH 65
Vielen Dank für eure Aufmerksamkeit
Noch Fragen? Schreib mir eine Mail an jan.thielemann@evenos....
Nächste SlideShare
Wird geladen in …5
×

Präsentation plug in development

527 Aufrufe

Veröffentlicht am

Plugin Development Vortrag. Gehalten auf dem deutschen iDempiere Community Treffen

Veröffentlicht in: Bildung
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
527
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
5
Aktionen
Geteilt
0
Downloads
3
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie
  • Implementation der ModelFactory
  • feature.xml in org.adempiere.ui.swing-feature
  • Präsentation plug in development

    1. 1. evenos Consulting GmbH 1 Plug-In Development Jan Thielemann
    2. 2. evenos Consulting GmbH 2 Inhaltsverzeichnis  Warum sollte ich Plug-Ins benutzen? – Der ADempiere Weg – Der iDempiere Weg – Gründe für die Nutzung von Plug-Ins  Was kann man mit Plug-Ins anstellen? – Gewöhnliche Anwendungsfälle – Spezielle Anwendungsfälle  Wie entwickle ich mein eigenes Plug-In? – Erste Schritte – Best practice  Wie kann ich meine Plug-Ins ausliefern? – p2 Repositories – Installation eines Plug-Ins aus einer jar Datei via Apache Felix Web Console  Tips und Tricks  Fazit
    3. 3. evenos Consulting GmbH 3 Warum sollte ich Plug-Ins benutzen? ADempiere Weg:  ADempiere auschecken und den Workspace konfigurieren  Neues Projekt für Customizations erstellen oder Core Code verändern  Projekt bauen und customization.jar ersetllen  Server stoppen  Dateien ersetzen oder customization.jar installieren (via setup/silentsetup)  Migrationsscripte ausführen  Server starten Nachteile:  Unbequem für Entwickler  Fehleranfällig  Server muss gestoppt werden  Ant build.xml muss ggf. angepasst werden  Klassen in der customization.jar musen die richtige Verzeichnisstruktur aufweisen  Änderungen können nicht einfach ein- und ausgeschaltete werden
    4. 4. evenos Consulting GmbH 4 Warum sollte ich Plug-Ins benutzen? iDempiere Weg:  iDempiere auschecken und Workspace konfigurieren  Plug-In Projekt erstellen  Benutzung von Extension Points oder Component Definitions um Funktionen bereit zu stellen  Plug-In exportieren  Installation und Start des Plug-Ins zur Laufzeit Vorteile:  Modulare Architekture  Einfach zu erlernen  Server muss nicht gestoppt werden  Core-Klassen müssen nicht mehr geändert werden  Dependency Management  Einfache Erweiterbarkeit  Einfaches Updaten des Cores ohne Verlust von Funktionalität Nachteile:  Modifikation der Core-Klassen nicht möglich  Es sind möglicherweise nicht alle Funktionen „OSGi-Ready“
    5. 5. evenos Consulting GmbH 5 Warum sollte ich Plug-Ins benutzen? Gründe für die Nutzung von Plug-Ins:  Funktionen für den privaten Gebrauch entwickeln und immer noch in der Lage sein, die Community mit Bug Fixes für den Core zu versorgen (separate Projekte und Repositories)  Einfaches und schnelles Testen neuer Funktionen mit Möglcihkeit eines einfachen Rollbacks.  Gliederung von Funktionsbereichen in Plug-Ins (Kunde A bekommt Plug-In A und B, Kunde B nur Plug-In B  iDempiere Core kann stehts aktuell gehalten werden  Funktionen lokal entwickeln und einfach auf einem produktiven System einspielen.  Es wird kein so tiefes Verständnis für den Core benötigt um Plug-Ins zu entwickeln  Marktplatzes für Erweiterungen
    6. 6. evenos Consulting GmbH 6 Was kann ich mit Plug-Ins anstellen? Spezielle Aufgaben:  Payment Processor  Shipment Processor  Attachements  Pack In/Out  PIPO Element Handlers  Tabs  Menus Gewöhnliche Aufgaben:  Model  Modelvalidator  Processes  Callout  Document  Form  Editor  Infowindow  Lookup
    7. 7. evenos Consulting GmbH 7 Wie entwickle ich mein eigenes Plug-In?  iDempiere Source Code auschecken und Workspace konfigurieren – Tutorials: http://www.globalqss.com/wiki/index.php/IDempiere  Plug-In Development Tutorials im iDempiere Wiki – http://wiki.idempiere.org/en/Category:Plug-In_Development  Redhuan D. Oons Forum enthält auch viele nützliche Informationen – http://red1.org/adempiere/index.php  Von existierende Plug-Ins lernen – iDempiere besteht aus Plug-Ins und viele von ihnen benutzen Extension Points und Component Definitions an denen man sich orrientieren kann  iDempiere Wiki und Google Groups – http://wiki.idempiere.org/wiki/Main_Page – https://groups.google.com/forum/#!forum/idempiere  IRC Channel #idempiere (irc.freenode.net) Erste Schritte:
    8. 8. evenos Consulting GmbH 8 Wie entwickle ich mein eigenes Plug-In? Best Practice - Neues Plug-In erstellen
    9. 9. evenos Consulting GmbH 9 Wie entwickle ich mein eigenes Plug-In?
    10. 10. evenos Consulting GmbH 10 Wie entwickle ich mein eigenes Plug-In?
    11. 11. evenos Consulting GmbH 11 Wie entwickle ich mein eigenes Plug-In?
    12. 12. evenos Consulting GmbH 12 Wie entwickle ich mein eigenes Plug-In?
    13. 13. evenos Consulting GmbH 13 Wie entwickle ich mein eigenes Plug-In?
    14. 14. evenos Consulting GmbH 14 Wie entwickle ich mein eigenes Plug-In?
    15. 15. evenos Consulting GmbH 15 Wie entwickle ich mein eigenes Plug-In? Best Practice – Manifest konfigurieren
    16. 16. evenos Consulting GmbH 16 Wie entwickle ich mein eigenes Plug-In?
    17. 17. evenos Consulting GmbH 17 Wie entwickle ich mein eigenes Plug-In?
    18. 18. evenos Consulting GmbH 18 Wie entwickle ich mein eigenes Plug-In?
    19. 19. evenos Consulting GmbH 19 Wie entwickle ich mein eigenes Plug-In?
    20. 20. evenos Consulting GmbH 20 Wie entwickle ich mein eigenes Plug-In?
    21. 21. evenos Consulting GmbH 21 Wie entwickle ich mein eigenes Plug-In?
    22. 22. evenos Consulting GmbH 22 Wie entwickle ich mein eigenes Plug-In?
    23. 23. evenos Consulting GmbH 23 Wie entwickle ich mein eigenes Plug-In? Best Practice - 2Pack
    24. 24. evenos Consulting GmbH 24 Wie entwickle ich mein eigenes Plug-In?
    25. 25. evenos Consulting GmbH 25 Wie entwickle ich mein eigenes Plug-In?
    26. 26. evenos Consulting GmbH 26 Wie entwickle ich mein eigenes Plug-In?
    27. 27. evenos Consulting GmbH 27 Wie entwickle ich mein eigenes Plug-In?
    28. 28. evenos Consulting GmbH 28 Wie entwickle ich mein eigenes Plug-In?
    29. 29. evenos Consulting GmbH 29 Wie entwickle ich mein eigenes Plug-In?
    30. 30. evenos Consulting GmbH 30 Wie entwickle ich mein eigenes Plug-In? Best Practice - RegisterBuddy, Extensions and Components
    31. 31. evenos Consulting GmbH 31 Wie entwickle ich mein eigenes Plug-In? RegisterBuddy
    32. 32. evenos Consulting GmbH 32 Wie entwickle ich mein eigenes Plug-In? RegisterBuddy
    33. 33. evenos Consulting GmbH 33 Wie entwickle ich mein eigenes Plug-In? RegisterBuddy
    34. 34. evenos Consulting GmbH 34 Wie entwickle ich mein eigenes Plug-In? RegisterBuddy
    35. 35. evenos Consulting GmbH 35 Wie entwickle ich mein eigenes Plug-In? Extension
    36. 36. evenos Consulting GmbH 36 Wie entwickle ich mein eigenes Plug-In? Extension
    37. 37. evenos Consulting GmbH 37 Wie entwickle ich mein eigenes Plug-In? Component
    38. 38. evenos Consulting GmbH 38 Wie entwickle ich mein eigenes Plug-In? Component
    39. 39. evenos Consulting GmbH 39 Wie entwickle ich mein eigenes Plug-In? Component
    40. 40. evenos Consulting GmbH 40 Wie entwickle ich mein eigenes Plug-In? Component
    41. 41. evenos Consulting GmbH 41 Wie entwickle ich mein eigenes Plug-In? Component
    42. 42. evenos Consulting GmbH 42 Wie entwickle ich mein eigenes Plug-In? Component
    43. 43. evenos Consulting GmbH 43 Wie entwickle ich mein eigenes Plug-In? Component
    44. 44. evenos Consulting GmbH 44 Wie entwickle ich mein eigenes Plug-In? Component
    45. 45. evenos Consulting GmbH 45 Wie entwickle ich mein eigenes Plug-In? Best Practice - Plug-Ins in den Client integrieren
    46. 46. evenos Consulting GmbH 46 Wie entwickle ich mein eigenes Plug-In?
    47. 47. evenos Consulting GmbH 47 Wie entwickle ich mein eigenes Plug-In?
    48. 48. evenos Consulting GmbH 48 Wie entwickle ich mein eigenes Plug-In?
    49. 49. evenos Consulting GmbH 49 Wie entwickle ich mein eigenes Plug-In?
    50. 50. evenos Consulting GmbH 50 Wie entwickle ich mein eigenes Plug-In? Best practice - Export eines Plug-Ins als p2 Repositories oder als .jar
    51. 51. evenos Consulting GmbH 51 Wie entwickle ich mein eigenes Plug-In?
    52. 52. evenos Consulting GmbH 52 Wie entwickle ich mein eigenes Plug-In?
    53. 53. evenos Consulting GmbH 53 Wie entwickle ich mein eigenes Plug-In?
    54. 54. evenos Consulting GmbH 54 Wie entwickle ich mein eigenes Plug-In?
    55. 55. evenos Consulting GmbH 55 Wie entwickle ich mein eigenes Plug-In?
    56. 56. evenos Consulting GmbH 56 Wie entwickle ich mein eigenes Plug-In?
    57. 57. evenos Consulting GmbH 57 Wie entwickle ich mein eigenes Plug-In?
    58. 58. evenos Consulting GmbH 58 Wie kann ich meine Plug-Ins ausliefern?  „The p2 project is a sub-project of Equinox that focuses on provisioning technology for OSGi-based applications. Although p2 has specific support for installing Eclipse and Equinox-based applications, it includes a general-purpose provisioning infrastructure that can be used as the basis for provisioning solutions for a wide variety of software applications.“ - http://www.eclipse.org/equinox/p2/  Kurz: Möglichkeit zum Installieren und Updateen von iDempiere und seinen Plug-Ins übers Internet  iDempiere und Plug-Ins können in einem zentralen Repository gehostet werden  Denkbar wäre ein iDempiere Marketplace für Plug-Ins  Update iDempiere via Terminal: – java -Dosgi.noShutdown=false -Dosgi.compatibility.bootdelegation=true -Dosgi.install.area=director -jar plugins/org.eclipse.osgi_3.7.*.jar -application org.eclipse.equinox.p2.director -consoleLog -profileProperties org.eclipse.update.install.features=true -destination $DESTINATION -repository http://downloads.sourceforge.net/project/red1/p2/idempiere-server/ -u org.adempiere.server.product – java -Dosgi.noShutdown=false -Dosgi.compatibility.bootdelegation=true -Dosgi.install.area=director -jar plugins/org.eclipse.osgi_3.7.*.jar -application org.eclipse.equinox.p2.director -consoleLog -profileProperties org.eclipse.update.install.features=true -destination $DESTINATION -repository http://downloads.sourceforge.net/project/red1/p2/idempiere-server/ -i org.adempiere.server.product p2 repositories:
    59. 59. evenos Consulting GmbH 59 Wie kann ich meine Plug-Ins ausliefern?  Auf dem Server können Plug-Ins via Apache Felix Web Console installiert werden – http://host:8080/osgi/system/console/bundles  Server muss nicht gestoppt oder neu gestartet werden  Terminal nicht notwendig  Selbsterklärend Apache Felix Web Console
    60. 60. evenos Consulting GmbH 60 ● installing/updating/removing plug-ins
    61. 61. evenos Consulting GmbH 61 ● installing/updating/removing plug-ins
    62. 62. evenos Consulting GmbH 62 Tips und Tricks  Extending/Overriding base models – Extend the base model and just create a new M class instead creating I, X and M classes – Provide your model via ModelFactory – This way, core classes can still cast your modified model  Test plug-ins in Eclipse – Open Run Configurations and select the application you want to run – Switch to the Plug-ins tab and check the plug-ins you want to start – Start the application – Type „ss“ on the console to see the state of each plugin – Start plug-ins with „start <nr>“ – Stop plug-ins with „stop <nr>“ – Remove plug-ins with „uninstall <nr>“  OSGi console when starting the server via command line – open idempiere-server.sh – look for the number after „-console“ – to connect to the OSGi console use telnet • e. g.: telnet localhost 12612
    63. 63. evenos Consulting GmbH 63 Tips und Tricks  Wo finde ich Hilfe? – iDempiere nahezu den selben Core wie ADempiere, daher sind die ADempiere Bücher immer noch gut geeignet um ein tieferes Verständnis zu entwickeln • ADempiere 3.6 Cookbook by Ajit Kumar • ADempiere 3.4 ERP Solutions by Bayu Cahya Pamungkas – ADempiere wiki: http://www.adempiere.com/ADempiere_ERP – iDempiere wiki: http://wiki.idempiere.org/wiki/Main_Page – Google group: https://groups.google.com/forum/?fromgroups#!forum/idempiere – Redhuan D. Oon forum: http://red1.org/adempiere/index.php – Global Quality System and Solutions wiki: http://www.globalqss.com/wiki/index.php/IDempiere – Freenode irc: #idempiere  Bug gefunden? – Prüfen ob der Bug auch im iDempeire Demo System auftritt: https://demo.idempiere.com/ – Im IRC fragen, ob der Fehler auch von anderen reproduzierbar ist oder ob eventuell ein Benutzungsfehler vorliegt – Ticket anlegen • Ticketsystem: http://jira.idempiere.com
    64. 64. evenos Consulting GmbH 64 Fazit  iDempiere benutzt das Equinox OSGi Framework  iDempiere erlaubt es, Funktionen einfach und schnell per Plug-In bereit zu stellen  iDempiere lässt sich besser pflegen als ADempiere  2Pack ist gut geeignet um Informationen zwischen zwei iDempiere Systemen auszutauschen  iDempiere ist anfängerfreundlicher als ADempiere  iDempiere erlaubt es, Funktionen bereit zu stellen, ohne den möglichen Source Code eines Kunden zu kennen  iDempiere ist sehr einfach zu erlenen, wenn man sich bereits mit ADempiere auskennt
    65. 65. evenos Consulting GmbH 65 Vielen Dank für eure Aufmerksamkeit Noch Fragen? Schreib mir eine Mail an jan.thielemann@evenos.de

    ×