You can subscribe to this list here.
2005 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(6) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2006 |
Jan
(178) |
Feb
(169) |
Mar
(286) |
Apr
(117) |
May
(98) |
Jun
(68) |
Jul
(63) |
Aug
(121) |
Sep
(88) |
Oct
(124) |
Nov
(2) |
Dec
(111) |
2007 |
Jan
(224) |
Feb
(69) |
Mar
(10) |
Apr
(72) |
May
(7) |
Jun
(21) |
Jul
(33) |
Aug
(35) |
Sep
(12) |
Oct
(22) |
Nov
(5) |
Dec
(6) |
2008 |
Jan
(2) |
Feb
(10) |
Mar
(39) |
Apr
(58) |
May
(34) |
Jun
(9) |
Jul
(27) |
Aug
(10) |
Sep
(3) |
Oct
|
Nov
|
Dec
|
From: Vance K. <va...@us...> - 2006-02-01 08:33:56
|
User: vancek Date: 06/02/01 00:33:49 Added: andromda-ejb3/src/site site.xml Log: initial revision Revision Changes Path 1.1 cartridges/andromda-ejb3/src/site/site.xml Index: site.xml =================================================================== <?xml version="1.0" encoding="ISO-8859-1"?> <project name="EJB3 Cartridge Plugin"> <title>EJB3 Cartridge</title> <banner> <name>AndroMDA</name> <href>http://team.andromda.org/</href> </banner> <body> <links> <item name="EJB3" href="index.html"/> <item name="Cartridges" href="../andromda-cartridges/index.html"/> <item name="AndroMDA" href="../index.html"/> </links> <menu name="Overview"> <item name="Profile" href="profile.html"/> <item name="Namespace" href="namespace.html"/> </menu> <menu name="How-to"> <item name="Introduction" href="howto.html"/> <item name="Entities" href="howto1.html"/> <item name="Relationships" href="howto2.html"/> <item name="Services" href="howto3.html"/> <item name="Composite Primary Key" href="howto4.html"/> <item name="Enumerations" href="howto5.html"/> <item name="Queries" href="howto6.html"/> <item name="Exceptions" href="howto7.html"/> <item name="Security" href="howto8.html"/> <item name="Inheritance" href="howto9.html"/> <item name="Message Driven Beans" href="howto10.html"/> <item name="Environment Entry Injections" href="howto11.html"/> <item name="Service Delegates" href="howto12.html"/> <item name="Interceptors" href="howto13.html"/> <item name="Listener Callback" href="howto14.html"/> <item name="Tips & Tricks" href="tips.html"/> </menu> </body> </project> |
From: Vance K. <va...@us...> - 2006-02-01 08:33:44
|
User: vancek Date: 06/02/01 00:33:35 Added: andromda-ejb3/src/site/xdoc howto2.xml Log: initial revision Revision Changes Path 1.1 cartridges/andromda-ejb3/src/site/xdoc/howto2.xml Index: howto2.xml =================================================================== <?xml version="1.0" encoding="iso-8859-1"?> <document> <properties> <author email="va...@us...">Vance Karimi</author> <title>AndroMDA - EJB3 - HowTo Relationships</title> </properties> <body> <section name="Relationships"> <p> Most of the entities that appear in real applications have relationships with other entities; consider the simple case of a person owning a car. Here we say <code>Person</code> has an <code>owning</code> relationship with the <code>Car</code>, and from the perspective of the person there can be any number of cars that are owned, denoted in UML by <code>[0..*]</code> at the car's end. </p> <p class="highlight"> Make sure the association ends are <code>public</code>; some tools allow to specify the visibility of an association end. </p> <p> In UML, relationships are modeled using associations, and associations themselves have different properties, which will be discussed here. </p> <p> Let's model another entity, call it <code>Person</code> and give it a few attributes, just make sure you give them one of the platform independent datatypes that can be mapped onto a platform specific datatype (you can find them in the <code>datatype</code> package). </p> <p> Draw an association between both entities you have just modeled. Set the multiplicity at the end of the car to <code>[0..*]</code> and name the other end <code>'owner'</code>. Run AndroMDA again on your model, this is what you should see: </p> <p> <img src="images/org/andromda/test/2/a/uml.gif"/> </p> <p> In this example we have added two attributes: <ul> <li>name of type <code>datatype::String</code></li> <li>birthDate of type <code>datatype::Date</code></li> </ul> Please note that also for this entity an identifier will be added by default. If you explicitely want to add an identifier you should add the <![CDATA[<<Identifier>>]]> stereotype to an attribute. Refer to <a href="howto1.html">Entities</a> for more information. </p> <p> <ul> <li class="gen">Auto-generated source that does not need manual editing</li> <li class="impl">Auto-generated source that should be edited manually</li> <li class="changed">File that is affected by the modifications applied in this section</li> </ul> </p> <p> <ul> <li class="gen"><a class="changed" href="src/org/andromda/test/howto2/a/CarEmbeddable.java"><code>CarEmbeddable.java</code></a></li> <li class="impl"><a href="src/org/andromda/test/howto2/a/Car.java"><code>Car.java</code></a></li> <li class="gen"><a class="changed" href="src/org/andromda/test/howto2/a/PersonEmbeddable.java"><code>PersonEmbeddable.java</code></a></li> <li class="gen"><a href="src/org/andromda/test/howto2/a/Person.java"><code>Person.java</code></a></li> </ul> </p> <p> As you can see the relationships have been generated in the embeddable superclasses. Since both ends of the association are navigable, we have a bi-directional relationship. <ul> <li> <p>Person.getCars() : Collection</p> <p> A One-To-Many relationship has been defined from the Person entity to the Car entity. This adds the <code>@javax.persistence.OneToMany</code> annotation to the getter method and sets the <code>mappedBy</code> property to <code>'owner'</code>. The <code>mappedBy</code> property indicates the other end of the association is the owning side of the relationship. </p> </li> <li> <p>Car.getOwner() : Person</p> <p> A Many-To-One relationship has been defined from the Car entity to the Person entity. This adds the <code>@javax.persistence.ManyToOne</code> annotation to the getter method of the Car entity. Since the multiplicity on the Person end of the association is set to 1, the annotation has defined the <code>optional</code> property to <code>false</code> which indicates non-null entries cannot exists in this foreign key column in the relational database table. </p> <p> Since the Car entity end is the owning end, the <code>@javax.persistence.JoinColumn</code> annotation has been defined with a <code>name</code> property. This annotation is used to indicate a mapped column for joining an entity association. The <code>name</code> property defines the foreign key column name. </p> </li> </ul> By default AndroMDA will look at the multiplicity to generate a good name for the relationship, a few examples where the multiplicity is greater than one: <ul> <li>car: cars</li> <li>property: properties</li> <li>toy: toys</li> <li>animal: animals</li> <li>bus: busses</li> </ul> You can override these names by adding your own names to the association ends, in our example you might set the name of the association end at the side of the person to <code>person</code>, this will emit the following output during generation: <ul> <li>Person.getCars() : Collection</li> <li>Car.getPerson() : Person</li> </ul> </p> <subsection name="Cascading"> <p> You can set the cascade option on all association ends by modelling the <code>@andromda.persistence.cascade.type</code> tagged value on the target association end. The cascadable options are: <ul> <li>ALL</li> <li>PERSIST</li> <li>MERGE</li> <li>REMOVE</li> <li>REFRESH</li> </ul> You can set multiple cascade options on the target association end which will define the <code>cascade</code> property of the annotation as array. </p> <p> <img src="images/org/andromda/test/2/b/uml.gif"/> </p> <p> <ul> <li class="gen">Auto-generated source that does not need manual editing</li> <li class="impl">Auto-generated source that should be edited manually</li> <li class="changed">File that is affected by the modifications applied in this section</li> </ul> </p> <p> <ul> <li class="gen"><a class="changed" href="src/org/andromda/test/howto2/b/CarEmbeddable.java"><code>CarEmbeddable.java</code></a></li> <li class="impl"><a href="src/org/andromda/test/howto2/b/Car.java"><code>Car.java</code></a></li> <li class="gen"><a class="changed" href="src/org/andromda/test/howto2/b/PersonEmbeddable.java"><code>PersonEmbeddable.java</code></a></li> <li class="gen"><a href="src/org/andromda/test/howto2/b/Person.java"><code>Person.java</code></a></li> </ul> </p> </subsection> <subsection name="Fetch Type"> <p> The fetch type tagged value <code>@andromda.persistence.fetch.type</code> can be modelled on all association ends. To set the fetch type on an end, you model this tagged value on the target association end. The following default are the default fetch types for the available relationships: <ul> <li>Many-To-One : EAGER</li> <li>One-To-Many : LAZY</li> <li>One-To-One : EAGER</li> <li>Many-To-Many : LAZY</li> </ul> Therefore, you only need to specify the latter tagged value if you wish to change the fetch type property from the default. </p> <p> <img src="images/org/andromda/test/2/c/uml.gif"/> </p> <p> <ul> <li class="gen">Auto-generated source that does not need manual editing</li> <li class="impl">Auto-generated source that should be edited manually</li> <li class="changed">File that is affected by the modifications applied in this section</li> </ul> </p> <p> <ul> <li class="gen"><a class="changed" href="src/org/andromda/test/howto2/c/CarEmbeddable.java"><code>CarEmbeddable.java</code></a></li> <li class="impl"><a href="src/org/andromda/test/howto2/c/Car.java"><code>Car.java</code></a></li> <li class="gen"><a class="changed" href="src/org/andromda/test/howto2/c/PersonEmbeddable.java"><code>PersonEmbeddable.java</code></a></li> <li class="gen"><a href="src/org/andromda/test/howto2/c/Person.java"><code>Person.java</code></a></li> </ul> </p> </subsection> <subsection name="Ordering Collection Valued Association"> <p> You can order the elements of a collection valued association by modelling the <code>@andromda.persistence.orderBy</code> tagged value on the target association end. A few notes to consider: <ul> <li> If <code>ASC</code> or <code>DESC</code> is not specified, <code>ASC</code> order is assumed. </li> <li> If the ordering tagged value is modelled but no ordering element is supplied, this renders an empty <code>@javax.persistence.OrderBy</code> annotation which indicates to the container to assume ordering by primary key as per the spec. </li> <li> The property used in the order by clause must correspond to a persistent field of the associated class and that corresponding column must support comparison operators. </li> </ul> </p> <p> <img src="images/org/andromda/test/2/d/uml.gif"/> </p> <p> <ul> <li class="gen">Auto-generated source that does not need manual editing</li> <li class="impl">Auto-generated source that should be edited manually</li> <li class="changed">File that is affected by the modifications applied in this section</li> </ul> </p> <p> <ul> <li class="gen"><a class="changed" href="src/org/andromda/test/howto2/d/CarEmbeddable.java"><code>CarEmbeddable.java</code></a></li> <li class="impl"><a href="src/org/andromda/test/howto2/d/Car.java"><code>Car.java</code></a></li> <li class="gen"><a class="changed" href="src/org/andromda/test/howto2/d/PersonEmbeddable.java"><code>PersonEmbeddable.java</code></a></li> <li class="gen"><a href="src/org/andromda/test/howto2/d/Person.java"><code>Person.java</code></a></li> </ul> </p> </subsection> <subsection name="Join Table for Many-To-Many Relationship"> <p> For a Many-To-Many association, the <code>@javax.persistence.JoinTable</code> annotation is specified on the OWNING side of the association. This is determined by modelling the <code>owning</code> side as an aggregation or composition. </p> <p> The join table name is defined by default to be the table name of the primary table of owning side concatenated with the table name of the primary table of the inverse side. You can override the <code>name</code> property by modelling the <code>@andromda.persistence.table</code> tagged value on the assocation. </p> </subsection> <subsection name="Aggregation and Composition"> <p> To model the owning side of a One-To-One or Many-To-Many bidirectional relationship, you indicate that end (the owning end) of the relationship as an <code>aggregate</code> or <code>composite</code> end. You should use aggregation when an entity is part of another one but the latter one does not need the former to exist. </p> <p> By default, the EJB3 cartridge enables the following via the <code>compositionDefinesEagerLoading</code> namespace property. These are employed if no <code>@andromda.persistence.fetch.type</code> tagged value exists. <ul> <li>aggregation: lazy-loaded, no cascade</li> <li>composition: eager-loaded, cascade update (cascade option not yet implemented)</li> </ul> </p> <p> The following example illustrates the Many-To-Many bidirection relationship between <code>Car</code> and <code>Person</code> entities. The aggregate end on the <code>Person</code> entity indicates that <code>Person</code> is the owning entity. </p> <p> <img src="images/org/andromda/test/2/e/uml.gif"/> </p> <p> <ul> <li class="gen">Auto-generated source that does not need manual editing</li> <li class="impl">Auto-generated source that should be edited manually</li> <li class="changed">File that is affected by the modifications applied in this section</li> </ul> </p> <p> <ul> <li class="gen"><a class="changed" href="src/org/andromda/test/howto2/e/CarEmbeddable.java"><code>CarEmbeddable.java</code></a></li> <li class="impl"><a href="src/org/andromda/test/howto2/e/Car.java"><code>Car.java</code></a></li> <li class="gen"><a class="changed" href="src/org/andromda/test/howto2/e/PersonEmbeddable.java"><code>PersonEmbeddable.java</code></a></li> <li class="gen"><a href="src/org/andromda/test/howto2/e/Person.java"><code>Person.java</code></a></li> </ul> </p> </subsection> <p class="highlight"> Don't forget to properly set the multiplicity on the association ends and whether and end is navigable. This will ensure the proper code is generated. </p> </section> <section name="Next"> <p> In the next section we'll learn about services, click <a href="howto3.html">here</a> to continue. </p> </section> </body> </document> |
From: Vance K. <va...@us...> - 2006-02-01 08:28:10
|
User: vancek Date: 06/02/01 00:28:03 Added: andromda-ejb3/src/site/xdoc howto1.xml Log: initial revision Revision Changes Path 1.1 cartridges/andromda-ejb3/src/site/xdoc/howto1.xml Index: howto1.xml =================================================================== <?xml version="1.0" encoding="iso-8859-1"?> <document> <properties> <author email="va...@us...">Vance Karimi</author> <title>AndroMDA - EJB3 - HowTo Entities</title> </properties> <body> <section name="Entities"> <p> With entities we mean what is usually implemented using Entity Beans or EJB3 POJOs (i.e. a persistent entity like a Company or Person for example); in the EJB3 cartridge you will not need to worry about the underlying persistence technology, but you will probably want to know that EJB3 POJOs will be generated for the entities you model. The EJB 3.0 container (i.e. JBoss) adopts a suitable configurable persistence technology. (i.e Hibernate) </p> <p> In order to successfully generate a single entity it is sufficient to simply model a single class and assign it the <![CDATA[<<Entity>>]]> stereotype, this stereotype tells the EJB3 cartridge to treat this class as an entity. </p> <p> Let's start by modeling a package <code>org.andromda.test</code> and putting a class inside that package, give that class the name <code>Car</code>. Now make sure that entity has the <![CDATA[<<Entity>>]]> stereotype, it depends on your UML tool how you need to do that exactly. </p> <p> <img src="images/org/andromda/test/1/a/uml.gif"/> </p> <p> You can now try to generate code from your model and take a look at what is generated. If you don't know how to generate code using AndroMDA then head on over to the <a href="../starting.html">getting started</a> guide (specificly the section explaining <a href="../starting.html#My_first_AndroMDA_project">how to setup your first AndroMDA project</a>). </p> <p class="highlight"> Please note that until the EJB3 cartridge is included in the AndroMDAPP project, you will not be able to generate your project structure using that generator. </p> <p> If everything went well, all code related to this class will have been generated into the <code>/core/entity/target/src</code> project subdirectory, no manual implementation will need to be added at this point. </p> <p> The EJB3 cartridge changes the conventional entity creation hierarchy. Instead of generating an entity base class with an entity implementation class, you now have an entity embeddable super class with an entity class that inherits from this embeddable super class. This is the case for simple non-inheriting hierarchies, however once you introduce inheritance, this changes. To find out more about inheritance, go to the <a href="howto9.html">inheritance</a> section. </p> <p> <ul> <li class="gen">Auto-generated source that does not need manual editing</li> <li class="impl">Auto-generated source that should be edited manually</li> <li class="changed">File that is affected by the modifications applied in this section</li> </ul> </p> <p> <ul> <li class="gen"><a href="src/org/andromda/test/howto1/a/CarEmbeddable.java"><code>CarEmbeddable.java</code></a></li> <li class="impl"><a href="src/org/andromda/test/howto1/a/Car.java"><code>Car.java</code></a></li> </ul> </p> <p> The class we have modelled does not have any properties, however, by default, AndroMDA creates the <code>id</code> attribute of type <code>datatype:Long</code> if no identifier (primary key) attribute has been modelled by the user. It is possible to override these settings in the <a href="../maven-andromda-plugin/properties.html#Defining_Namespace_Properties">namespace properties for Maven</a> or the <a href="../anttask.html#andromda-example">namespace properties for Ant</a>. Click <a href="../andromda-metafacades-uml/namespace.html">here</a> if you want to know more about the default namespace properties you can set. </p> <subsection name="Entity Operations"> <p> You may also model operations on an entity, this will generate them as methods in the resulting Java class. Operations can be classifier scoped (<code>static</code> in Java) where they will be underlined in UML diagrams as shown below. Static operations will not be defined in the embeddable superclass unlike other abstract methods. They will be defined in the inheriting subclass. This has consequences when dealing with a multi-tier inheritance hierarchy. Refer to the <a href="howto9.html">inheritance</a> howto for further information. </p> <p> <img src="images/org/andromda/test/1/b/uml.gif"/> </p> <p> <ul> <li class="gen">Auto-generated source that does not need manual editing</li> <li class="impl">Auto-generated source that should be edited manually</li> <li class="changed">File that is affected by the modifications applied in this section</li> </ul> </p> <p> <ul> <li class="gen"><a class="changed" href="src/org/andromda/test/howto1/b/CarEmbeddable.java"><code>CarEmbeddable.java</code></a></li> <li class="impl"><a href="src/org/andromda/test/howto1/b/Car.java"><code>Car.java</code></a></li> </ul> </p> <p> Entity operations can also be Query operations. This is discussed further in the <a href="howto6.html">Query Howto</a>. However, in general entities should NOT contain any business logic. The EJB3 cartridge, like other persistence modeling cartridges, uses the session facade pattern to contain business logic in session bean operations. </p> </subsection> <subsection name="Entity Relation Table"> <p> Your relational table's name which persists an entity is determined by default from the actual entity name. To change the table name assignment in the <code>@javax.persistence.Table</code> annotation, set the <code>@andromda.persistence.table</code> tag on the entity. The same tag can be modelled on a Many-To-Many association relationship. </p> <p> <img src="images/org/andromda/test/1/c/uml.gif"/> </p> <p> <ul> <li class="gen">Auto-generated source that does not need manual editing</li> <li class="impl">Auto-generated source that should be edited manually</li> <li class="changed">File that is affected by the modifications applied in this section</li> </ul> </p> <p> <ul> <li class="gen"><a class="changed" href="src/org/andromda/test/howto1/c/CarEmbeddable.java"><code>CarEmbeddable.java</code></a></li> <li class="impl"><a href="src/org/andromda/test/howto1/c/Car.java"><code>Car.java</code></a></li> </ul> </p> </subsection> <subsection name="Primary Key - Identifiers"> <p> To assign an entity's attribute as a primary key, you must assign the <![CDATA[<<Identifier>>]]> stereotype to it. If this identifier is not part of a composite primary key, then <code>@javax.persistence.Id</code> annotation is added to the attribute getter method. </p> <p> <img src="images/org/andromda/test/1/d/uml.gif"/> </p> <p> <ul> <li class="gen">Auto-generated source that does not need manual editing</li> <li class="impl">Auto-generated source that should be edited manually</li> <li class="changed">File that is affected by the modifications applied in this section</li> </ul> </p> <p> <ul> <li class="gen"><a class="changed" href="src/org/andromda/test/howto1/d/CarEmbeddable.java"><code>CarEmbeddable.java</code></a></li> <li class="impl"><a href="src/org/andromda/test/howto1/d/Car.java"><code>Car.java</code></a></li> </ul> </p> <p> An entity identifier attribute's table generator can be modelled via the <code>@andromda.persistence.generator.type</code> tag on the identifier attribute ONLY. This is used to model the primary key generation strategy associated with the <code>@javax.persistence.Id</code> annotation for an entity attribute. Currenly, the EJB3 cartridge supports: <ul> <li>The default type is <code>AUTO</code></li> <li><code>TABLE</code></li> <li><code>SEQUENCE</code></li> <li><code>NONE</code></li> </ul> </p> <p> The table generator name can be set using the <code>@andromda.persistence.generator.name</code> tag. This must be a unique name which is referenced by one or more classes to be the generator for an entity bean. By setting the <code>@andromda.persistence.generator.source.name</code> tag, you can specify either the table name that stores the generated ids or the sequence name which is the name of the database sequence object used to get the ids. For table generator types, you must specify the <code>@andromda.persistence.generator.pkcolumn.value</code> tag which defines the primary key value in the generator table to identify the specified generated value from other values. For sequence generator types, you can specify the initial value of the sequence using <code>@andromda.persistence.generator.initial.value</code> tag and the allocation size by <code>@andromda.persistence.generator.allocation.size</code> tag. The allocation size sets the amount to increment by when allocating id numbers from the sequence generator. </p> </subsection> <subsection name="Unique Attributes"> <p> In case you want an entity's attribute to be unique for all instances of that entity's type you should assign the <![CDATA[<<Unique>>]]> stereotype to it. This will define the corresponding unique element in the <code>@javax.persistence.Column</code> annotation. </p> </subsection> <subsection name="Attribute Fetch Type"> <p> By default, the EJB3 cartridge and EJB 3.0 spec defines an attribute fetch type as eagerly fetched. To specify an attribute as lazy fetched, we hint to the persistence container by modelling the <code>@andromda.persistence.fetch.type</code> tag on the attribute. Under normal circumstances, you do not need to specify this tag. </p> </subsection> <subsection name="Transient Attribute"> <p> To indicate an attribute as transient (not persisted by the persistence container), you model the <![CDATA[<<Transient>>]]> stereotype on the attribute. This adds the <code>@javax.persistence.Transient</code> annotation to the attribute. </p> </subsection> <subsection name="Version Attribute"> <p> To specify an attribute as a version attribute, where it becomes the optimistic lock value for an entity, you model the <![CDATA[<<Version>>]]> stereotype on this attribute. This can only apply to ONE attribute per class. Attributes with this stereotype will not be updated by the persistent container. The attribute can only of the following types: <ul> <li>int</li> <li>short</li> <li>long</li> <li>Integer</li> <li>Short</li> <li>Long</li> <li>Timestamp</li> </ul> </p> </subsection> <subsection name="Attribute Multiplicity"> <p> It's possible to configure the multiplicity of an entity's attribute, by setting it to <code>[0..1]</code> an attribute is not required and is allowed to be set to <code>null</code>; setting the multiplicity to a value greater than <code>0</code> means the attribute is required. In the former case the nullable element will be set to <code>true</code> for the <code>@javax.persistence.Column</code> annotation on the attribute. The following class assigns a multiplicity of [0..1] to the <code>name</code> attribute which means <code>name</code> can be null. </p> <p> <img src="images/org/andromda/test/1/e/uml.gif"/> </p> <p> <ul> <li class="gen">Auto-generated source that does not need manual editing</li> <li class="impl">Auto-generated source that should be edited manually</li> <li class="changed">File that is affected by the modifications applied in this section</li> </ul> </p> <p> <ul> <li class="gen"><a class="changed" href="src/org/andromda/test/howto1/e/CarEmbeddable.java"><code>CarEmbeddable.java</code></a></li> <li class="impl"><a href="src/org/andromda/test/howto1/e/Car.java"><code>Car.java</code></a></li> </ul> </p> <p> Please note that some UML tools have a default multiplicity value for attributes when not specified by the user, these default values may differ from tool to tool. </p> </subsection> <subsection name="Constant Attributes"> <p> To define static constants within an entity POJO (constants that are not resource injections), model a classifier scoped attribute (<code>static</code> in Java). These attributes are defined as static with public visibility. Constants must define a default value in the model. The following entity defines 3 constants for type. </p> <p> <img src="images/org/andromda/test/1/f/uml.gif"/> </p> <p> <ul> <li class="gen">Auto-generated source that does not need manual editing</li> <li class="impl">Auto-generated source that should be edited manually</li> <li class="changed">File that is affected by the modifications applied in this section</li> </ul> </p> <p> <ul> <li class="gen"><a class="changed" href="src/org/andromda/test/howto1/f/CarEmbeddable.java"><code>CarEmbeddable.java</code></a></li> <li class="impl"><a href="src/org/andromda/test/howto1/f/Car.java"><code>Car.java</code></a></li> </ul> </p> </subsection> <subsection name="Nullable Parameters"> <p> If you want an operation to have a parameter which is allowed to be <code>null</code> then simply assign the <![CDATA[<<Nullable>>]]> stereotype to that parameter. By default service operations throw an exception when a <code>null</code> argument has been passed. </p> <p> It is possible to globally disable checking for <code>null</code> arguments, so you will never need to specify the <![CDATA[<<Nullable>>]]> stereotype; to do so just specify the <code>parameterRequiredCheck</code> namespace property to have the <code>false</code> value. </p> </subsection> <subsection name="LOB/CLOB Attributes"> <p> An attribute can be specified as either a BLOB or CLOB field. This is modelled by assigning the <code>@andromda.persistence.lob.type</code> tag to the required type. This will add the <code>@javax.persistence.Lob</code> annotation to the entity attribute. </p> <p> For BLOB fields, the attribute type must be modelled as one of: <ul> <li>Byte[]</li> <li>Serializable type</li> </ul> </p> <p> For CLOB fields, the attribute type must be modelled as one of: <ul> <li>char[]</li> <li>Character[]</li> <li>String</li> </ul> </p> <p> The default fetch type for a LOB typed attribute is lazy. To assign a LOB attribute to be eagerly fetched, model the <code>@andromda.persistence.fetch.type</code> tag on the attribute. </p> <p> <img src="images/org/andromda/test/1/g/uml.gif"/> </p> <p> <ul> <li class="gen">Auto-generated source that does not need manual editing</li> <li class="impl">Auto-generated source that should be edited manually</li> <li class="changed">File that is affected by the modifications applied in this section</li> </ul> </p> <p> <ul> <li class="gen"><a class="changed" href="src/org/andromda/test/howto1/g/CarEmbeddable.java"><code>CarEmbeddable.java</code></a></li> <li class="impl"><a href="src/org/andromda/test/howto1/g/Car.java"><code>Car.java</code></a></li> </ul> </p> <p> This example models the type attribute as a CLOB, since it's of type String and sets the fetch type for the attribute to eagerly fetch. </p> </subsection> <subsection name="Column Specifics"> <p> Here is an example of some of the tagged values available to model on entity attributes. </p> <p> <img src="images/org/andromda/test/1/h/uml.gif"/> </p> <p> <ul> <li class="gen">Auto-generated source that does not need manual editing</li> <li class="impl">Auto-generated source that should be edited manually</li> <li class="changed">File that is affected by the modifications applied in this section</li> </ul> </p> <p> <ul> <li class="gen"><a class="changed" href="src/org/andromda/test/howto1/h/CarEmbeddable.java"><code>CarEmbeddable.java</code></a></li> <li class="impl"><a href="src/org/andromda/test/howto1/h/Car.java"><code>Car.java</code></a></li> </ul> </p> <p> To change the default naming schema for the relational table column, model the <code>@andromda.persistence.column</code> tag on the attribute. </p> <p> You can set the column length for the relational database table for string based columns by modelling the <code>@andromda.persistence.column.length</code> tag on the attribute. </p> <p> If the column is defined as a decimal column (i.e. float or double), you can model the precision and scale of the column by setting <code>@andromda.persistence.column.precision</code> tag to set the precision of the decimal column and/or <code>@andromda.persistence.column.scale</code> tag to set the scale for a decimal column, on the attribute. </p> <p> In order to change the creation DDL for the column in the relational table, you can model <code>@andromda.persistence.column.definition</code> tag on the attribute. </p> </subsection> </section> <section name="Next"> <p> In the next section we'll learn about entity relationships, click <a href="howto2.html">here</a> to continue. </p> </section> </body> </document> |
From: Vance K. <va...@us...> - 2006-02-01 08:28:06
|
User: vancek Date: 06/02/01 00:27:57 cartridges/andromda-ejb3/src/site - New directory |
From: Vance K. <va...@us...> - 2006-02-01 08:28:06
|
User: vancek Date: 06/02/01 00:27:57 cartridges/andromda-ejb3/src/site/xdoc - New directory |
From: Vance K. <va...@us...> - 2006-01-31 15:27:16
|
User: vancek Date: 06/01/31 07:27:11 Modified: andromda-ejb3/src/main/uml EJB3MetafacadeModel.xml.zip Log: added finderFindAllExists and finderFindByPrimaryKeyExists for EJB3EntityFacade Revision Changes Path 1.12 +147 -155 cartridges/andromda-ejb3/src/main/uml/EJB3MetafacadeModel.xml.zip <<Binary file>> |
From: Vance K. <va...@us...> - 2006-01-31 15:26:10
|
User: vancek Date: 06/01/31 07:26:02 Modified: andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades EJB3EntityFacadeLogicImpl.java Log: added isFinderFindAllExists and isFinderFindByPrimaryKeyExists Revision Changes Path 1.10 +42 -0 cartridges/andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades/EJB3EntityFacadeLogicImpl.java Index: EJB3EntityFacadeLogicImpl.java =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades/EJB3EntityFacadeLogicImpl.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -w -r1.9 -r1.10 --- EJB3EntityFacadeLogicImpl.java 29 Jan 2006 01:55:58 -0000 1.9 +++ EJB3EntityFacadeLogicImpl.java 31 Jan 2006 15:26:01 -0000 1.10 @@ -17,6 +17,7 @@ import org.andromda.metafacades.uml.DependencyFacade; import org.andromda.metafacades.uml.MetafacadeUtils; import org.andromda.metafacades.uml.OperationFacade; +import org.andromda.metafacades.uml.ParameterFacade; import org.andromda.metafacades.uml.TypeMappings; import org.andromda.metafacades.uml.UMLMetafacadeProperties; import org.apache.commons.collections.CollectionUtils; @@ -967,4 +968,45 @@ { return this.hasStereotype(EJB3Profile.STEREOTYPE_LISTENER); } + + /** + * @see org.andromda.cartridges.ejb3.metafacades.EJB3EntityFacadeLogic#handleIsFinderFindAllExists() + */ + protected boolean handleIsFinderFindAllExists() + { + boolean finderExists = false; + for (final Iterator iter = this.getQueryOperations().iterator(); iter.hasNext();) + { + final OperationFacade operation = (OperationFacade)iter.next(); + if (operation.getName().equalsIgnoreCase("findAll")) + { + // Check for no finder arguments + final Collection parameters = operation.getParameters(); + if (parameters.size() == 0) + { + finderExists = true; + break; + } + } + } + return finderExists; + } + + /** + * @see org.andromda.cartridges.ejb3.metafacades.EJB3EntityFacadeLogic#handleIsFinderFindByPrimaryKeyExists() + */ + protected boolean handleIsFinderFindByPrimaryKeyExists() + { + boolean finderExists = false; + for (final Iterator iter = this.getQueryOperations().iterator(); iter.hasNext();) + { + final OperationFacade operation = (OperationFacade)iter.next(); + if (operation.getName().equalsIgnoreCase("findByPrimaryKey")) + { + finderExists = true; + break; + } + } + return finderExists; + } } \ No newline at end of file |
From: Vance K. <va...@us...> - 2006-01-31 15:25:20
|
User: vancek Date: 06/01/31 07:25:10 Modified: andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades EJB3EntityAttributeFacadeLogicImpl.java Log: overriden getDefaultValue to put double quotes around string values Revision Changes Path 1.8 +33 -8 cartridges/andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades/EJB3EntityAttributeFacadeLogicImpl.java Index: EJB3EntityAttributeFacadeLogicImpl.java =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades/EJB3EntityAttributeFacadeLogicImpl.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -w -r1.7 -r1.8 --- EJB3EntityAttributeFacadeLogicImpl.java 28 Jan 2006 02:59:46 -0000 1.7 +++ EJB3EntityAttributeFacadeLogicImpl.java 31 Jan 2006 15:25:10 -0000 1.8 @@ -6,6 +6,7 @@ import org.andromda.cartridges.ejb3.EJB3Globals; import org.andromda.cartridges.ejb3.EJB3Profile; import org.andromda.metafacades.uml.AttributeFacade; +import org.andromda.metafacades.uml.ClassifierFacade; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.math.NumberUtils; @@ -57,14 +58,6 @@ } /** - * @see org.andromda.cartridges.ejb3.metafacades.EJB3EntityAttributeFacade#getFetchType() - */ - protected String handleGetFetchType() - { - return (String)this.findTaggedValue(EJB3Profile.TAGGEDVALUE_PERSISTENCE_FETCH_TYPE); - } - - /** * Overridden to provide handling of inheritance. * * @see org.andromda.metafacades.uml.AttributeFacade#isRequired() @@ -84,6 +77,38 @@ } /** + * Override to provide java specific handling of the default value. + * + * @see org.andromda.metafacades.uml.AttributeFacade#getDefaultValue() + */ + public String getDefaultValue() + { + String defaultValue = super.getDefaultValue(); + final ClassifierFacade type = this.getType(); + if (type != null) + { + final String fullyQualifiedName = StringUtils.trimToEmpty(type.getFullyQualifiedName()); + if (type.isStringType()) + { + defaultValue = "\"" + defaultValue + "\""; + } + else if (fullyQualifiedName.startsWith("java.lang")) + { + defaultValue = fullyQualifiedName + ".valueOf(" + defaultValue + ")"; + } + } + return defaultValue; + } + + /** + * @see org.andromda.cartridges.ejb3.metafacades.EJB3EntityAttributeFacade#getFetchType() + */ + protected String handleGetFetchType() + { + return (String)this.findTaggedValue(EJB3Profile.TAGGEDVALUE_PERSISTENCE_FETCH_TYPE); + } + + /** * @see org.andromda.cartridges.ejb3.metafacades.EJB3EntityAttributeFacadeLogic#handleIsEager() */ protected boolean handleIsEager() |
From: Vance K. <va...@us...> - 2006-01-31 15:23:45
|
User: vancek Date: 06/01/31 07:23:40 Modified: andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3 EJB3ScriptHelper.java Log: added toUnderscoreName method Revision Changes Path 1.5 +19 -0 cartridges/andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/EJB3ScriptHelper.java Index: EJB3ScriptHelper.java =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/EJB3ScriptHelper.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -w -r1.4 -r1.5 --- EJB3ScriptHelper.java 23 Jan 2006 05:51:05 -0000 1.4 +++ EJB3ScriptHelper.java 31 Jan 2006 15:23:40 -0000 1.5 @@ -5,6 +5,7 @@ import org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade; import org.andromda.metafacades.uml.AttributeFacade; import org.andromda.metafacades.uml.ModelElementFacade; +import org.apache.commons.lang.StringUtils; import java.util.ArrayList; import java.util.Collection; @@ -83,4 +84,22 @@ } return retval; } + + /** + * Replaces all instances of the dot (.) in the name argument with an understore (_) + * and returns the string response. + * + * @param name The name, typically a fully qualified name with dot notation + * @return The string with all dots replaced with underscore. + */ + public String toUnderscoreName(String name) + { + String result = null; + if (name != null) + { + result = StringUtils.replaceChars(name, '.', '_'); + } + return result; + + } } |
From: Vance K. <va...@us...> - 2006-01-31 15:21:42
|
User: vancek Date: 06/01/31 07:21:36 Modified: andromda-ejb3/src/main/resources/templates/ejb3 ServiceLocator.vsl Log: service getter method now used fully qualified method name and replaces dot with underscore to avoid conflict between same name services that exist in differing packages Revision Changes Path 1.3 +1 -1 cartridges/andromda-ejb3/src/main/resources/templates/ejb3/ServiceLocator.vsl Index: ServiceLocator.vsl =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/resources/templates/ejb3/ServiceLocator.vsl,v retrieving revision 1.2 retrieving revision 1.3 diff -u -w -r1.2 -r1.3 --- ServiceLocator.vsl 20 Jan 2006 17:10:49 -0000 1.2 +++ ServiceLocator.vsl 31 Jan 2006 15:21:36 -0000 1.3 @@ -103,7 +103,7 @@ * @param env the Context environment properties. Null represents no properties. * @throws javax.naming.NamingException failure to lookup remote service interface. */ - public final $service.fullyQualifiedServiceRemoteInterfaceName get${service.name}(java.util.Properties env) + public final $service.fullyQualifiedServiceRemoteInterfaceName get_${transform.toUnderscoreName(${service.fullyQualifiedServiceName})}(java.util.Properties env) throws javax.naming.NamingException { return (${service.fullyQualifiedServiceRemoteInterfaceName}) |
From: Vance K. <va...@us...> - 2006-01-31 15:19:33
|
User: vancek Date: 06/01/31 07:19:28 Modified: andromda-ejb3/src/main/resources/templates/ejb3 ServiceDelegate.vsl Log: session method wraps NamingException with default service exception Revision Changes Path 1.2 +13 -12 cartridges/andromda-ejb3/src/main/resources/templates/ejb3/ServiceDelegate.vsl Index: ServiceDelegate.vsl =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/resources/templates/ejb3/ServiceDelegate.vsl,v retrieving revision 1.1 retrieving revision 1.2 diff -u -w -r1.1 -r1.2 --- ServiceDelegate.vsl 10 Jan 2006 08:09:58 -0000 1.1 +++ ServiceDelegate.vsl 31 Jan 2006 15:19:28 -0000 1.2 @@ -40,7 +40,7 @@ private final ${service.fullyQualifiedServiceRemoteInterfaceName} get${service.name}() throws javax.naming.NamingException { - return ${ejb3TypesPackage}.ServiceLocator.getInstance().get${service.name}(env); + return ${ejb3TypesPackage}.ServiceLocator.getInstance().get_${transform.toUnderscoreName(${service.fullyQualifiedServiceName})}(env); } #foreach ($operation in $service.businessOperations) @@ -60,20 +60,21 @@ return get${service.name}().${operation.name}(${operation.argumentNames}); #**##end } -#**##if (!$operation.exceptionsPresent) - catch (Exception ex) -#**##else - catch (javax.naming.NamingException ex) -#**##end - { #**##if ($operation.exceptionsPresent) #* *##foreach ($exception in $operation.exceptions) -#* *##if ($velocityCount == 1) - throw new ${exception.fullyQualifiedName}(ex); + catch ($exception.fullyQualifiedName ex) + { + throw ex; + } #* *##end #* *##end + catch (javax.naming.NamingException ex) + { +#**##if ($service.allowDefaultServiceException) + throw new ${service.fullyQualifiedDefaultExceptionName}( + "Error performing '${service.fullyQualifiedName}.${operation.signature}' --> " + ex, ex); #**##else - ex.printStackTrace(); + throw ex; #**##end } } |
From: Vance K. <va...@us...> - 2006-01-31 15:18:04
|
User: vancek Date: 06/01/31 07:17:57 Modified: andromda-ejb3/src/main/resources/templates/ejb3 EntityEmbeddable.vsl Log: static constants are defined as public (not private), check to see if generic finders are modelled, Revision Changes Path 1.12 +7 -6 cartridges/andromda-ejb3/src/main/resources/templates/ejb3/EntityEmbeddable.vsl Index: EntityEmbeddable.vsl =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/resources/templates/ejb3/EntityEmbeddable.vsl,v retrieving revision 1.11 retrieving revision 1.12 diff -u -w -r1.11 -r1.12 --- EntityEmbeddable.vsl 29 Jan 2006 03:19:56 -0000 1.11 +++ EntityEmbeddable.vsl 31 Jan 2006 15:17:57 -0000 1.12 @@ -79,7 +79,7 @@ #**##foreach ($constant in $constants) @javax.persistence.Transient - private static final $constant.type.fullyQualifiedName $constant.name = $constant.defaultValue; + public static final $constant.type.fullyQualifiedName $constant.name = $constant.defaultValue; #**##end #end #set ($attributes = $entity.attributes) @@ -475,8 +475,8 @@ ## Do not include the findAll finder for inheriting classes when the ## inheritance strategy is single table. This is defined in the base -## class. -#**##if (($entity.inheritanceSingleTable && !$entity.requiresGeneralizationMapping) || !$entity.inheritanceSingleTable) +## class. Only render if the findAll finder hasn't been modelled. +#**##if ((($entity.inheritanceSingleTable && !$entity.requiresGeneralizationMapping) || !$entity.inheritanceSingleTable) && !$entity.finderFindAllExists) /** * Returns the collection of all ${entity.name}s. * @@ -496,7 +496,8 @@ ## queries, so queries based on the base/root class are polymorphic. ## Do not include the findByPrimaryKey if this bean has a composite ## primary key class. -#**##if (!$entity.compositePrimaryKeyPresent && !$entity.requiresGeneralizationMapping) +## Only render if the findAll finder hasn't been modelled. +#**##if (!$entity.compositePrimaryKeyPresent && !$entity.requiresGeneralizationMapping && !$entity.finderFindByPrimaryKeyExists) #* *##foreach ($attribute in $entity.getIdentifiers(false)) #* *##set ($identifierName = $attribute.name) #* *##set ($identifierType = $attribute.type.fullyQualifiedName) @@ -580,13 +581,13 @@ // --------------- Business Methods ----------------- -#**##foreach ($operation in ) +#**##foreach ($operation in $businessOperations) #* *##set ($signature = $operation.signature) #* *##set ($visibility = $operation.visibility.toString()) +#* *##set ($returnType = $operation.returnType.fullyQualifiedName) /** $operation.getDocumentation(" * ") */ -#* *##set ($returnType = $operation.returnType.fullyQualifiedName) #* *##if ($operation.exceptionsPresent) $visibility abstract $returnType $signature throws $operation.exceptionList; |
From: Vance K. <va...@us...> - 2006-01-31 15:16:09
|
User: vancek Date: 06/01/31 07:16:00 Modified: andromda-ejb3/src/main/resources/templates/ejb3 Entity.vsl Log: entity methods throw UnsupportedOperationException when method is not implemented Revision Changes Path 1.12 +4 -3 cartridges/andromda-ejb3/src/main/resources/templates/ejb3/Entity.vsl Index: Entity.vsl =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/resources/templates/ejb3/Entity.vsl,v retrieving revision 1.11 retrieving revision 1.12 diff -u -w -r1.11 -r1.12 --- Entity.vsl 29 Jan 2006 03:19:56 -0000 1.11 +++ Entity.vsl 31 Jan 2006 15:15:58 -0000 1.12 @@ -99,16 +99,15 @@ #set ($operations = $entity.businessOperations) #if (!$operations.empty) - // --------------- Business Methods ----------------- + // ------------------ Methods -------------------- #**##foreach ($operation in $operations) #* *##set ($signature = $operation.signature) -#* *##set ($interfaceType = "interface") #* *##set ($visibility = $operation.visibility.toString()) +#* *##set ($returnType = $operation.returnType.fullyQualifiedName) /** $operation.getDocumentation(" * ") */ -#* *##set ($returnType = $operation.returnType.fullyQualifiedName) #* *##if ($operation.exceptionsPresent) $visibility $returnType $signature throws $operation.exceptionList @@ -124,6 +123,8 @@ // TODO put your implementation here. #* *##if ($operation.returnTypePresent) return $operation.returnType.javaNullString; +#* *##else + throw new java.lang.UnsupportedOperationException("${entity.fullyQualifiedName}.${operation.signature} Not implemented!"); #* *##end } #* *##end |
From: Vance K. <va...@us...> - 2006-01-29 03:20:10
|
User: vancek Date: 06/01/28 19:19:56 Modified: andromda-ejb3/src/main/resources/templates/ejb3 Entity.vsl EntityEmbeddable.vsl Log: add the all-attribute-inclusive constructor (less auto incremented identifiers) only if attributes exists. Revision Changes Path 1.11 +2 -2 cartridges/andromda-ejb3/src/main/resources/templates/ejb3/Entity.vsl Index: Entity.vsl =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/resources/templates/ejb3/Entity.vsl,v retrieving revision 1.10 retrieving revision 1.11 diff -u -w -r1.10 -r1.11 --- Entity.vsl 29 Jan 2006 01:47:59 -0000 1.10 +++ Entity.vsl 29 Jan 2006 03:19:56 -0000 1.11 @@ -45,9 +45,9 @@ ## Autogenerate a constructor implementation with all attributes. #set ($allAttributes = $transform.filterByVisibility($entity.allInstanceAttributes, "public")) -#if ($entity.syntheticCreateMethodAllowed) +#if ($entity.syntheticCreateMethodAllowed && !$transform.filterUpdatableAttributes($allAttributes, $entity.compositePrimaryKeyPresent).empty) /** - * Implementation for the constructor with all POJO attributes. + * Implementation for the constructor with all POJO attributes except auto incremented identifiers. * This method sets all POJO fields defined in this/super class to the * values provided by the parameters. * 1.11 +4 -4 cartridges/andromda-ejb3/src/main/resources/templates/ejb3/EntityEmbeddable.vsl Index: EntityEmbeddable.vsl =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/resources/templates/ejb3/EntityEmbeddable.vsl,v retrieving revision 1.10 retrieving revision 1.11 diff -u -w -r1.10 -r1.11 --- EntityEmbeddable.vsl 29 Jan 2006 01:47:59 -0000 1.10 +++ EntityEmbeddable.vsl 29 Jan 2006 03:19:56 -0000 1.11 @@ -129,11 +129,11 @@ #set ($allAttributes = $transform.filterByVisibility($entity.allInstanceAttributes, "public")) #set ($inheritedAttributes = $transform.filterByVisibility($entity.inheritedInstanceAttributes, "public")) #set ($instanceAttributes = $transform.filterByVisibility($entity.instanceAttributes, "public")) -#if ($entity.syntheticCreateMethodAllowed) +#if ($entity.syntheticCreateMethodAllowed && !$transform.filterUpdatableAttributes($allAttributes, $entity.compositePrimaryKeyPresent).empty) /** - * Implementation for the constructor with all POJO attributes. - * This method sets all POJO fields defined in this class to the - * values provided by the parameters. + * Implementation for the constructor with all POJO attributes except auto incremented identifiers. + * This method sets all POJO fields defined in this class to the values provided by + * the parameters. * #**##foreach($attribute in $transform.filterUpdatableAttributes($allAttributes, $entity.compositePrimaryKeyPresent)) * @param $attribute.name Value for the ${attribute.name} property |
From: Vance K. <va...@us...> - 2006-01-29 01:57:23
|
User: vancek Date: 06/01/28 17:57:16 Modified: andromda-ejb3/src/main/uml EJB3MetafacadeModel.xml.zip Log: added listenerEnabled to EJB3EntityFacade, EJB3SessionFacade and EJB3MessageDrivenFacade Revision Changes Path 1.11 +155 -122 cartridges/andromda-ejb3/src/main/uml/EJB3MetafacadeModel.xml.zip <<Binary file>> |
From: Vance K. <va...@us...> - 2006-01-29 01:56:31
|
User: vancek Date: 06/01/28 17:56:26 Modified: andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades EJB3MessageDrivenFacadeLogicImpl.java Log: added isListenerEnabled checking for Listener stereotype Revision Changes Path 1.5 +8 -0 cartridges/andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades/EJB3MessageDrivenFacadeLogicImpl.java Index: EJB3MessageDrivenFacadeLogicImpl.java =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades/EJB3MessageDrivenFacadeLogicImpl.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -w -r1.4 -r1.5 --- EJB3MessageDrivenFacadeLogicImpl.java 23 Jan 2006 05:56:27 -0000 1.4 +++ EJB3MessageDrivenFacadeLogicImpl.java 29 Jan 2006 01:56:26 -0000 1.5 @@ -334,4 +334,12 @@ return (String)this.findTaggedValue(EJB3Profile.TAGGEDVALUE_EJB_CONTAINER_CONFIGURATION); } + /** + * @see org.andromda.cartridges.ejb3.metafacades.EJB3MessageDrivenFacadeLogic#handleIsListenerEnabled() + */ + protected boolean handleIsListenerEnabled() + { + return this.hasStereotype(EJB3Profile.STEREOTYPE_LISTENER); + } + } \ No newline at end of file |
From: Vance K. <va...@us...> - 2006-01-29 01:56:07
|
User: vancek Date: 06/01/28 17:55:58 Modified: andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades EJB3SessionFacadeLogicImpl.java EJB3EntityFacadeLogicImpl.java Log: added isListenerEnabled method checking for Listener stereotype Revision Changes Path 1.9 +8 -0 cartridges/andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades/EJB3SessionFacadeLogicImpl.java Index: EJB3SessionFacadeLogicImpl.java =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades/EJB3SessionFacadeLogicImpl.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -w -r1.8 -r1.9 --- EJB3SessionFacadeLogicImpl.java 28 Jan 2006 03:00:55 -0000 1.8 +++ EJB3SessionFacadeLogicImpl.java 29 Jan 2006 01:55:58 -0000 1.9 @@ -841,4 +841,12 @@ String.valueOf(this.getConfiguredProperty(ALLOW_DEFAULT_SERVICE_EXCEPTION))).booleanValue(); } + /** + * @see org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacadeLogic#handleIsListenerEnabled() + */ + protected boolean handleIsListenerEnabled() + { + return this.hasStereotype(EJB3Profile.STEREOTYPE_LISTENER); + } + } \ No newline at end of file 1.9 +8 -0 cartridges/andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades/EJB3EntityFacadeLogicImpl.java Index: EJB3EntityFacadeLogicImpl.java =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades/EJB3EntityFacadeLogicImpl.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -w -r1.8 -r1.9 --- EJB3EntityFacadeLogicImpl.java 25 Jan 2006 03:00:37 -0000 1.8 +++ EJB3EntityFacadeLogicImpl.java 29 Jan 2006 01:55:58 -0000 1.9 @@ -959,4 +959,12 @@ } return isCompositePK; } + + /** + * @see org.andromda.cartridges.ejb3.metafacades.EJB3EntityFacadeLogic#handleIsListenerEnabled() + */ + protected boolean handleIsListenerEnabled() + { + return this.hasStereotype(EJB3Profile.STEREOTYPE_LISTENER); + } } \ No newline at end of file |
From: Vance K. <va...@us...> - 2006-01-29 01:54:34
|
User: vancek Date: 06/01/28 17:54:28 Modified: andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3 EJB3Profile.java Log: defined STEREOTYPE_LISTENER static constant Revision Changes Path 1.9 +6 -0 cartridges/andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/EJB3Profile.java Index: EJB3Profile.java =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/EJB3Profile.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -w -r1.8 -r1.9 --- EJB3Profile.java 26 Jan 2006 07:03:47 -0000 1.8 +++ EJB3Profile.java 29 Jan 2006 01:54:27 -0000 1.9 @@ -104,6 +104,12 @@ */ public static final String STEREOTYPE_SECURITY_RUNAS = profile.get("SECURITY_RUN_AS"); + /** + * Represents a callback listener class for entity, session and + * message driven bean classes. + */ + public static final String STEREOTYPE_LISTENER = profile.get("LISTENER"); + /* ----------------- Tagged Values -------------------- */ /** |
From: Vance K. <va...@us...> - 2006-01-29 01:53:52
|
User: vancek Date: 06/01/28 17:53:46 Modified: andromda-ejb3/src/main/resources/META-INF/andromda profile.xml Log: added LISTENER stereotype element Revision Changes Path 1.10 +13 -1 cartridges/andromda-ejb3/src/main/resources/META-INF/andromda/profile.xml Index: profile.xml =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/resources/META-INF/andromda/profile.xml,v retrieving revision 1.9 retrieving revision 1.10 diff -u -w -r1.9 -r1.10 --- profile.xml 26 Jan 2006 07:02:47 -0000 1.9 +++ profile.xml 29 Jan 2006 01:53:46 -0000 1.10 @@ -164,7 +164,7 @@ </element> <element name="INTERCEPTOR"> <documentation> - Defines a customer made interceptor for the business + Defines a custome made interceptor for the business methods of the session bean and message driven bean. </documentation> @@ -173,6 +173,18 @@ class </appliedOnElement> </element> + <element name="LISTENER"> + <documentation> + Defines a callback listener class for the entity, + session and message driven beans. The corresponding + entity, session or message driven beans are annotated + to indicate the listener class. + </documentation> + <value>Listener</value> + <appliedOnElement> + class + </appliedOnElement> + </element> <element name="SECURITY_RUN_AS"> <documentation> Represents a dependency from an actor that is |
From: Vance K. <va...@us...> - 2006-01-29 01:52:41
|
User: vancek Date: 06/01/28 17:52:35 Modified: andromda-ejb3/src/main/resources/META-INF/andromda cartridge.xml Log: set the conditional property listenerEnabled for EntityListner.vsl, SessionListener.vsl and MessageDrivenListner.vsl. Revision Changes Path 1.12 +12 -6 cartridges/andromda-ejb3/src/main/resources/META-INF/andromda/cartridge.xml Index: cartridge.xml =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/resources/META-INF/andromda/cartridge.xml,v retrieving revision 1.11 retrieving revision 1.12 diff -u -w -r1.11 -r1.12 --- cartridge.xml 28 Jan 2006 03:03:08 -0000 1.11 +++ cartridge.xml 29 Jan 2006 01:52:35 -0000 1.12 @@ -63,7 +63,9 @@ overwrite="false"> <modelElements variable="entity"> <modelElement> - <type name="org.andromda.cartridges.ejb3.metafacades.EJB3EntityFacade"/> + <type name="org.andromda.cartridges.ejb3.metafacades.EJB3EntityFacade"> + <property name="listenerEnabled"/> + </type> </modelElement> </modelElements> </template> @@ -76,7 +78,7 @@ <modelElements variable="entity"> <modelElement> <type name="org.andromda.cartridges.ejb3.metafacades.EJB3EntityFacade"> - <property name="compositePrimaryKeyPresent">true</property> + <property name="compositePrimaryKeyPresent"/> </type> </modelElement> </modelElements> @@ -119,7 +121,7 @@ <modelElements variable="service"> <modelElement> <type name="org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade"> - <property name="viewTypeLocal">true</property> + <property name="viewTypeLocal"/> </type> </modelElement> </modelElements> @@ -134,7 +136,7 @@ <modelElements variable="service"> <modelElement> <type name="org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade"> - <property name="viewTypeRemote">true</property> + <property name="viewTypeRemote"/> </type> </modelElement> </modelElements> @@ -159,7 +161,9 @@ overwrite="false"> <modelElements variable="service"> <modelElement> - <type name="org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade"/> + <type name="org.andromda.cartridges.ejb3.metafacades.EJB3SessionFacade"> + <property name="listenerEnabled"/> + </type> </modelElement> </modelElements> </template> @@ -271,7 +275,9 @@ overwrite="false"> <modelElements variable="mdb"> <modelElement> - <type name="org.andromda.cartridges.ejb3.metafacades.EJB3MessageDrivenFacade"/> + <type name="org.andromda.cartridges.ejb3.metafacades.EJB3MessageDrivenFacade"> + <property name="listenerEnabled"/> + </type> </modelElement> </modelElements> </template> |
From: Vance K. <va...@us...> - 2006-01-29 01:51:06
|
User: vancek Date: 06/01/28 17:50:58 Modified: andromda-ejb3/src/main/resources/templates/ejb3 SessionBeanImpl.vsl Log: session implementation class now has the handle<operation name> method which contains the implementation for the session operation. it throws UnsupportedOperationException if not yet implemented. Revision Changes Path 1.6 +12 -10 cartridges/andromda-ejb3/src/main/resources/templates/ejb3/SessionBeanImpl.vsl Index: SessionBeanImpl.vsl =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/resources/templates/ejb3/SessionBeanImpl.vsl,v retrieving revision 1.5 retrieving revision 1.6 diff -u -w -r1.5 -r1.6 --- SessionBeanImpl.vsl 17 Jan 2006 03:14:41 -0000 1.5 +++ SessionBeanImpl.vsl 29 Jan 2006 01:50:58 -0000 1.6 @@ -51,23 +51,25 @@ // -------- Business Methods -------------- #**##foreach ($operation in $operations) -#* *##set ($returnType = $operation.returnType.fullyQualifiedName) -#* *##set ($signature = $operation.signature) -#* *##set ($visibility = $operation.visibility) /** - * @see ${service.fullyQualifiedName}#${operation.getSignature(false)} + * @see ${service.fullyQualifiedServiceName}#${operation.getSignature(false)} */ - $visibility $returnType $signature -#* *##if ($operation.exceptionsPresent) - $operation.throwsClause -#* *##end +#* *##set ($abstract = $service.abstract && $operation.abstract) + protected#if ($abstract) abstract#end $operation.returnType.fullyQualifiedName $operation.implementationSignature +#* *##if ($abstract) + throws java.lang.Exception; +#* *##else + throws java.lang.Exception { //TODO: put your implementation here. #* *##if ($operation.returnTypePresent) // Dummy return value, just that the file compiles return $operation.returnType.javaNullString; +#* *##else + throw new java.lang.UnsupportedOperationException("${service.fullyQualifiedServiceName}.${operation.implementationSignature} Not implemented!"); #* *##end } +#* *##end #**##end #end |
From: Vance K. <va...@us...> - 2006-01-29 01:49:10
|
User: vancek Date: 06/01/28 17:49:01 Modified: andromda-ejb3/src/main/resources/templates/ejb3 SessionBean.vsl Log: the listener annotation is included only if listenerEnabled is true Revision Changes Path 1.12 +5 -3 cartridges/andromda-ejb3/src/main/resources/templates/ejb3/SessionBean.vsl Index: SessionBean.vsl =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/resources/templates/ejb3/SessionBean.vsl,v retrieving revision 1.11 retrieving revision 1.12 diff -u -w -r1.11 -r1.12 --- SessionBean.vsl 28 Jan 2006 02:49:15 -0000 1.11 +++ SessionBean.vsl 29 Jan 2006 01:49:00 -0000 1.12 @@ -24,7 +24,9 @@ @javax.ejb.TransactionAttribute(javax.ejb.TransactionAttributeType.${service.transactionType}) #**##end #end +#if ($service.listenerEnabled) @javax.ejb.CallbackListener(${service.fullyQualifiedServiceListenerName}.class) +#end #if ($stringUtils.isNotBlank($service.securityRealm)) #**##if ($service.persistenceContainerJboss) @org.jboss.annotation.security.SecurityDomain("${service.securityRealm}") |
From: Vance K. <va...@us...> - 2006-01-29 01:48:07
|
User: vancek Date: 06/01/28 17:48:00 Modified: andromda-ejb3/src/main/resources/templates/ejb3 MessageDrivenBean.vsl Entity.vsl EntityEmbeddable.vsl Log: only add the callback listener annotation defining the listener class if listenerEnabled is true Revision Changes Path 1.7 +2 -0 cartridges/andromda-ejb3/src/main/resources/templates/ejb3/MessageDrivenBean.vsl Index: MessageDrivenBean.vsl =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/resources/templates/ejb3/MessageDrivenBean.vsl,v retrieving revision 1.6 retrieving revision 1.7 diff -u -w -r1.6 -r1.7 --- MessageDrivenBean.vsl 22 Jan 2006 06:21:55 -0000 1.6 +++ MessageDrivenBean.vsl 29 Jan 2006 01:47:59 -0000 1.7 @@ -36,7 +36,9 @@ *} *) */ +#if ($mdb.listenerEnabled) @javax.ejb.CallbackListener(${mdb.fullyQualifiedMessageDrivenListenerName}.class) +#end #if ($mdb.transactionManagement) @javax.ejb.TransactionManagement(javax.ejb.TransactionManagementType.${mdb.transactionManagement}) #end 1.10 +2 -0 cartridges/andromda-ejb3/src/main/resources/templates/ejb3/Entity.vsl Index: Entity.vsl =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/resources/templates/ejb3/Entity.vsl,v retrieving revision 1.9 retrieving revision 1.10 diff -u -w -r1.9 -r1.10 --- Entity.vsl 26 Jan 2006 06:53:14 -0000 1.9 +++ Entity.vsl 29 Jan 2006 01:47:59 -0000 1.10 @@ -20,7 +20,9 @@ @javax.persistence.Entity#if ($entity.accessType)(access = javax.persistence.AccessType.${entity.accessType})#end @javax.persistence.Table(name = "${entity.tableName}") +#if ($entity.listenerEnabled) @javax.persistence.EntityListener(${entity.fullyQualifiedEntityListenerName}.class) +#end public#if ($entity.abstract) abstract#end class ${entity.entityName} extends ${entity.fullyQualifiedEntityEmbeddableName} implements java.io.Serializable 1.10 +1 -1 cartridges/andromda-ejb3/src/main/resources/templates/ejb3/EntityEmbeddable.vsl Index: EntityEmbeddable.vsl =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/resources/templates/ejb3/EntityEmbeddable.vsl,v retrieving revision 1.9 retrieving revision 1.10 diff -u -w -r1.9 -r1.10 --- EntityEmbeddable.vsl 28 Jan 2006 02:43:59 -0000 1.9 +++ EntityEmbeddable.vsl 29 Jan 2006 01:47:59 -0000 1.10 @@ -47,7 +47,7 @@ #if ($entity.requiresGeneralizationMapping && ($entity.embeddableSuperclassGeneralizationExists || $entity.inheritanceTablePerClass || $entity.inheritanceJoined)) @javax.persistence.Table(name = "${entity.tableName}") #end -#if ($entity.requiresGeneralizationMapping) +#if ($entity.requiresGeneralizationMapping && $entity.listenerEnabled) @javax.persistence.EntityListener(${entity.fullyQualifiedEntityListenerName}.class) #end ## Only include the inheritance related annotations for inheritance mapping |
From: Vance K. <va...@us...> - 2006-01-29 01:46:47
|
User: vancek Date: 06/01/28 17:46:41 Modified: andromda-ejb3/src/main/resources/templates/ejb3 jboss.xml.vsl ejb-jar.xml.vsl Log: extracted xml encoding type to namespace property Revision Changes Path 1.5 +1 -1 cartridges/andromda-ejb3/src/main/resources/templates/ejb3/jboss.xml.vsl Index: jboss.xml.vsl =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/resources/templates/ejb3/jboss.xml.vsl,v retrieving revision 1.4 retrieving revision 1.5 diff -u -w -r1.4 -r1.5 --- jboss.xml.vsl 23 Jan 2006 05:47:59 -0000 1.4 +++ jboss.xml.vsl 29 Jan 2006 01:46:40 -0000 1.5 @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="UTF-8"?> +<?xml version="1.0" encoding="${xmlEncoding}"?> <!DOCTYPE jboss PUBLIC "-//JBoss//DTD JBOSS 4.0//EN" "http://www.jboss.org/j2ee/dtd/jboss_4_0.dtd"> 1.5 +1 -1 cartridges/andromda-ejb3/src/main/resources/templates/ejb3/ejb-jar.xml.vsl Index: ejb-jar.xml.vsl =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/resources/templates/ejb3/ejb-jar.xml.vsl,v retrieving revision 1.4 retrieving revision 1.5 diff -u -w -r1.4 -r1.5 --- ejb-jar.xml.vsl 22 Jan 2006 06:20:49 -0000 1.4 +++ ejb-jar.xml.vsl 29 Jan 2006 01:46:40 -0000 1.5 @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="UTF-8"?> +<?xml version="1.0" encoding="${xmlEncoding}"?> <!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" "http://java.sun.com/dtd/ejb-jar_2_0.dtd"> |
From: Vance K. <va...@us...> - 2006-01-28 03:10:43
|
User: vancek Date: 06/01/27 19:10:37 Modified: andromda-ejb3/src/main/resources/META-INF/andromda namespace.xml Log: replaced interceptors & enumerations outlet properties with commons property definition, added serviceImplementationOperationNamePatter & defaultServiceExceptionNamePattern properties, removed entityDefaultAssociationOptional property, moved entity related properties into entity propery group, moved service related properties to service property group, added paramterRequiredCheck & xmlEncoding & allowDefaultServiceException properties into the other property group. Revision Changes Path 1.10 +92 -67 cartridges/andromda-ejb3/src/main/resources/META-INF/andromda/namespace.xml Index: namespace.xml =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/resources/META-INF/andromda/namespace.xml,v retrieving revision 1.9 retrieving revision 1.10 diff -u -w -r1.9 -r1.10 --- namespace.xml 26 Jan 2006 07:01:12 -0000 1.9 +++ namespace.xml 28 Jan 2006 03:10:37 -0000 1.10 @@ -71,17 +71,11 @@ implementation files are generated. </documentation> </property> - <property name="interceptors"> + <property name="commons"> <documentation> - The directory to which interceptor classes - for session beans or message driven beans - are generated. - </documentation> - </property> - <property name="enumerations"> - <documentation> - The directory to which entity JDK 1.5 - enumerations are generated. + The directory to which common classes + for session beans, entity POJOs or MDB + are generated </documentation> </property> </propertyGroup> @@ -301,6 +295,22 @@ bean delegate class name. </documentation> </property> + <property name="serviceImplementationOperationNamePattern"> + <default>handle{0}</default> + <documentation> + The pattern used to the create the implementation operation name + (i.e. the operations that actually perform the handling of the logic), + where <em>{0}</em> represents the operation name. + </documentation> + </property> + <property name="defaultServiceExceptionNamePattern"> + <default>{0}Exception</default> + <documentation> + The pattern to use when constructing the default service exception name. + <strong>NOTE:</strong> This propety is only applicable when + allowDefaultServiceExceptions is <code>true</code>. + </documentation> + </property> <property name="messageDrivenNamePattern"> <default>{0}MDBBean</default> <documentation> @@ -357,27 +367,19 @@ </documentation> </property> </propertyGroup> - <propertyGroup name="Other Properties"> - <property name="persistenceContainerName"> - <default>jboss</default> + <propertyGroup name="Entity Properties"> + <property name="entityViewType"> + <default>local</default> <documentation> - The default persistence container engine name. - Used when specifying specific annotations - for different persistence containers. - Possible values are: + The default view type accessability for an entity POJO bean. <ul> - <li>jboss</li> - <li>weblogic</li> + Permitted values are: + <li>local</li> + <li>remote</li> + <li>both</li> </ul> </documentation> </property> - <property name="persistenceContextUnitName" required="false"> - <documentation> - Specifies the default persistence context - unit name associated with the default Entity - Manager. - </documentation> - </property> <property name="entityAccessType"> <default>PROPERTY</default> <documentation> @@ -526,16 +528,6 @@ if it is required and not specified.. </documentation> </property> - <property name="entityDefaultAssociationOptional"> - <default>true</default> - <documentation> - Default entity association optional attribute for - Many-to-One and One-to-One relationships. Set using - the @andromda.persistence.optional tagged value. If - set to false, then non-null relationships must - always exist. - </documentation> - </property> <property name="entityGenericFinders"> <default>true</default> <documentation> @@ -556,6 +548,48 @@ storage of a string based enumeration literal. </documentation> </property> + </propertyGroup> + <propertyGroup name="Service Properties"> + <property name="serviceViewType"> + <default>remote</default> + <documentation> + The default view type accessability for a session bean. + <ul> + Permitted values are: + <li>local</li> + <li>remote</li> + <li>both</li> + </ul> + </documentation> + </property> + <property name="serviceLocatorName"> + <default>ServiceLocator</default> + <documentation> + The name to give the service locator class. + </documentation> + </property> + </propertyGroup> + <propertyGroup name="Other Properties"> + <property name="persistenceContainerName"> + <default>jboss</default> + <documentation> + The default persistence container engine name. + Used when specifying specific annotations + for different persistence containers. + Possible values are: + <ul> + <li>jboss</li> + <li>weblogic</li> + </ul> + </documentation> + </property> + <property name="persistenceContextUnitName" required="false"> + <documentation> + Specifies the default persistence context + unit name associated with the default Entity + Manager. + </documentation> + </property> <property name="specificCollectionInterfaces"> <default>false</default> <documentation> @@ -586,7 +620,8 @@ Specifies the security domain to use for role based authorization. Use the security realm to match allowed roles. - This is only applicable for session beans. + This is only applicable for session beans + and MDBs. </documentation> </property> <property name="queryUseNamedParameters"> @@ -606,30 +641,6 @@ <property name="valueObjectName"> <default>{0}</default> </property> - <property name="entityViewType"> - <default>local</default> - <documentation> - The default view type accessability for an entity POJO bean. - <ul> - Permitted values are: - <li>local</li> - <li>remote</li> - <li>both</li> - </ul> - </documentation> - </property> - <property name="serviceViewType"> - <default>remote</default> - <documentation> - The default view type accessability for a session bean. - <ul> - Permitted values are: - <li>local</li> - <li>remote</li> - <li>both</li> - </ul> - </documentation> - </property> <property name="transactionType"> <default>REQUIRED</default> <documentation> @@ -652,18 +663,32 @@ tagged value. </documentation> </property> - <property name="serviceLocatorName"> - <default>ServiceLocator</default> - <documentation> - The name to give the service locator class. - </documentation> - </property> <property name="ejb3TypesPackage"> <default>org.andromda.ejb3</default> <documentation> The package to which extra types are generated (i.e. ServiceLocator). </documentation> </property> + <property name="parameterRequiredCheck"> + <default>true</default> + <documentation> + Whether or not parameters should be checked if they're + required on services bean operation. + </documentation> + </property> + <property name="xmlEncoding"> + <default>UTF-8</default> + <documentation> + The encoding for xml documents + </documentation> + </property> + <property name="allowDefaultServiceException"> + <default>true</default> + <documentation> + Whether or not to generate a default exception for each service. This exception + will handle unexpected exceptions occuring within the implemented operations. + </documentation> + </property> </propertyGroup> </properties> </namespace> \ No newline at end of file |