Lotus Notes / Domino Sonstiges > Java und .NET mit Notes/Domino
Neue Serie: Eclipse plug-ins im Praxis Test
flaite:
Nun: Die Hibernate Tools. (http://www.hibernate.org/255.html)
Hibernate ist ein relativ komplexes openSource Objekt-Relational-Mapping Tool. Ein O/R-Mapping Tool macht die Verknüpfung zwischen einem Objektmodell und einer Datenbank einfacher.
Man kann sich das ein bischen wie LEI vorstellen, nur eben viel durchdachter und von echten Profis entwickelt.
Hibernate stellt für verschiedene Aufgaben nun Eclipse plug-ins zur Verfügung.
Im Plug-in gibts eine brauchbare Doku, die in der Eclipse Hilfe als eigener Eintrag erscheint.
Um damit arbeiten zu können braucht man:
a) nicht ganz schwache Nerven (das Log meldet einige Error und manchmal funktionieren Sachen nicht, nach Eclipse Neustart dann aber doch und Rebuild/Refresh Project sind dein Freund -> ist aber noch in beta)
b) gewisse Hibernate und auch Eclipse Kenntnisse
Die Funktionalität ist aber sehr umfangreich und generiert (nach ein bischen Kampf) vernünftige Ergebnisse. Das Tool generierte mir aus einem RDBMS Schema mit 6 Tabellen mit einer Menge Foreign Key Beziehungen alles was man für einen hibernate layer braucht:
- das hibernate config-file
- die mapping-files
- POJOs -> einfache Java-Klasse, die im Objektmodell die Daten aus dem RDBMS aufnehmen. POJOs sind sowas wie EJB Entity Beans (igitt) für die freie Welt.
- als Bonus noch Klassen für den DAO Access Layer.
Eingehende Tests ergaben nun, dass das alles funktioniert (die generierten Klassen bekommt man eh als java-source files)
Ausserdem gibts noch eine noch nicht so dolle aber funktionierende Oberfläche, auf der man mit HQL-Queries rumexperimentieren kann (HQL ist ein spezielles SQL für Hibernate).
Und ein extrem unübersichtliche UML-Klassen Diagramm der POJOs (Ausschnitt s. screenshot). --> muß noch dran gearbeitet werden. Würde schon helfen, wenn man die Klassen verschieben könnte. Ist nicht.
Hibernate ist sehr verbreitet in Java-Land und EJB-3 (an dem gerade gearbeitet wird und das eine Art EJB-Revolution darstellt) übernimmt viele Konzepte von Hibernate.
Sollte sich jemand mal mit diesem Posterboy von openSource Java beschäftigen, kann man die Eclipse Tools nur empfehlen, wenn man diese ganzen mapping-Files, POJOs und DAO-Klassen schon mal von Hand erzeugt hat (sonst wird man vermutlich wahnsinnig).
Danach ist das aber ein sehr hilfreiches Tool, weil diese ganzen mapping-Files, POJOs und DAO-Klassen eben total langweilig zu schreiben sind und das Tool ziemlich vernünftig aussehenden Java Code generiert. Besser als ich ihn selbst geschrieben hätte.
Einzige Probleme:
- Es wird an ein paar Stellen Java5 Code generiert, obwohl ich das nicht angefordert habe und das ein Java1.4 Projekt ist
- Es gibt ein festes Binding auf JNDI, was ich auch nicht will.
Beides konnte aber leicht von Hand korrigiert werden.
Gruß Axel
Mark³:
hier passt ganz gut der BPEL PM Designer von Oracle rein. Ich habe versucht, den berühmten GetHauptstadt-Webservice damit anzusprechen, leider hatte ich nicht die Zeit, mich so in das Tool einzuarbeiten, dass ich wusste, was ich tat.
Ich habe den Webservice in Notes als WSDL exportiert und diese Datei dann im BPEL Plugin von Eclipse importiert. Dort habe ich ein neues BPEL Projekt gestartet und als Partnerlink den Webservice eingebunden. Im angehängten Bild sieht man im Kästchen Hauptstadt_Domino den Webservice, zusätzlich sieht man die XML-Struktur, die man über den Befehl 'explore' aufruft. Zum Testen muss man den gesamten Prozess irgendwie auf einem BPEL Server veröffentlichen (den habe ich auch bei mir lokal installiert). Wie man allerdings das Ding ausführt und die Parameter fürs Testen übergibt habe ich noch nicht ausprobiert.
Im Prinzip werden von diesem Tool wsdl-Dateien grafisch dargestellt und grafisch bearbeitbar. Beim Speichern wird über Ant das Zeug kompiliert bzw. gebaut. Leider bekomme ich immer Fehler weil mein Namespace irgendwie unbekannt oder falsch ist, ich hoffe mich demnächst hier mal etwas mehr mit beschäftigen zu können, um auch zu wissen, was ich hier eigentlich tue O0
Grob betrachtet kann ich mit diesem PlugIn jedenfalls diverse WebServices miteinander kombinieren und sogar eine gewisse Workflow-Funktionalität einbauen. Welche Rolle hierbei der BPEL Server (ein Java Applicationserver von Oracle) genau spielt ist auch noch offen. Vielleicht interessiert sich ja der eine oder die andere hierfür und testet das auch mal aus. Ein schönes Beispiel wäre das Nutzen des Amazon-Webservices (den kennt fast jeder) um ihn mit Domino zu koppeln. Ich habe z.B. eine Bibliotheksdatenbank, die über die ASIN (ISBN) die Buchdaten zu einem Buch bei Amazon nachlädt. Momentan läuft da einfach ein LotusScript, dies könnte man ersetzen durch einen Webservice auf Domino-Seite, der über BPEL mit Amazon gekoppelt wird. Natürlich sind hier erstmal keine Vorteile gegenüber der bisherigen Implementation, aber theoretisch ist das interessant...
flaite:
BPEL ist eine standardisierter xml-Standard (eigenes Schema) zur Beschreibung von interaktiven Geschäftsprozessen. Für mich ist Geschäftsprozess nichts anderes als Workflows.
http://www-128.ibm.com/developerworks/library/specification/ws-bpel/
Die graphische Darstellung basiert also auf einer xml Datei, denk ich.
Namespace-issues können sehr komplex werden, gerade in Kontext von Webservices. Das hat mich auch schon bei wesentlich unkomplexeren Sachen als das hier zum Weinen gebracht.
AFAIK geht es auch darum, dass der Serveranbieter verteilte Services wie Transaktionen und Security bereitstellt.
Ich halte das auch für ein interessantes Thema, mit dem ich mich auch bald mehr hands-on beschäftigen werde.
Mark³:
das nächste PlugIn welches ich nutzen werde schreibe ich mir selbst O0
Hat zwar nix mit Notes zu tun (AddOns für HP Openview Service Desk) aber der Notes Rich Client funzt genauso. Hab mir gerade ein Buch dazu bestellt (das obere von den beiden)
http://www.amazon.de/exec/obidos/external-search/028-6901985-5547745?keyword=rich+client+eclipse&index=blended&tag=marksdominosi-21&tag-id=marksdominosi-21&I3.x=0&I3.y=0&I3=Los
Mal sehen ob das hilft. Die Anwendung zum Laufen zu bringen war nicht so schwierig aber so Details wie globale Zugriffe auf eine Openview-Session oder Preferences einfach abrufen ist schwierig die optimale Lösung zu finden im Web...
Vielleicht kann ich ein paar Tips geben wenn ich weiter gekommen bin.
Navigation
[0] Themen-Index
[*] Vorherige Sete
Zur normalen Ansicht wechseln