[jboss-cvs] JBossAS SVN: r102076 - in projects/metadata/client/trunk: src/main/java/org/jboss/metadata/client/jboss and 5 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Mar 8 13:55:26 EST 2010


Author: bstansberry at jboss.com
Date: 2010-03-08 13:55:25 -0500 (Mon, 08 Mar 2010)
New Revision: 102076

Added:
   projects/metadata/client/trunk/src/main/java/org/jboss/metadata/client/jboss/JBossClient6MetaData.java
   projects/metadata/client/trunk/src/main/java/org/jboss/metadata/client/spec/ApplicationClient6MetaData.java
   projects/metadata/client/trunk/src/main/resources/schema/application-client_6.xsd
   projects/metadata/client/trunk/src/main/resources/schema/jboss-client_6_0.xsd
   projects/metadata/client/trunk/src/test/java/org/jboss/test/metadata/client/ApplicationClient6EverythingUnitTestCase.java
   projects/metadata/client/trunk/src/test/java/org/jboss/test/metadata/client/JBossClient6EverythingUnitTestCase.java
   projects/metadata/client/trunk/src/test/resources/org/jboss/test/metadata/client/ApplicationClient6Everything_testEverything.xml
   projects/metadata/client/trunk/src/test/resources/org/jboss/test/metadata/client/JBossClient6Everything_testEverything.xml
Modified:
   projects/metadata/client/trunk/
   projects/metadata/client/trunk/pom.xml
   projects/metadata/client/trunk/src/main/java/org/jboss/metadata/client/jboss/JBossClientMetaData.java
   projects/metadata/client/trunk/src/main/java/org/jboss/metadata/client/spec/ApplicationClientMetaData.java
   projects/metadata/client/trunk/src/test/java/org/jboss/test/metadata/client/ApplicationClientJBossMergeEverythingUnitTestCase.java
   projects/metadata/client/trunk/src/test/resources/schema2class.properties
Log:
[JBMETA-264] EE 6 module name concept application client metadata


Property changes on: projects/metadata/client/trunk
___________________________________________________________________
Name: svn:ignore
   + .settings
target
.classpath
.project


Modified: projects/metadata/client/trunk/pom.xml
===================================================================
--- projects/metadata/client/trunk/pom.xml	2010-03-08 18:51:59 UTC (rev 102075)
+++ projects/metadata/client/trunk/pom.xml	2010-03-08 18:55:25 UTC (rev 102076)
@@ -94,13 +94,13 @@
     <dependency>
       <groupId>org.jboss.metadata</groupId>
       <artifactId>jboss-metadata-common</artifactId>
-      <version>2.0.0-alpha-10</version>
+      <version>2.0.0.Alpha14</version>
     </dependency>
 
     <dependency>
       <groupId>org.jboss.metadata</groupId>
       <artifactId>jboss-metadata-common</artifactId>
-      <version>2.0.0-alpha-10</version>
+      <version>2.0.0.Alpha14</version>
       <type>test-jar</type>
       <scope>test</scope>
     </dependency>

Added: projects/metadata/client/trunk/src/main/java/org/jboss/metadata/client/jboss/JBossClient6MetaData.java
===================================================================
--- projects/metadata/client/trunk/src/main/java/org/jboss/metadata/client/jboss/JBossClient6MetaData.java	                        (rev 0)
+++ projects/metadata/client/trunk/src/main/java/org/jboss/metadata/client/jboss/JBossClient6MetaData.java	2010-03-08 18:55:25 UTC (rev 102076)
@@ -0,0 +1,61 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2007, Red Hat Middleware LLC, and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.metadata.client.jboss;
+
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlNs;
+import javax.xml.bind.annotation.XmlNsForm;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+import org.jboss.metadata.javaee.spec.JavaEEMetaDataConstants;
+import org.jboss.xb.annotations.JBossXmlSchema;
+
+/**
+ * JBoss specific meta data for JavaEE 6 clients.
+ *
+ * @author Brian Stansberry
+ * @version $Revision: 84989 $
+ */
+ at XmlRootElement(name="jboss-client", namespace=JavaEEMetaDataConstants.JBOSS_NS)
+ at JBossXmlSchema(
+      xmlns={@XmlNs(namespaceURI = JavaEEMetaDataConstants.JBOSS_NS, prefix = "jboss"),
+            @XmlNs(namespaceURI = JavaEEMetaDataConstants.JAVAEE_NS, prefix = "jee"),
+            @XmlNs(namespaceURI = JavaEEMetaDataConstants.XSD_NS, prefix = "xsd")},
+      ignoreUnresolvedFieldOrClass=false,
+      namespace=JavaEEMetaDataConstants.JBOSS_NS,
+      elementFormDefault=XmlNsForm.QUALIFIED,
+      normalizeSpace=true)
+ at XmlType(name="jboss-clientType", namespace=JavaEEMetaDataConstants.JBOSS_NS, propOrder={"moduleName", "callbackHandler", "metadataComplete",
+      "descriptionGroup", "jndiName", "environmentRefsGroup", "messageDestinations", "depends"})
+public class JBossClient6MetaData extends JBossClientMetaData
+{
+   private static final long serialVersionUID = -4180526338768209252L;
+
+   @Override
+   @XmlAttribute(name="module-name")
+   public void setModuleName(String moduleName)
+   {
+      super.setModuleName(moduleName);
+   }
+   
+}
\ No newline at end of file

Modified: projects/metadata/client/trunk/src/main/java/org/jboss/metadata/client/jboss/JBossClientMetaData.java
===================================================================
--- projects/metadata/client/trunk/src/main/java/org/jboss/metadata/client/jboss/JBossClientMetaData.java	2010-03-08 18:51:59 UTC (rev 102075)
+++ projects/metadata/client/trunk/src/main/java/org/jboss/metadata/client/jboss/JBossClientMetaData.java	2010-03-08 18:55:25 UTC (rev 102076)
@@ -54,6 +54,7 @@
 import org.jboss.metadata.javaee.support.IdMetaData;
 import org.jboss.metadata.javaee.support.IdMetaDataImpl;
 import org.jboss.metadata.javaee.support.IdMetaDataImplWithDescriptionGroup;
+import org.jboss.metadata.javaee.support.NamedModuleImpl;
 
 /**
  * The jboss javaee client application metadata
@@ -61,7 +62,7 @@
  * @author Scott.Stark at jboss.org
  * @version $Revision: 84989 $
  */
-public class JBossClientMetaData extends IdMetaDataImplWithDescriptionGroup
+public class JBossClientMetaData extends NamedModuleImpl
    implements RemoteEnvironment
 {
    private static final long serialVersionUID = 1L;
@@ -369,6 +370,18 @@
       throw new RuntimeException("wrong merge method called");
    }
    
+   @Override
+   public void merge(IdMetaDataImplWithDescriptionGroup override, IdMetaDataImplWithDescriptionGroup original)
+   {
+      throw new RuntimeException("wrong merge method called");
+   }
+   
+   @Override
+   public void merge(NamedModuleImpl override, NamedModuleImpl original)
+   {
+      throw new RuntimeException("wrong merge method called");
+   }
+   
    /**
     * Merge jboss + spec into this
     * @param jboss
@@ -377,6 +390,8 @@
    public void merge(JBossClientMetaData jboss, ApplicationClientMetaData spec, boolean mustOverride)
    {
       super.merge(jboss, spec);
+
+      mergeModuleName(jboss, spec);
       
       RemoteEnvironmentRefsGroupMetaData jbossEnv = null;
       RemoteEnvironmentRefsGroupMetaData specEnv = null;

Added: projects/metadata/client/trunk/src/main/java/org/jboss/metadata/client/spec/ApplicationClient6MetaData.java
===================================================================
--- projects/metadata/client/trunk/src/main/java/org/jboss/metadata/client/spec/ApplicationClient6MetaData.java	                        (rev 0)
+++ projects/metadata/client/trunk/src/main/java/org/jboss/metadata/client/spec/ApplicationClient6MetaData.java	2010-03-08 18:55:25 UTC (rev 102076)
@@ -0,0 +1,67 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2007, Red Hat Middleware LLC, and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.metadata.client.spec;
+
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlNs;
+import javax.xml.bind.annotation.XmlNsForm;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+import org.jboss.metadata.javaee.spec.JavaEEMetaDataConstants;
+import org.jboss.xb.annotations.JBossXmlSchema;
+
+/**
+ * Application client meta data for Java EE 6 clients. See JavaEE 6 chapter 10.
+ *
+ * @author <a href="mailto:carlo.dewolf at jboss.com">Carlo de Wolf</a>
+ * @author Scott.Stark at jboss.org
+ * @version $Revision: 81860 $
+ */
+ at XmlRootElement(name="application-client", namespace=JavaEEMetaDataConstants.JAVAEE_NS)
+ at JBossXmlSchema(
+      xmlns={@XmlNs(namespaceURI = JavaEEMetaDataConstants.JAVAEE_NS, prefix = "jee")},
+      ignoreUnresolvedFieldOrClass=false,
+      namespace=JavaEEMetaDataConstants.JAVAEE_NS,
+      elementFormDefault=XmlNsForm.QUALIFIED,
+      normalizeSpace=true)
+ at XmlType(name="application-clientType",
+        namespace=JavaEEMetaDataConstants.JAVAEE_NS, propOrder={"moduleName", "descriptionGroup", "jndiEnvironmentRefsGroup", "callbackHandler", "messageDestinations"})
+public class ApplicationClient6MetaData extends ApplicationClientMetaData
+{
+   private static final long serialVersionUID = 1914939966505073042L;
+
+   @Override
+   @XmlAttribute(name="module-name")
+   public void setModuleName(String moduleName)
+   {
+      super.setModuleName(moduleName);
+   }
+
+   @Override
+   @XmlAttribute(name="version")
+   public void setVersion(String version)
+   {
+      super.setVersion(version);
+   }
+   
+}

Modified: projects/metadata/client/trunk/src/main/java/org/jboss/metadata/client/spec/ApplicationClientMetaData.java
===================================================================
--- projects/metadata/client/trunk/src/main/java/org/jboss/metadata/client/spec/ApplicationClientMetaData.java	2010-03-08 18:51:59 UTC (rev 102075)
+++ projects/metadata/client/trunk/src/main/java/org/jboss/metadata/client/spec/ApplicationClientMetaData.java	2010-03-08 18:55:25 UTC (rev 102076)
@@ -25,6 +25,7 @@
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlTransient;
 
+import org.jboss.metadata.javaee.jboss.NamedModule;
 import org.jboss.metadata.javaee.spec.AnnotatedEJBReferencesMetaData;
 import org.jboss.metadata.javaee.spec.EJBReferenceMetaData;
 import org.jboss.metadata.javaee.spec.EJBReferencesMetaData;
@@ -54,7 +55,7 @@
  * @author <a href="mailto:carlo.dewolf at jboss.com">Carlo de Wolf</a>
  * @version $Revision: 75470 $
  */
-public class ApplicationClientMetaData extends IdMetaDataImplWithDescriptionGroup implements RemoteEnvironment
+public class ApplicationClientMetaData extends IdMetaDataImplWithDescriptionGroup implements RemoteEnvironment, NamedModule
 {
    private static final long serialVersionUID = 1;
    /** The environment */
@@ -72,6 +73,8 @@
    /** The message destinations */
    private MessageDestinationsMetaData messageDestinations;
 
+   private String moduleName;
+
    /**
     * Callback for the DTD information
     * @param root
@@ -110,6 +113,16 @@
    {
       return dtdSystemId;
    }
+   
+   public String getModuleName()
+   {
+      return moduleName;
+   }
+   
+   public void setModuleName(String moduleName)
+   {
+      this.moduleName = moduleName;
+   }
 
    
    public String getVersion()

Added: projects/metadata/client/trunk/src/main/resources/schema/application-client_6.xsd
===================================================================
--- projects/metadata/client/trunk/src/main/resources/schema/application-client_6.xsd	                        (rev 0)
+++ projects/metadata/client/trunk/src/main/resources/schema/application-client_6.xsd	2010-03-08 18:55:25 UTC (rev 102076)
@@ -0,0 +1,311 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
+            targetNamespace="http://java.sun.com/xml/ns/javaee"
+            xmlns:javaee="http://java.sun.com/xml/ns/javaee"
+            xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+            elementFormDefault="qualified"
+            attributeFormDefault="unqualified"
+            version="6">
+  <xsd:annotation>
+    <xsd:documentation>
+
+      DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+      
+      Copyright 2003-2009 Sun Microsystems, Inc. All rights reserved.
+      
+      The contents of this file are subject to the terms of either the
+      GNU General Public License Version 2 only ("GPL") or the Common
+      Development and Distribution License("CDDL") (collectively, the
+      "License").  You may not use this file except in compliance with
+      the License. You can obtain a copy of the License at
+      https://glassfish.dev.java.net/public/CDDL+GPL.html or
+      glassfish/bootstrap/legal/LICENSE.txt.  See the License for the
+      specific language governing permissions and limitations under the
+      License.
+      
+      When distributing the software, include this License Header
+      Notice in each file and include the License file at
+      glassfish/bootstrap/legal/LICENSE.txt.  Sun designates this
+      particular file as subject to the "Classpath" exception as
+      provided by Sun in the GPL Version 2 section of the License file
+      that accompanied this code.  If applicable, add the following
+      below the License Header, with the fields enclosed by brackets []
+      replaced by your own identifying information:
+      "Portions Copyrighted [year] [name of copyright owner]"
+      
+      Contributor(s):
+      
+      If you wish your version of this file to be governed by only the
+      CDDL or only the GPL Version 2, indicate your decision by adding
+      "[Contributor] elects to include this software in this
+      distribution under the [CDDL or GPL Version 2] license."  If you
+      don't indicate a single choice of license, a recipient has the
+      option to distribute your version of this file under either the
+      CDDL, the GPL Version 2 or to extend the choice of license to its
+      licensees as provided above.  However, if you add GPL Version 2
+      code and therefore, elected the GPL Version 2 license, then the
+      option applies only if the new code is made subject to such
+      option by the copyright holder.
+      
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+      <![CDATA[[
+      This is the XML Schema for the application client 6
+      deployment descriptor.  The deployment descriptor must
+      be named "META-INF/application-client.xml" in the
+      application client's jar file.  All application client
+      deployment descriptors must indicate the application
+      client schema by using the Java EE namespace:
+      
+      http://java.sun.com/xml/ns/javaee
+      
+      and indicate the version of the schema by
+      using the version element as shown below:
+      
+      <application-client xmlns="http://java.sun.com/xml/ns/javaee"
+      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+      xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
+      	http://java.sun.com/xml/ns/javaee/application-client_6.xsd"
+      version="6">
+      ...
+      </application-client>
+      
+      The instance documents may indicate the published version of
+      the schema using the xsi:schemaLocation attribute for Java EE
+      namespace with the following location:
+      
+      http://java.sun.com/xml/ns/javaee/application-client_6.xsd
+      
+      ]]>
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+
+      The following conventions apply to all Java EE
+      deployment descriptor elements unless indicated otherwise.
+      
+      - In elements that specify a pathname to a file within the
+      same JAR file, relative filenames (i.e., those not
+      starting with "/") are considered relative to the root of
+      the JAR file's namespace.  Absolute filenames (i.e., those
+      starting with "/") also specify names in the root of the
+      JAR file's namespace.  In general, relative names are
+      preferred.  The exception is .war files where absolute
+      names are preferred for consistency with the Servlet API.
+      
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:include schemaLocation="javaee_6.xsd"/>
+
+
+<!-- **************************************************** -->
+
+  <xsd:element name="application-client"
+               type="javaee:application-clientType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The application-client element is the root element of an
+        application client deployment descriptor.  The application
+        client deployment descriptor describes the EJB components
+        and external resources referenced by the application
+        client.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:unique name="env-entry-name-uniqueness">
+      <xsd:annotation>
+        <xsd:documentation>
+
+          The env-entry-name element contains the name of an
+          application client's environment entry.  The name is a JNDI
+          name relative to the java:comp/env context.  The name must
+          be unique within an application client.
+          
+        </xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="javaee:env-entry"/>
+      <xsd:field xpath="javaee:env-entry-name"/>
+    </xsd:unique>
+    <xsd:unique name="ejb-ref-name-uniqueness">
+      <xsd:annotation>
+        <xsd:documentation>
+
+          The ejb-ref-name element contains the name of an EJB
+          reference. The EJB reference is an entry in the application
+          client's environment and is relative to the
+          java:comp/env context. The name must be unique within the
+          application client.
+          
+          It is recommended that name is prefixed with "ejb/".
+          
+        </xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="javaee:ejb-ref"/>
+      <xsd:field xpath="javaee:ejb-ref-name"/>
+    </xsd:unique>
+    <xsd:unique name="res-ref-name-uniqueness">
+      <xsd:annotation>
+        <xsd:documentation>
+
+          The res-ref-name element specifies the name of a
+          resource manager connection factory reference.The name
+          is a JNDI name relative to the java:comp/env context.
+          The name must be unique within an application client.
+          
+        </xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="javaee:resource-ref"/>
+      <xsd:field xpath="javaee:res-ref-name"/>
+    </xsd:unique>
+    <xsd:unique name="resource-env-ref-uniqueness">
+      <xsd:annotation>
+        <xsd:documentation>
+
+          The resource-env-ref-name element specifies the name of
+          a resource environment reference; its value is the
+          environment entry name used in the application client
+          code. The name is a JNDI name relative to the
+          java:comp/env context and must be unique within an
+          application client.
+          
+        </xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="javaee:resource-env-ref"/>
+      <xsd:field xpath="javaee:resource-env-ref-name"/>
+    </xsd:unique>
+    <xsd:unique name="message-destination-ref-uniqueness">
+      <xsd:annotation>
+        <xsd:documentation>
+
+          The message-destination-ref-name element specifies the
+          name of a message destination reference; its value is
+          the message destination reference name used in the
+          application client code. The name is a JNDI name
+          relative to the java:comp/env context and must be unique
+          within an application client.
+          
+        </xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="javaee:message-destination-ref"/>
+      <xsd:field xpath="javaee:message-destination-ref-name"/>
+    </xsd:unique>
+  </xsd:element>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="application-clientType">
+    <xsd:sequence>
+      <xsd:element name="module-name"
+                   type="javaee:string"
+                   minOccurs="0"/>
+      <xsd:group ref="javaee:descriptionGroup"/>
+      <xsd:element name="env-entry"
+                   type="javaee:env-entryType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="ejb-ref"
+                   type="javaee:ejb-refType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:group ref="javaee:service-refGroup"/>
+      <xsd:element name="resource-ref"
+                   type="javaee:resource-refType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="resource-env-ref"
+                   type="javaee:resource-env-refType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="message-destination-ref"
+                   type="javaee:message-destination-refType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="persistence-unit-ref"
+                   type="javaee:persistence-unit-refType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="post-construct"
+                   type="javaee:lifecycle-callbackType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="pre-destroy"
+                   type="javaee:lifecycle-callbackType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="callback-handler"
+                   type="javaee:fully-qualified-classType"
+                   minOccurs="0">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            The callback-handler element names a class provided by
+            the application.  The class must have a no args
+            constructor and must implement the
+            javax.security.auth.callback.CallbackHandler
+            interface.  The class will be instantiated by the
+            application client container and used by the container
+            to collect authentication information from the user.
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="message-destination"
+                   type="javaee:message-destinationType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="data-source"
+                   type="javaee:data-sourceType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="version"
+                   type="javaee:dewey-versionType"
+                   fixed="6"
+                   use="required">
+      <xsd:annotation>
+        <xsd:documentation>
+
+          The required value for the version is 6.
+          
+        </xsd:documentation>
+      </xsd:annotation>
+    </xsd:attribute>
+    <xsd:attribute name="metadata-complete"
+                   type="xsd:boolean">
+      <xsd:annotation>
+        <xsd:documentation>
+
+          The metadata-complete attribute defines whether this
+          deployment descriptor and other related deployment
+          descriptors for this module (e.g., web service
+          descriptors) are complete, or whether the class
+          files available to this module and packaged with
+          this application should be examined for annotations
+          that specify deployment information.
+          
+          If metadata-complete is set to "true", the deployment
+          tool must ignore any annotations that specify deployment
+          information, which might be present in the class files
+          of the application.
+          
+          If metadata-complete is not specified or is set to
+          "false", the deployment tool must examine the class
+          files of the application for annotations, as
+          specified by the specifications.
+          
+        </xsd:documentation>
+      </xsd:annotation>
+    </xsd:attribute>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+</xsd:schema>

Added: projects/metadata/client/trunk/src/main/resources/schema/jboss-client_6_0.xsd
===================================================================
--- projects/metadata/client/trunk/src/main/resources/schema/jboss-client_6_0.xsd	                        (rev 0)
+++ projects/metadata/client/trunk/src/main/resources/schema/jboss-client_6_0.xsd	2010-03-08 18:55:25 UTC (rev 102076)
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
+   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+   xmlns:jboss="http://www.jboss.com/xml/ns/javaee"
+   xmlns:jee="http://java.sun.com/xml/ns/javaee"
+   targetNamespace="http://www.jboss.com/xml/ns/javaee"
+   version="6.0"
+   elementFormDefault="qualified"
+   >
+
+   <xsd:import namespace="http://java.sun.com/xml/ns/javaee" schemaLocation="http://java.sun.com/xml/ns/javaee/javaee_6.xsd"/>
+   <xsd:include schemaLocation="http://www.jboss.org/j2ee/schema/jboss-common_6_0.xsd"/>
+
+   <xsd:element name="jboss-client" type="jboss:jboss-clientType"/>
+
+   <xsd:complexType name="jboss-clientType">
+      <xsd:sequence>
+         <xsd:element name="module-name" type="xsd:string" minOccurs="0"/>
+         <xsd:group ref="jboss:descriptionGroup"/>
+         <xsd:element name="callback-handler" type="xsd:string" minOccurs="0"/>
+         <xsd:element name="metadata-complete" type="xsd:boolean" minOccurs="0"/>
+         <xsd:element name="jndi-name" type="xsd:string" minOccurs="0"/>
+         <xsd:group ref="jboss:jndiEnvironmentRefsGroup"/>
+         <xsd:element name="message-destinations" type="jboss:message-destinationType" minOccurs="0" maxOccurs="unbounded"/>
+         <xsd:element name="depends" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
+      </xsd:sequence>
+      <xsd:attribute name="id" type="xsd:string"/>
+      <xsd:attribute name="version" type="xsd:string"/>
+   </xsd:complexType>
+
+</xsd:schema>

Added: projects/metadata/client/trunk/src/test/java/org/jboss/test/metadata/client/ApplicationClient6EverythingUnitTestCase.java
===================================================================
--- projects/metadata/client/trunk/src/test/java/org/jboss/test/metadata/client/ApplicationClient6EverythingUnitTestCase.java	                        (rev 0)
+++ projects/metadata/client/trunk/src/test/java/org/jboss/test/metadata/client/ApplicationClient6EverythingUnitTestCase.java	2010-03-08 18:55:25 UTC (rev 102076)
@@ -0,0 +1,76 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2007, Red Hat Middleware LLC, and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.metadata.client;
+
+import org.jboss.metadata.client.spec.ApplicationClient6MetaData;
+import org.jboss.metadata.client.spec.ApplicationClientMetaData;
+import org.jboss.metadata.javaee.spec.MessageDestinationMetaData;
+import org.jboss.metadata.javaee.spec.MessageDestinationsMetaData;
+import org.jboss.test.metadata.javaee.AbstractJavaEEEverythingTest;
+
+/**
+ * Test all entries of an application client 5 descriptor.
+ *
+ * @author <a href="mailto:carlo.dewolf at jboss.com">Carlo de Wolf</a>
+ * @version $Revision: 88255 $
+ */
+public class ApplicationClient6EverythingUnitTestCase extends AbstractJavaEEEverythingTest
+{
+
+   public ApplicationClient6EverythingUnitTestCase(String name)
+   {
+      super(name);
+   }
+
+   protected void assertEverything(ApplicationClientMetaData appClientMetaData, Mode mode)
+   {
+      //assertEverythingWithAppMetaData(appClientMetaData);
+      assertEquals("spec-app-client", appClientMetaData.getModuleName());
+      assertEquals("6", appClientMetaData.getVersion());
+      assertDescriptionGroup("application-client", appClientMetaData.getDescriptionGroup());
+      assertRemoteEnvironment("appClient", appClientMetaData, true, mode);
+      assertEquals("org.jboss.test.metadata.client.AppClientCallbackHandler", appClientMetaData.getCallbackHandler());
+      assertMessageDestinations5("appClientMessageDestination", 2, appClientMetaData.getMessageDestinations(), true);
+   }
+   protected void assertMessageDestinations5(String prefix, int size, MessageDestinationsMetaData messageDestinations, boolean full)
+   {
+      assertNotNull("no message destinations are set", messageDestinations);
+      assertEquals(size, messageDestinations.size());
+      int count = 1;
+      for(MessageDestinationMetaData messageDestinationMetaData : messageDestinations)
+      {
+         assertMessageDestination50(prefix + count, messageDestinationMetaData, Mode.SPEC);
+         count++;
+      }
+   }
+   
+   public void testEverything() throws Exception
+   {
+      ApplicationClientMetaData appClientMetaData = unmarshal();
+      assertEverything(appClientMetaData, Mode.SPEC);
+   }
+   
+   protected ApplicationClientMetaData unmarshal() throws Exception
+   {
+      return unmarshal(ApplicationClient6MetaData.class);
+   }
+}

Modified: projects/metadata/client/trunk/src/test/java/org/jboss/test/metadata/client/ApplicationClientJBossMergeEverythingUnitTestCase.java
===================================================================
--- projects/metadata/client/trunk/src/test/java/org/jboss/test/metadata/client/ApplicationClientJBossMergeEverythingUnitTestCase.java	2010-03-08 18:51:59 UTC (rev 102075)
+++ projects/metadata/client/trunk/src/test/java/org/jboss/test/metadata/client/ApplicationClientJBossMergeEverythingUnitTestCase.java	2010-03-08 18:55:25 UTC (rev 102076)
@@ -71,5 +71,30 @@
       assertEquals("org.jboss.test.metadata.client.AppClientCallbackHandler", jbossClientMetaData.getCallbackHandler());
       assertMessageDestinations5("appClientMessageDestination", 2, jbossClientMetaData.getMessageDestinations(), true);
    }
+   
+   public void testAppClient6Everything() throws Exception
+   {
+      ApplicationClientMetaData appClientMetaData = unmarshal("ApplicationClient6Everything_testEverything.xml", ApplicationClientMetaData.class, null);
+      new ApplicationClient6EverythingUnitTestCase("appClient").assertEverything(appClientMetaData, Mode.SPEC);
+      
+      JBossClientMetaData rawJBossMetaData = unmarshal("JBossClient6Everything_testEverything.xml", JBossClientMetaData.class, null);
+      new JBossClient6EverythingUnitTestCase("jbossClient").assertEverything(rawJBossMetaData);
 
+      JBossClientMetaData jbossClientMetaData = new JBossClientMetaData();
+      jbossClientMetaData.merge(rawJBossMetaData, appClientMetaData, true);
+      
+      // TODO: should this work?
+      assertDescriptionGroup("application-client", appClientMetaData.getDescriptionGroup());
+      assertRemoteEnvironment("appClient", jbossClientMetaData, true, Mode.JBOSS);
+      assertEquals("org.jboss.test.metadata.client.AppClientCallbackHandler", jbossClientMetaData.getCallbackHandler());
+      assertMessageDestinations5("appClientMessageDestination", 2, jbossClientMetaData.getMessageDestinations(), true);
+      
+      assertEquals("jboss-app-client", jbossClientMetaData.getModuleName());
+      
+      rawJBossMetaData.setModuleName(null);
+      jbossClientMetaData = new JBossClientMetaData();
+      jbossClientMetaData.merge(rawJBossMetaData, appClientMetaData, true);
+      assertEquals("spec-app-client", jbossClientMetaData.getModuleName());
+   }
+
 }

Added: projects/metadata/client/trunk/src/test/java/org/jboss/test/metadata/client/JBossClient6EverythingUnitTestCase.java
===================================================================
--- projects/metadata/client/trunk/src/test/java/org/jboss/test/metadata/client/JBossClient6EverythingUnitTestCase.java	                        (rev 0)
+++ projects/metadata/client/trunk/src/test/java/org/jboss/test/metadata/client/JBossClient6EverythingUnitTestCase.java	2010-03-08 18:55:25 UTC (rev 102076)
@@ -0,0 +1,104 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2007, Red Hat Middleware LLC, and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.metadata.client;
+
+import org.jboss.metadata.client.jboss.JBossClient5MetaData;
+import org.jboss.metadata.client.jboss.JBossClient6MetaData;
+import org.jboss.metadata.client.jboss.JBossClientMetaData;
+import org.jboss.metadata.javaee.spec.MessageDestinationReferenceMetaData;
+import org.jboss.test.metadata.javaee.AbstractJavaEEEverythingTest;
+import org.jboss.test.metadata.javaee.JBossXBTestDelegate;
+
+/**
+ * Test all entries of an JBoss client 5 descriptor.
+ *
+ * @author <a href="mailto:carlo.dewolf at jboss.com">Carlo de Wolf</a>
+ * @version $Revision: 88255 $
+ */
+public class JBossClient6EverythingUnitTestCase extends AbstractJavaEEEverythingTest
+{
+
+   public JBossClient6EverythingUnitTestCase(String name)
+   {
+      super(name);
+   }
+
+   protected void assertEverything(JBossClientMetaData jbossClientMetaData)
+   {
+      assertEquals("jboss-app-client", jbossClientMetaData.getModuleName());
+      assertEquals("appClientJndiName", jbossClientMetaData.getJndiName());
+      assertEquals("http://localhost", jbossClientMetaData.getJndiEnvironmentRefsGroup().getResourceReferences().get("appClientResourceRef2Name").getResUrl());
+      MessageDestinationReferenceMetaData mref = jbossClientMetaData.getMessageDestinationReferenceByName("appClientMessageDestinationRef1Name");
+      assertNotNull(mref);
+      assertEquals("MDB_QUEUE", mref.getJndiName());
+      assertEquals("MDB_QUEUE", mref.getMappedName());
+
+      assertEquals(2, jbossClientMetaData.getDepends().size());
+      int count = 1;
+      for(String depends : jbossClientMetaData.getDepends())
+      {
+         assertEquals("appClientDepends" + count, depends);
+         count++;
+      }
+   }
+      
+   public void testEverything() throws Exception
+   {
+      JBossXBTestDelegate xbdelegate = (JBossXBTestDelegate) super.getDelegate();
+      xbdelegate.setValidateSchema(true);
+      JBossClient6MetaData jbossClientMetaData = unmarshal();
+      assertEverything(jbossClientMetaData);
+   }
+   
+   /**
+    * When there is no jndiEnvironmentRefsGroup we don't want
+    * any NPE to pop up.
+    * @throws Exception
+    */
+   public void testNoJndiEnvironmentRefsGroup() throws Exception
+   {
+      JBossClientMetaData metaData = new JBossClient5MetaData();
+      assertNull(metaData.getJndiEnvironmentRefsGroup());
+      assertNull(metaData.getEjbReferences());
+      assertNull(metaData.getEjbReferenceByName("unknown"));
+      assertNull(metaData.getAnnotatedEjbReferences());
+      assertNull(metaData.getEnvironmentEntries());
+      assertNull(metaData.getEnvironmentEntryByName("unknown"));
+      assertNull(metaData.getMessageDestinationReferences());
+      assertNull(metaData.getMessageDestinationReferenceByName("unknown"));
+      assertNull(metaData.getPersistenceUnitRefs());
+      assertNull(metaData.getPersistenceUnitReferenceByName("unknown"));
+      assertNull(metaData.getPostConstructs());
+      assertNull(metaData.getPreDestroys());
+      assertNull(metaData.getServiceReferences());
+      assertNull(metaData.getServiceReferenceByName("unknown"));
+      assertNull(metaData.getResourceEnvironmentReferences());
+      assertNull(metaData.getResourceEnvironmentReferenceByName("unknown"));
+      assertNull(metaData.getResourceReferences());
+      assertNull(metaData.getResourceReferenceByName("unknown"));
+   }
+   
+   protected JBossClient6MetaData unmarshal() throws Exception
+   {
+      return unmarshal(JBossClient6MetaData.class);
+   }
+}

Added: projects/metadata/client/trunk/src/test/resources/org/jboss/test/metadata/client/ApplicationClient6Everything_testEverything.xml
===================================================================
--- projects/metadata/client/trunk/src/test/resources/org/jboss/test/metadata/client/ApplicationClient6Everything_testEverything.xml	                        (rev 0)
+++ projects/metadata/client/trunk/src/test/resources/org/jboss/test/metadata/client/ApplicationClient6Everything_testEverything.xml	2010-03-08 18:55:25 UTC (rev 102076)
@@ -0,0 +1,354 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<application-client xmlns="http://java.sun.com/xml/ns/javaee"
+                    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+                    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application-client_6.xsd"
+                    version="6"
+                    metadata-complete="true"
+                    id="appclient-test">
+   <module-name>spec-app-client</module-name>
+   <!-- description group -->
+   <description>en-application-client-desc</description>
+   <description xml:lang="fr">fr-application-client-desc</description>
+   <description xml:lang="de">de-application-client-desc</description>
+   <display-name>en-application-client-disp</display-name>
+   <display-name xml:lang="fr">fr-application-client-disp</display-name>
+   <display-name xml:lang="de">de-application-client-disp</display-name>
+   <icon id="en-application-client-icon-id">
+      <small-icon>en-application-client-small-icon</small-icon>
+      <large-icon>en-application-client-large-icon</large-icon>
+   </icon>
+   <icon xml:lang="fr" id="fr-application-client-icon-id">
+      <small-icon>fr-application-client-small-icon</small-icon>
+      <large-icon>fr-application-client-large-icon</large-icon>
+   </icon>
+   <icon xml:lang="de" id="de-application-client-icon-id">
+      <small-icon>de-application-client-small-icon</small-icon>
+      <large-icon>de-application-client-large-icon</large-icon>
+   </icon>
+
+   <!-- env entry -->
+   <env-entry id="appClientEnvEntry1-id">
+      <description>en-appClientEnvEntry1-desc</description>
+      <description xml:lang="fr">fr-appClientEnvEntry1-desc</description>
+      <description xml:lang="de">de-appClientEnvEntry1-desc</description>
+      <env-entry-name>
+        appClientEnvEntry1Name
+      </env-entry-name>
+      <env-entry-type>java.lang.String</env-entry-type>
+      <env-entry-value>appClientEnvEntry1Value</env-entry-value>
+      <mapped-name>appClientEnvEntry1MappedName</mapped-name>
+      <injection-target>
+         <injection-target-class>appClientEnvEntry1Injection1Class</injection-target-class>
+         <injection-target-name>appClientEnvEntry1Injection1Name</injection-target-name>
+      </injection-target>
+      <injection-target>
+         <injection-target-class>appClientEnvEntry1Injection2Class</injection-target-class>
+         <injection-target-name>appClientEnvEntry1Injection2Name</injection-target-name>
+      </injection-target>
+   </env-entry>
+   <env-entry id="appClientEnvEntry2-id">
+      <description>en-appClientEnvEntry2-desc</description>
+      <description xml:lang="fr">fr-appClientEnvEntry2-desc</description>
+      <description xml:lang="de">de-appClientEnvEntry2-desc</description>
+      <env-entry-name>appClientEnvEntry2Name</env-entry-name>
+      <env-entry-type>java.lang.String</env-entry-type>
+      <env-entry-value>appClientEnvEntry2Value</env-entry-value>
+      <mapped-name>appClientEnvEntry2MappedName</mapped-name>
+      <injection-target>
+         <injection-target-class>appClientEnvEntry2Injection1Class</injection-target-class>
+         <injection-target-name>appClientEnvEntry2Injection1Name</injection-target-name>
+      </injection-target>
+      <injection-target>
+         <injection-target-class>appClientEnvEntry2Injection2Class</injection-target-class>
+         <injection-target-name>appClientEnvEntry2Injection2Name</injection-target-name>
+      </injection-target>
+   </env-entry>
+   
+   <!-- ejb ref -->
+   <ejb-ref id="appClientEjbRef1-id">
+      <description>en-appClientEjbRef1-desc</description>
+      <description xml:lang="fr">fr-appClientEjbRef1-desc</description>
+      <description xml:lang="de">de-appClientEjbRef1-desc</description>
+      <ejb-ref-name>appClientEjbRef1Name</ejb-ref-name>
+      <ejb-ref-type>Session</ejb-ref-type>
+      <home>appClientEjbRef1Home</home>
+      <remote>appClientEjbRef1Remote</remote>
+      <ejb-link>appClientEjbRef1EjbLink</ejb-link>
+      <mapped-name>appClientEjbRef1MappedName</mapped-name>
+      <injection-target>
+         <injection-target-class>appClientEjbRef1Injection1Class</injection-target-class>
+         <injection-target-name>appClientEjbRef1Injection1Name</injection-target-name>
+      </injection-target>
+      <injection-target>
+         <injection-target-class>appClientEjbRef1Injection2Class</injection-target-class>
+         <injection-target-name>appClientEjbRef1Injection2Name</injection-target-name>
+      </injection-target>
+   </ejb-ref>
+   <ejb-ref id="appClientEjbRef2-id">
+      <description>en-appClientEjbRef2-desc</description>
+      <description xml:lang="fr">fr-appClientEjbRef2-desc</description>
+      <description xml:lang="de">de-appClientEjbRef2-desc</description>
+      <ejb-ref-name>appClientEjbRef2Name</ejb-ref-name>
+      <ejb-ref-type>Entity</ejb-ref-type>
+      <home>appClientEjbRef2Home</home>
+      <remote>appClientEjbRef2Remote</remote>
+      <ejb-link>appClientEjbRef2EjbLink</ejb-link>
+      <mapped-name>appClientEjbRef2MappedName</mapped-name>
+      <injection-target>
+         <injection-target-class>appClientEjbRef2Injection1Class</injection-target-class>
+         <injection-target-name>appClientEjbRef2Injection1Name</injection-target-name>
+      </injection-target>
+      <injection-target>
+         <injection-target-class>appClientEjbRef2Injection2Class</injection-target-class>
+         <injection-target-name>appClientEjbRef2Injection2Name</injection-target-name>
+      </injection-target>
+   </ejb-ref>
+   
+   <!-- service ref -->
+   <!-- TODO: full service-ref contents -->
+   <service-ref id="appClientServiceRef1-id">
+      <description>en-appClientServiceRef1-desc</description>
+      <description xml:lang="fr">fr-appClientServiceRef1-desc</description>
+      <description xml:lang="de">de-appClientServiceRef1-desc</description>
+      <service-ref-name>appClientServiceRef1Name</service-ref-name>
+      <service-interface>appClientServiceRef1Iface</service-interface>
+   </service-ref>
+   <service-ref id="appClientServiceRef2-id">
+      <description>en-appClientServiceRef2-desc</description>
+      <description xml:lang="fr">fr-appClientServiceRef2-desc</description>
+      <description xml:lang="de">de-appClientServiceRef2-desc</description>
+      <service-ref-name>appClientServiceRef2Name</service-ref-name>
+      <service-interface>appClientServiceRef2Iface</service-interface>
+   </service-ref>
+   
+   <!-- resource ref -->
+   <resource-ref id="appClientResourceRef1-id">
+      <description>en-appClientResourceRef1-desc</description>
+      <description xml:lang="fr">fr-appClientResourceRef1-desc</description>
+      <description xml:lang="de">de-appClientResourceRef1-desc</description>
+      <res-ref-name>appClientResourceRef1Name</res-ref-name>
+      <res-type>appClientResourceRef1Type</res-type>
+      <res-auth>Application</res-auth>
+      <res-sharing-scope>Shareable</res-sharing-scope>
+      <mapped-name>appClientResourceRef1MappedName</mapped-name>
+      <injection-target>
+         <injection-target-class>appClientResourceRef1Injection1Class</injection-target-class>
+         <injection-target-name>appClientResourceRef1Injection1Name</injection-target-name>
+      </injection-target>
+      <injection-target>
+         <injection-target-class>appClientResourceRef1Injection2Class</injection-target-class>
+         <injection-target-name>appClientResourceRef1Injection2Name</injection-target-name>
+      </injection-target>
+   </resource-ref>
+   <resource-ref id="appClientResourceRef2-id">
+      <description>en-appClientResourceRef2-desc</description>
+      <description xml:lang="fr">fr-appClientResourceRef2-desc</description>
+      <description xml:lang="de">de-appClientResourceRef2-desc</description>
+      <res-ref-name>appClientResourceRef2Name</res-ref-name>
+      <res-type>appClientResourceRef2Type</res-type>
+      <res-auth>Container</res-auth>
+      <res-sharing-scope>Unshareable</res-sharing-scope>
+      <mapped-name>appClientResourceRef2MappedName</mapped-name>
+      <injection-target>
+         <injection-target-class>appClientResourceRef2Injection1Class</injection-target-class>
+         <injection-target-name>appClientResourceRef2Injection1Name</injection-target-name>
+      </injection-target>
+      <injection-target>
+         <injection-target-class>appClientResourceRef2Injection2Class</injection-target-class>
+         <injection-target-name>appClientResourceRef2Injection2Name</injection-target-name>
+      </injection-target>
+   </resource-ref>
+   
+   <!-- resource env ref -->
+   <resource-env-ref id="appClientResourceEnvRef1-id">
+      <description>en-appClientResourceEnvRef1-desc</description>
+      <description xml:lang="fr">fr-appClientResourceEnvRef1-desc</description>
+      <description xml:lang="de">de-appClientResourceEnvRef1-desc</description>
+      <resource-env-ref-name>appClientResourceEnvRef1Name</resource-env-ref-name>
+      <resource-env-ref-type>appClientResourceEnvRef1Type</resource-env-ref-type>
+      <mapped-name>appClientResourceEnvRef1MappedName</mapped-name>
+      <injection-target>
+         <injection-target-class>appClientResourceEnvRef1Injection1Class</injection-target-class>
+         <injection-target-name>appClientResourceEnvRef1Injection1Name</injection-target-name>
+      </injection-target>
+      <injection-target>
+         <injection-target-class>appClientResourceEnvRef1Injection2Class</injection-target-class>
+         <injection-target-name>appClientResourceEnvRef1Injection2Name</injection-target-name>
+      </injection-target>
+   </resource-env-ref>
+   <resource-env-ref id="appClientResourceEnvRef2-id">
+      <description>en-appClientResourceEnvRef2-desc</description>
+      <description xml:lang="fr">fr-appClientResourceEnvRef2-desc</description>
+      <description xml:lang="de">de-appClientResourceEnvRef2-desc</description>
+      <resource-env-ref-name>appClientResourceEnvRef2Name</resource-env-ref-name>
+      <resource-env-ref-type>appClientResourceEnvRef2Type</resource-env-ref-type>
+      <mapped-name>appClientResourceEnvRef2MappedName</mapped-name>
+      <injection-target>
+         <injection-target-class>appClientResourceEnvRef2Injection1Class</injection-target-class>
+         <injection-target-name>appClientResourceEnvRef2Injection1Name</injection-target-name>
+      </injection-target>
+      <injection-target>
+         <injection-target-class>appClientResourceEnvRef2Injection2Class</injection-target-class>
+         <injection-target-name>appClientResourceEnvRef2Injection2Name</injection-target-name>
+      </injection-target>
+   </resource-env-ref>
+
+   <!-- message destination ref -->
+   <message-destination-ref id="appClientMessageDestinationRef1-id">
+      <description>en-appClientMessageDestinationRef1-desc</description>
+      <description xml:lang="fr">fr-appClientMessageDestinationRef1-desc</description>
+      <description xml:lang="de">de-appClientMessageDestinationRef1-desc</description>
+      <message-destination-ref-name>appClientMessageDestinationRef1Name</message-destination-ref-name>
+      <message-destination-type>appClientMessageDestinationRef1Type</message-destination-type>
+      <message-destination-usage>Consumes</message-destination-usage>
+      <message-destination-link>appClientMessageDestinationRef1Link</message-destination-link>
+      <mapped-name>appClientMessageDestinationRef1MappedName</mapped-name>
+      <injection-target>
+         <injection-target-class>appClientMessageDestinationRef1Injection1Class</injection-target-class>
+         <injection-target-name>appClientMessageDestinationRef1Injection1Name</injection-target-name>
+      </injection-target>
+      <injection-target>
+         <injection-target-class>appClientMessageDestinationRef1Injection2Class</injection-target-class>
+         <injection-target-name>appClientMessageDestinationRef1Injection2Name</injection-target-name>
+      </injection-target>
+   </message-destination-ref>
+   <message-destination-ref id="appClientMessageDestinationRef2-id">
+      <description>en-appClientMessageDestinationRef2-desc</description>
+      <description xml:lang="fr">fr-appClientMessageDestinationRef2-desc</description>
+      <description xml:lang="de">de-appClientMessageDestinationRef2-desc</description>
+      <message-destination-ref-name>appClientMessageDestinationRef2Name</message-destination-ref-name>
+      <message-destination-type>appClientMessageDestinationRef2Type</message-destination-type>
+      <message-destination-usage>Produces</message-destination-usage>
+      <message-destination-link>appClientMessageDestinationRef2Link</message-destination-link>
+      <mapped-name>appClientMessageDestinationRef2MappedName</mapped-name>
+      <injection-target>
+         <injection-target-class>appClientMessageDestinationRef2Injection1Class</injection-target-class>
+         <injection-target-name>appClientMessageDestinationRef2Injection1Name</injection-target-name>
+      </injection-target>
+      <injection-target>
+         <injection-target-class>appClientMessageDestinationRef2Injection2Class</injection-target-class>
+         <injection-target-name>appClientMessageDestinationRef2Injection2Name</injection-target-name>
+      </injection-target>
+   </message-destination-ref>
+   <message-destination-ref id="appClientMessageDestinationRef3-id">
+      <description>en-appClientMessageDestinationRef3-desc</description>
+      <description xml:lang="fr">fr-appClientMessageDestinationRef3-desc</description>
+      <description xml:lang="de">de-appClientMessageDestinationRef3-desc</description>
+      <message-destination-ref-name>appClientMessageDestinationRef3Name</message-destination-ref-name>
+      <message-destination-type>appClientMessageDestinationRef3Type</message-destination-type>
+      <message-destination-usage>ConsumesProduces</message-destination-usage>
+      <message-destination-link>appClientMessageDestinationRef3Link</message-destination-link>
+      <mapped-name>appClientMessageDestinationRef3MappedName</mapped-name>
+      <injection-target>
+         <injection-target-class>appClientMessageDestinationRef3Injection1Class</injection-target-class>
+         <injection-target-name>appClientMessageDestinationRef3Injection1Name</injection-target-name>
+      </injection-target>
+      <injection-target>
+         <injection-target-class>appClientMessageDestinationRef3Injection2Class</injection-target-class>
+         <injection-target-name>appClientMessageDestinationRef3Injection2Name</injection-target-name>
+      </injection-target>
+   </message-destination-ref>
+   
+   <!-- persistence unit ref -->
+   <persistence-unit-ref id="appClientPersistenceUnitRef1-id">
+      <description>en-appClientPersistenceUnitRef1-desc</description>
+      <description xml:lang="fr">fr-appClientPersistenceUnitRef1-desc</description>
+      <description xml:lang="de">de-appClientPersistenceUnitRef1-desc</description>
+      <persistence-unit-ref-name>appClientPersistenceUnitRef1Name</persistence-unit-ref-name>
+      <persistence-unit-name>appClientPersistenceUnitRef1Unit</persistence-unit-name>
+      <mapped-name>appClientPersistenceUnitRef1MappedName</mapped-name>
+      <injection-target>
+         <injection-target-class>appClientPersistenceUnitRef1Injection1Class</injection-target-class>
+         <injection-target-name>appClientPersistenceUnitRef1Injection1Name</injection-target-name>
+      </injection-target>
+      <injection-target>
+         <injection-target-class>appClientPersistenceUnitRef1Injection2Class</injection-target-class>
+         <injection-target-name>appClientPersistenceUnitRef1Injection2Name</injection-target-name>
+      </injection-target>
+   </persistence-unit-ref>
+   <persistence-unit-ref id="appClientPersistenceUnitRef2-id">
+      <description>en-appClientPersistenceUnitRef2-desc</description>
+      <description xml:lang="fr">fr-appClientPersistenceUnitRef2-desc</description>
+      <description xml:lang="de">de-appClientPersistenceUnitRef2-desc</description>
+      <persistence-unit-ref-name>appClientPersistenceUnitRef2Name</persistence-unit-ref-name>
+      <persistence-unit-name>appClientPersistenceUnitRef2Unit</persistence-unit-name>
+      <mapped-name>appClientPersistenceUnitRef2MappedName</mapped-name>
+      <injection-target>
+         <injection-target-class>appClientPersistenceUnitRef2Injection1Class</injection-target-class>
+         <injection-target-name>appClientPersistenceUnitRef2Injection1Name</injection-target-name>
+      </injection-target>
+      <injection-target>
+         <injection-target-class>appClientPersistenceUnitRef2Injection2Class</injection-target-class>
+         <injection-target-name>appClientPersistenceUnitRef2Injection2Name</injection-target-name>
+      </injection-target>
+   </persistence-unit-ref>
+   
+   <!-- post-construct -->
+   <post-construct>
+      <lifecycle-callback-class>appClientPostConstruct1Class</lifecycle-callback-class>
+      <lifecycle-callback-method>appClientPostConstruct1Method</lifecycle-callback-method>
+   </post-construct>
+   <post-construct>
+      <lifecycle-callback-class>appClientPostConstruct2Class</lifecycle-callback-class>
+      <lifecycle-callback-method>appClientPostConstruct2Method</lifecycle-callback-method>
+   </post-construct>
+   
+   <!-- pre-destroy -->
+   <pre-destroy>
+      <lifecycle-callback-class>appClientPreDestroy1Class</lifecycle-callback-class>
+      <lifecycle-callback-method>appClientPreDestroy1Method</lifecycle-callback-method>
+   </pre-destroy>
+   <pre-destroy>
+      <lifecycle-callback-class>appClientPreDestroy2Class</lifecycle-callback-class>
+      <lifecycle-callback-method>appClientPreDestroy2Method</lifecycle-callback-method>
+   </pre-destroy>
+   
+   <!-- callback handler -->
+   <callback-handler id="appClientCallbackHandler-id">org.jboss.test.metadata.client.AppClientCallbackHandler</callback-handler>
+   
+   <!-- message destination -->
+   <message-destination id="appClientMessageDestination1-id">
+      <description>en-appClientMessageDestination1-desc</description>
+      <description xml:lang="fr">fr-appClientMessageDestination1-desc</description>
+      <description xml:lang="de">de-appClientMessageDestination1-desc</description>
+      <display-name>en-appClientMessageDestination1-disp</display-name>
+      <display-name xml:lang="fr">fr-appClientMessageDestination1-disp</display-name>
+      <display-name xml:lang="de">de-appClientMessageDestination1-disp</display-name>
+      <icon id="en-appClientMessageDestination1-icon-id">
+         <small-icon>en-appClientMessageDestination1-small-icon</small-icon>
+         <large-icon>en-appClientMessageDestination1-large-icon</large-icon>
+      </icon>
+      <icon xml:lang="fr" id="fr-appClientMessageDestination1-icon-id">
+         <small-icon>fr-appClientMessageDestination1-small-icon</small-icon>
+         <large-icon>fr-appClientMessageDestination1-large-icon</large-icon>
+      </icon>
+      <icon xml:lang="de" id="de-appClientMessageDestination1-icon-id">
+         <small-icon>de-appClientMessageDestination1-small-icon</small-icon>
+         <large-icon>de-appClientMessageDestination1-large-icon</large-icon>
+      </icon>
+      <message-destination-name>appClientMessageDestination1Name</message-destination-name>
+      <mapped-name>appClientMessageDestination1MappedName</mapped-name>
+   </message-destination>
+   <message-destination id="appClientMessageDestination2-id">
+      <description>en-appClientMessageDestination2-desc</description>
+      <description xml:lang="fr">fr-appClientMessageDestination2-desc</description>
+      <description xml:lang="de">de-appClientMessageDestination2-desc</description>
+      <display-name>en-appClientMessageDestination2-disp</display-name>
+      <display-name xml:lang="fr">fr-appClientMessageDestination2-disp</display-name>
+      <display-name xml:lang="de">de-appClientMessageDestination2-disp</display-name>
+      <icon id="en-appClientMessageDestination2-icon-id">
+         <small-icon>en-appClientMessageDestination2-small-icon</small-icon>
+         <large-icon>en-appClientMessageDestination2-large-icon</large-icon>
+      </icon>
+      <icon xml:lang="fr" id="fr-appClientMessageDestination2-icon-id">
+         <small-icon>fr-appClientMessageDestination2-small-icon</small-icon>
+         <large-icon>fr-appClientMessageDestination2-large-icon</large-icon>
+      </icon>
+      <icon xml:lang="de" id="de-appClientMessageDestination2-icon-id">
+         <small-icon>de-appClientMessageDestination2-small-icon</small-icon>
+         <large-icon>de-appClientMessageDestination2-large-icon</large-icon>
+      </icon>
+      <message-destination-name>appClientMessageDestination2Name</message-destination-name>
+      <mapped-name>appClientMessageDestination2MappedName</mapped-name>
+   </message-destination>
+</application-client>
\ No newline at end of file

Added: projects/metadata/client/trunk/src/test/resources/org/jboss/test/metadata/client/JBossClient6Everything_testEverything.xml
===================================================================
--- projects/metadata/client/trunk/src/test/resources/org/jboss/test/metadata/client/JBossClient6Everything_testEverything.xml	                        (rev 0)
+++ projects/metadata/client/trunk/src/test/resources/org/jboss/test/metadata/client/JBossClient6Everything_testEverything.xml	2010-03-08 18:55:25 UTC (rev 102076)
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<jboss-client xmlns="http://www.jboss.com/xml/ns/javaee"
+   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+   xsi:schemaLocation="http://www.jboss.com/xml/ns/javaee http://www.jboss.com/xml/ns/javaee/jboss-client_6_0.xsd"
+   version="6.0"
+   id="appclient-test">
+   
+   <module-name>jboss-app-client</module-name>
+   <!-- jndi name -->
+   <jndi-name>
+       appClientJndiName
+   </jndi-name>
+   
+   <!-- resource ref -->
+   <resource-ref id="appClientResourceRef2-id">
+      <res-ref-name>appClientResourceRef2Name</res-ref-name>
+      <res-url>http://localhost</res-url>
+   </resource-ref>
+      
+   <message-destination-ref>
+      <message-destination-ref-name>appClientMessageDestinationRef1Name</message-destination-ref-name>
+      <jndi-name>MDB_QUEUE</jndi-name>
+   </message-destination-ref>
+   
+   <!-- depends -->
+   <depends>appClientDepends1</depends>
+   <depends>appClientDepends2</depends>
+</jboss-client>
\ No newline at end of file

Modified: projects/metadata/client/trunk/src/test/resources/schema2class.properties
===================================================================
--- projects/metadata/client/trunk/src/test/resources/schema2class.properties	2010-03-08 18:51:59 UTC (rev 102075)
+++ projects/metadata/client/trunk/src/test/resources/schema2class.properties	2010-03-08 18:55:25 UTC (rev 102076)
@@ -2,8 +2,10 @@
 application-client_1_3.dtd org.jboss.metadata.client.spec.ApplicationClient14DTDMetaData
 application-client_1_4.xsd org.jboss.metadata.client.spec.ApplicationClient14MetaData
 application-client_5.xsd org.jboss.metadata.client.spec.ApplicationClient5MetaData
+application-client_6.xsd org.jboss.metadata.client.spec.ApplicationClient6MetaData
 jboss-client_4_0.dtd org.jboss.metadata.client.jboss.JBossClient5DTDMetaData
 jboss-client_4_2.dtd org.jboss.metadata.client.jboss.JBossClient5DTDMetaData
 jboss-client_5_0.dtd org.jboss.metadata.client.jboss.JBossClient5DTDMetaData
 jboss-client_5_0.xsd org.jboss.metadata.client.jboss.JBossClient5MetaData
+jboss-client_6_0.xsd org.jboss.metadata.client.jboss.JBossClient6MetaData
 jboss-client org.jboss.metadata.client.jboss.JBossClient5DTDMetaData




More information about the jboss-cvs-commits mailing list