You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by jl...@apache.org on 2010/12/23 16:58:57 UTC

svn commit: r1052305 [2/3] - in /openejb/trunk/openejb3/container/openejb-jee/src: main/java/org/apache/openejb/jee/jpa/ test/java/org/apache/openejb/jee/jpa/ test/resources/

Modified: openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/ManyToMany.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/ManyToMany.java?rev=1052305&r1=1052304&r2=1052305&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/ManyToMany.java (original)
+++ openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/ManyToMany.java Thu Dec 23 15:58:55 2010
@@ -17,6 +17,7 @@
 
 package org.apache.openejb.jee.jpa;
 
+import java.util.ArrayList;
 import java.util.List;
 import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;
@@ -48,15 +49,33 @@ import javax.xml.bind.annotation.XmlTran
  *   <complexContent>
  *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
  *       <sequence>
- *         <element name="order-by" type="{http://java.sun.com/xml/ns/persistence/orm}order-by" minOccurs="0"/>
- *         <element name="map-key" type="{http://java.sun.com/xml/ns/persistence/orm}map-key" minOccurs="0"/>
+ *         <choice>
+ *           <element name="order-by" type="{http://java.sun.com/xml/ns/persistence/orm}order-by" minOccurs="0"/>
+ *           <element name="order-column" type="{http://java.sun.com/xml/ns/persistence/orm}order-column" minOccurs="0"/>
+ *         </choice>
+ *         <choice>
+ *           <element name="map-key" type="{http://java.sun.com/xml/ns/persistence/orm}map-key" minOccurs="0"/>
+ *           <sequence>
+ *             <element name="map-key-class" type="{http://java.sun.com/xml/ns/persistence/orm}map-key-class" minOccurs="0"/>
+ *             <choice>
+ *               <element name="map-key-temporal" type="{http://java.sun.com/xml/ns/persistence/orm}temporal" minOccurs="0"/>
+ *               <element name="map-key-enumerated" type="{http://java.sun.com/xml/ns/persistence/orm}enumerated" minOccurs="0"/>
+ *               <element name="map-key-attribute-override" type="{http://java.sun.com/xml/ns/persistence/orm}attribute-override" maxOccurs="unbounded" minOccurs="0"/>
+ *             </choice>
+ *             <choice>
+ *               <element name="map-key-column" type="{http://java.sun.com/xml/ns/persistence/orm}map-key-column" minOccurs="0"/>
+ *               <element name="map-key-join-column" type="{http://java.sun.com/xml/ns/persistence/orm}map-key-join-column" maxOccurs="unbounded" minOccurs="0"/>
+ *             </choice>
+ *           </sequence>
+ *         </choice>
  *         <element name="join-table" type="{http://java.sun.com/xml/ns/persistence/orm}join-table" minOccurs="0"/>
  *         <element name="cascade" type="{http://java.sun.com/xml/ns/persistence/orm}cascade-type" minOccurs="0"/>
  *       </sequence>
- *       <attribute name="fetch" type="{http://java.sun.com/xml/ns/persistence/orm}fetch-type" />
- *       <attribute name="mapped-by" type="{http://www.w3.org/2001/XMLSchema}string" />
  *       <attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
  *       <attribute name="target-entity" type="{http://www.w3.org/2001/XMLSchema}string" />
+ *       <attribute name="fetch" type="{http://java.sun.com/xml/ns/persistence/orm}fetch-type" />
+ *       <attribute name="access" type="{http://java.sun.com/xml/ns/persistence/orm}access-type" />
+ *       <attribute name="mapped-by" type="{http://www.w3.org/2001/XMLSchema}string" />
  *     </restriction>
  *   </complexContent>
  * </complexType>
@@ -67,7 +86,14 @@ import javax.xml.bind.annotation.XmlTran
 @XmlAccessorType(XmlAccessType.FIELD)
 @XmlType(name = "many-to-many", propOrder = {
     "orderBy",
+    "orderColumn",
     "mapKey",
+    "mapKeyClass",
+    "mapKeyTemporal",
+    "mapKeyEnumerated",
+    "mapKeyAttributeOverride",
+    "mapKeyColumn",
+    "mapKeyJoinColumn",
     "joinTable",
     "cascade"
 })
@@ -75,13 +101,29 @@ public class ManyToMany implements Relat
 
     @XmlElement(name = "order-by")
     protected String orderBy;
+    @XmlElement(name = "order-column")
+    protected OrderColumn orderColumn;
     @XmlElement(name = "map-key")
     protected MapKey mapKey;
+    @XmlElement(name = "map-key-class")
+    protected MapKeyClass mapKeyClass;
+    @XmlElement(name = "map-key-temporal")
+    protected TemporalType mapKeyTemporal;
+    @XmlElement(name = "map-key-enumerated")
+    protected EnumType mapKeyEnumerated;
+    @XmlElement(name = "map-key-attribute-override")
+    protected List<AttributeOverride> mapKeyAttributeOverride;
+    @XmlElement(name = "map-key-column")
+    protected MapKeyColumn mapKeyColumn;
+    @XmlElement(name = "map-key-join-column")
+    protected List<MapKeyJoinColumn> mapKeyJoinColumn;
     @XmlElement(name = "join-table")
     protected JoinTable joinTable;
     protected CascadeType cascade;
     @XmlAttribute
     protected FetchType fetch;
+    @XmlAttribute
+    protected AccessType access;
     @XmlAttribute(name = "mapped-by")
     protected String mappedBy;
     @XmlAttribute(required = true)
@@ -118,6 +160,30 @@ public class ManyToMany implements Relat
     }
 
     /**
+     * Gets the value of the orderColumn property.
+     *
+     * @return
+     *     possible object is
+     *     {@link OrderColumn }
+     *
+     */
+    public OrderColumn getOrderColumn() {
+        return orderColumn;
+    }
+
+    /**
+     * Sets the value of the orderColumn property.
+     *
+     * @param value
+     *     allowed object is
+     *     {@link OrderColumn }
+     *
+     */
+    public void setOrderColumn(OrderColumn value) {
+        this.orderColumn = value;
+    }
+
+    /**
      * Gets the value of the mapKey property.
      *
      * @return
@@ -142,6 +208,160 @@ public class ManyToMany implements Relat
     }
 
     /**
+     * Gets the value of the mapKeyClass property.
+     *
+     * @return
+     *     possible object is
+     *     {@link MapKeyClass }
+     *
+     */
+    public MapKeyClass getMapKeyClass() {
+        return mapKeyClass;
+    }
+
+    /**
+     * Sets the value of the mapKeyClass property.
+     *
+     * @param value
+     *     allowed object is
+     *     {@link MapKeyClass }
+     *
+     */
+    public void setMapKeyClass(MapKeyClass value) {
+        this.mapKeyClass = value;
+    }
+
+    /**
+     * Gets the value of the mapKeyTemporal property.
+     *
+     * @return
+     *     possible object is
+     *     {@link TemporalType }
+     *
+     */
+    public TemporalType getMapKeyTemporal() {
+        return mapKeyTemporal;
+    }
+
+    /**
+     * Sets the value of the mapKeyTemporal property.
+     *
+     * @param value
+     *     allowed object is
+     *     {@link TemporalType }
+     *
+     */
+    public void setMapKeyTemporal(TemporalType value) {
+        this.mapKeyTemporal = value;
+    }
+
+    /**
+     * Gets the value of the mapKeyEnumerated property.
+     *
+     * @return
+     *     possible object is
+     *     {@link EnumType }
+     *
+     */
+    public EnumType getMapKeyEnumerated() {
+        return mapKeyEnumerated;
+    }
+
+    /**
+     * Sets the value of the mapKeyEnumerated property.
+     *
+     * @param value
+     *     allowed object is
+     *     {@link EnumType }
+     *
+     */
+    public void setMapKeyEnumerated(EnumType value) {
+        this.mapKeyEnumerated = value;
+    }
+
+    /**
+     * Gets the value of the mapKeyAttributeOverride property.
+     *
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the mapKeyAttributeOverride property.
+     *
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getMapKeyAttributeOverride().add(newItem);
+     * </pre>
+     *
+     *
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link AttributeOverride }
+     *
+     *
+     */
+    public List<AttributeOverride> getMapKeyAttributeOverride() {
+        if (mapKeyAttributeOverride == null) {
+            mapKeyAttributeOverride = new ArrayList<AttributeOverride>();
+        }
+        return this.mapKeyAttributeOverride;
+    }
+
+    /**
+     * Gets the value of the mapKeyColumn property.
+     *
+     * @return
+     *     possible object is
+     *     {@link MapKeyColumn }
+     *
+     */
+    public MapKeyColumn getMapKeyColumn() {
+        return mapKeyColumn;
+    }
+
+    /**
+     * Sets the value of the mapKeyColumn property.
+     *
+     * @param value
+     *     allowed object is
+     *     {@link MapKeyColumn }
+     *
+     */
+    public void setMapKeyColumn(MapKeyColumn value) {
+        this.mapKeyColumn = value;
+    }
+
+    /**
+     * Gets the value of the mapKeyJoinColumn property.
+     *
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the mapKeyJoinColumn property.
+     *
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getMapKeyJoinColumn().add(newItem);
+     * </pre>
+     *
+     *
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link MapKeyJoinColumn }
+     *
+     *
+     */
+    public List<MapKeyJoinColumn> getMapKeyJoinColumn() {
+        if (mapKeyJoinColumn == null) {
+            mapKeyJoinColumn = new ArrayList<MapKeyJoinColumn>();
+        }
+        return this.mapKeyJoinColumn;
+    }
+
+    /**
      * Gets the value of the joinTable property.
      *
      * @return
@@ -262,6 +482,30 @@ public class ManyToMany implements Relat
     }
 
     /**
+     * Gets the value of the access property.
+     *
+     * @return
+     *     possible object is
+     *     {@link AccessType }
+     *
+     */
+    public AccessType getAccess() {
+        return access;
+    }
+
+    /**
+     * Sets the value of the access property.
+     *
+     * @param value
+     *     allowed object is
+     *     {@link AccessType }
+     *
+     */
+    public void setAccess(AccessType value) {
+        this.access = value;
+    }
+
+    /**
      * Gets the value of the targetEntity property.
      *
      * @return

Modified: openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/ManyToOne.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/ManyToOne.java?rev=1052305&r1=1052304&r2=1052305&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/ManyToOne.java (original)
+++ openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/ManyToOne.java Thu Dec 23 15:58:55 2010
@@ -55,10 +55,13 @@ import javax.xml.bind.annotation.XmlTran
  *         &lt;/choice>
  *         &lt;element name="cascade" type="{http://java.sun.com/xml/ns/persistence/orm}cascade-type" minOccurs="0"/>
  *       &lt;/sequence>
- *       &lt;attribute name="fetch" type="{http://java.sun.com/xml/ns/persistence/orm}fetch-type" />
  *       &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
- *       &lt;attribute name="optional" type="{http://www.w3.org/2001/XMLSchema}boolean" />
  *       &lt;attribute name="target-entity" type="{http://www.w3.org/2001/XMLSchema}string" />
+ *       &lt;attribute name="fetch" type="{http://java.sun.com/xml/ns/persistence/orm}fetch-type" />
+ *       &lt;attribute name="optional" type="{http://www.w3.org/2001/XMLSchema}boolean" />
+ *       &lt;attribute name="access" type="{http://java.sun.com/xml/ns/persistence/orm}access-type" />
+ *       &lt;attribute name="maps-id" type="{http://www.w3.org/2001/XMLSchema}string" />
+ *       &lt;attribute name="id" type="{http://www.w3.org/2001/XMLSchema}boolean" />
  *     &lt;/restriction>
  *   &lt;/complexContent>
  * &lt;/complexType>
@@ -91,6 +94,12 @@ public class ManyToOne implements Relati
     protected RelationField relatedField;
     @XmlTransient
     protected boolean syntheticField;
+    @XmlAttribute
+    protected AccessType access;
+    @XmlAttribute(name = "maps-id")
+    protected String mapsId;
+    @XmlAttribute
+    protected Boolean id;
    
     /**
      * Gets the value of the joinColumn property.
@@ -311,4 +320,76 @@ public class ManyToOne implements Relati
     public Object getKey() {
         return name;
     }
+
+    /**
+     * Gets the value of the access property.
+     *
+     * @return
+     *     possible object is
+     *     {@link AccessType }
+     *
+     */
+    public AccessType getAccess() {
+        return access;
+    }
+
+    /**
+     * Sets the value of the access property.
+     *
+     * @param value
+     *     allowed object is
+     *     {@link AccessType }
+     *
+     */
+    public void setAccess(AccessType value) {
+        this.access = value;
+    }
+
+    /**
+     * Gets the value of the mapsId property.
+     *
+     * @return
+     *     possible object is
+     *     {@link String }
+     *
+     */
+    public String getMapsId() {
+        return mapsId;
+    }
+
+    /**
+     * Sets the value of the mapsId property.
+     *
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *
+     */
+    public void setMapsId(String value) {
+        this.mapsId = value;
+    }
+
+    /**
+     * Gets the value of the id property.
+     *
+     * @return
+     *     possible object is
+     *     {@link Boolean }
+     *
+     */
+    public Boolean isId() {
+        return id;
+    }
+
+    /**
+     * Sets the value of the id property.
+     *
+     * @param value
+     *     allowed object is
+     *     {@link Boolean }
+     *
+     */
+    public void setId(Boolean value) {
+        this.id = value;
+    }
 }

Added: openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/MapKeyClass.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/MapKeyClass.java?rev=1052305&view=auto
==============================================================================
--- openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/MapKeyClass.java (added)
+++ openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/MapKeyClass.java Thu Dec 23 15:58:55 2010
@@ -0,0 +1,83 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.openejb.jee.jpa;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * 
+ * 
+ *         @Target({METHOD, FIELD}) @Retention(RUNTIME)
+ *         public @interface MapKeyClass {
+ *           Class value();
+ *         }
+ * 
+ *       
+ * 
+ * <p>Java class for map-key-class complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="map-key-class">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;attribute name="class" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "map-key-class")
+public class MapKeyClass {
+
+    @XmlAttribute(name = "class", required = true)
+    protected String clazz;
+
+    /**
+     * Gets the value of the clazz property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getClazz() {
+        return clazz;
+    }
+
+    /**
+     * Sets the value of the clazz property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setClazz(String value) {
+        this.clazz = value;
+    }
+
+}

Added: openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/MapKeyColumn.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/MapKeyColumn.java?rev=1052305&view=auto
==============================================================================
--- openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/MapKeyColumn.java (added)
+++ openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/MapKeyColumn.java Thu Dec 23 15:58:55 2010
@@ -0,0 +1,335 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.openejb.jee.jpa;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * 
+ * 
+ *         @Target({METHOD, FIELD}) @Retention(RUNTIME)
+ *         public @interface MapKeyColumn {
+ *           String name() default "";
+ *           boolean unique() default false;
+ *           boolean nullable() default false;
+ *           boolean insertable() default true;
+ *           boolean updatable() default true;
+ *           String columnDefinition() default "";
+ *           String table() default "";
+ *           int length() default 255;
+ *           int precision() default 0; // decimal precision
+ *           int scale() default 0; // decimal scale
+ *         }
+ * 
+ *       
+ * 
+ * <p>Java class for map-key-column complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="map-key-column">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;attribute name="name" type="{http://www.w3.org/2001/XMLSchema}string" />
+ *       &lt;attribute name="unique" type="{http://www.w3.org/2001/XMLSchema}boolean" />
+ *       &lt;attribute name="nullable" type="{http://www.w3.org/2001/XMLSchema}boolean" />
+ *       &lt;attribute name="insertable" type="{http://www.w3.org/2001/XMLSchema}boolean" />
+ *       &lt;attribute name="updatable" type="{http://www.w3.org/2001/XMLSchema}boolean" />
+ *       &lt;attribute name="column-definition" type="{http://www.w3.org/2001/XMLSchema}string" />
+ *       &lt;attribute name="table" type="{http://www.w3.org/2001/XMLSchema}string" />
+ *       &lt;attribute name="length" type="{http://www.w3.org/2001/XMLSchema}int" />
+ *       &lt;attribute name="precision" type="{http://www.w3.org/2001/XMLSchema}int" />
+ *       &lt;attribute name="scale" type="{http://www.w3.org/2001/XMLSchema}int" />
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "map-key-column")
+public class MapKeyColumn {
+
+    @XmlAttribute
+    protected String name;
+    @XmlAttribute
+    protected Boolean unique;
+    @XmlAttribute
+    protected Boolean nullable;
+    @XmlAttribute
+    protected Boolean insertable;
+    @XmlAttribute
+    protected Boolean updatable;
+    @XmlAttribute(name = "column-definition")
+    protected String columnDefinition;
+    @XmlAttribute
+    protected String table;
+    @XmlAttribute
+    protected Integer length;
+    @XmlAttribute
+    protected Integer precision;
+    @XmlAttribute
+    protected Integer scale;
+
+    /**
+     * Gets the value of the name property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getName() {
+        return name;
+    }
+
+    /**
+     * Sets the value of the name property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setName(String value) {
+        this.name = value;
+    }
+
+    /**
+     * Gets the value of the unique property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link Boolean }
+     *     
+     */
+    public Boolean isUnique() {
+        return unique;
+    }
+
+    /**
+     * Sets the value of the unique property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link Boolean }
+     *     
+     */
+    public void setUnique(Boolean value) {
+        this.unique = value;
+    }
+
+    /**
+     * Gets the value of the nullable property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link Boolean }
+     *     
+     */
+    public Boolean isNullable() {
+        return nullable;
+    }
+
+    /**
+     * Sets the value of the nullable property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link Boolean }
+     *     
+     */
+    public void setNullable(Boolean value) {
+        this.nullable = value;
+    }
+
+    /**
+     * Gets the value of the insertable property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link Boolean }
+     *     
+     */
+    public Boolean isInsertable() {
+        return insertable;
+    }
+
+    /**
+     * Sets the value of the insertable property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link Boolean }
+     *     
+     */
+    public void setInsertable(Boolean value) {
+        this.insertable = value;
+    }
+
+    /**
+     * Gets the value of the updatable property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link Boolean }
+     *     
+     */
+    public Boolean isUpdatable() {
+        return updatable;
+    }
+
+    /**
+     * Sets the value of the updatable property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link Boolean }
+     *     
+     */
+    public void setUpdatable(Boolean value) {
+        this.updatable = value;
+    }
+
+    /**
+     * Gets the value of the columnDefinition property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getColumnDefinition() {
+        return columnDefinition;
+    }
+
+    /**
+     * Sets the value of the columnDefinition property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setColumnDefinition(String value) {
+        this.columnDefinition = value;
+    }
+
+    /**
+     * Gets the value of the table property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getTable() {
+        return table;
+    }
+
+    /**
+     * Sets the value of the table property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setTable(String value) {
+        this.table = value;
+    }
+
+    /**
+     * Gets the value of the length property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link Integer }
+     *     
+     */
+    public Integer getLength() {
+        return length;
+    }
+
+    /**
+     * Sets the value of the length property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link Integer }
+     *     
+     */
+    public void setLength(Integer value) {
+        this.length = value;
+    }
+
+    /**
+     * Gets the value of the precision property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link Integer }
+     *     
+     */
+    public Integer getPrecision() {
+        return precision;
+    }
+
+    /**
+     * Sets the value of the precision property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link Integer }
+     *     
+     */
+    public void setPrecision(Integer value) {
+        this.precision = value;
+    }
+
+    /**
+     * Gets the value of the scale property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link Integer }
+     *     
+     */
+    public Integer getScale() {
+        return scale;
+    }
+
+    /**
+     * Sets the value of the scale property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link Integer }
+     *     
+     */
+    public void setScale(Integer value) {
+        this.scale = value;
+    }
+
+}

Added: openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/MapKeyJoinColumn.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/MapKeyJoinColumn.java?rev=1052305&view=auto
==============================================================================
--- openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/MapKeyJoinColumn.java (added)
+++ openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/MapKeyJoinColumn.java Thu Dec 23 15:58:55 2010
@@ -0,0 +1,279 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.openejb.jee.jpa;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * 
+ * 
+ *         @Target({METHOD, FIELD}) @Retention(RUNTIME)
+ *         public @interface MapKeyJoinColumn {
+ *           String name() default "";
+ *           String referencedColumnName() default "";
+ *           boolean unique() default false;
+ *           boolean nullable() default false;
+ *           boolean insertable() default true;
+ *           boolean updatable() default true;
+ *           String columnDefinition() default "";
+ *           String table() default "";
+ *         }
+ * 
+ *       
+ * 
+ * <p>Java class for map-key-join-column complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="map-key-join-column">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;attribute name="name" type="{http://www.w3.org/2001/XMLSchema}string" />
+ *       &lt;attribute name="referenced-column-name" type="{http://www.w3.org/2001/XMLSchema}string" />
+ *       &lt;attribute name="unique" type="{http://www.w3.org/2001/XMLSchema}boolean" />
+ *       &lt;attribute name="nullable" type="{http://www.w3.org/2001/XMLSchema}boolean" />
+ *       &lt;attribute name="insertable" type="{http://www.w3.org/2001/XMLSchema}boolean" />
+ *       &lt;attribute name="updatable" type="{http://www.w3.org/2001/XMLSchema}boolean" />
+ *       &lt;attribute name="column-definition" type="{http://www.w3.org/2001/XMLSchema}string" />
+ *       &lt;attribute name="table" type="{http://www.w3.org/2001/XMLSchema}string" />
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "map-key-join-column")
+public class MapKeyJoinColumn {
+
+    @XmlAttribute
+    protected String name;
+    @XmlAttribute(name = "referenced-column-name")
+    protected String referencedColumnName;
+    @XmlAttribute
+    protected Boolean unique;
+    @XmlAttribute
+    protected Boolean nullable;
+    @XmlAttribute
+    protected Boolean insertable;
+    @XmlAttribute
+    protected Boolean updatable;
+    @XmlAttribute(name = "column-definition")
+    protected String columnDefinition;
+    @XmlAttribute
+    protected String table;
+
+    /**
+     * Gets the value of the name property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getName() {
+        return name;
+    }
+
+    /**
+     * Sets the value of the name property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setName(String value) {
+        this.name = value;
+    }
+
+    /**
+     * Gets the value of the referencedColumnName property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getReferencedColumnName() {
+        return referencedColumnName;
+    }
+
+    /**
+     * Sets the value of the referencedColumnName property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setReferencedColumnName(String value) {
+        this.referencedColumnName = value;
+    }
+
+    /**
+     * Gets the value of the unique property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link Boolean }
+     *     
+     */
+    public Boolean isUnique() {
+        return unique;
+    }
+
+    /**
+     * Sets the value of the unique property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link Boolean }
+     *     
+     */
+    public void setUnique(Boolean value) {
+        this.unique = value;
+    }
+
+    /**
+     * Gets the value of the nullable property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link Boolean }
+     *     
+     */
+    public Boolean isNullable() {
+        return nullable;
+    }
+
+    /**
+     * Sets the value of the nullable property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link Boolean }
+     *     
+     */
+    public void setNullable(Boolean value) {
+        this.nullable = value;
+    }
+
+    /**
+     * Gets the value of the insertable property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link Boolean }
+     *     
+     */
+    public Boolean isInsertable() {
+        return insertable;
+    }
+
+    /**
+     * Sets the value of the insertable property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link Boolean }
+     *     
+     */
+    public void setInsertable(Boolean value) {
+        this.insertable = value;
+    }
+
+    /**
+     * Gets the value of the updatable property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link Boolean }
+     *     
+     */
+    public Boolean isUpdatable() {
+        return updatable;
+    }
+
+    /**
+     * Sets the value of the updatable property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link Boolean }
+     *     
+     */
+    public void setUpdatable(Boolean value) {
+        this.updatable = value;
+    }
+
+    /**
+     * Gets the value of the columnDefinition property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getColumnDefinition() {
+        return columnDefinition;
+    }
+
+    /**
+     * Sets the value of the columnDefinition property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setColumnDefinition(String value) {
+        this.columnDefinition = value;
+    }
+
+    /**
+     * Gets the value of the table property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getTable() {
+        return table;
+    }
+
+    /**
+     * Sets the value of the table property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setTable(String value) {
+        this.table = value;
+    }
+
+}

Modified: openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/NamedNativeQuery.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/NamedNativeQuery.java?rev=1052305&r1=1052304&r2=1052305&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/NamedNativeQuery.java (original)
+++ openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/NamedNativeQuery.java Thu Dec 23 15:58:55 2010
@@ -49,6 +49,7 @@ import javax.xml.bind.annotation.XmlType
  *   &lt;complexContent>
  *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
  *       &lt;sequence>
+ *         &lt;element name="description" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
  *         &lt;element name="query" type="{http://www.w3.org/2001/XMLSchema}string"/>
  *         &lt;element name="hint" type="{http://java.sun.com/xml/ns/persistence/orm}query-hint" maxOccurs="unbounded" minOccurs="0"/>
  *       &lt;/sequence>
@@ -64,11 +65,13 @@ import javax.xml.bind.annotation.XmlType
  */
 @XmlAccessorType(XmlAccessType.FIELD)
 @XmlType(name = "named-native-query", propOrder = {
+    "description",
     "query",
     "hint"
 })
 public class NamedNativeQuery {
 
+    protected String description;
     @XmlElement(required = true)
     protected String query;
     protected List<QueryHint> hint;
@@ -80,6 +83,30 @@ public class NamedNativeQuery {
     protected String resultSetMapping;
 
     /**
+     * Gets the value of the description property.
+     *
+     * @return
+     *     possible object is
+     *     {@link String }
+     *
+     */
+    public String getDescription() {
+        return description;
+    }
+
+    /**
+     * Sets the value of the description property.
+     *
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *
+     */
+    public void setDescription(String value) {
+        this.description = value;
+    }
+
+    /**
      * Gets the value of the query property.
      * 
      * @return

Modified: openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/NamedQuery.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/NamedQuery.java?rev=1052305&r1=1052304&r2=1052305&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/NamedQuery.java (original)
+++ openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/NamedQuery.java Thu Dec 23 15:58:55 2010
@@ -33,6 +33,7 @@ import javax.xml.bind.annotation.XmlType
  *         public @interface NamedQuery {
  *           String name();
  *           String query();
+ *           LockModeType lockMode() default NONE;
  *           QueryHint[] hints() default {};
  *         }
  * 
@@ -47,7 +48,9 @@ import javax.xml.bind.annotation.XmlType
  *   &lt;complexContent>
  *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
  *       &lt;sequence>
+ *         &lt;element name="description" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
  *         &lt;element name="query" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *         &lt;element name="lock-mode" type="{http://java.sun.com/xml/ns/persistence/orm}lock-mode-type" minOccurs="0"/>
  *         &lt;element name="hint" type="{http://java.sun.com/xml/ns/persistence/orm}query-hint" maxOccurs="unbounded" minOccurs="0"/>
  *       &lt;/sequence>
  *       &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
@@ -60,18 +63,47 @@ import javax.xml.bind.annotation.XmlType
  */
 @XmlAccessorType(XmlAccessType.FIELD)
 @XmlType(name = "named-query", propOrder = {
+    "description",
     "query",
+    "lockMode",
     "hint"
 })
 public class NamedQuery {
 
+    protected String description;
     @XmlElement(required = true)
     protected String query;
+    @XmlElement(name = "lock-mode")
+    protected LockModeType lockMode;
     protected List<QueryHint> hint;
     @XmlAttribute(required = true)
     protected String name;
 
     /**
+     * Gets the value of the description property.
+     *
+     * @return
+     *     possible object is
+     *     {@link String }
+     *
+     */
+    public String getDescription() {
+        return description;
+    }
+
+    /**
+     * Sets the value of the description property.
+     *
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *
+     */
+    public void setDescription(String value) {
+        this.description = value;
+    }
+
+    /**
      * Gets the value of the query property.
      * 
      * @return
@@ -96,6 +128,30 @@ public class NamedQuery {
     }
 
     /**
+     * Gets the value of the lockMode property.
+     *
+     * @return
+     *     possible object is
+     *     {@link LockModeType }
+     *
+     */
+    public LockModeType getLockMode() {
+        return lockMode;
+    }
+
+    /**
+     * Sets the value of the lockMode property.
+     *
+     * @param value
+     *     allowed object is
+     *     {@link LockModeType }
+     *
+     */
+    public void setLockMode(LockModeType value) {
+        this.lockMode = value;
+    }
+
+    /**
      * Gets the value of the hint property.
      * 
      * <p>

Modified: openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/ObjectFactory.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/ObjectFactory.java?rev=1052305&r1=1052304&r2=1052305&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/ObjectFactory.java (original)
+++ openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/ObjectFactory.java Thu Dec 23 15:58:55 2010
@@ -40,433 +40,481 @@ public class ObjectFactory {
 
     /**
      * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: org.apache.openejb.jee.jpa
-     * 
+     *
      */
     public ObjectFactory() {
     }
 
     /**
-     * Create an instance of {@link PreRemove }
-     * 
+     * Create an instance of {@link MapKeyJoinColumn }
+     *
      */
-    public PreRemove createPreRemove() {
-        return new PreRemove();
+    public MapKeyJoinColumn createMapKeyJoinColumn() {
+        return new MapKeyJoinColumn();
     }
 
     /**
-     * Create an instance of {@link PostUpdate }
-     * 
+     * Create an instance of {@link Inheritance }
+     *
      */
-    public PostUpdate createPostUpdate() {
-        return new PostUpdate();
+    public Inheritance createInheritance() {
+        return new Inheritance();
     }
 
     /**
-     * Create an instance of {@link Basic }
-     * 
+     * Create an instance of {@link Table }
+     *
      */
-    public Basic createBasic() {
-        return new Basic();
+    public Table createTable() {
+        return new Table();
     }
 
     /**
-     * Create an instance of {@link JoinColumn }
-     * 
+     * Create an instance of {@link Transient }
+     *
      */
-    public JoinColumn createJoinColumn() {
-        return new JoinColumn();
+    public Transient createTransient() {
+        return new Transient();
     }
 
     /**
-     * Create an instance of {@link TableGenerator }
-     * 
+     * Create an instance of {@link JoinTable }
+     *
      */
-    public TableGenerator createTableGenerator() {
-        return new TableGenerator();
+    public JoinTable createJoinTable() {
+        return new JoinTable();
     }
 
     /**
-     * Create an instance of {@link DiscriminatorColumn }
-     * 
+     * Create an instance of {@link SecondaryTable }
+     *
      */
-    public DiscriminatorColumn createDiscriminatorColumn() {
-        return new DiscriminatorColumn();
+    public SecondaryTable createSecondaryTable() {
+        return new SecondaryTable();
     }
 
     /**
-     * Create an instance of {@link Embeddable }
-     * 
+     * Create an instance of {@link Lob }
+     *
      */
-    public Embeddable createEmbeddable() {
-        return new Embeddable();
+    public Lob createLob() {
+        return new Lob();
     }
 
     /**
-     * Create an instance of {@link NamedNativeQuery }
-     * 
+     * Create an instance of {@link NamedQuery }
+     *
      */
-    public NamedNativeQuery createNamedNativeQuery() {
-        return new NamedNativeQuery();
+    public NamedQuery createNamedQuery() {
+        return new NamedQuery();
     }
 
     /**
-     * Create an instance of {@link ColumnResult }
-     * 
+     * Create an instance of {@link SequenceGenerator }
+     *
      */
-    public ColumnResult createColumnResult() {
-        return new ColumnResult();
+    public SequenceGenerator createSequenceGenerator() {
+        return new SequenceGenerator();
     }
 
     /**
-     * Create an instance of {@link EmbeddableAttributes }
-     * 
+     * Create an instance of {@link Version }
+     *
      */
-    public EmbeddableAttributes createEmbeddableAttributes() {
-        return new EmbeddableAttributes();
+    public Version createVersion() {
+        return new Version();
     }
 
     /**
-     * Create an instance of {@link QueryHint }
-     * 
+     * Create an instance of {@link Basic }
+     *
      */
-    public QueryHint createQueryHint() {
-        return new QueryHint();
+    public Basic createBasic() {
+        return new Basic();
     }
 
     /**
-     * Create an instance of {@link FieldResult }
-     * 
+     * Create an instance of {@link Id }
+     *
      */
-    public FieldResult createFieldResult() {
-        return new FieldResult();
+    public Id createId() {
+        return new Id();
     }
 
     /**
-     * Create an instance of {@link Id }
-     * 
+     * Create an instance of {@link UniqueConstraint }
+     *
      */
-    public Id createId() {
-        return new Id();
+    public UniqueConstraint createUniqueConstraint() {
+        return new UniqueConstraint();
     }
 
     /**
-     * Create an instance of {@link ManyToOne }
-     * 
+     * Create an instance of {@link SqlResultSetMapping }
+     *
      */
-    public ManyToOne createManyToOne() {
-        return new ManyToOne();
+    public SqlResultSetMapping createSqlResultSetMapping() {
+        return new SqlResultSetMapping();
     }
 
     /**
-     * Create an instance of {@link EntityMappings }
-     * 
+     * Create an instance of {@link OneToOne }
+     *
      */
-    public EntityMappings createEntityMappings() {
-        return new EntityMappings();
+    public OneToOne createOneToOne() {
+        return new OneToOne();
     }
 
     /**
-     * Create an instance of {@link Table }
-     * 
+     * Create an instance of {@link EmbeddedId }
+     *
      */
-    public Table createTable() {
-        return new Table();
+    public EmbeddedId createEmbeddedId() {
+        return new EmbeddedId();
     }
 
     /**
-     * Create an instance of {@link SecondaryTable }
-     * 
+     * Create an instance of {@link IdClass }
+     *
      */
-    public SecondaryTable createSecondaryTable() {
-        return new SecondaryTable();
+    public IdClass createIdClass() {
+        return new IdClass();
     }
 
     /**
-     * Create an instance of {@link PrimaryKeyJoinColumn }
-     * 
+     * Create an instance of {@link PostUpdate }
+     *
      */
-    public PrimaryKeyJoinColumn createPrimaryKeyJoinColumn() {
-        return new PrimaryKeyJoinColumn();
+    public PostUpdate createPostUpdate() {
+        return new PostUpdate();
     }
 
     /**
-     * Create an instance of {@link ManyToMany }
-     * 
+     * Create an instance of {@link Embedded }
+     *
      */
-    public ManyToMany createManyToMany() {
-        return new ManyToMany();
+    public Embedded createEmbedded() {
+        return new Embedded();
     }
 
     /**
-     * Create an instance of {@link SequenceGenerator }
-     * 
+     * Create an instance of {@link AttributeOverride }
+     *
      */
-    public SequenceGenerator createSequenceGenerator() {
-        return new SequenceGenerator();
+    public AttributeOverride createAttributeOverride() {
+        return new AttributeOverride();
+    }
+
+    /**
+     * Create an instance of {@link TableGenerator }
+     *
+     */
+    public TableGenerator createTableGenerator() {
+        return new TableGenerator();
     }
 
     /**
      * Create an instance of {@link EntityListeners }
-     * 
+     *
      */
     public EntityListeners createEntityListeners() {
         return new EntityListeners();
     }
 
     /**
-     * Create an instance of {@link SqlResultSetMapping }
-     * 
+     * Create an instance of {@link PostRemove }
+     *
      */
-    public SqlResultSetMapping createSqlResultSetMapping() {
-        return new SqlResultSetMapping();
+    public PostRemove createPostRemove() {
+        return new PostRemove();
     }
 
     /**
-     * Create an instance of {@link PersistenceUnitDefaults }
-     * 
+     * Create an instance of {@link PersistenceUnitMetadata }
+     *
      */
-    public PersistenceUnitDefaults createPersistenceUnitDefaults() {
-        return new PersistenceUnitDefaults();
+    public PersistenceUnitMetadata createPersistenceUnitMetadata() {
+        return new PersistenceUnitMetadata();
     }
 
     /**
-     * Create an instance of {@link MappedSuperclass }
-     * 
+     * Create an instance of {@link NamedNativeQuery }
+     *
      */
-    public MappedSuperclass createMappedSuperclass() {
-        return new MappedSuperclass();
+    public NamedNativeQuery createNamedNativeQuery() {
+        return new NamedNativeQuery();
     }
 
     /**
-     * Create an instance of {@link PersistenceUnitMetadata }
-     * 
+     * Create an instance of {@link DiscriminatorColumn }
+     *
      */
-    public PersistenceUnitMetadata createPersistenceUnitMetadata() {
-        return new PersistenceUnitMetadata();
+    public DiscriminatorColumn createDiscriminatorColumn() {
+        return new DiscriminatorColumn();
     }
 
     /**
-     * Create an instance of {@link PreUpdate }
-     * 
+     * Create an instance of {@link JoinColumn }
+     *
      */
-    public PreUpdate createPreUpdate() {
-        return new PreUpdate();
+    public JoinColumn createJoinColumn() {
+        return new JoinColumn();
     }
 
     /**
-     * Create an instance of {@link PrePersist }
-     * 
+     * Create an instance of {@link Embeddable }
+     *
      */
-    public PrePersist createPrePersist() {
-        return new PrePersist();
+    public Embeddable createEmbeddable() {
+        return new Embeddable();
     }
 
     /**
-     * Create an instance of {@link Version }
-     * 
+     * Create an instance of {@link MapKeyClass }
+     *
      */
-    public Version createVersion() {
-        return new Version();
+    public MapKeyClass createMapKeyClass() {
+        return new MapKeyClass();
     }
 
     /**
-     * Create an instance of {@link Entity }
-     * 
+     * Create an instance of {@link EmptyType }
+     *
      */
-    public Entity createEntity() {
-        return new Entity();
+    public EmptyType createEmptyType() {
+        return new EmptyType();
     }
 
     /**
-     * Create an instance of {@link MapKey }
-     * 
+     * Create an instance of {@link PostLoad }
+     *
      */
-    public MapKey createMapKey() {
-        return new MapKey();
+    public PostLoad createPostLoad() {
+        return new PostLoad();
     }
 
     /**
-     * Create an instance of {@link CascadeType }
-     * 
+     * Create an instance of {@link ManyToMany }
+     *
      */
-    public CascadeType createCascadeType() {
-        return new CascadeType();
+    public ManyToMany createManyToMany() {
+        return new ManyToMany();
     }
 
     /**
-     * Create an instance of {@link AssociationOverride }
-     * 
+     * Create an instance of {@link Attributes }
+     *
      */
-    public AssociationOverride createAssociationOverride() {
-        return new AssociationOverride();
+    public Attributes createAttributes() {
+        return new Attributes();
     }
 
     /**
-     * Create an instance of {@link EmbeddedId }
-     * 
+     * Create an instance of {@link EntityResult }
+     *
      */
-    public EmbeddedId createEmbeddedId() {
-        return new EmbeddedId();
+    public EntityResult createEntityResult() {
+        return new EntityResult();
     }
 
     /**
-     * Create an instance of {@link Transient }
-     * 
+     * Create an instance of {@link CascadeType }
+     *
      */
-    public Transient createTransient() {
-        return new Transient();
+    public CascadeType createCascadeType() {
+        return new CascadeType();
     }
 
     /**
-     * Create an instance of {@link GeneratedValue }
-     * 
+     * Create an instance of {@link FieldResult }
+     *
      */
-    public GeneratedValue createGeneratedValue() {
-        return new GeneratedValue();
+    public FieldResult createFieldResult() {
+        return new FieldResult();
     }
 
     /**
-     * Create an instance of {@link Lob }
-     * 
+     * Create an instance of {@link PrePersist }
+     *
      */
-    public Lob createLob() {
-        return new Lob();
+    public PrePersist createPrePersist() {
+        return new PrePersist();
     }
 
     /**
-     * Create an instance of {@link UniqueConstraint }
-     * 
+     * Create an instance of {@link EmbeddableAttributes }
+     *
      */
-    public UniqueConstraint createUniqueConstraint() {
-        return new UniqueConstraint();
+    public EmbeddableAttributes createEmbeddableAttributes() {
+        return new EmbeddableAttributes();
     }
 
     /**
-     * Create an instance of {@link Embedded }
-     * 
+     * Create an instance of {@link PrimaryKeyJoinColumn }
+     *
      */
-    public Embedded createEmbedded() {
-        return new Embedded();
+    public PrimaryKeyJoinColumn createPrimaryKeyJoinColumn() {
+        return new PrimaryKeyJoinColumn();
     }
 
     /**
-     * Create an instance of {@link EmptyType }
-     * 
+     * Create an instance of {@link AssociationOverride }
+     *
      */
-    public EmptyType createEmptyType() {
-        return new EmptyType();
+    public AssociationOverride createAssociationOverride() {
+        return new AssociationOverride();
     }
 
     /**
-     * Create an instance of {@link Attributes }
-     * 
+     * Create an instance of {@link CollectionTable }
+     *
      */
-    public Attributes createAttributes() {
-        return new Attributes();
+    public CollectionTable createCollectionTable() {
+        return new CollectionTable();
     }
 
     /**
-     * Create an instance of {@link IdClass }
-     * 
+     * Create an instance of {@link ManyToOne }
+     *
      */
-    public IdClass createIdClass() {
-        return new IdClass();
+    public ManyToOne createManyToOne() {
+        return new ManyToOne();
+    }
+
+    /**
+     * Create an instance of {@link MapKeyColumn }
+     *
+     */
+    public MapKeyColumn createMapKeyColumn() {
+        return new MapKeyColumn();
+    }
+
+    /**
+     * Create an instance of {@link Column }
+     *
+     */
+    public Column createColumn() {
+        return new Column();
     }
 
     /**
      * Create an instance of {@link OneToMany }
-     * 
+     *
      */
     public OneToMany createOneToMany() {
         return new OneToMany();
     }
 
     /**
-     * Create an instance of {@link PostLoad }
-     * 
+     * Create an instance of {@link MappedSuperclass }
+     *
      */
-    public PostLoad createPostLoad() {
-        return new PostLoad();
+    public MappedSuperclass createMappedSuperclass() {
+        return new MappedSuperclass();
     }
 
     /**
-     * Create an instance of {@link EntityListener }
-     * 
+     * Create an instance of {@link QueryHint }
+     *
      */
-    public EntityListener createEntityListener() {
-        return new EntityListener();
+    public QueryHint createQueryHint() {
+        return new QueryHint();
     }
 
     /**
-     * Create an instance of {@link EntityResult }
-     * 
+     * Create an instance of {@link PersistenceUnitDefaults }
+     *
      */
-    public EntityResult createEntityResult() {
-        return new EntityResult();
+    public PersistenceUnitDefaults createPersistenceUnitDefaults() {
+        return new PersistenceUnitDefaults();
     }
 
     /**
-     * Create an instance of {@link JoinTable }
-     * 
+     * Create an instance of {@link PreRemove }
+     *
      */
-    public JoinTable createJoinTable() {
-        return new JoinTable();
+    public PreRemove createPreRemove() {
+        return new PreRemove();
     }
 
     /**
-     * Create an instance of {@link AttributeOverride }
-     * 
+     * Create an instance of {@link EntityListener }
+     *
      */
-    public AttributeOverride createAttributeOverride() {
-        return new AttributeOverride();
+    public EntityListener createEntityListener() {
+        return new EntityListener();
     }
 
     /**
-     * Create an instance of {@link OneToOne }
-     * 
+     * Create an instance of {@link ElementCollection }
+     *
      */
-    public OneToOne createOneToOne() {
-        return new OneToOne();
+    public ElementCollection createElementCollection() {
+        return new ElementCollection();
     }
 
     /**
-     * Create an instance of {@link NamedQuery }
-     * 
+     * Create an instance of {@link MapKey }
+     *
      */
-    public NamedQuery createNamedQuery() {
-        return new NamedQuery();
+    public MapKey createMapKey() {
+        return new MapKey();
     }
 
     /**
      * Create an instance of {@link PostPersist }
-     * 
+     *
      */
     public PostPersist createPostPersist() {
         return new PostPersist();
     }
 
     /**
-     * Create an instance of {@link Column }
-     * 
+     * Create an instance of {@link Entity }
+     *
      */
-    public Column createColumn() {
-        return new Column();
+    public Entity createEntity() {
+        return new Entity();
     }
 
     /**
-     * Create an instance of {@link Inheritance }
-     * 
+     * Create an instance of {@link GeneratedValue }
+     *
      */
-    public Inheritance createInheritance() {
-        return new Inheritance();
+    public GeneratedValue createGeneratedValue() {
+        return new GeneratedValue();
     }
 
     /**
-     * Create an instance of {@link PostRemove }
-     * 
+     * Create an instance of {@link ColumnResult }
+     *
      */
-    public PostRemove createPostRemove() {
-        return new PostRemove();
+    public ColumnResult createColumnResult() {
+        return new ColumnResult();
+    }
+
+    /**
+     * Create an instance of {@link PreUpdate }
+     *
+     */
+    public PreUpdate createPreUpdate() {
+        return new PreUpdate();
+    }
+
+    /**
+     * Create an instance of {@link OrderColumn }
+     *
+     */
+    public OrderColumn createOrderColumn() {
+        return new OrderColumn();
+    }
+
+    /**
+     * Create an instance of {@link EntityMappings }
+     *
+     */
+    public EntityMappings createEntityMappings() {
+        return new EntityMappings();
     }
 
 }

Modified: openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/OneToMany.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/OneToMany.java?rev=1052305&r1=1052304&r2=1052305&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/OneToMany.java (original)
+++ openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/OneToMany.java Thu Dec 23 15:58:55 2010
@@ -49,18 +49,37 @@ import javax.xml.bind.annotation.XmlTran
  *   &lt;complexContent>
  *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
  *       &lt;sequence>
- *         &lt;element name="order-by" type="{http://java.sun.com/xml/ns/persistence/orm}order-by" minOccurs="0"/>
- *         &lt;element name="map-key" type="{http://java.sun.com/xml/ns/persistence/orm}map-key" minOccurs="0"/>
+ *         &lt;choice>
+ *           &lt;element name="order-by" type="{http://java.sun.com/xml/ns/persistence/orm}order-by" minOccurs="0"/>
+ *           &lt;element name="order-column" type="{http://java.sun.com/xml/ns/persistence/orm}order-column" minOccurs="0"/>
+ *         &lt;/choice>
+ *         &lt;choice>
+ *           &lt;element name="map-key" type="{http://java.sun.com/xml/ns/persistence/orm}map-key" minOccurs="0"/>
+ *           &lt;sequence>
+ *             &lt;element name="map-key-class" type="{http://java.sun.com/xml/ns/persistence/orm}map-key-class" minOccurs="0"/>
+ *             &lt;choice>
+ *               &lt;element name="map-key-temporal" type="{http://java.sun.com/xml/ns/persistence/orm}temporal" minOccurs="0"/>
+ *               &lt;element name="map-key-enumerated" type="{http://java.sun.com/xml/ns/persistence/orm}enumerated" minOccurs="0"/>
+ *               &lt;element name="map-key-attribute-override" type="{http://java.sun.com/xml/ns/persistence/orm}attribute-override" maxOccurs="unbounded" minOccurs="0"/>
+ *             &lt;/choice>
+ *             &lt;choice>
+ *               &lt;element name="map-key-column" type="{http://java.sun.com/xml/ns/persistence/orm}map-key-column" minOccurs="0"/>
+ *               &lt;element name="map-key-join-column" type="{http://java.sun.com/xml/ns/persistence/orm}map-key-join-column" maxOccurs="unbounded" minOccurs="0"/>
+ *             &lt;/choice>
+ *           &lt;/sequence>
+ *         &lt;/choice>
  *         &lt;choice>
  *           &lt;element name="join-table" type="{http://java.sun.com/xml/ns/persistence/orm}join-table" minOccurs="0"/>
  *           &lt;element name="join-column" type="{http://java.sun.com/xml/ns/persistence/orm}join-column" maxOccurs="unbounded" minOccurs="0"/>
  *         &lt;/choice>
  *         &lt;element name="cascade" type="{http://java.sun.com/xml/ns/persistence/orm}cascade-type" minOccurs="0"/>
  *       &lt;/sequence>
- *       &lt;attribute name="fetch" type="{http://java.sun.com/xml/ns/persistence/orm}fetch-type" />
- *       &lt;attribute name="mapped-by" type="{http://www.w3.org/2001/XMLSchema}string" />
  *       &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
  *       &lt;attribute name="target-entity" type="{http://www.w3.org/2001/XMLSchema}string" />
+ *       &lt;attribute name="fetch" type="{http://java.sun.com/xml/ns/persistence/orm}fetch-type" />
+ *       &lt;attribute name="access" type="{http://java.sun.com/xml/ns/persistence/orm}access-type" />
+ *       &lt;attribute name="mapped-by" type="{http://www.w3.org/2001/XMLSchema}string" />
+ *       &lt;attribute name="orphan-removal" type="{http://www.w3.org/2001/XMLSchema}boolean" />
  *     &lt;/restriction>
  *   &lt;/complexContent>
  * &lt;/complexType>
@@ -71,7 +90,14 @@ import javax.xml.bind.annotation.XmlTran
 @XmlAccessorType(XmlAccessType.FIELD)
 @XmlType(name = "one-to-many", propOrder = {
     "orderBy",
+    "orderColumn",
     "mapKey",
+    "mapKeyClass",
+    "mapKeyTemporal",
+    "mapKeyEnumerated",
+    "mapKeyAttributeOverride",
+    "mapKeyColumn",
+    "mapKeyJoinColumn",
     "joinTable",
     "joinColumn",
     "cascade"
@@ -80,8 +106,22 @@ public class OneToMany implements Relati
 
     @XmlElement(name = "order-by")
     protected String orderBy;
+    @XmlElement(name = "order-column")
+    protected OrderColumn orderColumn;
     @XmlElement(name = "map-key")
     protected MapKey mapKey;
+    @XmlElement(name = "map-key-class")
+    protected MapKeyClass mapKeyClass;
+    @XmlElement(name = "map-key-temporal")
+    protected TemporalType mapKeyTemporal;
+    @XmlElement(name = "map-key-enumerated")
+    protected EnumType mapKeyEnumerated;
+    @XmlElement(name = "map-key-attribute-override")
+    protected List<AttributeOverride> mapKeyAttributeOverride;
+    @XmlElement(name = "map-key-column")
+    protected MapKeyColumn mapKeyColumn;
+    @XmlElement(name = "map-key-join-column")
+    protected List<MapKeyJoinColumn> mapKeyJoinColumn;
     @XmlElement(name = "join-table")
     protected JoinTable joinTable;
     @XmlElement(name = "join-column")
@@ -91,6 +131,8 @@ public class OneToMany implements Relati
     protected FetchType fetch;
     @XmlAttribute(name = "mapped-by")
     protected String mappedBy;
+    @XmlAttribute(name = "orphan-removal")
+    protected Boolean orphanRemoval;
     @XmlAttribute(required = true)
     protected String name;
     @XmlAttribute(name = "target-entity")
@@ -125,6 +167,30 @@ public class OneToMany implements Relati
     }
 
     /**
+     * Gets the value of the orderColumn property.
+     *
+     * @return
+     *     possible object is
+     *     {@link OrderColumn }
+     *
+     */
+    public OrderColumn getOrderColumn() {
+        return orderColumn;
+    }
+
+    /**
+     * Sets the value of the orderColumn property.
+     *
+     * @param value
+     *     allowed object is
+     *     {@link OrderColumn }
+     *
+     */
+    public void setOrderColumn(OrderColumn value) {
+        this.orderColumn = value;
+    }
+
+    /**
      * Gets the value of the mapKey property.
      *
      * @return
@@ -149,6 +215,160 @@ public class OneToMany implements Relati
     }
 
     /**
+     * Gets the value of the mapKeyClass property.
+     *
+     * @return
+     *     possible object is
+     *     {@link MapKeyClass }
+     *
+     */
+    public MapKeyClass getMapKeyClass() {
+        return mapKeyClass;
+    }
+
+    /**
+     * Sets the value of the mapKeyClass property.
+     *
+     * @param value
+     *     allowed object is
+     *     {@link MapKeyClass }
+     *
+     */
+    public void setMapKeyClass(MapKeyClass value) {
+        this.mapKeyClass = value;
+    }
+
+    /**
+     * Gets the value of the mapKeyTemporal property.
+     *
+     * @return
+     *     possible object is
+     *     {@link TemporalType }
+     *
+     */
+    public TemporalType getMapKeyTemporal() {
+        return mapKeyTemporal;
+    }
+
+    /**
+     * Sets the value of the mapKeyTemporal property.
+     *
+     * @param value
+     *     allowed object is
+     *     {@link TemporalType }
+     *
+     */
+    public void setMapKeyTemporal(TemporalType value) {
+        this.mapKeyTemporal = value;
+    }
+
+    /**
+     * Gets the value of the mapKeyEnumerated property.
+     *
+     * @return
+     *     possible object is
+     *     {@link EnumType }
+     *
+     */
+    public EnumType getMapKeyEnumerated() {
+        return mapKeyEnumerated;
+    }
+
+    /**
+     * Sets the value of the mapKeyEnumerated property.
+     *
+     * @param value
+     *     allowed object is
+     *     {@link EnumType }
+     *
+     */
+    public void setMapKeyEnumerated(EnumType value) {
+        this.mapKeyEnumerated = value;
+    }
+
+    /**
+     * Gets the value of the mapKeyAttributeOverride property.
+     *
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the mapKeyAttributeOverride property.
+     *
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getMapKeyAttributeOverride().add(newItem);
+     * </pre>
+     *
+     *
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link AttributeOverride }
+     *
+     *
+     */
+    public List<AttributeOverride> getMapKeyAttributeOverride() {
+        if (mapKeyAttributeOverride == null) {
+            mapKeyAttributeOverride = new ArrayList<AttributeOverride>();
+        }
+        return this.mapKeyAttributeOverride;
+    }
+
+    /**
+     * Gets the value of the mapKeyColumn property.
+     *
+     * @return
+     *     possible object is
+     *     {@link MapKeyColumn }
+     *
+     */
+    public MapKeyColumn getMapKeyColumn() {
+        return mapKeyColumn;
+    }
+
+    /**
+     * Sets the value of the mapKeyColumn property.
+     *
+     * @param value
+     *     allowed object is
+     *     {@link MapKeyColumn }
+     *
+     */
+    public void setMapKeyColumn(MapKeyColumn value) {
+        this.mapKeyColumn = value;
+    }
+
+    /**
+     * Gets the value of the mapKeyJoinColumn property.
+     *
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the mapKeyJoinColumn property.
+     *
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getMapKeyJoinColumn().add(newItem);
+     * </pre>
+     *
+     *
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link MapKeyJoinColumn }
+     *
+     *
+     */
+    public List<MapKeyJoinColumn> getMapKeyJoinColumn() {
+        if (mapKeyJoinColumn == null) {
+            mapKeyJoinColumn = new ArrayList<MapKeyJoinColumn>();
+        }
+        return this.mapKeyJoinColumn;
+    }
+
+    /**
      * Gets the value of the joinTable property.
      *
      * @return
@@ -356,6 +576,30 @@ public class OneToMany implements Relati
         this.syntheticField = syntheticField;
     }
 
+    /**
+     * Gets the value of the orphanRemoval property.
+     *
+     * @return
+     *     possible object is
+     *     {@link Boolean }
+     *
+     */
+    public Boolean isOrphanRemoval() {
+        return orphanRemoval;
+    }
+
+    /**
+     * Sets the value of the orphanRemoval property.
+     *
+     * @param value
+     *     allowed object is
+     *     {@link Boolean }
+     *
+     */
+    public void setOrphanRemoval(Boolean value) {
+        this.orphanRemoval = value;
+    }
+
     public Object getKey() {
         return name;
     }

Modified: openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/OneToOne.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/OneToOne.java?rev=1052305&r1=1052304&r2=1052305&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/OneToOne.java (original)
+++ openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/OneToOne.java Thu Dec 23 15:58:55 2010
@@ -37,6 +37,7 @@ import javax.xml.bind.annotation.XmlTran
  *           FetchType fetch() default EAGER;
  *           boolean optional() default true;
  *           String mappedBy() default "";
+ *           boolean orphanRemoval() default false;
  *         }
  *
  *
@@ -62,6 +63,10 @@ import javax.xml.bind.annotation.XmlTran
  *       &lt;attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
  *       &lt;attribute name="optional" type="{http://www.w3.org/2001/XMLSchema}boolean" />
  *       &lt;attribute name="target-entity" type="{http://www.w3.org/2001/XMLSchema}string" />
+ *       &lt;attribute name="access" type="{http://java.sun.com/xml/ns/persistence/orm}access-type" />
+ *       &lt;attribute name="orphan-removal" type="{http://www.w3.org/2001/XMLSchema}boolean" />
+ *       &lt;attribute name="maps-id" type="{http://www.w3.org/2001/XMLSchema}string" />
+ *       &lt;attribute name="id" type="{http://www.w3.org/2001/XMLSchema}boolean" />
  *     &lt;/restriction>
  *   &lt;/complexContent>
  * &lt;/complexType>
@@ -87,8 +92,16 @@ public class OneToOne implements Relatio
     protected CascadeType cascade;
     @XmlAttribute
     protected FetchType fetch;
+    @XmlAttribute
+    protected AccessType access;
     @XmlAttribute(name = "mapped-by")
     protected String mappedBy;
+    @XmlAttribute(name = "orphan-removal")
+    protected Boolean orphanRemoval;
+    @XmlAttribute(name = "maps-id")
+    protected String mapsId;
+    @XmlAttribute
+    protected Boolean id;
     @XmlAttribute(required = true)
     protected String name;
     @XmlAttribute
@@ -231,6 +244,30 @@ public class OneToOne implements Relatio
     }
 
     /**
+     * Gets the value of the access property.
+     *
+     * @return
+     *     possible object is
+     *     {@link AccessType }
+     *
+     */
+    public AccessType getAccess() {
+        return access;
+    }
+
+    /**
+     * Sets the value of the access property.
+     *
+     * @param value
+     *     allowed object is
+     *     {@link AccessType }
+     *
+     */
+    public void setAccess(AccessType value) {
+        this.access = value;
+    }
+
+    /**
      * Gets the value of the mappedBy property.
      *
      * @return
@@ -255,6 +292,78 @@ public class OneToOne implements Relatio
     }
 
     /**
+     * Gets the value of the orphanRemoval property.
+     *
+     * @return
+     *     possible object is
+     *     {@link Boolean }
+     *
+     */
+    public Boolean isOrphanRemoval() {
+        return orphanRemoval;
+    }
+
+    /**
+     * Sets the value of the orphanRemoval property.
+     *
+     * @param value
+     *     allowed object is
+     *     {@link Boolean }
+     *
+     */
+    public void setOrphanRemoval(Boolean value) {
+        this.orphanRemoval = value;
+    }
+
+    /**
+     * Gets the value of the mapsId property.
+     *
+     * @return
+     *     possible object is
+     *     {@link String }
+     *
+     */
+    public String getMapsId() {
+        return mapsId;
+    }
+
+    /**
+     * Sets the value of the mapsId property.
+     *
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *
+     */
+    public void setMapsId(String value) {
+        this.mapsId = value;
+    }
+
+    /**
+     * Gets the value of the id property.
+     *
+     * @return
+     *     possible object is
+     *     {@link Boolean }
+     *
+     */
+    public Boolean isId() {
+        return id;
+    }
+
+    /**
+     * Sets the value of the id property.
+     *
+     * @param value
+     *     allowed object is
+     *     {@link Boolean }
+     *
+     */
+    public void setId(Boolean value) {
+        this.id = value;
+    }
+
+    /**
      * Gets the value of the name property.
      *
      * @return

Added: openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/OrderColumn.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/OrderColumn.java?rev=1052305&view=auto
==============================================================================
--- openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/OrderColumn.java (added)
+++ openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/OrderColumn.java Thu Dec 23 15:58:55 2010
@@ -0,0 +1,195 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.openejb.jee.jpa;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * 
+ * 
+ *         @Target({METHOD, FIELD}) @Retention(RUNTIME)
+ *         public @interface OrderColumn {
+ *           String name() default "";
+ *           boolean nullable() default true;
+ *           boolean insertable() default true;
+ *           boolean updatable() default true;
+ *           String columnDefinition() default "";
+ *          }
+ * 
+ *       
+ * 
+ * <p>Java class for order-column complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="order-column">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;attribute name="name" type="{http://www.w3.org/2001/XMLSchema}string" />
+ *       &lt;attribute name="nullable" type="{http://www.w3.org/2001/XMLSchema}boolean" />
+ *       &lt;attribute name="insertable" type="{http://www.w3.org/2001/XMLSchema}boolean" />
+ *       &lt;attribute name="updatable" type="{http://www.w3.org/2001/XMLSchema}boolean" />
+ *       &lt;attribute name="column-definition" type="{http://www.w3.org/2001/XMLSchema}string" />
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "order-column")
+public class OrderColumn {
+
+    @XmlAttribute
+    protected String name;
+    @XmlAttribute
+    protected Boolean nullable;
+    @XmlAttribute
+    protected Boolean insertable;
+    @XmlAttribute
+    protected Boolean updatable;
+    @XmlAttribute(name = "column-definition")
+    protected String columnDefinition;
+
+    /**
+     * Gets the value of the name property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getName() {
+        return name;
+    }
+
+    /**
+     * Sets the value of the name property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setName(String value) {
+        this.name = value;
+    }
+
+    /**
+     * Gets the value of the nullable property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link Boolean }
+     *     
+     */
+    public Boolean isNullable() {
+        return nullable;
+    }
+
+    /**
+     * Sets the value of the nullable property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link Boolean }
+     *     
+     */
+    public void setNullable(Boolean value) {
+        this.nullable = value;
+    }
+
+    /**
+     * Gets the value of the insertable property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link Boolean }
+     *     
+     */
+    public Boolean isInsertable() {
+        return insertable;
+    }
+
+    /**
+     * Sets the value of the insertable property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link Boolean }
+     *     
+     */
+    public void setInsertable(Boolean value) {
+        this.insertable = value;
+    }
+
+    /**
+     * Gets the value of the updatable property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link Boolean }
+     *     
+     */
+    public Boolean isUpdatable() {
+        return updatable;
+    }
+
+    /**
+     * Sets the value of the updatable property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link Boolean }
+     *     
+     */
+    public void setUpdatable(Boolean value) {
+        this.updatable = value;
+    }
+
+    /**
+     * Gets the value of the columnDefinition property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getColumnDefinition() {
+        return columnDefinition;
+    }
+
+    /**
+     * Sets the value of the columnDefinition property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setColumnDefinition(String value) {
+        this.columnDefinition = value;
+    }
+
+}

Modified: openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/PersistenceUnitDefaults.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/PersistenceUnitDefaults.java?rev=1052305&r1=1052304&r2=1052305&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/PersistenceUnitDefaults.java (original)
+++ openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/PersistenceUnitDefaults.java Thu Dec 23 15:58:55 2010
@@ -30,14 +30,18 @@ import javax.xml.bind.annotation.XmlType
  *         unless they are overridden by local annotation or XML 
  *         element settings. 
  *         
- *         schema - Used as the schema for all tables or secondary tables
- *             that apply to the persistence unit
- *         catalog - Used as the catalog for all tables or secondary tables
- *             that apply to the persistence unit
+ *         schema - Used as the schema for all tables, secondary tables, join
+ *             tables, collection tables, sequence generators, and table
+ *             generators that apply to the persistence unit
+ *         catalog - Used as the catalog for all tables, secondary tables, join
+ *             tables, collection tables, sequence generators, and table
+ *             generators that apply to the persistence unit
+ *         delimited-identifiers - Used to treat database identifiers as
+ *             delimited identifiers.
  *         access - Used as the access type for all managed classes in
  *             the persistence unit
  *         cascade-persist - Adds cascade-persist to the set of cascade options
- *             in entity relationships of the persistence unit
+ *             in all entity relationships of the persistence unit
  *         entity-listeners - List of default entity listeners to be invoked 
  *             on each entity in the persistence unit. 
  * 
@@ -52,8 +56,10 @@ import javax.xml.bind.annotation.XmlType
  *   &lt;complexContent>
  *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
  *       &lt;sequence>
+ *         &lt;element name="description" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
  *         &lt;element name="schema" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
  *         &lt;element name="catalog" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         &lt;element name="delimited-identifiers" type="{http://java.sun.com/xml/ns/persistence/orm}emptyType" minOccurs="0"/>
  *         &lt;element name="access" type="{http://java.sun.com/xml/ns/persistence/orm}access-type" minOccurs="0"/>
  *         &lt;element name="cascade-persist" type="{http://java.sun.com/xml/ns/persistence/orm}emptyType" minOccurs="0"/>
  *         &lt;element name="entity-listeners" type="{http://java.sun.com/xml/ns/persistence/orm}entity-listeners" minOccurs="0"/>
@@ -67,16 +73,21 @@ import javax.xml.bind.annotation.XmlType
  */
 @XmlAccessorType(XmlAccessType.FIELD)
 @XmlType(name = "persistence-unit-defaults", propOrder = {
+    "description",
     "schema",
     "catalog",
+    "delimitedIdentifiers",
     "access",
     "cascadePersist",
     "entityListeners"
 })
 public class PersistenceUnitDefaults {
 
+    protected String description;
     protected String schema;
     protected String catalog;
+    @XmlElement(name = "delimited-identifiers")
+    protected EmptyType delimitedIdentifiers;
     protected AccessType access;
     @XmlElement(name = "cascade-persist")
     protected EmptyType cascadePersist;
@@ -84,6 +95,30 @@ public class PersistenceUnitDefaults {
     protected EntityListeners entityListeners;
 
     /**
+     * Gets the value of the description property.
+     *
+     * @return
+     *     possible object is
+     *     {@link String }
+     *
+     */
+    public String getDescription() {
+        return description;
+    }
+
+    /**
+     * Sets the value of the description property.
+     *
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *
+     */
+    public void setDescription(String value) {
+        this.description = value;
+    }
+
+    /**
      * Gets the value of the schema property.
      * 
      * @return
@@ -132,6 +167,30 @@ public class PersistenceUnitDefaults {
     }
 
     /**
+     * Gets the value of the delimitedIdentifiers property.
+     *
+     * @return
+     *     possible object is
+     *     {@link EmptyType }
+     *
+     */
+    public EmptyType getDelimitedIdentifiers() {
+        return delimitedIdentifiers;
+    }
+
+    /**
+     * Sets the value of the delimitedIdentifiers property.
+     *
+     * @param value
+     *     allowed object is
+     *     {@link EmptyType }
+     *
+     */
+    public void setDelimitedIdentifiers(EmptyType value) {
+        this.delimitedIdentifiers = value;
+    }
+
+    /**
      * Gets the value of the access property.
      * 
      * @return

Modified: openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/PersistenceUnitMetadata.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/PersistenceUnitMetadata.java?rev=1052305&r1=1052304&r2=1052305&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/PersistenceUnitMetadata.java (original)
+++ openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/PersistenceUnitMetadata.java Thu Dec 23 15:58:55 2010
@@ -29,7 +29,7 @@ import javax.xml.bind.annotation.XmlType
  *         Metadata that applies to the persistence unit and not just to 
  *         the mapping file in which it is contained. 
  * 
- *         If the xml-mapping-metadata-complete element is specified then 
+ *         If the xml-mapping-metadata-complete element is specified,
  *         the complete set of mapping metadata for the persistence unit 
  *         is contained in the XML mapping files for the persistence unit.
  * 
@@ -44,6 +44,7 @@ import javax.xml.bind.annotation.XmlType
  *   &lt;complexContent>
  *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
  *       &lt;sequence>
+ *         &lt;element name="description" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
  *         &lt;element name="xml-mapping-metadata-complete" type="{http://java.sun.com/xml/ns/persistence/orm}emptyType" minOccurs="0"/>
  *         &lt;element name="persistence-unit-defaults" type="{http://java.sun.com/xml/ns/persistence/orm}persistence-unit-defaults" minOccurs="0"/>
  *       &lt;/sequence>
@@ -56,17 +57,43 @@ import javax.xml.bind.annotation.XmlType
  */
 @XmlAccessorType(XmlAccessType.FIELD)
 @XmlType(name = "persistence-unit-metadata", propOrder = {
+    "description",
     "xmlMappingMetadataComplete",
     "persistenceUnitDefaults"
 })
 public class PersistenceUnitMetadata {
 
+    protected String description;
     @XmlElement(name = "xml-mapping-metadata-complete")
     protected EmptyType xmlMappingMetadataComplete;
     @XmlElement(name = "persistence-unit-defaults")
     protected PersistenceUnitDefaults persistenceUnitDefaults;
 
     /**
+     * Gets the value of the description property.
+     *
+     * @return
+     *     possible object is
+     *     {@link String }
+     *
+     */
+    public String getDescription() {
+        return description;
+    }
+
+    /**
+     * Sets the value of the description property.
+     *
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *
+     */
+    public void setDescription(String value) {
+        this.description = value;
+    }
+
+    /**
      * Gets the value of the xmlMappingMetadataComplete property.
      * 
      * @return