Unterstützung von Enterprise JavaBeans für Borland

Werbung
Innovator 11 classiX
Unterstützung von
Enterprise JavaBeans
HowTo
für Borland JBuilder
Alexander Borschet
www.mid.de
HowTo Unterstützung von Enterprise JavaBeans für Borland JBuilder
Inhaltsverzeichnis
EJBs für Borland JBuilder mit Innovator classiX unterstützen............................................4
Was sind Enterprise JavaBeans? ...................................................................................4
Was ist JBuilder? ............................................................................................................4
Was ist BES? ..................................................................................................................4
Wie werden EJBs unterstützt? ........................................................................................4
UML-Modell mit Java-Profil anlegen ...............................................................................5
Modell für Enterprise JavaBeans konfigurieren ..................................................................5
Add-On Java EJB 2.x für Borland laden .........................................................................5
Container Managed Entitiy Beans und das Datenmodell ...................................................6
Datenmodell erstellen .....................................................................................................6
Beziehungen zwischen Beans modellieren ........................................................................7
Beziehungen zwischen Bean-Klassen im Klassendiagramm darstellen.........................7
Bean-Klassen hinzufügen ...............................................................................................7
Bean Managed Persistence Entity Bean erstellen ..........................................................7
Stateless Session Bean erstellen....................................................................................7
Stateful Session Bean erstellen ......................................................................................7
Container Managed Relationship erstellen .....................................................................8
Lokale Referenz erstellen ...............................................................................................8
Remote-Referenz erstellen .............................................................................................8
Anzeige von Attributen und Methoden festlegen ............................................................8
EJB-Elementeigenschaften im Klassendiagramm anzeigen...........................................8
Attribute, Methoden und Home/Remote-Interface einer Bean modellieren ........................9
Klassendiagramm für eine Bean-Klasse und ihre Schnittstellenklassen erstellen..........9
Bean-Klasse hinzufügen .................................................................................................9
Stateless Session Bean erstellen....................................................................................9
Stateful Session Bean erstellen ....................................................................................10
Message Driven Bean erstellen ....................................................................................10
Schnittstellen einer Bean-Klasse festlegen...................................................................10
Business-Methode erstellen..........................................................................................10
Creator-Methode erstellen ............................................................................................10
Home-Methode erstellen...............................................................................................10
Select-Methode erstellen ..............................................................................................11
Finder-Methoden erstellen ............................................................................................11
Anzeige von Attributen und Methoden festlegen ..........................................................11
EJB-Elementeigenschaften im Klassendiagramm anzeigen.........................................11
Forward-Engineering-Aktion Java Apply EJB 2.x Pattern.............................................12
Verzeichnisstruktur von JBuilder...................................................................................13
Aktionen für die Source-Code-Generierung..................................................................15
EJB-Deployment-Descriptor erstellen...............................................................................15
EJBs in JBuilder vorbereiten .........................................................................................15
Komponente ejb-jar.xml erstellen..................................................................................15
EJBs in JBuilder bearbeiten ..........................................................................................16
Forward-Engineering-Aktion Java Generate EJB 2.x DD for Borland...........................16
Value Object erzeugen .....................................................................................................16
Forward-Engineering-Aktion Java Create Value Objects..............................................16
Anhang: Beschreibung des Add-Ons Java EJB ...............................................................17
Zweck............................................................................................................................17
Vorausgesetzte Profile ..................................................................................................17
Benötigte Elemente des UML-Metamodells..................................................................17
Kommandos zum Erstellen von Elementen ..................................................................18
Bedeutung der Klassen innerhalb der EJB-Spezifikation..............................................18
Bedeutung der Attribute innerhalb der EJB-Spezifikation .............................................19
Bedeutung der Methoden innerhalb der EJB-Spezifikation ..........................................19
Bedeutung der Engineering-Aktionen Apply EJB Pattern und Apply EJB 2.x Pattern ..19
Anhang: Die wichtigsten im Deployment Deskriptor generierten Einträge .......................20
Zugrunde liegendes Datenmodell .................................................................................20
<...enterprise-Beans.entity> ..........................................................................................21
<...enterprise-Beans.entity.cmp-field> ..........................................................................21
<...ejb-relation> .............................................................................................................22
<...query-method>.........................................................................................................23
2
HowTo Unterstützung von Enterprise JavaBeans für Borland JBuilder
<...ejb-ref>, <...ejb-local-ref>.........................................................................................24
JNDI-Namen .................................................................................................................24
Mapping zum Datenmodell ...........................................................................................25
3
HowTo Unterstützung von Enterprise JavaBeans für Borland JBuilder
EJBs für Borland JBuilder mit Innovator classiX unterstützen
Was sind Enterprise
JavaBeans?
Enterprise JavaBeans (EJB) ist eine durch Sun Microsystems veröffentliche Spezifikation
u.a. zur Modellierung von Klassen für eine komponentenbasierte verteilte Architektur von
Business-Applikationen. Näheres über die Spezifikation finden Sie unter http://java.sun.com.
EJB unterscheidet Entity Beans und Session Beans. Entity Beans sind persistent und werden mit einem Primärschlüssel ausgezeichnet, anhand dessen Instanzen identifiziert und
gesucht werden können. Sind am Primärschlüssel mehrere Attribute beteiligt, dann werden
sie zu einer eigenständigen Primärschlüsselklasse zusammengefasst. Session Beans dagegen sind nicht persistent. Sie sind einem Client-Prozess zugeordnet und werden beim
Beenden des Client-Prozesses wieder zerstört.
In verteilten Anwendungen wird mit einer Bean nicht direkt kommuniziert. Stattdessen stellt
das Home-Interface einer Bean die Methoden zum Erstellen und Suchen von Instanzen zur
Verfügung. Die fachlichen Methoden einer Bean werden über das Remote-Interface angesprochen.
Zum Behandeln von Nachrichten sieht EJB den Einsatz von Message Driven Beans vor.
Was ist JBuilder?
Borland JBuilder ist eine plattformübergreifende Umgebung für die Entwicklung leistungsfähiger Enterprise-Java-Anwendungen. JBuilder beschleunigt die Entwicklung von EJB-,
Web-, Web Services-, XML-, Mobile- und Datenbankanwendungen.
http://www.borland.de/jbuilder/
Was ist BES?
Der Borland Enterprise Server ist die standardisierte Laufzeitumgebung für alle BusinessAnwendungen der Plattformen J2EE, CORBA und Web Services.
http://www.borland.de/bes/
Wie werden EJBs
unterstützt?
Innovator unterstützt EJBs innerhalb der objektorientierten Modellierung mit Hilfe der
UML 1.4 für die Sprache Java durch die Edition Innovator Object classiX. Sie unterstützt die
Modellierung und Generierung von EJBs gemäß der Spezifikation in der Version 2.x mit dem
kostenpflichtigen Add-On Java EJB 2.x for Borland. In der Edition Innovator
Data classiX erstellen Sie das korrespondierende Datenmodell.
Die Deklaration von Klassen, Attributen und Methoden wird um spezielle Stereotypen und
EJB-Elementeigenschaften ergänzt, die während der Modellierung und Generierung ausgewertet werden. Modelliert wird dabei jeweils nur die Bean-Klasse. Die abgeleiteten Klassen
(z.B. Remote/Home-Interface und Primary-Key-Klasse) werden durch sogenannte Engineering-Aktionen erzeugt bzw. an die Modellierung der Bean-Klasse angepasst. Außerdem
werden bei der Klasse die jeweiligen EJB-Methoden (ejBCreate, ejbActivate,
ejbPassivate, etc.) erstellt.
Folgende Bean-Klassen werden unterstützt:
„ Container Managed Entity Bean
„ Bean Managed Entity Bean
„ Stateless Session Bean
„ Stateful Session Bean
„ Message Driven Bean
Innovator Object classiX erweitert die Java-Deklaration für Klassen, Attribute und Methoden
durch zusätzliche Elementeigenschaften (in UML als Tagged Values bezeichnet) und Stereotype. Durch Werte dieser Elementeigenschaften wird festgelegt, welche Rolle eine Klasse, ein Attribut bzw. eine Methode im Rahmen der EJB Spezifikation spielt.
Für die EJB-Erweiterung werden zwei neue Klassendiagramme bereit gestellt. Ein Klassendiagramme mit dem Stereotyp «Java EJB Definition Class Diagram» enthält eine BeanKlasse und ihre Remote/Home-Schnittstellen sowie ggf. ihre Primary-Key-Klasse. In diesem
Diagramm werden Kommandos zum Erstellen von EJB-Klassen, -Attributen und -Methoden
bereitgestellt.
Das Klassendiagramm mit dem Stereotyp «Java EJB Relationship Class Diagram» enthält
nur Bean-Klassen, nicht aber deren zugehörigen Schnittstellenklassen. Dieses Diagramm
dient zum Erstellen von Beziehungen zwischen EJBs. In diesem Diagramm werden Kommandos zum Erstellen von Beziehungen zwischen EJBs bereitgestellt.
4
HowTo Unterstützung von Enterprise JavaBeans für Borland JBuilder
Die zur Verfügung gestellte Engineering-Aktion Java Apply EJB Pattern macht die
Annahme, dass im Modell Änderungen ausschließlich an Entity Beans, Session Beans oder
Message Driven Beans vorgenommen werden. Diese Änderungen werden dann automatisch in das zugeordnete Home- bzw. Remote-Interface oder die zugeordnete Primary-KeyKlasse propagiert. Falls diese noch nicht existierten, werden sie erzeugt.
Container Managed Entity Beans erstellen Sie aufgrund eines Datenmodells, das Sie zuvor
mit der Edition Innovator Data erstellt haben, durch die Engineering Aktion Create EJBs
from Database Model – einer Variante des ER-OO-Mappings.
Die Engineering-Aktion konfiguriert die Verbindung zum Datenmodell und erzeugt die Container Managed Entity Beans zu den Tabellen des Datenmodells, die seit dem letzten Generatorlauf erzeugt wurden. Die Aktion erzeugt neben den Entity Beans auch deren Attribute
und Beziehungen, nicht jedoch die Home/Remote-Schnittstellen dieser Bean-Klassen.
Bei allen EJB-Klassen bzw. -Schnittstellen handelt es sich um ganz normale Java-Klassen
mit dem Stereotyp «class» bzw. «interface». Die Java-Code-Generierung, das Forward-,
Reverse- bzw. Round-Trip-Engineering behandelt diese Klassen genauso wie die anderen
Java-Klassen.
UML-Modell mit Java-Profil
anlegen
Ein UML-Modell mit der Modellvorlage UML Profile for Java ist Voraussetzung für
die Generierung von Enterprise JavaBeans.
Falls dies nicht existiert, legen Sie ein neues Java-Modell an.
So gehen Sie vor
Um ein neues UML-Modell mit der Vorlage UML Profile for Java anzulegen:
» Selektieren Sie im Repositorybrowser das Repository, in dem das Modell erstellt werden soll (z.B. demo81de).
»
»
»
Wählen Sie den Menübefehl Administration>Anmelden, um sich als Administrator anzumelden.
Wählen Sie den Menübefehl Modell>Neu>UML-Modell.
Die gleichnamige Dialogbox erscheint.
Geben Sie im Eingabefeld Name einen Namen für das UML-Modell ein.
»
Wählen Sie in der Auswahlliste Modellvorlage den Eintrag UML Profile
for Java(en) bzw. UML Profile for Java(de).
»
Wählen Sie in der Auswahlliste Benutzer-/Gruppen-Konfiguration den
Eintrag MID Demoteam for UML Profiles.
»
Schließen Sie die Dialogbox mit [OK].
»
Öffnen Sie das Modell und melden Sie sich mit dem Namen MID GmbH und dem
Passwort MID an.
Modell für Enterprise JavaBeans konfigurieren
Add-On Java EJB 2.x für
Borland laden
Das Add-On erfordert eine Modellstruktur, die Sie nach dem Laden des Add-Ons erstellen
lassen.
So gehen Sie vor
Um das Add-On für die EJB-Version 2.x zu laden:
» Wählen Sie im Modellbrowser den Menübefehl Modell>Administration>
Anmelden... , um sich als Administrator anzumelden.
»
»
»
Wählen Sie Modell>Konfiguration>Modelloptionen laden....
Die gleichnamige Dialogbox erscheint.
Aktivieren Sie das Alternativfeld Add-On in der Gruppe Konfigurationsdatei.
Wählen Sie aus der Auswahlliste den Eintrag Java EJB 2.x for Borland.
Die Auswahlfelder in der Gruppe Optionsgruppen lassen Sie unverändert.
»
Schließen Sie die Dialogbox mit [Anwenden] und [Schließen].
Eine Dialogbox informiert über die benötigte Lizenz.
5
HowTo Unterstützung von Enterprise JavaBeans für Borland JBuilder
So gehen Sie vor
Um die erforderliche Modellstruktur herzustellen:
» Wählen Sie den Menübefehl Modell>Konfiguration>Modellstruktur.
»
Selektieren Sie in der Liste Verfügbare Vorlagen den Eintrag Java EJB
2.x Add On.
»
»
Wählen Sie in der Liste Struktur erstellen in Systempaketen das
Systemmodell aus, dessen Struktur erweitert werden soll.
Die Modellkonfiguration wird um folgende Elemente erweitert:
ƒ EJB-Elementeigenschaften für Klassen, Attribute und Methoden
ƒ EJB-Schablonen im Klassendiagramm für Klassen, Attribute, Methoden
ƒ EJB-Auswahl- und -Anzeigefilter im Klassendiagramm für Klassen, Attribute und Methoden
ƒ Zusätzliche Standardmethoden für EJB-Attribute
ƒ Forward-Engineering-Aktionen für Klassen: Apply EJB Pattern 2.x (Anwendung des EJB 2.x-Patterns auf Java-Design-Klassen)
ƒ Forward-Engineering-Aktionen für Komponenten: Java Generate EJB 2.x
DD for Borland (Deployment Descriptor für Borland erzeugen)
ƒ Forward-Engineering-Aktionen für Komponenten Object model to file
(code generation for EJB 2.x) (spezielle Java-Code-Generierung für
EJB 2.x)
ƒ Reverse-Engineering-Aktion für Komponenten: Object model from file
(reverse engineering for EJB 2.x) (spezieller Java-Code-Import
für EJB 2.x)
ƒ Forward-Engineering-Aktionen für Klassen Java Create Value Objects
(Erstellen eines Value-Objekts basierend auf einer Entity Bean)
ƒ Engineering-Aktionen: Create EJBs from Database Model (Entity
Beans aus dem Datenmodell erzeugen)
Schließen Sie die Dialogbox.
Container Managed Entitiy Beans und das Datenmodell
Datenmodell erstellen
Container Managed Entity- (CMP) Beans und deren Container Managed Attributes erstellen
Sie nicht direkt in der Edition Innovator Object classiX. Diese werden durch die Engineering
Aktion Create EJBs from Database Model, einer Variante des ER-OOMappings, an Hand eines Datenmodells erzeugt. Das Datenmodell haben Sie mit der Edition
Innovator Data erstellt. Achten Sie bitte darauf, dass alle Attribute des Datenmodells einem
Datenelement mit Java/RMI-Implementierung zugeordnet sind. Wie Sie mit der Edition Innovator Data arbeiten, entnehmen Sie bitte der zugehörigen Dokumentation.
So gehen Sie vor
Um CMP-Entitäten an Hand des Datenmodells zu erzeugen:
» Wählen Sie den Menübefehl Engineering>Aktion ausführen>Create
EJBs from Database Model.
»
Beim erstmaligen Aufruf der Aktion wird die Verbindung zum Datenmodell konfiguriert.
Dies erfordert Administratorrechte im Objektmodell. Es wird ein Dialog zur Auswahl eines Datenmodells gestartet. Nach Ausführung der Aktion finden Sie im Paket neu
aus dem Datenmodell CMP-Beans zu den Tabellen des Datenmodells, die seit
dem letzten Generatorlauf erzeugt wurden.
Verschieben Sie die Entity-Bean-Klasse in ein Paket unterhalb von Java Design
System.
Die Aktion erzeugt neben Entity Beans auch deren Attribute und Beziehungen, nicht jedoch die Home/Remote-Schnittstellen der Bean-Klassen. Diese werden später durch
die Forward-Engineering-Aktion Apply EJB 2.x Pattern erzeugt.
6
HowTo Unterstützung von Enterprise JavaBeans für Borland JBuilder
Beziehungen zwischen Beans modellieren
Beziehungen zwischen Bean- Erstellen Sie zuerst ein Klassendiagramm vom Stereotyp «Java EJB relationship class
Klassen im
diagram».
Klassendiagramm darstellen In Klassendiagrammen mit diesem Stereotyp werden Bean-Klasse und ihre Beziehungen,
nicht jedoch die Home/Remote-Schnittstellen von Bean-Klassen dargestellt. Beziehungen
zwischen EJBs werden durch Beziehungen zwischen den Bean-Klassen modelliert.
Ebenso wie die CMP-Bean-Klassen selbst werden die Beziehungen zwischen CMP-BeanKlassen nicht explizit erstellt sondern bereits durch die Engineering-Aktion Create EJBs
from Database Model bereitgestellt. Alle anderen Bean-Klassen und deren sonstige
Beziehungsarten können in diesem Klassendiagramm explizit erstellt werden.
So gehen Sie vor
Um das Klassendiagramm zur Darstellung von Beziehungen zwischen EJBs zu erstellen:
» Selektieren Sie ein Paket im Java Design System.
»
»
Wählen Sie den Menübefehl Element>Neues Diagramm>Klassendiagramm>Java EJB Relationship Class Diagram.
Öffnen Sie das neu erstellte Diagramm.
In diesem Diagramm stehen Schablonen für das Erstellen von Bean-Klassen und deren
Beziehungen zur Verfügung:
Klassen
ƒ Java EJB Entity Bean
ƒ Java EJB Session Bean
Beziehungen
ƒ Java EJB Local Reference
ƒ Java EJB Reference
Bean-Klassen hinzufügen
So gehen Sie vor
Um Bean-Klassen hinzuzufügen:
» Wählen Sie Einfügen>Klasse>Vorhandene hinzufügen.
» Wählen Sie die Bean-Klassen aus, die in das Diagramm aufgenommen werden sollen.
Im Diagramm werden die ausgewählten Bean-Klassen dargestellt.
Bean Managed Persistence
Entity Bean erstellen
So gehen Sie vor
Um eine Eine-Bean-Managed-Persistence-Bean-Klasse zu erstellen:
» Wählen Sie Einfügen>Klasse>Java EJB Entity Bean.
Im Diagramm wird die erstellte Bean-Managed-Persistence- (BMP) Entity-Bean-Klasse
dargestellt.
Stateless Session Bean
erstellen
So gehen Sie vor
Um eine Bean-Klasse zu erstellen:
» Wählen Sie Einfügen>Klasse>Java EJB Session Bean.
Im Diagramm wird die erstellte Bean-Klasse dargestellt.
Stateful Session Bean
erstellen
Um eine Stateful Session Bean zu erstellen, erzeugen Sie zu erst eine Stateless Session
Bean. Dann ändern Sie deren Elementeigenschaft EJB.
So gehen Sie vor
Um eine Stateful Session Bean zu erstellen:
» Erstellen Sie mit Einfügen>Klasse>Java EJB Session Bean eine neue
Klasse.
» Wählen Sie den Menübefehl Bearbeiten>Eigenschaften....
»
Ändern Sie die Elementeigenschaft EJB in Stateful Session Bean.
»
Beenden Sie den Dialog mit [OK].
7
HowTo Unterstützung von Enterprise JavaBeans für Borland JBuilder
Container Managed
Relationship erstellen
Container Managed Relationships (CMR) sind Beziehungen zwischen CMP-Beans, die vom
EJB-Container verwaltet werden. Bei der Erstellung der CMP-Bean-Klassen durch die Engineering-Aktion Create EJBs from Database Model werden auch deren Beziehungen an Hand des Datenmodells als Assoziationen übernommen. Diese Assoziationen
werden durch Änderung des Stereotyps zu einer CMR-Beziehung.
So gehen Sie vor
Um eine CMR-Beziehung zu erhalten:
» Selektieren Sie beliebig viele Assoziationen zwischen CMP-Bean-Klassen.
» Wählen Sie den Menübefehl Bearbeiten>Eigenschaften....
»
Setzen Sie den Wert der Elementeigenschaft Stereotyp auf
«javax::ejb:.EJBRelationship».
Sie dürfen nur Assoziationen auswählen, die durch die Engineering-Aktion Create
EJBs from Database Model erzeugt wurden, da diese Aktion die korrekte
Verbindung der Assoziation mit dem Datenmodell herstellt.
Lokale Referenz erstellen
Wenn eine Bean-Klasse das Local-Interface einer anderen Bean nutzt, muss eine spezielle
Assoziation modelliert werden.
So gehen Sie vor
Um ein lokale Referenz zu erstellen:
» Selektieren Sie zuerst die Bean-Klasse, die referenziert, und dann die Bean-Klasse,
deren Local-Interface referenziert werden soll.
» Wählen Sie Einfügen>Assoziation>EJB Local Referenz.
Im Diagramm wird die neu erstellte gerichtete Assoziation mit dem Stereotyp
«javax::ejb:EJBLocalReference» dargestellt. Für EJBs, die durch eine CMRBeziehungen verbunden sind, ist diese Assoziation nicht nötig.
Remote-Referenz erstellen
Wenn eine Bean-Klasse das Remote-Interface einer anderen Bean nutzt, muss eine spezielle Assoziation modelliert werden.
So gehen Sie vor
Um eine Remote-Referenz zu erstellen:
» Selektieren Sie zuerst die Bean-Klasse, die referenziert, und dann die Bean-Klasse,
deren Remote-Interface referenziert werden soll.
» Wählen Sie den Menübefehl Einfügen>Assoziation>EJB Referenz.
Im Diagramm wird die neu erstellte gerichtete Assoziation mit dem Stereotyp
«javax::ejb:.EJBReference» dargestellt.
Anzeige von Attributen und
Methoden festlegen
Im Auslieferungszustand wird das context-Attribut, die vom EJB-Framework geforderten
Methoden ejbLoad... und die Get/set-Methoden der persistenten Attribute einer
CMP-Bean-Klasse nicht angezeigt.
So gehen Sie vor
Um einen anderen Auswahlfilter zu installieren:
» Selektieren Sie im Java-Klassendiagramm alle Klassen mit Strg+A.
EJB-Elementeigenschaften
im Klassendiagramm
anzeigen
»
Wählen Sie den Menübefehl Ansicht>Anzeigeoptionen....
»
Wählen Sie im Register Attribut bzw. Methode in der Auswahlliste Auswahlfilter einen anderen Filter aus.
Im Auslieferungszustand wird die Elementeigenschaft EJB im Diagramm angezeigt.
So gehen Sie vor
Um die Elementeigenschaften von Klassen, Attributen und Methoden im Klassendiagramm
als Symbole anzuzeigen:
» Selektieren Sie im Java-Klassendiagramm alle Klassen mit Strg+A.
»
Wählen Sie den Menübefehl Ansicht>Anzeigeoptionen....
»
Wählen Sie im Register Klasse in der Auswahlliste Elementeigenschaften
einen Eintrag aus.
8
HowTo Unterstützung von Enterprise JavaBeans für Borland JBuilder
»
Wählen Sie im Register Attribut in der Auswahlliste Elementeigenschaften einen Eintrag aus.
»
Wählen Sie im Register Methode in der Auswahlliste Elementeigenschaften
einen Eintrag aus.
Schließen Sie die Dialogbox mit [OK].
»
Attribute, Methoden und Home/Remote-Interface einer Bean modellieren
Klassendiagramm für eine
Bean-Klasse und ihre
Schnittstellenklassen
erstellen
Erstellen Sie zuerst ein Klassendiagramm vom Stereotyp «Java EJB definition dlass diagram». In Klassendiagrammen mit diesem Stereotyp wird eine Bean-Klasse mit ihren Attributen und Methoden sowie ihren Home/Remote-Schnittstellen dargestellt.
Außer beim Erstellen von Finder-Methoden, die direkt im Home-Interface erzeugt werden,
arbeiten Sie immer auf der Bean-Klasse selbst.
Die Erzeugung der gemäss EJB-Spezifikation nötigen Methoden, der Schnittstellenklassen
und ggf. der Primary-Key-Klasse sowie die Propagierung der Methoden von der BeanKlasse in die Schnittstellen wird durch die Forward-Engineering-Aktionen Java Apply
EJB 2.x Pattern erledigt.
So gehen Sie vor
Um das Klassendiagramm zur Darstellung der Bean-Klasse und ihrer Schnittstellen zu
erstellen:
» Selektieren Sie ein Paket im Java Design System.
»
»
Wählen Sie den Menübefehl Element>Neues Diagramm>Klassendiagramm>Java EJB Definition class diagram.
Öffnen Sie das neu erstellte Diagramm.
In diesem Diagramm stehen Schablonen für das Erstellen von Bean-Klassen, deren
Attributen und Methoden zur Verfügung:
Klassen
ƒ Java EJB Entity Bean
ƒ Java EJB Session Bean
Attribute
ƒ Java EJB Primary Key
Methoden
ƒ Java EJB Business Method
ƒ Java EJB Create Method
ƒ Java EJB Finder Method
ƒ Java EJB Select Method
ƒ Java EJB Home Method
Bean-Klasse hinzufügen
So gehen Sie vor
Um in das Diagramm eine Bean-Klasse auf zunehmen:
» Wählen Sie Einfügen>Klasse>Vorhandene hinzufügen.
» Wählen Sie die Bean-Klassen aus, die in das Diagramm aufgenommen werden sollen.
Im Diagramm werden die ausgewählten Bean-Klassen dargestellt.
Stateless Session Bean
erstellen
So gehen Sie vor
Um eine Bean-Klasse zu erstellen:
» Wählen Sie Einfügen>Klasse>Java EJB Session Bean.
Im Diagramm wird die erstellte Stateless-Session-Bean-Klasse dargestellt.
9
HowTo Unterstützung von Enterprise JavaBeans für Borland JBuilder
Stateful Session Bean
erstellen
Um eine Stateful Session Bean zu erstellen, erzeugen Sie zuerst eine Stateles Session
Bean. Dann ändern Sie deren Elementeigenschaft EJB.
So gehen Sie vor
Um eine Stateful Session Bean zu erstellen:
» Erstellen Sie mit dem Befehl Einfügen>Klasse>Java EJB Session Bean
eine neue Klasse.
» Wählen Sie den Menübefehl Bearbeiten>Eigenschaften....
»
Message Driven Bean
erstellen
Um Message Driven Bean zu erstellen erzeugen Sie zu erst eine Stateless Session Bean.
Dann ändern Sie deren Elementeigenschaft EJB.
So gehen Sie vor
Um eine Message Driven Bean zu erstellen:
» Erstellen Sie mit dem Befehl Einfügen>Klasse>Java EJB Session Bean
eine neue Bean-Klasse.
» Wählen Sie den Menübefehl Bearbeiten>Eigenschaften....
»
Schnittstellen einer BeanKlasse festlegen
Ändern Sie die Elementeigenschaft EJB in stateful session bean.
Ändern Sie die Elementeigenschaft EJB in message driven bean.
Ein Bean-Klasse kann entweder die Local/LocalHome- oder die Remote/Home-Schnittstelle
oder auch beide Varianten anbieten. Die Schnittstellen werden durch die ForwardEngineering-Aktionen Java Apply EJB 2.x Pattern gemäß der Elementeigenschaft EJB-Interfaces einer Bean-Klasse erzeugt.
So gehen Sie vor
Um die Schnittstellen festzulegen:
» Selektieren Sie die Bean-Klasse.
» Wählen Sie den Menübefehl Bearbeiten>Eigenschaften....
»
Setzen Sie den Wert der Elementeigenschaft EJB Interfaces.
Business-Methode erstellen
So gehen Sie vor
Um die EJB Business-Methoden zu erstellen:
» Selektieren Sie die Bean-Klasse oder eine ihrer Methoden.
» Erstellen Sie eine neue Methode mit dem Befehl Einfügen>Methode>Java
EJB Business Method.
Creator-Methode erstellen
Creator-Methoden werden in der Bean-Klasse erstellt und durch die Forward-EngineeringAktionen Java Apply EJB 2.x Pattern in das Home-Interface propagiert. Der
Name einer Creator-Methode beginnt mit ejbCreate.
So gehen Sie vor
Um eine Creator-Methode zu erstellen:
» Selektieren Sie die Bean-Klasse.
» Wählen Sie den Menübefehl Einfügen>Methode>Java EJB Creator.
Die neue Methode wird bei der Klasse im Diagramm angezeigt.
Home-Methode erstellen
Home-Methoden werden in der Bean-Klasse erstellt und durch die Forward-EngineeringAktionen
Java Apply EJB 2.x Pattern in das Home-Interface propagiert. Der Name einer
Home-Methode beginnt mit ejbHome.
So gehen Sie vor
Um eine Home-Methode zu erstellen:
» Selektieren Sie die Bean-Klasse.
» Wählen Sie den Menübefehl Einfügen>Methode>Java EJB Home.
Die neue Methode wird bei der Klasse im Diagramm angezeigt.
10
HowTo Unterstützung von Enterprise JavaBeans für Borland JBuilder
Select-Methode erstellen
Select-Methoden werden in der Bean-Klasse erstellt. Ihr Name beginnt mit ejbSelect.
So gehen Sie vor
Um eine Select-Methode zu erstellen:
» Selektieren Sie die CMP-Bean-Klasse .
» Wählen Sie den Menübefehl Einfügen>Methode>Java EJB Select bzw.
Java EJB Home.
Die neue Methode wird bei der Klasse im Diagramm angezeigt.
Finder-Methoden erstellen
Die Finder-Methoden einer CMP-Bean werden direkt im Home-Interface erstellt. Diese Finder-Methoden werden vom EJB-Container an Hand der in EQL formulierten Spezifikation
implementiert.
So gehen Sie vor
Um eine Finder-Methode zu erstellen:
» Selektieren Sie das Home-Interface einer CMP-Bean.
» Wählen Sie den Menübefehl Erstellen>Java EJB Finder.
Die neue Finder-Methode wird bei dem Home-Interface im Diagramm angezeigt.
So gehen Sie vor
Um einen EQL-Ausdruck zu definieren:
» Selektieren Sie eine Finder-Methode.
» Wählen Sie den Menübefehl Bearbeiten>Eigenschaften....
Die gleichnamige Dialogbox erscheint.
»
Anzeige von Attributen und
Methoden festlegen
Setzen Sie den Wert der Elementeigenschaft EJB QL.
Im Auslieferungszustand wird das context-Attribut sowie die vom EJB Framework geforderten Methoden ejbLoad... nicht angezeigt.
So gehen Sie vor
Um einen anderen Auswahlfilter zu installieren:
» Selektieren Sie im Java-Klassendiagramm alle Klassen mit Strg+A.
»
Wählen Sie den Menübefehl Ansicht>Anzeigeoptionen....
Die gleichnamige Dialogbox erscheint.
EJB-Elementeigenschaften
im Klassendiagramm
anzeigen
»
Wählen Sie im Register Attribute bzw. Methoden in der Auswahlliste Auswahlfilter einen anderen Filter aus.
»
Beenden Sie den Dialog mit [OK].
So gehen Sie vor
Um die EJB-Elementeigenschaften von Klassen, Attributen und Methoden im Klassendiagramm als Symbole anzuzeigen:
» Selektieren Sie im Java-Klassendiagramm alle Klassen mit Strg+A.
»
Wählen Sie den Menübefehl Ansicht>Anzeigeoptionen....
Die gleichnamige Dialogbox erscheint.
»
»
»
»
Wählen Sie im Register Klasse in der Auswahlliste Elementeigenschaften
einen Eintrag aus.
Wählen Sie im Register Attribut in der Auswahlliste Elementeigenschaften einen Eintrag aus.
Wählen Sie im Register Methode in der Auswahlliste Elementeigenschaften
einen Eintrag aus.
Beenden Sie den Dialog mit [OK].
11
HowTo Unterstützung von Enterprise JavaBeans für Borland JBuilder
Beispiel für Container Managed Entity Bean vor Anwendung der Engineering-Aktion Java Apply EJB Pattern
Forward-Engineering-Aktion
Java Apply EJB 2.x Pattern
Nachdem Sie die grundlegenden Elemente der Bean-Klassen erstellt haben, sollen nun die
noch fehlenden Elemente gemäß der EJB-Spezifikation erstellt werden.
So gehen Sie vor
Um zusätzliche Klassen und Beziehungen gemäß der EJB-Spezifikation zu erzeugen:
» Selektieren Sie die Bean-Klasse.
» Wählen Sie den Menübefehl Engineering>Forward/Reverse...>Java
Apply EJB 2.x Pattern.
» Beenden Sie den Dialog mit [Anwenden] und [Schließen].
Für Container Managed Entity Beans und Bean Managed Entity Beans erzeugt die Engineering-Aktion Java Apply EJB 2.x Pattern folgende Elemente:
Zusätzliche Klassen und Abhängigkeiten
„ Home-Interface (Interface mit der Eigenschaft EJB auf LocalHome- bzw. HomeInterface)
„ Remote-Interface (Interface mit der Eigenschaft EJB auf Remote- bzw. Local-Interface)
„ Primary-Key-Klasse, falls in der Bean-Klasse ein zusammengesetzter Primärschlüssel
definiert wurde (mehrere Attribute mit Eigenschaft EJB auf primary key)
„ Jeweils eine Abhängigkeit von der Bean-Klasse zum Home-Interface, RemoteInterface bzw. zur Primary-Key-Klasse
„ Es wird zusätzlich bei der CMP-Bean-Klasse die Eigenschaft istAbstrakt = ja
gesetzt.
Member in der Bean-Klasse
„ Falls nicht vorhanden: ein Attribut context vom Typ EntityContext bzw.
SessionContext.
„
„
„
„
Falls nicht vorhanden: die Methoden ejbCreate, ejbPostCreate, ejbRemove, ejbActivate, ejbPassivate, setEntityContext, unsetEntityContext, (Getter/Setter für context), ejbLoad und ejbStore
Für Container Managed Attribute werden abstrakte Getter/Setter-Methoden erstellt.
Für jede CMR-Assoziation, an der eine CMP-Entity-Bean beteiligt ist, wird ein CMRField erzeugt. Hierbei wird die Navigierbarkeit der Assoziation und deren Rollennamen
berücksichtigt.
Für sonstige Assoziationen mit Verknüpfung zum Datenmodell einer CMP-Entity-Bean
werden CMP-Attribute für die Spalten des Fremdschlüssels erzeugt. Hierbei wird ebenfalls die Navigierbarkeit der Assoziation und deren Rollennamen berücksichtigt.
Member im Remote-Interface
„ Alle Methoden der Bean-Klasse, die den Eigenschaftswert business method
haben, werden angepasst und in das Remote-Interface kopiert.
12
HowTo Unterstützung von Enterprise JavaBeans für Borland JBuilder
Member im Home-Interface
Alle Finder-, Create- und Home-Methoden der Bean-Klasse werden in das HomeInterface kopiert (alle Methoden namens ejbCreate*, ejbFind*, ejbHome*)
„
Member in der Bean-Klasse
„ Alle anderen Methoden bleiben in der Bean-Klasse (speziell Methoden namens
ejbSelect*).
Weiterhin werden nötige Vererbungsdeklarationen und Importe aktualisiert.
Beispiel für Container-Manage-Entity Bean nach Anwendung der Engineering-Aktion Java Apply EJB 2.x Pattern
Verzeichnisstruktur von
JBuilder
Beim Start von JBuilder wird das Basisverzeichnis zum Projekt durch die Position der JBuilder Projektdatei (jpx) bestimmt. Die weitere Struktur des Projektverzeichnisses wird durch
die enthaltenen Module bestimmt. Ein EJB-Modul besitzt typischerweise ein Unterverzeichnis, das so heißt wie das EJB-Jar-Modul, das erstellt werden soll. Dort befindet sich das
Verzeichnis META-INF, das u.a. die Deployment Descriptors enthält. Ebenfalls im EJBModul-Verzeichnis werden die compilierten Java Klassendateien abgelegt, die ins Archiv
gepackt werden sollen. In JBuilder existiert oft ein projektübergreifendes Source-CodeVerzeichnis, das sowohl vom JBuilder Editor als auch vom Round-Trip-Engineering (Forward-Engineering, etc.) von Innovator Object classiX genutzt werden soll.
So gehen Sie vor
Um das JBuilder Source-Code-Verzeichnis einzustellen:
» Selektieren Sie im Modellbrowser das Paket Java Implementation System.
»
Wählen Sie den Menübefehl Element>Eigenschaften.
»
Die gleichnamige Dialogbox erscheint.
Wechseln Sie in das Register Adresse, und stellen Sie Ihr globales Source-CodeVerzeichnis ein.
Schließen Sie die Dialogbox mit [OK].
»
So gehen Sie vor
Um das Paket für alle JBuilder Archive zu erstellen:
» Selektieren Sie das Paket Java Implementation System.
»
Wählen Sie den Menübefehl Element>Neu>Paket>Neu.
»
Das Paket wird angelegt und ist selektiert.
Wählen Sie den Menübefehl Element>Eigenschaften.
»
Die gleichnamige Dialogbox erscheint.
Geben Sie im Register Name den Namen der Archiv-Wurzel ein.
»
Klicken Sie auf die Schaltfläche [Anwenden].
13
HowTo Unterstützung von Enterprise JavaBeans für Borland JBuilder
»
Wechseln Sie in das Register Elementeigenschaften, und setzen Sie die Eigenschaften topLevel und Adresse auf ja.
»
Klicken Sie auf die Schaltfläche [Anwenden].
»
Wechseln Sie in das Register Adresse, und stellen Sie Ihr globales JBuilder-ProjektVerzeichnis ein.
Schließen Sie die Dialogbox mit [OK].
»
So gehen Sie vor
Um das Paket für ein EJB-Modul zu erstellen:
» Selektieren Sie das Paket Java Implementation System.
»
Wählen Sie den Menübefehl Element>Neu>Paket>Neu.
»
Das Paket wird angelegt und ist selektiert.
Wählen Sie den Menübefehl Element>Eigenschaften,.
»
Die gleichnamige Dialogbox erscheint.
Geben Sie im Register Name den EJB-Archivnamen ein.
»
Schließen Sie die Dialogbox mit [OK].
So gehen Sie vor
Um die Projektstruktur eines EJB-Projekts nachzubilden:
» Selektieren Sie das Paket des EJB-Projekts.
»
Wählen Sie den Menübefehl Element>Neu>Paket>Neu.
»
Das Paket wird angelegt und ist selektiert.
Wählen Sie den Menübefehl Element>Eigenschaften,.
»
Die gleichnamige Dialogbox erscheint.
Geben Sie im Register Name META-INF ein.
Schließen Sie die Dialogbox mit [OK].
Beispiel für eine Paketstruktur
14
HowTo Unterstützung von Enterprise JavaBeans für Borland JBuilder
Aktionen für die SourceCode-Generierung
Nach dem Erstellen der Projektstruktur können Sie Java-Komponenten erzeugen und den
Source-Code generieren. Folgende Befehle sind unter Engineering>Forward/
Reverse... zu finden:
Forward-Aktionen im Register Klasse
„
Java Assign to Default Java File
Die Aktion erstellt Java-Komponenten im Paket Java Implementaion System
auf Basis der selektierten Klassen. Die Java-Komponenten stellen die Basis für die
Source-Code-Generierung dar.
Forward-Aktionen im Register Komponente
„
Für die EJB 2.x -Code-Generierung wählen Sie die Aktion Object Model to
File (code generation EJB 2.x)
Die Aktion erzeugt Java-Code und schreibt die Java-Dateien in das Verzeichnis, welches im Modellbrowser bei dem Paket Java Implementation System in der
Eigenschaft Adresse hinterlegt ist.
Bitte beachten Sie, dass für EJB 2.x die Container Managed Attributes nicht in den SourceCode übernommen werden. Diese werden gemäß der Spezifikation im DeploymentDescriptor verwaltet. Die Attribute bleiben aber im Klassenmodell bestehen.
So gehen Sie vor
Um Source-Code zu generieren:
» Selektieren Sie im Klassendiagramm oder im Modellbrowser eine oder mehrere Klassen.
» Wählen Sie den Menübefehl Engineering>Forward/Reverse....
»
Aktivieren Sie das Alternativfeld Forward in der Gruppe Aktionen.
»
Wählen Sie im Register Klasse die Aktion Java Assign to Default Java
File.
»
Bestätigen Sie mit [Anwenden].
»
Wechseln Sie in das Register Komponente.
»
Wählen Sie die Aktion Object Model to File.
»
Wählen Sie für die EJB 2.x -Generierung die Aktion Object Model to File
(code generation EJB 2.x).
»
Beenden Sie die Dialogbox mit [Anwenden] und [Schließen].
EJB-Deployment-Descriptor erstellen
EJBs in JBuilder
vorbereiten
Dafür erstellen Sie in JBuilder ein neues Projekt mit einem leeren EJB-Modul. Stellen Sie
bitte sicher, dass das Source-Code-Projektverzeichnis mit dem Verzeichnis übereinstimmt,
in welches Sie von Innovator Object classiX aus den Source-Code generiert haben. Das
EJB-Modul sollte so bezeichnet werden, dass es mit dem Innovator-Paketnamen für das
EJB-Archiv übereinstimmt. Anschließend wechseln Sie zu Innovator Object classiX und
füllen das EJB-Modul durch die Generierung des EJB-Deployment-Descriptors.
Komponente ejb-jar.xml
erstellen
Ein EJB-Modul fasst mehrere EJBs zusammen. Im EJB-Deployment-Descriptor eines EJBModuls ist u.a. beschrieben, wie die EJB-Klasse und die Remote/Home-Schnittstellen einer
EJB heißen, welche CMP-Attribute eine CMP-Entity-Bean besitzt, welche Beziehungen
zwischen CMP-Entity-Beans existieren, mit welchen JNDI-Namen eine Bean-Klasse die
Remote/Local-Schnittstelle einer anderen Bean referenziert.
» In Innovator Object classiX wird ein EJB-Modul durch den Deployment-Descriptor
repräsentiert. Der Deployment Descriptor ist eine Komponente vom Stereotyp «EJB 2.x
Deployment Descriptor» mit dem Namen ejb-jar.xml, die Sie im Paket METAINF unterhalb des Projektpakets erstellen. Dieser Komponente ordnen Sie die BeanKlassen zu, die im EJB-Modul enthalten sein sollen.
Die Forward-Engineering-Aktion Java Generate EJB 2.x DD for Borland generiert den Deployment Descriptor vollständig und direkt im META-INFVerzeichnis des EJB-Moduls. Die Generierung erfolgt überschreibend, Änderungen
sollten in Innovator Object classiX erfolgen.
15
HowTo Unterstützung von Enterprise JavaBeans für Borland JBuilder
So gehen Sie vor
Um die Komponente für den Deployment Descriptor zu erstellen:
» Selektieren Sie das Paket META-INF.
»
Wählen Sie Element>Neu>Komponente>EJB 2.x Deployment Descriptor.
Benennen Sie die Komponente ggf. in ejb-jar.xml um.
So gehen Sie vor
Um einem Deployment-Descriptor EJBs zu zuordnen:
» Selektieren Sie den Deployment Descriptor.
»
Wählen Sie Engineering>Komponente>Modellelemente zuordnen.
» Wählen Sie im Dialog die Bean-Klassen des EJB-Moduls aus.
So gehen Sie vor
Um einen Deployment Descriptor zu exportieren:
» Selektieren Sie den Deployment Descriptor selbst oder
» Selektieren Sie eine Bean-Klasse die dem Deployment Descriptor zugeordnet ist.
» Führen Sie die Forward-Engineering-Aktionen Java Generate EJB 2.x DD
for Borland aus.
»
EJBs in JBuilder
bearbeiten
Nachdem Sie Source-Code und die EJB-Deployment-Descriptoren erzeugt haben, können
Sie mit den EJBs in JBuilder arbeiten. Wechseln Sie dazu in den JBuilder und doppelclicken
Sie das EJB-Modul. JBuilder ermittelt nun alle Beans und Klassen und zeigt Ihnen die Beans
in grafischer Form. Da alle Descriptoren überschreibend erzeugt werden, nochmals der
Hinweis, dass alle Änderungen an den EJBs im Innovator Design-Modell erfolgen müssen!
Forward-Engineering-Aktion Die Forward-Engineering-Aktion Java Generate EJB 2.x DD for Borland
Java Generate EJB 2.x DD for erzeugt nicht nur den von Sun im Rahmen der EJB-Spezifikation standardisierten
Borland
ejb-jar.xml-Descriptor, sondern erstellt noch einen weiteren Borland-spezifische
Descriptor. ejb-borland.xml enthält die JNDI-Namen der Beans (ejb/"Namen
des Remote-Interfaces") und alle Information zum Datenbankschema (aus
Innovator Data).
Value Object erzeugen
Forward-Engineering-Aktion
Java Create Value Objects
Der Einsatz von Value Objects wird in der EJB-Architektur oft empfohlen. Value Objects sind
eine serialisierbare Java-Klasse zum Datenaustausch zwischen Entity Beans und ihren
Klienten. Das Value Object einer CMP-Entity enthält deren persistente Attribute. Der Einsatz
von Value Objects im Schnittstellenentwurf kann die Kommunikation zwischen einer Entity
Bean und ihren Klienten minimieren.
So gehen Sie vor
Um ein Value Object zu erzeugen:
» Selektieren Sie eine CMP-Entity-Bean .
» Wählen Sie die Forward-Engineering-Aktion Java Create Value Objects.
Es wird eine Value Object-Klasse für jedes Attribut aus der selektierten Klasse erzeugt,
die ein Attribut sowie dessen Get/Set enthält. Attribute vom Stereotyp «association
implementer» werden nicht übernommen.
16
HowTo Unterstützung von Enterprise JavaBeans für Borland JBuilder
Anhang: Beschreibung des Add-Ons Java EJB
Zweck
Das Add-On unterstützt die Modellierung von Anwendungen, deren Architektur durch die
Enterprise JavaBeans-Spezifikation vorgegeben ist. Es wird Version 2.x dieser Spezifikation
unterstützt. Grundlegende Informationen zum Thema Enterprise JavaBeans, im Folgenden
kurz als EJB bezeichnet, können beispielsweise unter http://java.sun.com gefunden werden.
Vorausgesetzte Profile
Voraussetzung ist die Modellvorlage UML Profile for Java.
Benötigte Elemente des
UML-Metamodells
Elementeigenschaften (Tagged Values)
Metamodell
Eigenschaft
Class
EJB
Eigenschaftswert
none (Default)
stateless session bean
stateful session bean
container managed entity bean
bean managed entity bean
home interface
remote interface
primary key class
local home interface
local interface
message driven bean
EJB interface
none (Default)
local
remote
Local + remote
Attribute
EJB
none (Default)
cmp field
cmr fieled
primary key field
Stereotyp
javax::ejb::EJBCmpField
javax::ejb::EJBCmrField
local
remote
Local + remote
Stereotyp
javax::ejb::EJBFinderMethod
javax::ejb::EJBRemoteMethod
javax::ejb::EJBCreateMethod
javax::ejb::EJBPrimaryKeyField
Operation
EJB
none (Default)
business method
creator
single object finder
multi object finder
home method
EJB interface
none (Default)
17
HowTo Unterstützung von Enterprise JavaBeans für Borland JBuilder
Auswahlfilter
Für jede der obigen Elementeigenschaften steht ein Auswahlfilter zur Verfügung. Der Name
des Filters ergibt sich aus dem Tag-Wert erweitert um das Präfix Is EJB.
Anzeigefilter
Im Klassendiagramm kann für Klassen, Attribute und Methoden die Eigenschaft EJB als
Icon dargestellt werden. Hierfür stehen die Anzeigefilter EJB bzw. Visibility+EJB zur
Verfügung.
Anzeigeschablonen
Diese Anzeigefilter werden bei der Definition der Anzeigeschablonen benötigt. Für Klassendiagramme stehen die Anzeigeschablonen Java EJB Create und Java EJB Add
zur Verfügung.
Kommandos zum Erstellen
von Elementen
Schablonen zum Erzeugen von Elementen
Metamodell
Name der Schablone
Eigenschaft EJB
Class
EJB Session Bean (stateless)
stateless session bean
EJB Entity Bean (container man-
container managed entity bean
EJB Primary Key
primary key
EJB Container Managed Attribute
container managed
EJB Bussiness Method
business method
EJB Creator
Creator
EJB Finder
single-object finder
EJB Select
none
Attribute
Operation
Bedeutung der Klassen
innerhalb der
EJB-Spezifikation
Entity Bean
Eine Entity Bean wird durch eine Klasse modelliert, deren Eigenschaft EJB den Wert bean
managed entity bean oder container managed entity bean besitzt.
Eine bean managed entity bean ist für ihre Persistenz selbst verantwortlich.
Session Bean
Eine Session Bean wird durch eine Klasse modelliert, deren Eigenschaft EJB den Wert
stateful session bean oder stateless session bean besitzt. Zustandsbehaftete Session Beans werden durch den Wert stateful session bean ausgezeichnet.
Remote/Home-Interface
Ein Remote- bzw. Home-Interface wird durch eine Klasse mit dem Stereotyp «interface»
modelliert, deren Eigenschaft EJB den Wert home interface oder remote interface besitzt.
Local/LocalHome-Interface
Ein Local- bzw. ein LocalHome-Interface wird durch eine Klasse mit dem Stereotyp «interface» modelliert, deren Eigenschaft EJB den Wert local home interface oder
local interface besitzt.
Primary Key Class
Die Primary Key Class einer EJB-Klasse wird durch eine Klasse modelliert, deren Eigenschaft EJB den Wert primary key class besitzt.
Message Driven Bean
Message Driven Beans werden durch eine Klasse modelliert, deren Eigenschaft EJB den
Wert message driven bean besitzt. Message Driven Beans wurden in der Version
2.0 der EJB-Spezifikation eingeführt.
18
HowTo Unterstützung von Enterprise JavaBeans für Borland JBuilder
Sonstige Klassen
Klassen, deren Eigenschaft EJB den Wert none besitzen, spielen keine besondere Rolle
im Rahmen der EJB-Spezifikation.
Bedeutung der Attribute
innerhalb der
EJB-Spezifikation
Die Eigenschaft EJB von Attributen wird nur für Attribute von Entity Beans ausgewertet.
Primary Key Attribute
Attribute, deren Eigenschaft EJB den Wert primary key besitzt, sind Bestandteil des
Primärschlüssels der Entity Bean. Falls die Entity Bean einen zusammengesetzten Schlüssel besitzt, ist die Angabe einer Primary Key Class erforderlich.
Container Managed Attribute
Dieser Wert ist nur zulässig für Attribute einer Entity Bean der Art container managed
entity bean. Attribute, deren Eigenschaft EJB den Wert container managed
besitzt, sind persistent.
Sonstige Attribute
Attribute, deren Eigenschaft EJB den Wert none besitzen, spielen keine besondere Rolle
im Rahmen der EJB-Spezifikation.
Bedeutung der Methoden
innerhalb der
EJB-Spezifikation
Die Eigenschaft EJB von Methoden wird nur für Methoden von Entity bzw. Session Beans
ausgewertet.
Business Method
Methoden einer Bean-Klasse, die Bestandteil des Remote-Interface sind, werden durch den
Wert
business method der Eigenschaft EJB ausgezeichnet.
Creator Method
Diese Methoden der Bean-Klasse sind auch Bestandteil des Home-Interface und dienen
zum Erzeugen einer Entity Bean. Creator-Methoden werden durch den Wert creator der
Eigenschaft EJB ausgezeichnet.
Single/Multi Object Finder Method
Diese Werte sind nur zulässig für Methoden einer Entity Bean.
Diese Methoden der Bean-Klasse sind auch Bestandteil des Home-Interface und werden
zum Suchen einer Entity Bean benutzt. Finder-Methoden werden durch den Wert single
object finder bzw. multi object finder der Eigenschaft EJB ausgezeichnet. Bei der Suche mit einer Multi Object Finder-Methode kann mehr als ein Treffer geliefert
werden. Das Suchkriterium wird in EQL formuliert.
Select Method
Diese Methoden der Bean-Klasse dienen zum Suchen einer Entity Bean und werden wie die
Finder-Methoden mit EQL formuliert. Sie werden in keine Schnittstelle propagiert.
Home Method
Dies sind Business-Methoden, die im Home-Interface zur Verfügung gestellt werden.
Sonstige Methoden
Methoden, deren Eigenschaft EJB den Wert none besitzen, spielen keine besondere Rolle
im Rahmen der EJB-Spezifikation.
Bedeutung der
Engineering-Aktionen
Apply EJB Pattern und
Apply EJB 2.x Pattern
Bei selektierter Entity Bean oder Session Bean kann die Engineering-Aktion Apply EJB
Pattern angewandt werden.
Durch diese Aktion werden die Creator- und die Finder-Methoden der Bean-Klasse in das
Home-Interface und deren Business-Methoden in das Remote-Interface propagiert.
Die Attribute eines mehrteiligen Schlüssels werden in die Primary Key Class der Bean propagiert. Näheres zur Arbeitsweise und den Optionen der Engineering-Aktion entnehmen Sie
bitte der Hilfe der zugehörigen Auswertung ejbcrea.tcl.
19
HowTo Unterstützung von Enterprise JavaBeans für Borland JBuilder
Anhang: Die wichtigsten im Deployment Deskriptor generierten Einträge
Zugrunde liegendes
Datenmodell
Eine Firma besitzt viele Abteilungen. Jede Abteilung ist genau einer Firma zugeordnet.
Attribute der Tabelle Firma
Attribute der Tabelle Abteilung
Der Fremdschlüssel FirmaId bildet die Beziehung zwischen Firma und Abteilung ab.
20
HowTo Unterstützung von Enterprise JavaBeans für Borland JBuilder
<...enterprise-Beans.entity>
Dieser Tag enthält die Definition einer Entity Bean. In Innovator Object classiX wird eine
Entity Bean durch Setzen des Eigenschaftswertes EJB auf „container managed entity bean“
modelliert. Durch den Eigenschaftswert EJB interfaces wird festgelegt, ob lokale bzw. Remote-Schnittstellen erzeugt werden sollen. Die Schnittstellen einer Bean-Klasse werden durch
Abhängigkeiten mit den entsprechenden Stereotypen («javax::ejb::EJBRealizeLocalHome»,
«...EJBRealizeLocal», ...) an die Bean-Klasse angebunden.
Hinweis: Das Erzeugen der Schnittstellenklasse und der Abhängigkeiten wird automatisch
durch die Forward-Engineering-Aktion "Apply EJB 2.X Pattern" durchgeführt. Diese Aktion
wird durch die Eigenschaftswerte EJB bzw. EJB interfaces der Bean-Klasse gesteuert.
<...enterpriseBeans.entity.cmp-field>
Dieser Tag enthält die Definition eines CMP-Feldes. In Innovator Object classiX werden
CMP Entity Beans und ihre CMP-Attribute aus dem Datenmodell generiert. Bei einem CMPAttribut besitzt die Eigenschaft EJB den Wert cmp field.
Hinweis: Nach der Übernahmen einer Entity Bean aus dem Datenmodell wird das Erzeugen
eines CMP-Attributes automatisch durch die Forward-Engineering-Aktion "Apply EJB 2.X
Pattern" durchgeführt. Diese Aktion erstellt auch die get/set-Methoden eines CMP-Feldes.
21
HowTo Unterstützung von Enterprise JavaBeans für Borland JBuilder
<...ejb-relation>
Dieser Tag enthält die Definition einer CMR-Beziehung. Generell werden bei der Übernahmen aus dem Datenmodell "normale" Assoziationen produziert. Diese können dann vom
Modellierer durch Ändern des Stereotyps auf «javax::ejb:.EJBRelationship» zu CMRBeziehungen gemacht werden. Zum Zeitpunkt der Übernahme ist die Zuordnung der EJBs
zu EJB-Modulen noch nicht bekannt. Dies wird erst in einem nachfolgenden Designschritt
festgelegt, der wesentlichen Einfluss auf die Verteilbarkeit der Applikation hat. Da CMRBeziehungen die Grenze eines EJB-Moduls nicht überschreiten können, kann die Auszeichnung einer Assoziation als CMR-Beziehung erst erfolgen, wenn die Aufteilung der Beans auf
die Module vorgenommen wurde.
Hinweis: Nach dem Setzen des Stereotyps auf «javax::ejb:.EJBRelationship» durch die
Forward-Engineering-Aktion "Apply EJB 2.X Pattern" werden automatisch die zugehörigen
CMR-Felder und deren get/set-Methoden erstellt. Bei der Erzeugung der CMR-Felder werden die Rollennamen der Beziehung berücksichtigt. Falls eine Beziehung nicht als CMRBeziehung abgebildet wird, dann wird statt des CMR-Feldes ggf. ein CMP-Feld mit dem
Fremdschlüssel generiert. Im Beispiel würde also die Bean FAAbteilungEntEJB nicht das
CMR-Feld firma (vom Typ FAFirmaEnt) enthalten, sondern ein CMP-Feld firmaId vom Typ
Integer.
22
HowTo Unterstützung von Enterprise JavaBeans für Borland JBuilder
<...query-method>
Dieser Tag enthält die Definition einer Finder-Methode. Finder-Methoden werden im HomeInterface einer Klasse definiert. Die zu einer Finder-Methode erforderliche EJB QL wird über
den Eigenschaftswertes EJB QL festgelegt.
23
HowTo Unterstützung von Enterprise JavaBeans für Borland JBuilder
<...ejb-ref>, <...ejb-local-ref>
Um die Remote/Home-Schnittstelle einer Bean nutzen zu können, muss im Deployment
Deskriptor eine Referenz bzw. eine lokale Referenz eingetragen werden. Dies geschieht
durch die Modellierung einer Abhängigkeit von der aufrufenden zu der aufgerufenen Bean.
Die Art der Referenz wird über den Stereotyp «javax:.ejb:.EJBLocalReference» bzw.
«javax:.ejb:.EJBReference» festgelegt.
JNDI-Namen
Die Schnittstelle einer Bean kann zur Laufzeit nicht direkt benutzt werden. Statt dessen
muss sie zur Laufzeit durch die Angabe eines Namens ermittelt werden (Lookup über JNDINamen). Innovator Object classiX nimmt als JNDI-Namen den Namen der RemoteSchnittstelle einer Bean.
24
HowTo Unterstützung von Enterprise JavaBeans für Borland JBuilder
Da in Innovator die CMP-Beans aus dem Datenmodell generiert werden, steht im JBuilder
die vollständige Abbildungsinformation zur Verfügung. Neben der Schema/TabellenDefinition werden auch das Mapping und die Relationen vollständig erzeugt.
Mapping zum Datenmodell
Copyright © 2010 MID Enterprise Software Solutions GmbH
Bei Fragen wenden Sie sich bitte an unsere Hotline
Telefon: +49 (0)911 / 9 68 36 -22, E-Mail: [email protected].
Dieses Dokument finden Sie neben anderen im exklusiven Login-Download-Bereich für
INNOVATOR-Wartungskunden unter http://www.mid.de/support/.
Ihre MID
MID Enterprise Software Solutions GmbH, Eibacher Hauptstr. 141, D-90451 Nürnberg
Telefon: +49 (0)911 / 9 68 36 -0, Fax: +49 (0)911 / 9 68 36 -10
E-Mail: [email protected], Internet: http://www.mid.de
Innovator_11.2_HowTo_EJB_JBuilder_100630.doc
67
25
Herunterladen