[jboss-svn-commits] JBoss Common SVN: r2457 - in jbossxb-builder/trunk/src/test: java/org/jboss/ejb and 11 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Wed Jul 25 07:48:04 EDT 2007
Author: alex.loubyansky at jboss.com
Date: 2007-07-25 07:48:03 -0400 (Wed, 25 Jul 2007)
New Revision: 2457
Added:
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/CacheInvalidationConfigMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/ClusterConfigMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/CommitOption.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/ContainerConfigurationMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/ContainerConfigurationsMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/IORASContextMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/IORSASContextMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/IORSecurityConfigMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/IORTransportConfigMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/InvokerBindingMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/InvokerBindingsMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/InvokerProxyBindingMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/InvokerProxyBindingsMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/JBoss50MetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/JBossAssemblyDescriptorMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/JBossEnterpriseBeanMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/JBossEnterpriseBeansMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/JBossEntityBeanMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/JBossEnvironmentRefsGroupMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/JBossMessageDrivenBeanMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/JBossMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/JBossSessionBeanMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/LoaderRepositoryConfigMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/LoaderRepositoryMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/MethodAttributeMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/MethodAttributesMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/RemoteBindingMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/ResourceManagerMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/ResourceManagersMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/WebserviceDescriptionMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/WebserviceDescriptionsMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/WebservicesMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/ActivationConfigMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/ActivationConfigPropertiesMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/ActivationConfigPropertyMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/ApplicationExceptionMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/ApplicationExceptionsMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/AroundInvokeMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/AroundInvokesMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/AssemblyDescriptorMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/BusinessLocalsMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/BusinessRemotesMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/CMPFieldMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/CMPFieldsMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/CMRFieldMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/ContainerTransactionMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/ContainerTransactionsMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/EjbJar21MetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/EjbJar2xMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/EjbJar30MetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/EjbJar3xMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/EjbJarMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/EnterpriseBeanMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/EnterpriseBeansMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/EntityBeanMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/ExcludeListMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/InitMethodMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/InitMethodsMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/InterceptorBindingMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/InterceptorBindingsMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/InterceptorClassesMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/InterceptorMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/InterceptorOrderMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/InterceptorsMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/MessageDrivenBeanMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/MethodInterfaceType.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/MethodMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/MethodParametersMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/MethodPermissionMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/MethodPermissionsMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/MethodsMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/MultiplicityType.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/NamedMethodMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/PersistenceType.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/QueriesMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/QueryMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/QueryMethodMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/RelationMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/RelationRoleMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/RelationRoleSourceMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/RelationsMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/RemoveMethodMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/RemoveMethodsMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/ResultTypeMapping.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/SecurityIdentityMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/SessionBeanMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/SessionType.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/SubscriptionDurability.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/TransAttributeType.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/TransactionType.java
jbossxb-builder/trunk/src/test/java/org/jboss/test/ejb/
jbossxb-builder/trunk/src/test/java/org/jboss/test/ejb/AbstractEJBEverythingTest.java
jbossxb-builder/trunk/src/test/java/org/jboss/test/ejb/EJBTestSuite.java
jbossxb-builder/trunk/src/test/java/org/jboss/test/ejb/metadata/
jbossxb-builder/trunk/src/test/java/org/jboss/test/ejb/metadata/test/
jbossxb-builder/trunk/src/test/java/org/jboss/test/ejb/metadata/test/EJBMetaDataTestSuite.java
jbossxb-builder/trunk/src/test/java/org/jboss/test/ejb/metadata/test/EjbJar21EverythingUnitTestCase.java
jbossxb-builder/trunk/src/test/java/org/jboss/test/ejb/metadata/test/EjbJar21UnitTestCase.java
jbossxb-builder/trunk/src/test/java/org/jboss/test/ejb/metadata/test/EjbJar3xEverythingUnitTestCase.java
jbossxb-builder/trunk/src/test/java/org/jboss/test/ejb/metadata/test/EjbJar3xUnitTestCase.java
jbossxb-builder/trunk/src/test/java/org/jboss/test/ejb/metadata/test/JBoss5xEverythingUnitTestCase.java
jbossxb-builder/trunk/src/test/resources/org/jboss/test/ejb/
jbossxb-builder/trunk/src/test/resources/org/jboss/test/ejb/metadata/
jbossxb-builder/trunk/src/test/resources/org/jboss/test/ejb/metadata/test/
jbossxb-builder/trunk/src/test/resources/org/jboss/test/ejb/metadata/test/EjbJar21Everything_testEverything.xml
jbossxb-builder/trunk/src/test/resources/org/jboss/test/ejb/metadata/test/EjbJar21_testVersion.xml
jbossxb-builder/trunk/src/test/resources/org/jboss/test/ejb/metadata/test/EjbJar3xEverything_testEverything.xml
jbossxb-builder/trunk/src/test/resources/org/jboss/test/ejb/metadata/test/EjbJar3x_testDescriptionDefaultLanguage.xml
jbossxb-builder/trunk/src/test/resources/org/jboss/test/ejb/metadata/test/EjbJar3x_testDisplayNameDefaultLanguage.xml
jbossxb-builder/trunk/src/test/resources/org/jboss/test/ejb/metadata/test/EjbJar3x_testEjbClientJar.xml
jbossxb-builder/trunk/src/test/resources/org/jboss/test/ejb/metadata/test/EjbJar3x_testEnterpriseBeans.xml
jbossxb-builder/trunk/src/test/resources/org/jboss/test/ejb/metadata/test/EjbJar3x_testIconDefaultLanguage.xml
jbossxb-builder/trunk/src/test/resources/org/jboss/test/ejb/metadata/test/EjbJar3x_testId.xml
jbossxb-builder/trunk/src/test/resources/org/jboss/test/ejb/metadata/test/EjbJar3x_testVersion.xml
jbossxb-builder/trunk/src/test/resources/org/jboss/test/ejb/metadata/test/JBoss5xEverything_testEverything.xml
Log:
ejb api and tests
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/CacheInvalidationConfigMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/CacheInvalidationConfigMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/CacheInvalidationConfigMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,134 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.jboss;
+
+import javax.xml.bind.annotation.XmlType;
+
+import org.jboss.javaee.metadata.support.IdMetaDataImplWithDescriptions;
+
+/**
+ * CacheInvalidationConfigMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlType(name="cache-invalidation-configType")
+public class CacheInvalidationConfigMetaData extends IdMetaDataImplWithDescriptions
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = 5237940805332926376L;
+
+ /** The default invalidation manager */
+ public static final String DEFAULT_INVALIDATION_MANAGER_NAME = "jboss.cache:service=InvalidationManager";
+
+ /** The invalidation group name */
+ private String invalidationGroupName;
+
+ /** The invalidation manager name */
+ private String invalidationManagerName;
+
+ /** The enterprise bean */
+ private JBossEntityBeanMetaData entityBean;
+
+ /**
+ * Set the entityBean.
+ *
+ * @param entityBean the entityBean.
+ * @throws IllegalArgumentException for a null entityBean
+ */
+ void setEntityBean(JBossEntityBeanMetaData entityBean)
+ {
+ if (entityBean == null)
+ throw new IllegalArgumentException("Null entityBean");
+ this.entityBean = entityBean;
+ }
+
+ /**
+ * Get the invalidationGroupName.
+ *
+ * @return the invalidationGroupName.
+ */
+ public String getInvalidationGroupName()
+ {
+ return invalidationGroupName;
+ }
+
+ /**
+ * Determine the invalidationGroupName.
+ *
+ * @return the invalidationGroupName.
+ */
+ public String determineInvalidationGroupName()
+ {
+ if (invalidationGroupName == null && entityBean != null)
+ return entityBean.getEjbName();
+ return invalidationGroupName;
+ }
+
+ /**
+ * Set the invalidationGroupName.
+ *
+ * @param invalidationGroupName the invalidationGroupName.
+ * @throws IllegalArgumentException for a null invalidationGroupName
+ */
+ public void setInvalidationGroupName(String invalidationGroupName)
+ {
+ if (invalidationGroupName == null)
+ throw new IllegalArgumentException("Null invalidationGroupName");
+ this.invalidationGroupName = invalidationGroupName;
+ }
+
+ /**
+ * Get the invalidationManagerName.
+ *
+ * @return the invalidationManagerName.
+ */
+ public String getInvalidationManagerName()
+ {
+ return invalidationManagerName;
+ }
+
+ /**
+ * Determine the invalidationManagerName.
+ *
+ * @return the invalidationManagerName.
+ */
+ public String determineInvalidationManagerName()
+ {
+ if (invalidationManagerName == null)
+ return DEFAULT_INVALIDATION_MANAGER_NAME;
+ return invalidationManagerName;
+ }
+
+ /**
+ * Set the invalidationManagerName.
+ *
+ * @param invalidationManagerName the invalidationManagerName.
+ * @throws IllegalArgumentException for a null invalidationManagerName
+ */
+ public void setInvalidationManagerName(String invalidationManagerName)
+ {
+ if (invalidationManagerName == null)
+ throw new IllegalArgumentException("Null invalidationManagerName");
+ this.invalidationManagerName = invalidationManagerName;
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/ClusterConfigMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/ClusterConfigMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/ClusterConfigMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,236 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.jboss;
+
+import javax.xml.bind.annotation.XmlType;
+
+import org.jboss.ejb.metadata.spec.EnterpriseBeanMetaData;
+import org.jboss.ejb.metadata.spec.SessionBeanMetaData;
+import org.jboss.javaee.metadata.support.IdMetaDataImplWithDescriptions;
+
+/**
+ * ClusterConfigMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlType(name="cluster-configType")
+public class ClusterConfigMetaData extends IdMetaDataImplWithDescriptions
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = -614188513386783204L;
+
+ /** The jndi prefix for the sesssion state */
+ public final static String JNDI_PREFIX_FOR_SESSION_STATE = "/HASessionState/";
+
+ /** The default session state name */
+ public final static String DEFAULT_SESSION_STATE_NAME = JNDI_PREFIX_FOR_SESSION_STATE + "Default";
+
+ /** The first available load balancing policy */
+ public static final String FIRST_AVAILABLE = "org.jboss.ha.framework.interfaces.FirstAvailable";
+
+ /** The round robin load balancing policy */
+ public static final String ROUND_ROBIN = "org.jboss.ha.framework.interfaces.RoundRobin";
+
+ /** The partition name */
+ private String partitionName;
+
+ /** The home load balancing policy */
+ private String homeLoadBalancingPolicy;
+
+ /** The bean load balancing policy */
+ private String beanLoadBalancingPolicy;
+
+ /** The state manager jndi */
+ private String sessionStateManagerJndiName;
+
+ /** The enterprise bean */
+ private JBossEnterpriseBeanMetaData enterpriseBeanMetaData;
+
+ /**
+ * Set the enterpriseBeanMetaData.
+ *
+ * @param enterpriseBeanMetaData the enterpriseBeanMetaData.
+ * @throws IllegalArgumentException for a null enterpriseBeanMetaData
+ */
+ void setEnterpriseBeanMetaData(JBossEnterpriseBeanMetaData enterpriseBeanMetaData)
+ {
+ if (enterpriseBeanMetaData == null)
+ throw new IllegalArgumentException("Null enterpriseBeanMetaData");
+ this.enterpriseBeanMetaData = enterpriseBeanMetaData;
+ }
+
+ /**
+ * Get the beanLoadBalancingPolicy.
+ *
+ * @return the beanLoadBalancingPolicy.
+ */
+ public String getBeanLoadBalancingPolicy()
+ {
+ return beanLoadBalancingPolicy;
+ }
+
+ /**
+ * Determine the beanLoadBalancingPolicy.
+ *
+ * @return the beanLoadBalancingPolicy.
+ */
+ public String determineBeanLoadBalancingPolicy()
+ {
+ if (beanLoadBalancingPolicy == null && enterpriseBeanMetaData != null)
+ {
+ EnterpriseBeanMetaData ejb = enterpriseBeanMetaData.getOverridenMetaData();
+ if (ejb != null)
+ {
+ if (ejb.isSession())
+ {
+ SessionBeanMetaData session = (SessionBeanMetaData) ejb;
+ if (session.isStateless())
+ return ROUND_ROBIN;
+ }
+ }
+ else
+ return FIRST_AVAILABLE;
+ }
+ return beanLoadBalancingPolicy;
+ }
+
+ /**
+ * Set the beanLoadBalancingPolicy.
+ *
+ * @param beanLoadBalancingPolicy the beanLoadBalancingPolicy.
+ * @throws IllegalArgumentException for a null beanLoadBalancingPolicy
+ */
+ public void setBeanLoadBalancingPolicy(String beanLoadBalancingPolicy)
+ {
+ if (beanLoadBalancingPolicy == null)
+ throw new IllegalArgumentException("Null beanLoadBalancingPolicy");
+ this.beanLoadBalancingPolicy = beanLoadBalancingPolicy;
+ }
+
+ /**
+ * Get the homeLoadBalancingPolicy.
+ *
+ * @return the homeLoadBalancingPolicy.
+ */
+ public String getHomeLoadBalancingPolicy()
+ {
+ return homeLoadBalancingPolicy;
+ }
+
+ /**
+ * Determine the homeLoadBalancingPolicy.
+ *
+ * @return the homeLoadBalancingPolicy.
+ */
+ public String determineHomeLoadBalancingPolicy()
+ {
+ if (homeLoadBalancingPolicy == null && enterpriseBeanMetaData != null)
+ {
+ EnterpriseBeanMetaData ejb = enterpriseBeanMetaData.getOverridenMetaData();
+ if (ejb != null)
+ return ROUND_ROBIN;
+ }
+ return homeLoadBalancingPolicy;
+ }
+
+ /**
+ * Set the homeLoadBalancingPolicy.
+ *
+ * @param homeLoadBalancingPolicy the homeLoadBalancingPolicy.
+ * @throws IllegalArgumentException for a null homeLoadBalancingPolicy
+ */
+ public void setHomeLoadBalancingPolicy(String homeLoadBalancingPolicy)
+ {
+ if (homeLoadBalancingPolicy == null)
+ throw new IllegalArgumentException("Null homeLoadBalancingPolicy");
+ this.homeLoadBalancingPolicy = homeLoadBalancingPolicy;
+ }
+
+ /**
+ * Get the partitionName.
+ *
+ * @return the partitionName.
+ */
+ public String getPartitionName()
+ {
+ return partitionName;
+ }
+
+ /**
+ * Determine the partitionName.
+ *
+ * @return the partitionName.
+ */
+ public String determinePartitionName()
+ {
+ return partitionName;
+ }
+
+ /**
+ * Set the partitionName.
+ *
+ * @param partitionName the partitionName.
+ * @throws IllegalArgumentException for a null partitionName
+ */
+ public void setPartitionName(String partitionName)
+ {
+ if (partitionName == null)
+ throw new IllegalArgumentException("Null partitionName");
+ this.partitionName = partitionName;
+ }
+
+ /**
+ * Get the sessionStateManagerJndiName.
+ *
+ * @return the sessionStateManagerJndiName.
+ */
+ public String getSessionStateManagerJndiName()
+ {
+ return sessionStateManagerJndiName;
+ }
+
+ /**
+ * Determine the sessionStateManagerJndiName.
+ *
+ * @return the sessionStateManagerJndiName.
+ */
+ public String determineSessionStateManagerJndiName()
+ {
+ if (sessionStateManagerJndiName == null)
+ return DEFAULT_SESSION_STATE_NAME;
+ return sessionStateManagerJndiName;
+ }
+
+ /**
+ * Set the sessionStateManagerJndiName.
+ *
+ * @param sessionStateManagerJndiName the sessionStateManagerJndiName.
+ * @throws IllegalArgumentException for a null sessionStateManagerJndiName
+ */
+ public void setSessionStateManagerJndiName(String sessionStateManagerJndiName)
+ {
+ if (sessionStateManagerJndiName == null)
+ throw new IllegalArgumentException("Null sessionStateManagerJndiName");
+ this.sessionStateManagerJndiName = sessionStateManagerJndiName;
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/CommitOption.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/CommitOption.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/CommitOption.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,48 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.jboss;
+
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * CommitOption.<p>
+ *
+ * The descriptions come from Marc Fleury
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlType(name="commit-optionType")
+public enum CommitOption
+{
+ /** Dumb */
+ A,
+
+ /** Dumber */
+ B,
+
+ /** Dumbest */
+ C,
+
+ /** Dumb with a period flush */
+ D,
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/ContainerConfigurationMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/ContainerConfigurationMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/ContainerConfigurationMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,576 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.jboss;
+
+import java.util.Set;
+
+import org.jboss.javaee.metadata.support.NamedMetaDataWithDescriptions;
+import org.jboss.javaee.metadata.support.NonNullLinkedHashSet;
+
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlTransient;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * ConfigurationMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlType(name="container-configurationType")
+public class ContainerConfigurationMetaData extends NamedMetaDataWithDescriptions
+{
+ /** The standard CMP2 configuration */
+ public static final String CMP_2x = "Standard CMP 2.x EntityBean";
+
+ /** The standard CMP1.1 configuration */
+ public static final String CMP_1x = "Standard CMP EntityBean";
+
+ /** The standard BMP configuration */
+ public static final String BMP = "Standard BMP EntityBean";
+
+ /** The standard Stateless session configuration */
+ public static final String STATELESS = "Standard Stateless SessionBean";
+
+ /** The standard Stateful session configuration */
+ public static final String STATEFUL = "Standard Stateful SessionBean";
+
+ /** The message driven bean configuration */
+ public static final String MESSAGE_DRIVEN = "Standard Message Driven Bean";
+
+ /** The message inflow driven bean configuration */
+ public static final String MESSAGE_INFLOW_DRIVEN = "Standard Message Inflow Driven Bean";
+
+ /** The clustered CMP2 configuration */
+ public static final String CLUSTERED_CMP_2x = "Clustered CMP 2.x EntityBean";
+
+ /** The clustered CMP1.1 configuration */
+ public static final String CLUSTERED_CMP_1x = "Clustered CMP EntityBean";
+
+ /** The clustered BMP configuration */
+ public static final String CLUSTERED_BMP = "Clustered BMP EntityBean";
+
+ /** The clustered stateful session configuration */
+ public static final String CLUSTERED_STATEFUL = "Clustered Stateful SessionBean";
+
+ /** The clustered stateless session configuration */
+ public static final String CLUSTERED_STATELESS = "Clustered Stateless SessionBean";
+
+ /** The serialVersionUID */
+ private static final long serialVersionUID = 5189417462407375043L;
+
+ /** The extends */
+ private String extendsName;
+
+ /** Call logging */
+ private boolean callLogging;
+
+ /** The invoker proxy binding names */
+ private Set<String> invokerProxyBindingNames;
+
+ /** Sync on commit only */
+ private boolean syncOnCommitOnly;
+
+ /** Insert after ejb post create */
+ private boolean insertAfterEjbPostCreate;
+
+ /** ejbStore on clean */
+ private boolean ejbStoreOnClean;
+
+ /** Store not flushed */
+ private boolean storeNotFlushed = true;
+
+ // TODO DOM container interceptors
+
+ /** The instance pool */
+ private String instancePool;
+
+ /** The instance cache */
+ private String instanceCache;
+
+ /** The persistence manager */
+ private String persistenceManager;
+
+ /** The web classloader */
+ private String webClassLoader;
+
+ /** The locking policy */
+ private String lockingPolicy;
+
+ // TODO DOM container cache conf
+
+ // TODO DOM container pool conf
+
+ /** The commit option */
+ private CommitOption commitOption = CommitOption.A;
+
+ /** The option d refresh rate in milliseconds */
+ private long optionDRefreshRateMillis = 30000;
+
+ /** The security domain */
+ private String securityDomain;
+
+ /** The cluster config */
+ private ClusterConfigMetaData clusterConfig;
+
+ /** The depends */
+ private Set<String> depends;
+
+ /**
+ * Get the containerName.
+ *
+ * @return the containerName.
+ */
+ public String getContainerName()
+ {
+ return getName();
+ }
+
+ /**
+ * Set the containerName.
+ *
+ * @param containerName the containerName.
+ * @throws IllegalArgumentException for a null containerName
+ */
+ public void setContainerName(String containerName)
+ {
+ setName(containerName);
+ }
+
+ /**
+ * Get the extendsName.
+ *
+ * @return the extendsName.
+ */
+ public String getExtendsName()
+ {
+ return extendsName;
+ }
+
+ /**
+ * Set the extendsName.
+ *
+ * @param extendsName the extendsName.
+ * @throws IllegalArgumentException for a null extendsName
+ */
+ @XmlAttribute(name="extends")
+ public void setExtendsName(String extendsName)
+ {
+ if (extendsName == null)
+ throw new IllegalArgumentException("Null extendsName");
+ this.extendsName = extendsName;
+ }
+
+ /**
+ * Get the callLogging.
+ *
+ * @return the callLogging.
+ */
+ public boolean isCallLogging()
+ {
+ return callLogging;
+ }
+
+ /**
+ * Set the callLogging.
+ *
+ * @param callLogging the callLogging.
+ */
+ public void setCallLogging(boolean callLogging)
+ {
+ this.callLogging = callLogging;
+ }
+
+ /**
+ * Get the syncOnCommitOnly.
+ *
+ * @return the syncOnCommitOnly.
+ */
+ public boolean isSyncOnCommitOnly()
+ {
+ return syncOnCommitOnly;
+ }
+
+ /**
+ * Set the syncOnCommitOnly.
+ *
+ * @param syncOnCommitOnly the syncOnCommitOnly.
+ */
+ public void setSyncOnCommitOnly(boolean syncOnCommitOnly)
+ {
+ this.syncOnCommitOnly = syncOnCommitOnly;
+ }
+
+ /**
+ * Get the insertAfterEjbPostCreate.
+ *
+ * @return the insertAfterEjbPostCreate.
+ */
+ public boolean isInsertAfterEjbPostCreate()
+ {
+ return insertAfterEjbPostCreate;
+ }
+
+ /**
+ * Set the insertAfterEjbPostCreate.
+ *
+ * @param insertAfterEjbPostCreate the insertAfterEjbPostCreate.
+ */
+ public void setInsertAfterEjbPostCreate(boolean insertAfterEjbPostCreate)
+ {
+ this.insertAfterEjbPostCreate = insertAfterEjbPostCreate;
+ }
+
+ /**
+ * Get the ejbStoreOnClean.
+ *
+ * @return the ejbStoreOnClean.
+ */
+ public boolean isEjbStoreOnClean()
+ {
+ return ejbStoreOnClean;
+ }
+
+ /**
+ * Set the ejbStoreOnClean.
+ *
+ * @param ejbStoreOnClean the ejbStoreOnClean.
+ */
+ public void setEjbStoreOnClean(boolean ejbStoreOnClean)
+ {
+ this.ejbStoreOnClean = ejbStoreOnClean;
+ }
+
+ /**
+ * Get the storeNotFlushed.
+ *
+ * @return the storeNotFlushed.
+ */
+ public boolean isStoreNotFlushed()
+ {
+ return storeNotFlushed;
+ }
+
+ /**
+ * Set the storeNotFlushed.
+ *
+ * @param storeNotFlushed the storeNotFlushed.
+ * @throws IllegalArgumentException for a null storeNotFlushed
+ */
+ public void setStoreNotFlushed(boolean storeNotFlushed)
+ {
+ this.storeNotFlushed = storeNotFlushed;
+ }
+
+ /**
+ * Get the instancePool.
+ *
+ * @return the instancePool.
+ */
+ public String getInstancePool()
+ {
+ return instancePool;
+ }
+
+ /**
+ * Set the instancePool.
+ *
+ * @param instancePool the instancePool.
+ * @throws IllegalArgumentException for a null instancePool
+ */
+ public void setInstancePool(String instancePool)
+ {
+ if (instancePool == null)
+ throw new IllegalArgumentException("Null instancePool");
+ this.instancePool = instancePool;
+ }
+
+ /**
+ * Get the instanceCache.
+ *
+ * @return the instanceCache.
+ */
+ public String getInstanceCache()
+ {
+ return instanceCache;
+ }
+
+ /**
+ * Set the instanceCache.
+ *
+ * @param instanceCache the instanceCache.
+ * @throws IllegalArgumentException for a null instanceCache
+ */
+ public void setInstanceCache(String instanceCache)
+ {
+ if (instanceCache == null)
+ throw new IllegalArgumentException("Null instanceCache");
+ this.instanceCache = instanceCache;
+ }
+
+ /**
+ * Get the persistenceManager.
+ *
+ * @return the persistenceManager.
+ */
+ public String getPersistenceManager()
+ {
+ return persistenceManager;
+ }
+
+ /**
+ * Set the persistenceManager.
+ *
+ * @param persistenceManager the persistenceManager.
+ * @throws IllegalArgumentException for a null persistenceManager
+ */
+ public void setPersistenceManager(String persistenceManager)
+ {
+ if (persistenceManager == null)
+ throw new IllegalArgumentException("Null persistenceManager");
+ this.persistenceManager = persistenceManager;
+ }
+
+ /**
+ * Get the webClassLoader.
+ *
+ * @return the webClassLoader.
+ */
+ public String getWebClassLoader()
+ {
+ return webClassLoader;
+ }
+
+ /**
+ * Set the webClassLoader.
+ *
+ * @param webClassLoader the webClassLoader.
+ * @throws IllegalArgumentException for a null webClassLoader
+ */
+ public void setWebClassLoader(String webClassLoader)
+ {
+ if (webClassLoader == null)
+ throw new IllegalArgumentException("Null webClassLoader");
+ this.webClassLoader = webClassLoader;
+ }
+
+ /**
+ * Get the lockingPolicy.
+ *
+ * @return the lockingPolicy.
+ */
+ public String getLockingPolicy()
+ {
+ return lockingPolicy;
+ }
+
+ /**
+ * Set the lockingPolicy.
+ *
+ * @param lockingPolicy the lockingPolicy.
+ * @throws IllegalArgumentException for a null lockingPolicy
+ */
+ public void setLockingPolicy(String lockingPolicy)
+ {
+ if (lockingPolicy == null)
+ throw new IllegalArgumentException("Null lockingPolicy");
+ this.lockingPolicy = lockingPolicy;
+ }
+
+ /**
+ * Get the securityDomain.
+ *
+ * @return the securityDomain.
+ */
+ public String getSecurityDomain()
+ {
+ return securityDomain;
+ }
+
+ /**
+ * Set the securityDomain.
+ *
+ * @param securityDomain the securityDomain.
+ * @throws IllegalArgumentException for a null securityDomain
+ */
+ public void setSecurityDomain(String securityDomain)
+ {
+ if (securityDomain == null)
+ throw new IllegalArgumentException("Null securityDomain");
+ this.securityDomain = securityDomain;
+ }
+
+ /**
+ * Get the commitOption.
+ *
+ * @return the commitOption.
+ */
+ public CommitOption getCommitOption()
+ {
+ return commitOption;
+ }
+
+ /**
+ * Set the commitOption.
+ *
+ * @param commitOption the commitOption.
+ * @throws IllegalArgumentException for a null commitOption
+ */
+ public void setCommitOption(CommitOption commitOption)
+ {
+ if (commitOption == null)
+ throw new IllegalArgumentException("Null commitOption");
+ this.commitOption = commitOption;
+ }
+
+ /**
+ * Get the optionDRefreshRateMillis.
+ *
+ * @return the optionDRefreshRateMillis.
+ */
+ public long getOptiondRefreshRateMillis()
+ {
+ return optionDRefreshRateMillis;
+ }
+
+ /**
+ * Set the optionDRefreshRateMillis.
+ *
+ * @param optionDRefreshRateMillis the optionDRefreshRateMillis.
+ * @throws IllegalArgumentException if the refresh rate is not positive
+ */
+ @XmlTransient
+ public void setOptiondRefreshRateMillis(long optionDRefreshRateMillis)
+ {
+ if (optionDRefreshRateMillis <= 0)
+ throw new IllegalArgumentException("optionD-refresh-rate must be positive got " + optionDRefreshRateMillis);
+ this.optionDRefreshRateMillis = optionDRefreshRateMillis;
+ }
+
+ /**
+ * Get the optionDRefreshRate in seconds
+ *
+ * @return the optionDRefreshRate in seconds
+ */
+ public int getOptiondRefreshRate()
+ {
+ return (int) optionDRefreshRateMillis / 1000;
+ }
+
+ /**
+ * Set the optionDRefreshRateMillis in seconds.
+ *
+ * @param optionDRefreshRateSeconds the optionDRefreshRate in seconds
+ * @throws IllegalArgumentException if the refresh rate is not positive
+ */
+ public void setOptiondRefreshRate(int optionDRefreshRateSeconds)
+ {
+ if (optionDRefreshRateSeconds <= 0)
+ throw new IllegalArgumentException("optionD-refresh-rate must be positive got " + optionDRefreshRateSeconds);
+ setOptiondRefreshRateMillis(optionDRefreshRateSeconds * 1000);
+ }
+
+ /**
+ * Get the depends.
+ *
+ * @return the depends.
+ */
+ public Set<String> getDepends()
+ {
+ return depends;
+ }
+
+ /**
+ * Set the depends.
+ *
+ * @param depends the depends.
+ * @throws IllegalArgumentException for a null depends
+ */
+ @XmlElement(type=NonNullLinkedHashSet.class)
+ public void setDepends(Set<String> depends)
+ {
+ if (depends == null)
+ throw new IllegalArgumentException("Null depends");
+ this.depends = depends;
+ }
+
+ /**
+ * Get the invokerProxyBindingNames.
+ *
+ * @return the invokerProxyBindingNames.
+ */
+ public Set<String> getInvokerProxyBindingNames()
+ {
+ return invokerProxyBindingNames;
+ }
+
+ /**
+ * Set the invokerProxyBindingNames.
+ *
+ * @param invokerProxyBindingNames the invokerProxyBindingNames.
+ * @throws IllegalArgumentException for a null invokerProxyBindingNames
+ */
+ @XmlElement(name="invoker-proxy-binding-name", type=NonNullLinkedHashSet.class)
+ public void setInvokerProxyBindingNames(Set<String> invokerProxyBindingNames)
+ {
+ if (invokerProxyBindingNames == null)
+ throw new IllegalArgumentException("Null invokerProxyBindingNames");
+ this.invokerProxyBindingNames = invokerProxyBindingNames;
+ }
+
+ /**
+ * Get the default invoker name
+ *
+ * @return the default invoker
+ * @throws IllegalStateException when there are no invoker proxy binding names
+ */
+ public String getDefaultInvokerName()
+ {
+ if (invokerProxyBindingNames == null || invokerProxyBindingNames.isEmpty())
+ throw new IllegalStateException("No invokers defined");
+ return invokerProxyBindingNames.iterator().next();
+ }
+
+ /**
+ * Get the clusterConfig.
+ *
+ * @return the clusterConfig.
+ */
+ public ClusterConfigMetaData getClusterConfig()
+ {
+ return clusterConfig;
+ }
+
+ /**
+ * Set the clusterConfig.
+ *
+ * @param clusterConfig the clusterConfig.
+ * @throws IllegalArgumentException for a null clusterConfig
+ */
+ public void setClusterConfig(ClusterConfigMetaData clusterConfig)
+ {
+ if (clusterConfig == null)
+ throw new IllegalArgumentException("Null clusterConfig");
+ this.clusterConfig = clusterConfig;
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/ContainerConfigurationsMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/ContainerConfigurationsMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/ContainerConfigurationsMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,46 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.jboss;
+
+import org.jboss.javaee.metadata.support.MappedMetaDataWithDescriptions;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * ContainerConfigurationsMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlType(name="container-configurationsType")
+public class ContainerConfigurationsMetaData extends MappedMetaDataWithDescriptions<ContainerConfigurationMetaData>
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = 8621050513072760399L;
+
+ /**
+ * Create a new ContainerConfigurationsMetaData.
+ */
+ public ContainerConfigurationsMetaData()
+ {
+ super("container-name for container configuration");
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/IORASContextMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/IORASContextMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/IORASContextMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,125 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.jboss;
+
+import org.jboss.javaee.metadata.support.IdMetaDataImplWithDescriptions;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * IORASContextMetaData.
+ *
+ * TODO LAST enums
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlType(name="as-contextType")
+public class IORASContextMetaData extends IdMetaDataImplWithDescriptions
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = -4611413076087109396L;
+
+ /** Username and password */
+ public static final String AUTH_METHOD_USERNAME_PASSWORD = "USERNAME_PASSWORD";
+
+ /** None */
+ public static final String AUTH_METHOD_NONE = "NONE";
+
+ /** The authorization method */
+ private String authMethod = AUTH_METHOD_USERNAME_PASSWORD;
+
+ /** The realm */
+ private String realm = "Default";
+
+ /** Whether it is required */
+ private boolean required = false;
+
+ /**
+ * Get the authMethod.
+ *
+ * @return the authMethod.
+ */
+ public String getAuthMethod()
+ {
+ return authMethod;
+ }
+
+ /**
+ * Set the authMethod.
+ *
+ * @param authMethod the authMethod.
+ * @throws IllegalArgumentException for a null authMethod
+ */
+ public void setAuthMethod(String authMethod)
+ {
+ if (authMethod == null)
+ throw new IllegalArgumentException("Null authMethod");
+ if (AUTH_METHOD_NONE.equalsIgnoreCase(authMethod))
+ this.authMethod = AUTH_METHOD_NONE;
+ else if (AUTH_METHOD_USERNAME_PASSWORD.equalsIgnoreCase(authMethod))
+ this.authMethod = AUTH_METHOD_USERNAME_PASSWORD;
+ else
+ throw new IllegalArgumentException("Unknown ascontext authMethod: " + authMethod);
+ }
+
+ /**
+ * Get the realm.
+ *
+ * @return the realm.
+ */
+ public String getRealm()
+ {
+ return realm;
+ }
+
+ /**
+ * Set the realm.
+ *
+ * @param realm the realm.
+ * @throws IllegalArgumentException for a null realm
+ */
+ public void setRealm(String realm)
+ {
+ if (realm == null)
+ throw new IllegalArgumentException("Null realm");
+ this.realm = realm;
+ }
+
+ /**
+ * Get the required.
+ *
+ * @return the required.
+ */
+ public boolean isRequired()
+ {
+ return required;
+ }
+
+ /**
+ * Set the required.
+ *
+ * @param required the required.
+ */
+ public void setRequired(boolean required)
+ {
+ this.required = required;
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/IORSASContextMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/IORSASContextMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/IORSASContextMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,76 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.jboss;
+
+import org.jboss.javaee.metadata.support.IdMetaDataImplWithDescriptions;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * IORSASContextMetaData.
+ *
+ * TODO LAST enums
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlType(name="sas-contextType")
+public class IORSASContextMetaData extends IdMetaDataImplWithDescriptions
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = -5219684887396127182L;
+
+ /** No caller propagation */
+ public static final String CALLER_PROPAGATION_NONE = "NONE";
+
+ /** Caller propagation supported */
+ public static final String CALLER_PROPAGATION_SUPPORTED = "SUPPORTED";
+
+ /** The caller propagation */
+ private String callerPropagation = CALLER_PROPAGATION_NONE;
+
+ /**
+ * Get the callerPropagation.
+ *
+ * @return the callerPropagation.
+ */
+ public String getCallerPropagation()
+ {
+ return callerPropagation;
+ }
+
+ /**
+ * Set the callerPropagation.
+ *
+ * @param callerPropagation the callerPropagation.
+ * @throws IllegalArgumentException for a null callerPropagation
+ */
+ public void setCallerPropagation(String callerPropagation)
+ {
+ if (callerPropagation == null)
+ throw new IllegalArgumentException("Null callerPropagation");
+ if (CALLER_PROPAGATION_NONE.equalsIgnoreCase(callerPropagation))
+ this.callerPropagation = CALLER_PROPAGATION_NONE;
+ else if (CALLER_PROPAGATION_SUPPORTED.equalsIgnoreCase(callerPropagation))
+ this.callerPropagation = CALLER_PROPAGATION_SUPPORTED;
+ else
+ throw new IllegalArgumentException("Unknown sascontext callerPropagtion: " + callerPropagation);
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/IORSecurityConfigMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/IORSecurityConfigMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/IORSecurityConfigMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,116 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.jboss;
+
+import org.jboss.javaee.metadata.support.IdMetaDataImplWithDescriptions;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * IORSecurityConfigMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlType(name="ior-security-configType")
+public class IORSecurityConfigMetaData extends IdMetaDataImplWithDescriptions
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = -4681258049609548746L;
+
+ /** The transport config */
+ private IORTransportConfigMetaData transportConfig;
+
+ /** The as context */
+ private IORASContextMetaData asContext;
+
+ /** The as context */
+ private IORSASContextMetaData sasContext;
+
+ /**
+ * Get the transportConfig.
+ *
+ * @return the transportConfig.
+ */
+ public IORTransportConfigMetaData getTransportConfig()
+ {
+ return transportConfig;
+ }
+
+ /**
+ * Set the transportConfig.
+ *
+ * @param transportConfig the transportConfig.
+ * @throws IllegalArgumentException for a null transportConfig
+ */
+ public void setTransportConfig(IORTransportConfigMetaData transportConfig)
+ {
+ if (transportConfig == null)
+ throw new IllegalArgumentException("Null transportConfig");
+ this.transportConfig = transportConfig;
+ }
+
+ /**
+ * Get the asContext.
+ *
+ * @return the asContext.
+ */
+ public IORASContextMetaData getAsContext()
+ {
+ return asContext;
+ }
+
+ /**
+ * Set the asContext.
+ *
+ * @param asContext the asContext.
+ * @throws IllegalArgumentException for a null asContext
+ */
+ public void setAsContext(IORASContextMetaData asContext)
+ {
+ if (asContext == null)
+ throw new IllegalArgumentException("Null asContext");
+ this.asContext = asContext;
+ }
+
+ /**
+ * Get the sasContext.
+ *
+ * @return the sasContext.
+ */
+ public IORSASContextMetaData getSasContext()
+ {
+ return sasContext;
+ }
+
+ /**
+ * Set the sasContext.
+ *
+ * @param sasContext the sasContext.
+ * @throws IllegalArgumentException for a null sasContext
+ */
+ public void setSasContext(IORSASContextMetaData sasContext)
+ {
+ if (sasContext == null)
+ throw new IllegalArgumentException("Null sasContext");
+ this.sasContext = sasContext;
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/IORTransportConfigMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/IORTransportConfigMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/IORTransportConfigMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,286 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.jboss;
+
+import org.jboss.javaee.metadata.support.IdMetaDataImplWithDescriptions;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * IORTransportConfigMetaData.
+ *
+ * TODO LAST enums
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlType(name="transport-configType")
+public class IORTransportConfigMetaData extends IdMetaDataImplWithDescriptions
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = 779676398058819672L;
+
+ /** Integrity not required */
+ public static final String INTEGRITY_NONE = "NONE";
+
+ /** Integrity supported */
+ public static final String INTEGRITY_SUPPORTED = "SUPPORTED";
+
+ /** Integrity required */
+ public static final String INTEGRITY_REQUIRED = "REQUIRED";
+
+ /** Confidentiality not required */
+ public static final String CONFIDENTIALITY_NONE = "NONE";
+
+ /** Confidentiality supported */
+ public static final String CONFIDENTIALITY_SUPPORTED = "SUPPORTED";
+
+ /** Confidentiality required */
+ public static final String CONFIDENTIALITY_REQUIRED = "REQUIRED";
+
+ /** Detect misordering not required */
+ public static final String DETECT_MISORDERING_NONE = "NONE";
+
+ /** Detect misordering supported */
+ public static final String DETECT_MISORDERING_SUPPORTED = "SUPPORTED";
+
+ /** Detect misordering required */
+ public static final String DETECT_MISORDERING_REQUIRED = "REQUIRED";
+
+ /** Detect replay not required */
+ public static final String DETECT_REPLAY_NONE = "NONE";
+
+ /** Detect replay supported */
+ public static final String DETECT_REPLAY_SUPPORTED = "SUPPORTED";
+
+ /** Detect replay required */
+ public static final String DETECT_REPLAY_REQUIRED = "REQUIRED";
+
+ /** Establish trust in target not required */
+ public static final String ESTABLISH_TRUST_IN_TARGET_NONE = "NONE";
+
+ /** Establish trust in target supported */
+ public static final String ESTABLISH_TRUST_IN_TARGET_SUPPORTED = "SUPPORTED";
+
+ /** Establish trust in client not required */
+ public static final String ESTABLISH_TRUST_IN_CLIENT_NONE = "NONE";
+
+ /** Establish trust in client supported */
+ public static final String ESTABLISH_TRUST_IN_CLIENT_SUPPORTED = "SUPPORTED";
+
+ /** Establish trust in client required */
+ public static final String ESTABLISH_TRUST_IN_CLIENT_REQUIRED = "REQUIRED";
+
+ /** The integrity */
+ private String integrity = INTEGRITY_NONE;
+
+ /** The confidentiality */
+ private String confidentiality = CONFIDENTIALITY_NONE;
+
+ /** The establish trust in target */
+ private String establishTrustInTarget = ESTABLISH_TRUST_IN_TARGET_NONE;
+
+ /** The establish trust in client */
+ private String establishTrustInClient = ESTABLISH_TRUST_IN_CLIENT_NONE;
+
+ /** Whether to detect misordering */
+ private String detectMisordering = DETECT_MISORDERING_NONE;
+
+ /** Whether to detect replay */
+ private String detectReplay = DETECT_REPLAY_NONE;
+
+ /**
+ * Get the integrity.
+ *
+ * @return the integrity.
+ */
+ public String getIntegrity()
+ {
+ return integrity;
+ }
+
+ /**
+ * Set the integrity.
+ *
+ * @param integrity the integrity.
+ * @throws IllegalArgumentException for a null integrity
+ */
+ public void setIntegrity(String integrity)
+ {
+ if (integrity == null)
+ throw new IllegalArgumentException("Null integrity");
+ if (INTEGRITY_NONE.equalsIgnoreCase(integrity))
+ this.integrity = INTEGRITY_NONE;
+ else if (INTEGRITY_SUPPORTED.equalsIgnoreCase(integrity))
+ this.integrity = INTEGRITY_SUPPORTED;
+ else if (INTEGRITY_REQUIRED.equalsIgnoreCase(integrity))
+ this.integrity = INTEGRITY_REQUIRED;
+ else
+ throw new IllegalArgumentException("Unknown transport integrity: " + integrity);
+ }
+
+ /**
+ * Get the confidentiality.
+ *
+ * @return the confidentiality.
+ */
+ public String getConfidentiality()
+ {
+ return confidentiality;
+ }
+
+ /**
+ * Set the confidentiality.
+ *
+ * @param confidentiality the confidentiality.
+ * @throws IllegalArgumentException for a null confidentiality
+ */
+ public void setConfidentiality(String confidentiality)
+ {
+ if (confidentiality == null)
+ throw new IllegalArgumentException("Null confidentiality");
+ if (CONFIDENTIALITY_NONE.equalsIgnoreCase(confidentiality))
+ this.confidentiality = CONFIDENTIALITY_NONE;
+ else if (CONFIDENTIALITY_SUPPORTED.equalsIgnoreCase(confidentiality))
+ this.confidentiality = CONFIDENTIALITY_SUPPORTED;
+ else if (CONFIDENTIALITY_REQUIRED.equalsIgnoreCase(confidentiality))
+ this.confidentiality = CONFIDENTIALITY_REQUIRED;
+ else
+ throw new IllegalArgumentException("Unknown transport confidentiality: " + confidentiality);
+ }
+
+ /**
+ * Get the establishTrustInTarget.
+ *
+ * @return the establishTrustInTarget.
+ */
+ public String getEstablishTrustInTarget()
+ {
+ return establishTrustInTarget;
+ }
+
+ /**
+ * Set the establishTrustInTarget.
+ *
+ * @param establishTrustInTarget the establishTrustInTarget.
+ * @throws IllegalArgumentException for a null establishTrustInTarget
+ */
+ public void setEstablishTrustInTarget(String establishTrustInTarget)
+ {
+ if (establishTrustInTarget == null)
+ throw new IllegalArgumentException("Null establishTrustInTarget");
+ if (ESTABLISH_TRUST_IN_TARGET_NONE.equalsIgnoreCase(establishTrustInTarget))
+ this.establishTrustInTarget = ESTABLISH_TRUST_IN_TARGET_NONE;
+ else if (ESTABLISH_TRUST_IN_TARGET_SUPPORTED.equalsIgnoreCase(establishTrustInTarget))
+ this.establishTrustInTarget = ESTABLISH_TRUST_IN_TARGET_SUPPORTED;
+ else
+ throw new IllegalArgumentException("Unknown transport establishTrustInTarget: " + establishTrustInTarget);
+ }
+
+ /**
+ * Get the establishTrustInClient.
+ *
+ * @return the establishTrustInClient.
+ */
+ public String getEstablishTrustInClient()
+ {
+ return establishTrustInClient;
+ }
+
+ /**
+ * Set the establishTrustInClient.
+ *
+ * @param establishTrustInClient the establishTrustInClient.
+ * @throws IllegalArgumentException for a null establishTrustInClient
+ */
+ public void setEstablishTrustInClient(String establishTrustInClient)
+ {
+ if (establishTrustInClient == null)
+ throw new IllegalArgumentException("Null establishTrustInClient");
+ if (ESTABLISH_TRUST_IN_CLIENT_NONE.equalsIgnoreCase(establishTrustInClient))
+ this.establishTrustInClient = ESTABLISH_TRUST_IN_CLIENT_NONE;
+ else if (ESTABLISH_TRUST_IN_CLIENT_SUPPORTED.equalsIgnoreCase(establishTrustInClient))
+ this.establishTrustInClient = ESTABLISH_TRUST_IN_CLIENT_SUPPORTED;
+ else if (ESTABLISH_TRUST_IN_CLIENT_REQUIRED.equalsIgnoreCase(establishTrustInClient))
+ this.establishTrustInClient = ESTABLISH_TRUST_IN_CLIENT_REQUIRED;
+ else
+ throw new IllegalArgumentException("Unknown transport establishTrustInClient: " + establishTrustInClient);
+ }
+
+ /**
+ * Get the detectMisordering.
+ *
+ * @return the detectMisordering.
+ */
+ public String getDetectMisordering()
+ {
+ return detectMisordering;
+ }
+
+ /**
+ * Set the detectMisordering.
+ *
+ * @param detectMisordering the detectMisordering.
+ * @throws IllegalArgumentException for a null detectMisordering
+ */
+ public void setDetectMisordering(String detectMisordering)
+ {
+ if (detectMisordering == null)
+ throw new IllegalArgumentException("Null detectMisordering");
+ if (DETECT_MISORDERING_NONE.equalsIgnoreCase(detectMisordering))
+ this.detectMisordering = DETECT_MISORDERING_NONE;
+ else if (DETECT_MISORDERING_SUPPORTED.equalsIgnoreCase(detectMisordering))
+ this.detectMisordering = DETECT_MISORDERING_SUPPORTED;
+ else if (DETECT_MISORDERING_REQUIRED.equalsIgnoreCase(detectMisordering))
+ this.detectMisordering = DETECT_MISORDERING_REQUIRED;
+ else
+ throw new IllegalArgumentException("Unknown transport detectMisordering: " + detectMisordering);
+ }
+
+ /**
+ * Get the detectReplay.
+ *
+ * @return the detectReplay.
+ */
+ public String getDetectReplay()
+ {
+ return detectReplay;
+ }
+
+ /**
+ * Set the detectReplay.
+ *
+ * @param detectReplay the detectReplay.
+ * @throws IllegalArgumentException for a null detectReplay
+ */
+ public void setDetectReplay(String detectReplay)
+ {
+ if (detectReplay == null)
+ throw new IllegalArgumentException("Null detectReplay");
+ if (DETECT_REPLAY_NONE.equalsIgnoreCase(detectReplay))
+ this.detectReplay = DETECT_REPLAY_NONE;
+ else if (DETECT_REPLAY_SUPPORTED.equalsIgnoreCase(detectReplay))
+ this.detectReplay = DETECT_REPLAY_SUPPORTED;
+ else if (DETECT_REPLAY_REQUIRED.equalsIgnoreCase(detectReplay))
+ this.detectReplay = DETECT_REPLAY_REQUIRED;
+ else
+ throw new IllegalArgumentException("Unknown transport detectReplay: " + detectReplay);
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/InvokerBindingMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/InvokerBindingMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/InvokerBindingMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,149 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.jboss;
+
+import org.jboss.javaee.metadata.support.NamedMetaDataWithDescriptions;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * InvokerBindingMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlType(name="invokerType")
+public class InvokerBindingMetaData extends NamedMetaDataWithDescriptions
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = 7854213960602045177L;
+
+ /** The standard CMP2 invoker */
+ public static final String CMP_2x = "entity-unified-invoker";
+
+ /** The standard CMP1.1 invoker */
+ public static final String CMP_1x = "entity-unified-invoker";
+
+ /** The standard BMP invoker */
+ public static final String BMP = "entity-unified-invoker";
+
+ /** The standard Stateless session invoker */
+ public static final String STATELESS = "stateless-unified-invoker";
+
+ /** The standard Stateful session invoker */
+ public static final String STATEFUL = "stateful-unified-invoker";
+
+ /** The message driven bean invoker */
+ public static final String MESSAGE_DRIVEN = "message-driven-bean";
+
+ /** The message inflow driven bean invoker */
+ public static final String MESSAGE_INFLOW_DRIVEN = "message-driven-bean";
+
+ /** The clustered CMP2 invoker */
+ public static final String CLUSTERED_CMP_2x = "clustered-entity-rmi-invoker";
+
+ /** The clustered CMP1.1 invoker */
+ public static final String CLUSTERED_CMP_1x = "clustered-entity-rmi-invoker";
+
+ /** The clustered BMP invoker */
+ public static final String CLUSTERED_BMP = "clustered-entity-rmi-invoker";
+
+ /** The clustered stateful session invoker */
+ public static final String CLUSTERED_STATEFUL = "clustered-stateful-rmi-invoker";
+
+ /** The clustered stateless session invoker */
+ public static final String CLUSTERED_STATELESS = "clustered-stateless-rmi-invoker";
+
+ /** The jndi name */
+ private String jndiName;
+
+ /** The ejb ref */
+ private String ejbRefName;
+
+ /**
+ * Get the jndiName.
+ *
+ * @return the jndiName.
+ */
+ public String getJndiName()
+ {
+ return jndiName;
+ }
+
+ /**
+ * Set the jndiName.
+ *
+ * @param jndiName the jndiName.
+ * @throws IllegalArgumentException for a null jndiName
+ */
+ public void setJndiName(String jndiName)
+ {
+ if (jndiName == null)
+ throw new IllegalArgumentException("Null jndiName");
+ this.jndiName = jndiName;
+ }
+
+ /**
+ * Get the invokerProxyBindingName.
+ *
+ * @return the invokerProxyBindingName.
+ */
+ public String getInvokerProxyBindingName()
+ {
+ return getName();
+ }
+
+ /**
+ * Set the invokerProxyBindingName.
+ *
+ * @param invokerProxyBindingName the invokerProxyBindingName.
+ * @throws IllegalArgumentException for a null invokerProxyBindingName
+ */
+ public void setInvokerProxyBindingName(String invokerProxyBindingName)
+ {
+ setName(invokerProxyBindingName);
+ }
+
+ /**
+ * Get the ejbRefName.
+ *
+ * @return the ejbRefName.
+ */
+ public String getEjbRefName()
+ {
+ return ejbRefName;
+ }
+
+ /**
+ * Set the ejbRefName.
+ *
+ * @param ejbRefName the ejbRefName.
+ * @throws IllegalArgumentException for a null ejbRefName
+ */
+ @XmlElement(name="ejb-ref")
+ public void setEjbRefName(String ejbRefName)
+ {
+ if (ejbRefName == null)
+ throw new IllegalArgumentException("Null ejbRefName");
+ this.ejbRefName = ejbRefName;
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/InvokerBindingsMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/InvokerBindingsMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/InvokerBindingsMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,46 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.jboss;
+
+import org.jboss.javaee.metadata.support.MappedMetaDataWithDescriptions;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * InvokerBindingsMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlType(name="invoker-bindingsType")
+public class InvokerBindingsMetaData extends MappedMetaDataWithDescriptions<InvokerBindingMetaData>
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = 7637011120262076039L;
+
+ /**
+ * Create a new InvokerBindingsMetaData.
+ */
+ public InvokerBindingsMetaData()
+ {
+ super("invoker-proxy-binding-name for invoker");
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/InvokerProxyBindingMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/InvokerProxyBindingMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/InvokerProxyBindingMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,116 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.jboss;
+
+import org.jboss.javaee.metadata.support.NamedMetaDataWithDescriptions;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * InvokerProxyBindingMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlType(name="invoker-proxy-bindingType")
+public class InvokerProxyBindingMetaData extends NamedMetaDataWithDescriptions
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = -3203701877688568371L;
+
+ /** The invoker mbean */
+ private String invokerMBean;
+
+ /** The proxy factory */
+ private String proxyFactory;
+
+ /** The proxy factory config */
+ // TODO DOM private Element proxyFactoryConfig;
+
+ /**
+ * Get the invokerProxyBindingName.
+ *
+ * @return the invokerProxyBindingName.
+ */
+ public String getInvokerProxyBindingName()
+ {
+ return getName();
+ }
+
+ /**
+ * Set the invokerProxyBindingName.
+ *
+ * @param invokerProxyBindingName the invokerProxyBindingName.
+ * @throws IllegalArgumentException for a null invokerProxyBindingName
+ */
+ public void setInvokerProxyBindingName(String invokerProxyBindingName)
+ {
+ setName(invokerProxyBindingName);
+ }
+
+ /**
+ * Get the invokerMBean.
+ *
+ * @return the invokerMBean.
+ */
+ public String getInvokerMBean()
+ {
+ return invokerMBean;
+ }
+
+ /**
+ * Set the invokerMBean.
+ *
+ * @param invokerMBean the invokerMBean.
+ * @throws IllegalArgumentException for a null invokerMBean
+ */
+ @XmlElement(name="invoker-mbean")
+ public void setInvokerMBean(String invokerMBean)
+ {
+ if (invokerMBean == null)
+ throw new IllegalArgumentException("Null invokerMBean");
+ this.invokerMBean = invokerMBean;
+ }
+
+ /**
+ * Get the proxyFactory.
+ *
+ * @return the proxyFactory.
+ */
+ public String getProxyFactory()
+ {
+ return proxyFactory;
+ }
+
+ /**
+ * Set the proxyFactory.
+ *
+ * @param proxyFactory the proxyFactory.
+ * @throws IllegalArgumentException for a null proxyFactory
+ */
+ public void setProxyFactory(String proxyFactory)
+ {
+ if (proxyFactory == null)
+ throw new IllegalArgumentException("Null proxyFactory");
+ this.proxyFactory = proxyFactory;
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/InvokerProxyBindingsMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/InvokerProxyBindingsMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/InvokerProxyBindingsMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,46 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.jboss;
+
+import org.jboss.javaee.metadata.support.MappedMetaDataWithDescriptions;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * InvokerProxyBindingsMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlType(name="invoker-proxy-bindingsType")
+public class InvokerProxyBindingsMetaData extends MappedMetaDataWithDescriptions<InvokerProxyBindingMetaData>
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = -6052572082285734800L;
+
+ /**
+ * Create a new InvokerProxyBindingsMetaData.
+ */
+ public InvokerProxyBindingsMetaData()
+ {
+ super("invoker-proxy-binding-name for invoker-proxy-binding");
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/JBoss50MetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/JBoss50MetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/JBoss50MetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,76 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.jboss;
+
+import org.jboss.javaee.metadata.spec.JavaEEMetaDataConstants;
+import javax.xml.bind.annotation.XmlType;
+
+import org.jboss.xb.annotations.JBossXmlSchema;
+//import org.jboss.xb.binding.annotations.SchemaTypeImpl;
+//import org.jboss.xb.binding.annotations.SchemaTypeImpls;
+
+/**
+ * JBoss50MetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at JBossXmlSchema(ignoreUnresolvedFieldOrClass=false)
+ at XmlType(name="jbossType", namespace=JavaEEMetaDataConstants.JAVAEE_NS)
+/*@XmlTypeImpls
+({
+ @XmlTypeImpl(name="true-falseType", startElementCreatesObject=false),
+ @XmlTypeImpl(name="clusteredType", startElementCreatesObject=false),
+ @XmlTypeImpl(name="string", namespace=JavaEEMetaDataConstants.JAVAEE_NS, startElementCreatesObject=false),
+ @XmlTypeImpl(name="xsdStringType", startElementCreatesObject=false),
+ @XmlTypeImpl(name="dependsType", startElementCreatesObject=false),
+ @XmlTypeImpl(name="missing-method-permissions-excluded-modeType", startElementCreatesObject=false),
+ @XmlTypeImpl(name="exception-on-rollbackType", startElementCreatesObject=false),
+ @XmlTypeImpl(name="security-domainType", startElementCreatesObject=false),
+ @XmlTypeImpl(name="jboss-security-roleType", impl=SecurityRoleMetaData.class),
+ @XmlTypeImpl(name="jboss-message-destinationType", impl=MessageDestinationMetaData.class),
+ @XmlTypeImpl(name="jboss-ejb-refType", impl=EJBReferenceMetaData.class),
+ @XmlTypeImpl(name="jboss-ejb-local-refType", impl=EJBLocalReferenceMetaData.class),
+ @XmlTypeImpl(name="jboss-resource-refType", impl=ResourceReferenceMetaData.class),
+ @XmlTypeImpl(name="jboss-resource-env-refType", impl=ResourceEnvironmentReferenceMetaData.class),
+ @XmlTypeImpl(name="jboss-message-destination-refType", impl=MessageDestinationReferenceMetaData.class),
+ @XmlTypeImpl(name="jboss-security-identityType", impl=SecurityIdentityMetaData.class),
+ @XmlTypeImpl(name="ejb-timeout-identityType", impl=SecurityIdentityMetaData.class),
+ @XmlTypeImpl(name="ejb-linkType", startElementCreatesObject=false),
+ @XmlTypeImpl(name="jndi-nameType", startElementCreatesObject=false),
+ @XmlTypeImpl(name="mdb-passwdType", startElementCreatesObject=false),
+ @XmlTypeImpl(name="mdb-subscription-idType", startElementCreatesObject=false),
+ @XmlTypeImpl(name="concurrentType", startElementCreatesObject=false),
+})
+*/public class JBoss50MetaData extends JBossMetaData
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = 8741748087070507813L;
+
+ /**
+ * Create a new JBoss50MetaData.
+ */
+ public JBoss50MetaData()
+ {
+ // For serialization
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/JBossAssemblyDescriptorMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/JBossAssemblyDescriptorMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/JBossAssemblyDescriptorMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,240 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.jboss;
+
+import java.util.Collections;
+import java.util.Set;
+
+import org.jboss.ejb.metadata.spec.AssemblyDescriptorMetaData;
+import org.jboss.javaee.metadata.spec.MessageDestinationMetaData;
+import org.jboss.javaee.metadata.spec.MessageDestinationsMetaData;
+import org.jboss.javaee.metadata.spec.SecurityRoleMetaData;
+import org.jboss.javaee.metadata.spec.SecurityRolesMetaData;
+import org.jboss.javaee.metadata.support.IdMetaDataImplWithOverride;
+import org.jboss.javaee.metadata.support.JavaEEMetaDataUtil;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * JBossAssemblyDescriptorMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlType(name="jboss-assembly-descriptorType")
+public class JBossAssemblyDescriptorMetaData extends IdMetaDataImplWithOverride<AssemblyDescriptorMetaData>
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = 5638920200035141015L;
+
+ /** The security roles */
+ private SecurityRolesMetaData securityRoles;
+
+ /** The message destinations */
+ private MessageDestinationsMetaData messageDestinations;
+
+ /**
+ * Merge the assembly descriptors
+ *
+ * @param jbossAssemblyDescriptorMetaData the override
+ * @param assemblyDescriptorMetaData the overriden
+ * @return the merged data
+ */
+ public static JBossAssemblyDescriptorMetaData merge(JBossAssemblyDescriptorMetaData jbossAssemblyDescriptorMetaData, AssemblyDescriptorMetaData assemblyDescriptorMetaData)
+ {
+ JBossAssemblyDescriptorMetaData merged = new JBossAssemblyDescriptorMetaData();
+
+ SecurityRolesMetaData securityRolesMetaData = null;
+ SecurityRolesMetaData jbossSecurityRolesMetaData = null;
+ MessageDestinationsMetaData messageDestinationsMetaData = null;
+ MessageDestinationsMetaData jbossMessageDestinationsMetaData = null;
+ if (assemblyDescriptorMetaData != null)
+ {
+ merged.setOverridenMetaData(assemblyDescriptorMetaData);
+ securityRolesMetaData = assemblyDescriptorMetaData.getSecurityRoles();
+ messageDestinationsMetaData = assemblyDescriptorMetaData.getMessageDestinations();
+ }
+ if (jbossAssemblyDescriptorMetaData != null)
+ {
+ jbossSecurityRolesMetaData = jbossAssemblyDescriptorMetaData.getSecurityRoles();
+ jbossMessageDestinationsMetaData = jbossAssemblyDescriptorMetaData.getMessageDestinations();
+ }
+
+ if (jbossSecurityRolesMetaData == null || jbossSecurityRolesMetaData.isEmpty())
+ {
+ if (securityRolesMetaData != null)
+ merged.setSecurityRoles(securityRolesMetaData);
+ }
+ else
+ {
+ SecurityRolesMetaData mergedSecurityRolesMetaData = new SecurityRolesMetaData();
+ mergedSecurityRolesMetaData = JavaEEMetaDataUtil.mergeJBossXml(mergedSecurityRolesMetaData, securityRolesMetaData, jbossSecurityRolesMetaData, "security-role", false);
+ if (mergedSecurityRolesMetaData != null && mergedSecurityRolesMetaData.isEmpty() == false)
+ merged.setSecurityRoles(mergedSecurityRolesMetaData);
+ }
+
+ if (jbossMessageDestinationsMetaData == null || jbossMessageDestinationsMetaData.isEmpty())
+ {
+ if (messageDestinationsMetaData != null && jbossMessageDestinationsMetaData == null)
+ merged.setMessageDestinations(messageDestinationsMetaData);
+ }
+ else
+ {
+ MessageDestinationsMetaData mergedMessageDestinationsMetaData = new MessageDestinationsMetaData();
+ mergedMessageDestinationsMetaData = JavaEEMetaDataUtil.mergeJBossXml(mergedMessageDestinationsMetaData, messageDestinationsMetaData, jbossMessageDestinationsMetaData, "message-destination", true);
+ if (mergedMessageDestinationsMetaData != null && mergedMessageDestinationsMetaData.isEmpty() == false)
+ merged.setMessageDestinations(mergedMessageDestinationsMetaData);
+ }
+
+ return merged;
+ }
+
+ /**
+ * Create a new JBossAssemblyDescriptorMetaData
+ */
+ public JBossAssemblyDescriptorMetaData()
+ {
+ // For serialization
+ }
+
+ /**
+ * Get the securityRoles.
+ *
+ * @return the securityRoles.
+ */
+ public SecurityRolesMetaData getSecurityRoles()
+ {
+ return securityRoles;
+ }
+
+ /**
+ * Set the securityRoles.
+ *
+ * @param securityRoles the securityRoles.
+ * @throws IllegalArgumentException for a null securityRoles
+ */
+ @XmlElement(name="security-role")
+ public void setSecurityRoles(SecurityRolesMetaData securityRoles)
+ {
+ if (securityRoles == null)
+ throw new IllegalArgumentException("Null securityRoles");
+ this.securityRoles = securityRoles;
+ }
+
+ /**
+ * Get a security role
+ *
+ * @param name the role name
+ * @return the security role or null if not found
+ */
+ public SecurityRoleMetaData getSecurityRole(String name)
+ {
+ if (securityRoles == null)
+ return null;
+ return securityRoles.get(name);
+ }
+
+ /**
+ * Get a security role's principals
+ *
+ * @param name the role name
+ * @return the security role principals or null if not found
+ */
+ public Set<String> getSecurityRolePrincipals(String name)
+ {
+ if (securityRoles == null)
+ return null;
+ SecurityRoleMetaData securityRole = securityRoles.get(name);
+ if (securityRole == null)
+ return null;
+ return securityRole.getPrincipals();
+ }
+
+ /**
+ * Get the security roles by principal
+ *
+ * @param userName the principal name
+ * @return the security roles containing the principal or null for no roles
+ * @throws IllegalArgumentException for a null user name
+ */
+ public SecurityRolesMetaData getSecurityRolesByPrincipal(String userName)
+ {
+ if (userName == null)
+ throw new IllegalArgumentException("Null userName");
+ if (securityRoles == null)
+ return null;
+ return securityRoles.getSecurityRolesByPrincipal(userName);
+ }
+
+ /**
+ * Get the security role names by principal
+ *
+ * @param userName the principal name
+ * @return the security role names containing the principal
+ * @throws IllegalArgumentException for a null user name
+ */
+ public Set<String> getSecurityRoleNamesByPrincipal(String userName)
+ {
+ if (userName == null)
+ throw new IllegalArgumentException("Null userName");
+ if (securityRoles == null)
+ return Collections.emptySet();
+ return securityRoles.getSecurityRoleNamesByPrincipal(userName);
+ }
+
+ /**
+ * Get the messageDestinations.
+ *
+ * @return the messageDestinations.
+ */
+ public MessageDestinationsMetaData getMessageDestinations()
+ {
+ return messageDestinations;
+ }
+
+ /**
+ * Set the messageDestinations.
+ *
+ * @param messageDestinations the messageDestinations.
+ * @throws IllegalArgumentException for a null messageDestinations
+ */
+ @XmlElement(name="message-destination")
+ public void setMessageDestinations(MessageDestinationsMetaData messageDestinations)
+ {
+ if (messageDestinations == null)
+ throw new IllegalArgumentException("Null messageDestinations");
+ this.messageDestinations = messageDestinations;
+ }
+
+ /**
+ * Get a message destination
+ *
+ * @param name the name of the destination
+ * @return the destination or null if not found
+ */
+ public MessageDestinationMetaData getMessageDestination(String name)
+ {
+ if (messageDestinations == null)
+ return null;
+ return messageDestinations.get(name);
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/JBossEnterpriseBeanMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/JBossEnterpriseBeanMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/JBossEnterpriseBeanMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,1119 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.jboss;
+
+import java.lang.reflect.Method;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Set;
+
+import org.jboss.ejb.metadata.spec.EnterpriseBeanMetaData;
+import org.jboss.ejb.metadata.spec.ExcludeListMetaData;
+import org.jboss.ejb.metadata.spec.MethodInterfaceType;
+import org.jboss.ejb.metadata.spec.MethodPermissionMetaData;
+import org.jboss.ejb.metadata.spec.MethodPermissionsMetaData;
+import org.jboss.ejb.metadata.spec.SecurityIdentityMetaData;
+import org.jboss.javaee.metadata.jboss.AnnotationsMetaData;
+import org.jboss.javaee.metadata.jboss.IgnoreDependencyMetaData;
+import org.jboss.javaee.metadata.jboss.JndiRefsMetaData;
+import org.jboss.javaee.metadata.spec.EJBLocalReferenceMetaData;
+import org.jboss.javaee.metadata.spec.EJBLocalReferencesMetaData;
+import org.jboss.javaee.metadata.spec.EJBReferenceMetaData;
+import org.jboss.javaee.metadata.spec.EJBReferencesMetaData;
+import org.jboss.javaee.metadata.spec.Environment;
+import org.jboss.javaee.metadata.spec.EnvironmentEntriesMetaData;
+import org.jboss.javaee.metadata.spec.EnvironmentEntryMetaData;
+import org.jboss.javaee.metadata.spec.LifecycleCallbacksMetaData;
+import org.jboss.javaee.metadata.spec.MessageDestinationReferenceMetaData;
+import org.jboss.javaee.metadata.spec.MessageDestinationReferencesMetaData;
+import org.jboss.javaee.metadata.spec.PersistenceContextReferenceMetaData;
+import org.jboss.javaee.metadata.spec.PersistenceContextReferencesMetaData;
+import org.jboss.javaee.metadata.spec.PersistenceUnitReferenceMetaData;
+import org.jboss.javaee.metadata.spec.PersistenceUnitReferencesMetaData;
+import org.jboss.javaee.metadata.spec.ResourceEnvironmentReferenceMetaData;
+import org.jboss.javaee.metadata.spec.ResourceEnvironmentReferencesMetaData;
+import org.jboss.javaee.metadata.spec.ResourceReferenceMetaData;
+import org.jboss.javaee.metadata.spec.ResourceReferencesMetaData;
+import org.jboss.javaee.metadata.spec.SecurityRoleMetaData;
+import org.jboss.javaee.metadata.spec.ServiceReferenceMetaData;
+import org.jboss.javaee.metadata.spec.ServiceReferencesMetaData;
+import org.jboss.javaee.metadata.support.AbstractMappedMetaData;
+import org.jboss.javaee.metadata.support.NamedMetaDataWithDescriptionGroupWithOverride;
+import org.jboss.javaee.metadata.support.NonNullLinkedHashSet;
+import javax.xml.bind.annotation.XmlElement;
+
+/**
+ * EnterpriseBean.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+//@SchemaImpl({JBossSessionBeanMetaData.class, JBossEntityBeanMetaData.class, JBossMessageDrivenBeanMetaData.class})
+public abstract class JBossEnterpriseBeanMetaData extends NamedMetaDataWithDescriptionGroupWithOverride<EnterpriseBeanMetaData> implements Environment
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = 6909774842926430193L;
+
+ /** The enterprise bean container */
+ private JBossEnterpriseBeansMetaData enterpriseBeansMetaData;
+
+ /** The local jndi name */
+ private String localJndiName;
+
+ /** Whether to throw an exception if the transaction is marked for rollback */
+ private boolean exceptionOnRollback;
+
+ /** Whether to persist timers */
+ private boolean timerPersistence = true;
+
+ /** The configuration name */
+ private String configurationName;
+
+ /** The invokers */
+ private InvokerBindingsMetaData invokers;
+
+ /** The determined invokers */
+ private transient InvokerBindingsMetaData determinedInvokers;
+
+ /** The ior security config */
+ private IORSecurityConfigMetaData iorSecurityConfig;
+
+ /** The security proxy */
+ private String securityProxy;
+
+ /** The environment */
+ private JBossEnvironmentRefsGroupMetaData jndiEnvironmentRefsGroup;
+
+ /** The merged environment */
+ private transient JBossEnvironmentRefsGroupMetaData mergedEnvironment;
+
+ /** The method attributes */
+ private MethodAttributesMetaData methodAttributes;
+
+ /** The security domain */
+ private String securityDomain;
+
+ /** The dependencies */
+ private Set<String> depends;
+
+ /** The annotations */
+ private AnnotationsMetaData annotations;
+
+ /** Ignore dependency */
+ private IgnoreDependencyMetaData ignoreDependency;
+
+ /** The aop domain name */
+ private String aopDomainName;
+
+ // TODO DOM pool config
+
+ /** The jndi refs */
+ private JndiRefsMetaData jndiRefs;
+
+ /**
+ * Create a new EnterpriseBeanMetaData.
+ */
+ public JBossEnterpriseBeanMetaData()
+ {
+ // For serialization
+ }
+
+ /**
+ * Get the enterpriseBeansMetaData.
+ *
+ * @return the enterpriseBeansMetaData.
+ */
+ JBossEnterpriseBeansMetaData getEnterpriseBeansMetaData()
+ {
+ return enterpriseBeansMetaData;
+ }
+
+ /**
+ * Set the enterpriseBeansMetaData.
+ *
+ * @param enterpriseBeansMetaData the enterpriseBeansMetaData.
+ */
+ void setEnterpriseBeansMetaData(JBossEnterpriseBeansMetaData enterpriseBeansMetaData)
+ {
+ this.enterpriseBeansMetaData = enterpriseBeansMetaData;
+ }
+
+ /**
+ * Get the jbossMetaData.
+ *
+ * @return the jbossMetaData.
+ */
+ public JBossMetaData getJBossMetaData()
+ {
+ if (enterpriseBeansMetaData == null)
+ return null;
+ return enterpriseBeansMetaData.getJBossMetaData();
+ }
+
+ /**
+ * Get the jbossMetaData.
+ *
+ * @return the jbossMetaData with check
+ */
+ public JBossMetaData getJBossMetaDataWithCheck()
+ {
+ JBossMetaData jbossMetaData = getJBossMetaData();
+ if (jbossMetaData == null)
+ throw new IllegalStateException("This bean is not a part of a deployment " + this);
+ return jbossMetaData;
+ }
+
+ /**
+ * Get the ejbName.
+ *
+ * @return the ejbName.
+ */
+ public String getEjbName()
+ {
+ return getName();
+ }
+
+ /**
+ * Set the ejbName.
+ *
+ * @param ejbName the ejbName.
+ * @throws IllegalArgumentException for a null ejbName
+ */
+ public void setEjbName(String ejbName)
+ {
+ setName(ejbName);
+ }
+
+ /**
+ * Whether this is a session bean
+ *
+ * @return true when a session bean
+ */
+ public boolean isSession()
+ {
+ return false;
+ }
+
+ /**
+ * Whether this is a message driven bean
+ *
+ * @return true when a message driven bean
+ */
+ public boolean isMessageDriven()
+ {
+ return false;
+ }
+
+ /**
+ * Whether this is an entity bean
+ *
+ * @return true when an entity bean
+ */
+ public boolean isEntity()
+ {
+ return false;
+ }
+
+ /**
+ * Get the localJndiName.
+ *
+ * @return the localJndiName.
+ */
+ public String getLocalJndiName()
+ {
+ return localJndiName;
+ }
+
+ /**
+ * Set the localJndiName.
+ *
+ * @param localJndiName the localJndiName.
+ * @throws IllegalArgumentException for a null localJndiName
+ */
+ public void setLocalJndiName(String localJndiName)
+ {
+ if (localJndiName == null)
+ throw new IllegalArgumentException("Null localJndiName");
+ this.localJndiName = localJndiName;
+ }
+
+ /**
+ * Determine the localJndiName.
+ *
+ * @return the localJndiName.
+ */
+ public String determineLocalJndiName()
+ {
+ if (localJndiName != null)
+ return localJndiName;
+
+ String ejbName = getEjbName();
+ // Generate a unique name based on ejbName + identityHashCode
+ return "local/" + ejbName + '@' + System.identityHashCode(ejbName);
+ }
+
+ /**
+ * Determine the container jndi name used in the object name
+ *
+ * @return the jndi name suitable for use in the object name
+ */
+ public String getContainerObjectNameJndiName()
+ {
+ return getLocalJndiName();
+ }
+
+ /**
+ * Get the exceptionOnRollback.
+ *
+ * @return the exceptionOnRollback.
+ */
+ public boolean isExceptionOnRollback()
+ {
+ return exceptionOnRollback;
+ }
+
+ /**
+ * Set the exceptionOnRollback.
+ *
+ * @param exceptionOnRollback the exceptionOnRollback.
+ */
+ public void setExceptionOnRollback(boolean exceptionOnRollback)
+ {
+ this.exceptionOnRollback = exceptionOnRollback;
+ }
+
+ /**
+ * Get the timerPersistence.
+ *
+ * @return the timerPersistence.
+ */
+ public boolean isTimerPersistence()
+ {
+ return timerPersistence;
+ }
+
+ /**
+ * Set the timerPersistence.
+ *
+ * @param timerPersistence the timerPersistence.
+ */
+ public void setTimerPersistence(boolean timerPersistence)
+ {
+ this.timerPersistence = timerPersistence;
+ }
+
+ /**
+ * Get the configurationName.
+ *
+ * @return the configurationName.
+ */
+ public String getConfigurationName()
+ {
+ return configurationName;
+ }
+
+ /**
+ * Set the configurationName.
+ *
+ * @param configurationName the configurationName.
+ * @throws IllegalArgumentException for a null configurationName
+ */
+ public void setConfigurationName(String configurationName)
+ {
+ if (configurationName == null)
+ throw new IllegalArgumentException("Null configurationName");
+ this.configurationName = configurationName;
+ }
+
+ /**
+ * Determine the configuration name
+ *
+ * @return the configuration name
+ */
+ public String determineConfigurationName()
+ {
+ if (configurationName != null)
+ return configurationName;
+
+ return getDefaultConfigurationName();
+ }
+
+ /**
+ * Get the container configuration
+ *
+ * @return the container configuration
+ */
+ public ContainerConfigurationMetaData determineContainerConfiguration()
+ {
+ String name = determineConfigurationName();
+ ContainerConfigurationMetaData result = getJBossMetaDataWithCheck().getContainerConfiguration(name);
+ if (result == null)
+ throw new IllegalStateException("Container configuration not found: " + name + " available: " + getJBossMetaDataWithCheck().getContainerConfigurations());
+ return result;
+ }
+
+ /**
+ * Get the default configuration name
+ *
+ * @return the default name
+ */
+ public abstract String getDefaultConfigurationName();
+
+ /**
+ * Get the securityProxy.
+ *
+ * @return the securityProxy.
+ */
+ public String getSecurityProxy()
+ {
+ return securityProxy;
+ }
+
+ /**
+ * Set the securityProxy.
+ *
+ * @param securityProxy the securityProxy.
+ * @throws IllegalArgumentException for a null securityProxy
+ */
+ public void setSecurityProxy(String securityProxy)
+ {
+ if (securityProxy == null)
+ throw new IllegalArgumentException("Null securityProxy");
+ this.securityProxy = securityProxy;
+ }
+
+ /**
+ * Get the securityDomain.
+ *
+ * @return the securityDomain.
+ */
+ public String getSecurityDomain()
+ {
+ return securityDomain;
+ }
+
+ /**
+ * Set the securityDomain.
+ *
+ * @param securityDomain the securityDomain.
+ * @throws IllegalArgumentException for a null securityDomain
+ */
+ @XmlElement(required=false)
+ public void setSecurityDomain(String securityDomain)
+ {
+ if (securityDomain == null)
+ throw new IllegalArgumentException("Null securityDomain");
+ this.securityDomain = securityDomain;
+ }
+
+ /**
+ * Get the depends.
+ *
+ * @return the depends.
+ */
+ public Set<String> getDepends()
+ {
+ return depends;
+ }
+
+ /**
+ * Set the depends.
+ *
+ * @param depends the depends.
+ * @throws IllegalArgumentException for a null depends
+ */
+ @XmlElement(type=NonNullLinkedHashSet.class)
+ public void setDepends(Set<String> depends)
+ {
+ if (depends == null)
+ throw new IllegalArgumentException("Null depends");
+ this.depends = depends;
+ }
+
+ /**
+ * Get the depends.
+ *
+ * @return the depends.
+ */
+ public Set<String> determineAllDepends()
+ {
+ NonNullLinkedHashSet<String> result = new NonNullLinkedHashSet<String>();
+
+ Set<String> depends = getDepends();
+ if (depends != null)
+ result.addAll(depends);
+
+ ContainerConfigurationMetaData containerConfigurationMetaData = determineContainerConfiguration();
+ if (containerConfigurationMetaData != null)
+ {
+ depends = containerConfigurationMetaData.getDepends();
+ if (depends != null)
+ result.addAll(depends);
+ }
+
+ return result;
+ }
+
+ /**
+ * Get the invokers.
+ *
+ * @return the invokers.
+ */
+ public InvokerBindingsMetaData getInvokerBindings()
+ {
+ return invokers;
+ }
+
+ /**
+ * Set the invokers.
+ *
+ * @param invokers the invokers.
+ * @throws IllegalArgumentException for a null invokers
+ */
+ public void setInvokerBindings(InvokerBindingsMetaData invokers)
+ {
+ if (invokers == null)
+ throw new IllegalArgumentException("Null invokers");
+ this.invokers = invokers;
+ }
+
+ /**
+ * Determine the invokers
+ *
+ * @return the invokers.
+ */
+ public InvokerBindingsMetaData determineInvokerBindings()
+ {
+ // We already worked it out
+ if (determinedInvokers != null)
+ return determinedInvokers;
+
+ // Use anything configured
+ if (invokers != null)
+ {
+ determinedInvokers = invokers;
+ return determinedInvokers;
+ }
+
+ // Look at the container configuration
+ ContainerConfigurationMetaData containerConfiguration = determineContainerConfiguration();
+ Set<String> invokerProxyBindingNames = containerConfiguration.getInvokerProxyBindingNames();
+ if (invokerProxyBindingNames != null && invokerProxyBindingNames.isEmpty() == false)
+ {
+ determinedInvokers = new InvokerBindingsMetaData();
+
+ // Like the original code, they all get bound with the same name?
+ String jndiName = getDefaultInvokerJndiName();
+ for (String name : invokerProxyBindingNames)
+ {
+ InvokerBindingMetaData invoker = new InvokerBindingMetaData();
+ invoker.setInvokerProxyBindingName(name);
+ if (jndiName != null)
+ invoker.setJndiName(jndiName);
+ }
+ return determinedInvokers;
+ }
+
+ determinedInvokers = getDefaultInvokers();
+ return determinedInvokers;
+ }
+
+ /**
+ * Determine an invoker binding
+ *
+ * @param invokerName the invoker proxy binding name
+ * @return the invoke binding
+ * @throws IllegalStateException if there is no such binding
+ */
+ public InvokerBindingMetaData determineInvokerBinding(String invokerName)
+ {
+ InvokerBindingMetaData binding = determineInvokerBindings().get(invokerName);
+ if (binding == null)
+ throw new IllegalStateException("No such binding: " + invokerName + " available: " + determinedInvokers);
+ return binding;
+ }
+
+ /**
+ * Determine the jndi name for invoker bindings that come from the container configuration
+ *
+ * @return the jndi name suitable for use on the default invoker
+ */
+ protected String getDefaultInvokerJndiName()
+ {
+ return null;
+ }
+
+ /**
+ * Get the default invokers
+ *
+ * @return the default invokers
+ */
+ protected InvokerBindingsMetaData getDefaultInvokers()
+ {
+ InvokerBindingsMetaData bindings = new InvokerBindingsMetaData();
+ InvokerBindingMetaData binding = new InvokerBindingMetaData();
+ binding.setInvokerProxyBindingName(getDefaultInvokerName());
+ String jndiName = getDefaultInvokerJndiName();
+ if (jndiName != null)
+ binding.setJndiName(getDefaultInvokerJndiName());
+ bindings.add(binding);
+ return bindings;
+ }
+
+ /**
+ * Get the default invokers
+ *
+ * @return the default invokers
+ */
+ protected abstract String getDefaultInvokerName();
+
+ /**
+ * Get the jndiEnvironmentRefsGroup.
+ *
+ * @return the jndiEnvironmentRefsGroup.
+ */
+ public JBossEnvironmentRefsGroupMetaData getJbossJndiEnvironmentRefsGroup()
+ {
+ return jndiEnvironmentRefsGroup;
+ }
+
+ /**
+ * Set the jndiEnvironmentRefsGroup.
+ *
+ * @param jndiEnvironmentRefsGroup the jndiEnvironmentRefsGroup.
+ * @throws IllegalArgumentException for a null jndiEnvironmentRefsGroup
+ */
+ @XmlElement(/*noInterceptor=true*/)
+ public void setJbossJndiEnvironmentRefsGroup(JBossEnvironmentRefsGroupMetaData jndiEnvironmentRefsGroup)
+ {
+ if (jndiEnvironmentRefsGroup == null)
+ throw new IllegalArgumentException("Null jndiEnvironmentRefsGroup");
+ this.jndiEnvironmentRefsGroup = jndiEnvironmentRefsGroup;
+ }
+
+ /**
+ * Get the mergedEnvironment.
+ *
+ * @return the mergedEnvironment.
+ */
+ public JBossEnvironmentRefsGroupMetaData getMergedEnvironment()
+ {
+ if (mergedEnvironment != null)
+ return mergedEnvironment;
+
+ try
+ {
+ mergedEnvironment = JBossEnvironmentRefsGroupMetaData.merge(jndiEnvironmentRefsGroup, getOverridenMetaDataWithCheck().getJndiEnvironmentRefsGroup(), "ejb-jar.xml", "jboss.xml");
+
+ // Fixup the invoker binding references on ejb refs
+ InvokerBindingsMetaData invokerBindings = getInvokerBindings();
+ if (invokerBindings != null && invokerBindings.isEmpty() == false)
+ {
+ for (InvokerBindingMetaData invokerBinding : invokerBindings)
+ {
+ String ejbRefName = invokerBinding.getEjbRefName();
+ if (ejbRefName != null)
+ {
+ EJBReferenceMetaData ejbRef = mergedEnvironment.getEjbReferenceByName(ejbRefName);
+ if (ejbRef == null)
+ throw new IllegalStateException("ejb-ref " + ejbRefName + " found on invoker " + invokerBinding.getName() + " but it does not exist for ejb: " + getName());
+ ejbRef.addInvokerBinding(invokerBinding.getName(), invokerBinding.getJndiName());
+ }
+ }
+ }
+
+ // Fixup the security identity
+ SecurityIdentityMetaData jbossSecurityIdentity = null;
+ if (jndiEnvironmentRefsGroup != null)
+ jbossSecurityIdentity = jndiEnvironmentRefsGroup.getSecurityIdentity();
+ SecurityIdentityMetaData originalSecurityIdentity = getOverridenMetaDataWithCheck().getSecurityIdentity();
+ SecurityIdentityMetaData mergedSecurityIdentity = jbossSecurityIdentity;
+ if (jbossSecurityIdentity == null)
+ mergedSecurityIdentity = originalSecurityIdentity;
+ else if (originalSecurityIdentity != null)
+ mergedSecurityIdentity = jbossSecurityIdentity.merge(originalSecurityIdentity);
+ if (mergedSecurityIdentity != null)
+ mergedEnvironment.setSecurityIdentity(mergedSecurityIdentity);
+ }
+ catch (Exception e)
+ {
+ throw new RuntimeException("Error merging jndi environment for " + getEjbName(), e);
+ }
+ return mergedEnvironment;
+ }
+
+ public EJBLocalReferenceMetaData getEjbLocalReferenceByName(String name)
+ {
+ return AbstractMappedMetaData.getByName(name, getEjbLocalReferences());
+ }
+
+ public EJBLocalReferencesMetaData getEjbLocalReferences()
+ {
+ return getMergedEnvironment().getEjbLocalReferences();
+ }
+
+ public EJBReferenceMetaData getEjbReferenceByName(String name)
+ {
+ return AbstractMappedMetaData.getByName(name, getEjbReferences());
+ }
+
+ public EJBReferencesMetaData getEjbReferences()
+ {
+ return getMergedEnvironment().getEjbReferences();
+ }
+
+ public EnvironmentEntriesMetaData getEnvironmentEntries()
+ {
+ return getMergedEnvironment().getEnvironmentEntries();
+ }
+
+ public EnvironmentEntryMetaData getEnvironmentEntryByName(String name)
+ {
+ return AbstractMappedMetaData.getByName(name, getEnvironmentEntries());
+ }
+
+ public MessageDestinationReferenceMetaData getMessageDestinationReferenceByName(String name)
+ {
+ return AbstractMappedMetaData.getByName(name, getMessageDestinationReferences());
+ }
+
+ public MessageDestinationReferencesMetaData getMessageDestinationReferences()
+ {
+ return getMergedEnvironment().getMessageDestinationReferences();
+ }
+
+ public PersistenceContextReferenceMetaData getPersistenceContextReferenceByName(String name)
+ {
+ return AbstractMappedMetaData.getByName(name, getPersistenceContextRefs());
+ }
+
+ public PersistenceContextReferencesMetaData getPersistenceContextRefs()
+ {
+ return getMergedEnvironment().getPersistenceContextRefs();
+ }
+
+ public PersistenceUnitReferenceMetaData getPersistenceUnitReferenceByName(String name)
+ {
+ return AbstractMappedMetaData.getByName(name, getPersistenceUnitRefs());
+ }
+
+ public PersistenceUnitReferencesMetaData getPersistenceUnitRefs()
+ {
+ return getMergedEnvironment().getPersistenceUnitRefs();
+ }
+
+ public LifecycleCallbacksMetaData getPostConstructs()
+ {
+ return getMergedEnvironment().getPostConstructs();
+ }
+
+ public LifecycleCallbacksMetaData getPreDestroys()
+ {
+ return getMergedEnvironment().getPreDestroys();
+ }
+
+ public ResourceEnvironmentReferenceMetaData getResourceEnvironmentReferenceByName(String name)
+ {
+ return AbstractMappedMetaData.getByName(name, getResourceEnvironmentReferences());
+ }
+
+ public ResourceEnvironmentReferencesMetaData getResourceEnvironmentReferences()
+ {
+ return getMergedEnvironment().getResourceEnvironmentReferences();
+ }
+
+ public ResourceReferenceMetaData getResourceReferenceByName(String name)
+ {
+ return AbstractMappedMetaData.getByName(name, getResourceReferences());
+ }
+
+ public ResourceReferencesMetaData getResourceReferences()
+ {
+ return getMergedEnvironment().getResourceReferences();
+ }
+
+ public ServiceReferenceMetaData getServiceReferenceByName(String name)
+ {
+ return AbstractMappedMetaData.getByName(name, getServiceReferences());
+ }
+
+ public ServiceReferencesMetaData getServiceReferences()
+ {
+ return getMergedEnvironment().getServiceReferences();
+ }
+
+ /**
+ * Get the security identity
+ *
+ * @return the security identity
+ */
+ public SecurityIdentityMetaData getSecurityIdentity()
+ {
+ // This is hacky because of the stupid way security identity is included in the environment
+ if (getOverridenMetaData() == null)
+ {
+ if (jndiEnvironmentRefsGroup == null)
+ return null;
+ else
+ return jndiEnvironmentRefsGroup.getSecurityIdentity();
+ }
+ return getMergedEnvironment().getSecurityIdentity();
+ }
+
+ /**
+ * Get the annotations.
+ *
+ * @return the annotations.
+ */
+ public AnnotationsMetaData getAnnotations()
+ {
+ return annotations;
+ }
+
+ /**
+ * Set the annotations.
+ *
+ * @param annotations the annotations.
+ * @throws IllegalArgumentException for a null annotations
+ */
+ @XmlElement(name="annotation")
+ public void setAnnotations(AnnotationsMetaData annotations)
+ {
+ if (annotations == null)
+ throw new IllegalArgumentException("Null annotations");
+ this.annotations = annotations;
+ }
+
+ /**
+ * Get the aopDomainName.
+ *
+ * @return the aopDomainName.
+ */
+ public String getAopDomainName()
+ {
+ return aopDomainName;
+ }
+
+ /**
+ * Set the aopDomainName.
+ *
+ * @param aopDomainName the aopDomainName.
+ * @throws IllegalArgumentException for a null aopDomainName
+ */
+ public void setAopDomainName(String aopDomainName)
+ {
+ if (aopDomainName == null)
+ throw new IllegalArgumentException("Null aopDomainName");
+ this.aopDomainName = aopDomainName;
+ }
+
+ /**
+ * Get the jndiRefs.
+ *
+ * @return the jndiRefs.
+ */
+ public JndiRefsMetaData getJndiRefs()
+ {
+ return jndiRefs;
+ }
+
+ /**
+ * Set the jndiRefs.
+ *
+ * @param jndiRefs the jndiRefs.
+ * @throws IllegalArgumentException for a null jndiRefs
+ */
+ @XmlElement(name="jndi-ref")
+ public void setJndiRefs(JndiRefsMetaData jndiRefs)
+ {
+ if (jndiRefs == null)
+ throw new IllegalArgumentException("Null jndiRefs");
+ this.jndiRefs = jndiRefs;
+ }
+
+ /**
+ * Get a security role
+ *
+ * @param roleName the role name
+ * @return the security role or null if not found
+ */
+ public SecurityRoleMetaData getSecurityRole(String roleName)
+ {
+ JBossAssemblyDescriptorMetaData assemblyDescriptor = getJBossMetaDataWithCheck().getAssemblyDescriptor();
+ if (assemblyDescriptor == null)
+ return null;
+ else
+ return assemblyDescriptor.getSecurityRole(roleName);
+ }
+
+ /**
+ * Get a security role's principals
+ *
+ * @param roleName the role name
+ * @return the principals or null if not found
+ */
+ public Set<String> getSecurityRolePrincipals(String roleName)
+ {
+ JBossAssemblyDescriptorMetaData assemblyDescriptor = getJBossMetaDataWithCheck().getAssemblyDescriptor();
+ if (assemblyDescriptor == null)
+ return null;
+ else
+ return assemblyDescriptor.getSecurityRolePrincipals(roleName);
+ }
+
+ /**
+ * A somewhat tedious method that builds a Set<Principal> of the roles
+ * that have been assigned permission to execute the indicated method. The
+ * work performed is tedious because of the wildcard style of declaring
+ * method permission allowed in the ejb-jar.xml descriptor. This method is
+ * called by the Container.getMethodPermissions() when it fails to find the
+ * prebuilt set of method roles in its cache.
+ *
+ * @param methodName the method name
+ * @param params the parameters
+ * @param interfaceType the interface type
+ * @return The Set<Principal> for the application domain roles that caller principal's are to be validated against.
+ */
+ public Set<String> getMethodPermissions(String methodName, Class[] params, MethodInterfaceType interfaceType)
+ {
+ Set<String> result = null;
+
+ EnterpriseBeanMetaData ejb = getOverridenMetaDataWithCheck();
+ JBossMetaData jbossMetaData = getJBossMetaDataWithCheck();
+
+ // First check the excluded method list as this takes priority over
+ // all other assignments
+ ExcludeListMetaData excluded = ejb.getExcludeList();
+ if (excluded != null && excluded.matches(methodName, params, interfaceType))
+ {
+ // No one is allowed to execute this method so add a role that
+ // fails to equate to any Principal or Principal name and return.
+ // We don't return null to differentiate between an explicit
+ // assignment of no access and no assignment information.
+ if (result == null)
+ result = new HashSet<String>();
+ result.add("NOBODY_PRINCIPAL");
+ return result;
+ }
+
+ // Check the permissioned methods list
+ MethodPermissionsMetaData permissions = ejb.getMethodPermissions();
+ if (permissions != null)
+ {
+ for (MethodPermissionMetaData permission : permissions)
+ {
+ if (permission.isNotChecked(methodName, params, interfaceType))
+ {
+ if (result != null)
+ result.clear();
+ result.add("ANYBODY_PRINCIPAL");
+ break;
+ }
+ else if (permission.matches(methodName, params, interfaceType))
+ {
+ Set<String> roles = permission.getRoles();
+ if (roles != null)
+ {
+ for (String roleName : roles)
+ {
+ Set<String> principals = getSecurityRolePrincipals(roleName);
+ if (principals != null)
+ {
+ for (String principal : principals)
+ {
+ if (result == null)
+ result = new HashSet<String>();
+ result.add(principal);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ if (jbossMetaData.isExcludeMissingMethods() == false && result == null)
+ {
+ result = new HashSet<String>();
+ result.add("ANYBODY_PRINCIPAL");
+ }
+
+ if (result == null)
+ result = Collections.emptySet();
+ return result;
+ }
+
+ /**
+ * Check to see if there was a method-permission or exclude-list statement
+ * for the given method.
+ *
+ * @param methodName - the method name
+ * @param params - the method parameter signature
+ * @param interfaceType - the method interface type
+ * @return true if a matching method permission exists, false if no match
+ */
+ public boolean hasMethodPermissions(String methodName, Class[] params, MethodInterfaceType interfaceType)
+ {
+ EnterpriseBeanMetaData ejb = getOverridenMetaDataWithCheck();
+
+ // First check the excluded method list as this takes priority over
+ // all other assignments
+ ExcludeListMetaData excluded = ejb.getExcludeList();
+ if (excluded != null && excluded.matches(methodName, params, interfaceType))
+ return true;
+
+ // Check the permissioned methods list
+ MethodPermissionsMetaData permissions = ejb.getMethodPermissions();
+ if (permissions != null)
+ {
+ for (MethodPermissionMetaData permission : permissions)
+ {
+ if (permission.matches(methodName, params, interfaceType))
+ return true;
+ }
+ }
+
+ // No match
+ return false;
+ }
+
+ /**
+ * Get the iorSecurityConfig.
+ *
+ * @return the iorSecurityConfig.
+ */
+ public IORSecurityConfigMetaData getIorSecurityConfig()
+ {
+ return iorSecurityConfig;
+ }
+
+ /**
+ * Set the iorSecurityConfig.
+ *
+ * @param iorSecurityConfig the iorSecurityConfig.
+ * @throws IllegalArgumentException for a null iorSecurityConfig
+ */
+ public void setIorSecurityConfig(IORSecurityConfigMetaData iorSecurityConfig)
+ {
+ if (iorSecurityConfig == null)
+ throw new IllegalArgumentException("Null iorSecurityConfig");
+ this.iorSecurityConfig = iorSecurityConfig;
+ }
+
+ /**
+ * Get the ignoreDependency.
+ *
+ * @return the ignoreDependency.
+ */
+ public IgnoreDependencyMetaData getIgnoreDependency()
+ {
+ return ignoreDependency;
+ }
+
+ /**
+ * Set the ignoreDependency.
+ *
+ * @param ignoreDependency the ignoreDependency.
+ * @throws IllegalArgumentException for a null ignoreDependency
+ */
+ public void setIgnoreDependency(IgnoreDependencyMetaData ignoreDependency)
+ {
+ if (ignoreDependency == null)
+ throw new IllegalArgumentException("Null ignoreDependency");
+ this.ignoreDependency = ignoreDependency;
+ }
+
+ /**
+ * Get the methodAttributes.
+ *
+ * @return the methodAttributes.
+ */
+ public MethodAttributesMetaData getMethodAttributes()
+ {
+ return methodAttributes;
+ }
+
+ /**
+ * Set the methodAttributes.
+ *
+ * @param methodAttributes the methodAttributes.
+ * @throws IllegalArgumentException for a null methodAttributes
+ */
+ public void setMethodAttributes(MethodAttributesMetaData methodAttributes)
+ {
+ if (methodAttributes == null)
+ throw new IllegalArgumentException("Null methodAttributes");
+ this.methodAttributes = methodAttributes;
+ }
+
+ /**
+ * Is this method a read-only method
+ *
+ * @param methodName the method name
+ * @return true for read only
+ */
+ public boolean isMethodReadOnly(String methodName)
+ {
+ if (methodAttributes == null)
+ return false;
+ return methodAttributes.isMethodReadOnly(methodName);
+ }
+
+ /**
+ * Is this method a read-only method
+ *
+ * @param method the method
+ * @return true for read only
+ */
+ public boolean isMethodReadOnly(Method method)
+ {
+ if (method == null)
+ return false;
+ return isMethodReadOnly(method.getName());
+ }
+
+ /**
+ * Get the transaction timeout for the method
+ *
+ * @param methodName the method name
+ * @return the transaction timeout
+ */
+ public int getMethodTransactionTimeout(String methodName)
+ {
+ if (methodAttributes == null)
+ return 0;
+ return methodAttributes.getMethodTransactionTimeout(methodName);
+ }
+
+ /**
+ * Get the transaction timeout for the method
+ *
+ * @param method the method
+ * @return the transaction timeout
+ */
+ public int getMethodTransactionTimeout(Method method)
+ {
+ if (method == null)
+ return 0;
+ return getMethodTransactionTimeout(method.getName());
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/JBossEnterpriseBeansMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/JBossEnterpriseBeansMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/JBossEnterpriseBeansMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,121 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.jboss;
+
+import org.jboss.ejb.metadata.spec.EnterpriseBeanMetaData;
+import org.jboss.ejb.metadata.spec.EnterpriseBeansMetaData;
+import org.jboss.ejb.metadata.spec.EntityBeanMetaData;
+import org.jboss.ejb.metadata.spec.MessageDrivenBeanMetaData;
+import org.jboss.ejb.metadata.spec.SessionBeanMetaData;
+import org.jboss.javaee.metadata.support.AbstractMappedMetaDataWithOverride;
+import org.jboss.javaee.metadata.support.JavaEEMetaDataUtil;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * JBossEnterpriseBeansMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlType(name="jboss-enterprise-beansType")
+public class JBossEnterpriseBeansMetaData extends AbstractMappedMetaDataWithOverride<EnterpriseBeanMetaData, JBossEnterpriseBeanMetaData, EnterpriseBeansMetaData>
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = -5123700601271986251L;
+
+ /** The top level metadata */
+ private JBossMetaData jbossMetaData;
+
+ /**
+ * Create a new EnterpriseBeansMetaData.
+ */
+ public JBossEnterpriseBeansMetaData()
+ {
+ super("ejb name for enterprise bean");
+ }
+
+ /**
+ * Merge
+ *
+ * @param jbossEnterpriseBeansMetaData the jboss enterprise beans
+ * @param enterpriseBeansMetaData the enterprise beans
+ * @return the merged jboss enterprise beans
+ */
+ public static JBossEnterpriseBeansMetaData merge(JBossEnterpriseBeansMetaData jbossEnterpriseBeansMetaData, EnterpriseBeansMetaData enterpriseBeansMetaData)
+ {
+ JBossEnterpriseBeansMetaData merged = new JBossEnterpriseBeansMetaData();
+ return JavaEEMetaDataUtil.mergeOverrideJBossXml(merged, enterpriseBeansMetaData, jbossEnterpriseBeansMetaData, "enterprise bean", true);
+ }
+
+ public JBossEnterpriseBeanMetaData createOverride(EnterpriseBeanMetaData data)
+ {
+ if (data == null)
+ throw new IllegalArgumentException("Null data");
+ JBossEnterpriseBeanMetaData result = null;
+ if (data instanceof SessionBeanMetaData)
+ result = new JBossSessionBeanMetaData();
+ else if (data instanceof EntityBeanMetaData)
+ result = new JBossEntityBeanMetaData();
+ else if (data instanceof MessageDrivenBeanMetaData)
+ result = new JBossMessageDrivenBeanMetaData();
+ else
+ throw new IllegalArgumentException("Unregonised: " + data);
+ result.setEjbName(data.getEjbName());
+ result.setOverridenMetaData(data);
+ return result;
+ }
+
+ /**
+ * Get the jbossMetaData.
+ *
+ * @return the jbossMetaData.
+ */
+ JBossMetaData getJBossMetaData()
+ {
+ return jbossMetaData;
+ }
+
+ /**
+ * Set the jbossMetaData.
+ *
+ * @param jbossMetaData the jbossMetaData.
+ * @throws IllegalArgumentException for a null jbossMetaData
+ */
+ void setJBossMetaData(JBossMetaData jbossMetaData)
+ {
+ if (jbossMetaData == null)
+ throw new IllegalArgumentException("Null jbossMetaData");
+ this.jbossMetaData = jbossMetaData;
+ }
+
+ @Override
+ public void addNotification(JBossEnterpriseBeanMetaData added)
+ {
+ added.setEnterpriseBeansMetaData(this);
+ }
+
+ @Override
+ public void removeNotification(JBossEnterpriseBeanMetaData removed)
+ {
+ removed.setEnterpriseBeansMetaData(null);
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/JBossEntityBeanMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/JBossEntityBeanMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/JBossEntityBeanMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,375 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.jboss;
+
+import org.jboss.ejb.metadata.spec.EntityBeanMetaData;
+import javax.xml.bind.annotation.XmlTransient;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * EntityBeanMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlType(name="jboss-entity-beanType")
+public class JBossEntityBeanMetaData extends JBossEnterpriseBeanMetaData
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = -6869794514744015588L;
+
+ /** The jndi name */
+ private String jndiName;
+
+ /** Whether to call by value */
+ private boolean callByValue;
+
+ /** Whether this bean is clustered */
+ private boolean clustered;
+
+ /** Read only */
+ private boolean readOnly;
+
+ /** The cluster config */
+ private ClusterConfigMetaData clusterConfig;
+
+ /** The determined cluster config */
+ private transient ClusterConfigMetaData determinedClusterConfig;
+
+ /** Cache invalidation */
+ private boolean cacheInvalidation;
+
+ /** The cache invalidation config */
+ private CacheInvalidationConfigMetaData cacheInvalidationConfig;
+
+ // TODO DOM cache-config
+
+ /**
+ * Create a new EntityBeanMetaData.
+ */
+ public JBossEntityBeanMetaData()
+ {
+ // For serialization
+ }
+
+ @Override
+ public EntityBeanMetaData getOverridenMetaData()
+ {
+ return (EntityBeanMetaData) super.getOverridenMetaData();
+ }
+
+ @XmlTransient
+ public void setOverridenMetaData(EntityBeanMetaData data)
+ {
+ super.setOverridenMetaData(data);
+ }
+
+ @Override
+ public boolean isEntity()
+ {
+ return true;
+ }
+
+ @Override
+ public String getDefaultConfigurationName()
+ {
+ boolean isCMP = true;
+ boolean isCMP1x = false;
+ EntityBeanMetaData overriden = getOverridenMetaData();
+ if (overriden != null)
+ {
+ isCMP = overriden.isCMP();
+ isCMP1x = overriden.isCMP1x();
+ }
+
+ if (isCMP)
+ {
+ if (isCMP1x)
+ {
+ if (isClustered())
+ return ContainerConfigurationMetaData.CLUSTERED_CMP_1x;
+ else
+ return ContainerConfigurationMetaData.CMP_1x;
+ }
+ else
+ {
+ if (isClustered())
+ return ContainerConfigurationMetaData.CLUSTERED_CMP_2x;
+ else
+ return ContainerConfigurationMetaData.CMP_2x;
+ }
+ }
+ else
+ {
+ if (isClustered())
+ return ContainerConfigurationMetaData.CLUSTERED_BMP;
+ else
+ return ContainerConfigurationMetaData.BMP;
+ }
+ }
+
+ @Override
+ public String getDefaultInvokerName()
+ {
+ boolean isCMP = true;
+ boolean isCMP1x = false;
+ EntityBeanMetaData overriden = getOverridenMetaData();
+ if (overriden != null)
+ {
+ isCMP = overriden.isCMP();
+ isCMP1x = overriden.isCMP1x();
+ }
+
+ if (isCMP)
+ {
+ if (isCMP1x)
+ {
+ if (isClustered())
+ return InvokerBindingMetaData.CLUSTERED_CMP_1x;
+ else
+ return InvokerBindingMetaData.CMP_1x;
+ }
+ else
+ {
+ if (isClustered())
+ return InvokerBindingMetaData.CLUSTERED_CMP_2x;
+ else
+ return InvokerBindingMetaData.CMP_2x;
+ }
+ }
+ else
+ {
+ if (isClustered())
+ return InvokerBindingMetaData.CLUSTERED_BMP;
+ else
+ return InvokerBindingMetaData.BMP;
+ }
+ }
+
+ /**
+ * Get the jndiName.
+ *
+ * @return the jndiName.
+ */
+ public String getJndiName()
+ {
+ return jndiName;
+ }
+
+ /**
+ * Set the jndiName.
+ *
+ * @param jndiName the jndiName.
+ * @throws IllegalArgumentException for a null jndiName
+ */
+ public void setJndiName(String jndiName)
+ {
+ if (jndiName == null)
+ throw new IllegalArgumentException("Null jndiName");
+ this.jndiName = jndiName;
+ }
+
+ /**
+ * Determine the jndi name
+ *
+ * @return the jndi name
+ */
+ public String determineJndiName()
+ {
+ if (jndiName != null)
+ return jndiName;
+
+ EntityBeanMetaData overriden = getOverridenMetaData();
+ if (overriden != null)
+ {
+ String mapped = overriden.getMappedName();
+ if (mapped != null)
+ return mapped;
+ }
+ return getEjbName();
+ }
+
+ @Override
+ public String getContainerObjectNameJndiName()
+ {
+ boolean remote = false;
+ EntityBeanMetaData entity = getOverridenMetaData();
+ if (entity != null && entity.getHome() != null)
+ remote = true;
+ return remote ? determineJndiName() : getLocalJndiName();
+ }
+
+ @Override
+ protected String getDefaultInvokerJndiName()
+ {
+ return determineJndiName();
+ }
+
+ /**
+ * Get the callByValue.
+ *
+ * @return the callByValue.
+ */
+ public boolean isCallByValue()
+ {
+ return callByValue;
+ }
+
+ /**
+ * Set the callByValue.
+ *
+ * @param callByValue the callByValue.
+ */
+ public void setCallByValue(boolean callByValue)
+ {
+ this.callByValue = callByValue;
+ }
+
+ /**
+ * Get the clustered.
+ *
+ * @return the clustered.
+ */
+ public boolean isClustered()
+ {
+ return clustered;
+ }
+
+ /**
+ * Set the clustered.
+ *
+ * @param clustered the clustered.
+ */
+ public void setClustered(boolean clustered)
+ {
+ this.clustered = clustered;
+ }
+
+ /**
+ * Get the readOnly.
+ *
+ * @return the readOnly.
+ */
+ public boolean isReadOnly()
+ {
+ return readOnly;
+ }
+
+ /**
+ * Set the readOnly.
+ *
+ * @param readOnly the readOnly.
+ */
+ public void setReadOnly(boolean readOnly)
+ {
+ this.readOnly = readOnly;
+ }
+
+ /**
+ * Get the clusterConfig.
+ *
+ * @return the clusterConfig.
+ */
+ public ClusterConfigMetaData getClusterConfig()
+ {
+ return clusterConfig;
+ }
+
+ /**
+ * Determine the clusterConfig.
+ *
+ * @return the clusterConfig.
+ */
+ public ClusterConfigMetaData determineClusterConfig()
+ {
+ if (determinedClusterConfig != null)
+ return determinedClusterConfig;
+ determinedClusterConfig = clusterConfig;
+ if (determinedClusterConfig == null)
+ {
+ ContainerConfigurationMetaData container = determineContainerConfiguration();
+ if (container != null)
+ determinedClusterConfig = container.getClusterConfig();
+ }
+ if (determinedClusterConfig == null)
+ determinedClusterConfig = new ClusterConfigMetaData();
+ return determinedClusterConfig;
+ }
+
+ /**
+ * Set the clusterConfig.
+ *
+ * @param clusterConfig the clusterConfig.
+ * @throws IllegalArgumentException for a null clusterConfig
+ */
+ public void setClusterConfig(ClusterConfigMetaData clusterConfig)
+ {
+ if (clusterConfig == null)
+ throw new IllegalArgumentException("Null clusterConfig");
+ clusterConfig.setEnterpriseBeanMetaData(this);
+ this.clusterConfig = clusterConfig;
+ }
+
+ /**
+ * Get the cacheInvalidation.
+ *
+ * @return the cacheInvalidation.
+ */
+ public boolean isCacheInvalidation()
+ {
+ return cacheInvalidation;
+ }
+
+ /**
+ * Set the cacheInvalidation.
+ *
+ * @param cacheInvalidation the cacheInvalidation.
+ */
+ public void setCacheInvalidation(boolean cacheInvalidation)
+ {
+ this.cacheInvalidation = cacheInvalidation;
+ }
+
+ /**
+ * Get the cacheInvalidationConfig.
+ *
+ * @return the cacheInvalidationConfig.
+ */
+ public CacheInvalidationConfigMetaData getCacheInvalidationConfig()
+ {
+ return cacheInvalidationConfig;
+ }
+
+ /**
+ * Set the cacheInvalidationConfig.
+ *
+ * @param cacheInvalidationConfig the cacheInvalidationConfig.
+ * @throws IllegalArgumentException for a null cacheInvalidationConfig
+ */
+ public void setCacheInvalidationConfig(CacheInvalidationConfigMetaData cacheInvalidationConfig)
+ {
+ if (cacheInvalidationConfig == null)
+ throw new IllegalArgumentException("Null cacheInvalidationConfig");
+ cacheInvalidationConfig.setEntityBean(this);
+ this.cacheInvalidationConfig = cacheInvalidationConfig;
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/JBossEnvironmentRefsGroupMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/JBossEnvironmentRefsGroupMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/JBossEnvironmentRefsGroupMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,169 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.jboss;
+
+import org.jboss.ejb.metadata.spec.SecurityIdentityMetaData;
+import org.jboss.javaee.metadata.spec.EJBLocalReferencesMetaData;
+import org.jboss.javaee.metadata.spec.EJBReferencesMetaData;
+import org.jboss.javaee.metadata.spec.EnvironmentEntriesMetaData;
+import org.jboss.javaee.metadata.spec.EnvironmentRefsGroupMetaData;
+import org.jboss.javaee.metadata.spec.LifecycleCallbacksMetaData;
+import org.jboss.javaee.metadata.spec.MessageDestinationReferencesMetaData;
+import org.jboss.javaee.metadata.spec.PersistenceContextReferencesMetaData;
+import org.jboss.javaee.metadata.spec.PersistenceUnitReferencesMetaData;
+import org.jboss.javaee.metadata.spec.ResourceEnvironmentReferencesMetaData;
+import org.jboss.javaee.metadata.spec.ResourceReferencesMetaData;
+import org.jboss.xb.annotations.JBossXmlModelGroup;
+
+/**
+ * JBossEnvironmentRefsGroupMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at JBossXmlModelGroup(name="jbossJndiEnvironmentRefsGroup")
+public class JBossEnvironmentRefsGroupMetaData extends EnvironmentRefsGroupMetaData
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = 4642263968653845579L;
+
+ /** The security identity */
+ // This is only here because historically this was mixed in the environment xml
+ private SecurityIdentityMetaData securityIdentity;
+
+ /**
+ * Merge an environment
+ *
+ * @param jbossEnvironmentRefsGroup the override environment
+ * @param environmentRefsGroup the overriden environment
+ * @param overridenFile the overriden file name
+ * @param overrideFile the override file
+ * @return the merged environment
+ */
+ public static JBossEnvironmentRefsGroupMetaData merge(JBossEnvironmentRefsGroupMetaData jbossEnvironmentRefsGroup, EnvironmentRefsGroupMetaData environmentRefsGroup, String overridenFile, String overrideFile)
+ {
+ JBossEnvironmentRefsGroupMetaData merged = new JBossEnvironmentRefsGroupMetaData();
+
+ if (jbossEnvironmentRefsGroup == null && environmentRefsGroup == null)
+ return merged;
+
+ EnvironmentEntriesMetaData envEntries = null;
+ EJBReferencesMetaData ejbRefs = null;
+ EJBReferencesMetaData jbossEjbRefs = null;
+ EJBLocalReferencesMetaData ejbLocalRefs = null;
+ EJBLocalReferencesMetaData jbossEjbLocalRefs = null;
+ ResourceReferencesMetaData resRefs = null;
+ ResourceReferencesMetaData jbossResRefs = null;
+ ResourceEnvironmentReferencesMetaData resEnvRefs = null;
+ ResourceEnvironmentReferencesMetaData jbossResEnvRefs = null;
+ MessageDestinationReferencesMetaData messageDestinationRefs = null;
+ MessageDestinationReferencesMetaData jbossMessageDestinationRefs = null;
+ PersistenceContextReferencesMetaData persistenceContextRefs = null;
+ PersistenceUnitReferencesMetaData persistenceUnitRefs = null;
+ LifecycleCallbacksMetaData postConstructs = null;
+ LifecycleCallbacksMetaData preDestroys = null;
+
+ if (environmentRefsGroup != null)
+ {
+ envEntries = environmentRefsGroup.getEnvironmentEntries();
+ ejbRefs = environmentRefsGroup.getEjbReferences();
+ ejbLocalRefs = environmentRefsGroup.getEjbLocalReferences();
+ // ServiceRefs
+ resRefs = environmentRefsGroup.getResourceReferences();
+ resEnvRefs = environmentRefsGroup.getResourceEnvironmentReferences();
+ messageDestinationRefs = environmentRefsGroup.getMessageDestinationReferences();
+ persistenceContextRefs = environmentRefsGroup.getPersistenceContextRefs();
+ persistenceUnitRefs = environmentRefsGroup.getPersistenceUnitRefs();
+ postConstructs = environmentRefsGroup.getPostConstructs();
+ preDestroys = environmentRefsGroup.getPreDestroys();
+ }
+
+ if (jbossEnvironmentRefsGroup != null)
+ {
+ jbossEjbRefs = jbossEnvironmentRefsGroup.getEjbReferences();
+ jbossEjbLocalRefs = jbossEnvironmentRefsGroup.getEjbLocalReferences();
+ jbossResRefs = jbossEnvironmentRefsGroup.getResourceReferences();
+ jbossResEnvRefs = jbossEnvironmentRefsGroup.getResourceEnvironmentReferences();
+ jbossMessageDestinationRefs = jbossEnvironmentRefsGroup.getMessageDestinationReferences();
+ }
+
+ EJBReferencesMetaData mergedEjbRefs = EJBReferencesMetaData.merge(jbossEjbRefs, ejbRefs, overridenFile, overrideFile);
+ if (mergedEjbRefs != null)
+ merged.setEjbReferences(mergedEjbRefs);
+
+ EJBLocalReferencesMetaData mergedEjbLocalRefs = EJBLocalReferencesMetaData.merge(jbossEjbLocalRefs, ejbLocalRefs, overridenFile, overrideFile);
+ if (mergedEjbLocalRefs != null)
+ merged.setEjbLocalReferences(mergedEjbLocalRefs);
+
+ ResourceReferencesMetaData mergedResRefs = ResourceReferencesMetaData.merge(jbossResRefs, resRefs, overridenFile, overrideFile);
+ if (mergedResRefs != null)
+ merged.setResourceReferences(mergedResRefs);
+
+ ResourceEnvironmentReferencesMetaData mergedResEnvRefs = ResourceEnvironmentReferencesMetaData.merge(jbossResEnvRefs, resEnvRefs, overridenFile, overrideFile);
+ if (mergedResEnvRefs != null)
+ merged.setResourceEnvironmentReferences(mergedResEnvRefs);
+
+ MessageDestinationReferencesMetaData mergedMessageDestinationRefs = MessageDestinationReferencesMetaData.merge(jbossMessageDestinationRefs, messageDestinationRefs, overridenFile, overrideFile);
+ if (mergedMessageDestinationRefs != null)
+ merged.setMessageDestinationReferences(mergedMessageDestinationRefs);
+
+ if (envEntries != null)
+ merged.setEnvironmentEntries(envEntries);
+
+ if (persistenceContextRefs != null)
+ merged.setPersistenceContextRefs(persistenceContextRefs);
+
+ if (persistenceUnitRefs != null)
+ merged.setPersistenceUnitRefs(persistenceUnitRefs);
+
+ if (postConstructs != null)
+ merged.setPostConstructs(postConstructs);
+
+ if (preDestroys != null)
+ merged.setPreDestroys(preDestroys);
+
+ return merged;
+ }
+
+ /**
+ * Get the securityIdentity.
+ *
+ * @return the securityIdentity.
+ */
+ public SecurityIdentityMetaData getSecurityIdentity()
+ {
+ return securityIdentity;
+ }
+
+ /**
+ * Set the securityIdentity.
+ *
+ * @param securityIdentity the securityIdentity.
+ * @throws IllegalArgumentException for a null securityIdentity
+ */
+ public void setSecurityIdentity(SecurityIdentityMetaData securityIdentity)
+ {
+ if (securityIdentity == null)
+ throw new IllegalArgumentException("Null securityIdentity");
+ this.securityIdentity = securityIdentity;
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/JBossMessageDrivenBeanMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/JBossMessageDrivenBeanMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/JBossMessageDrivenBeanMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,297 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.jboss;
+
+import org.jboss.ejb.metadata.spec.ActivationConfigMetaData;
+import org.jboss.ejb.metadata.spec.MessageDrivenBeanMetaData;
+import org.jboss.ejb.metadata.spec.SecurityIdentityMetaData;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlTransient;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * MessageDrivenBeanMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlType(name="jboss-message-driven-beanType")
+public class JBossMessageDrivenBeanMetaData extends JBossEnterpriseBeanMetaData
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = -4006016148034278681L;
+
+ /** The destination jndi name */
+ private String destinationJndiName;
+
+ /** The mdb user id */
+ private String mdbUser;
+
+ /** The mdb password */
+ private String mdbPassword;
+
+ /** The mdb client id */
+ private String mdbClientId;
+
+ /** The mdb subscription id */
+ private String mdbSubscriptionId;
+
+ /** The resource adapter name */
+ private String resourceAdapterName;
+
+ /** The ejb timeout identity */
+ private SecurityIdentityMetaData ejbTimeoutIdentity;
+
+ /** The default activation config */
+ private ActivationConfigMetaData defaultActivationConfig;
+
+ /**
+ * Create a new MessageDrivenBeanMetaData.
+ */
+ public JBossMessageDrivenBeanMetaData()
+ {
+ // For serialization
+ }
+
+ @Override
+ public MessageDrivenBeanMetaData getOverridenMetaData()
+ {
+ return (MessageDrivenBeanMetaData) super.getOverridenMetaData();
+ }
+
+ @XmlTransient
+ public void setOverridenMetaData(MessageDrivenBeanMetaData data)
+ {
+ super.setOverridenMetaData(data);
+ }
+
+ @Override
+ public boolean isMessageDriven()
+ {
+ return true;
+ }
+
+ @Override
+ public String getDefaultConfigurationName()
+ {
+ boolean isJMS = true;
+ MessageDrivenBeanMetaData overriden = getOverridenMetaData();
+ if (overriden != null)
+ isJMS = overriden.isJMS();
+
+ if (isJMS == false)
+ return ContainerConfigurationMetaData.MESSAGE_INFLOW_DRIVEN;
+ else
+ return ContainerConfigurationMetaData.MESSAGE_DRIVEN;
+ }
+
+ @Override
+ public String getDefaultInvokerName()
+ {
+ return InvokerBindingMetaData.MESSAGE_DRIVEN;
+ }
+
+ /**
+ * Get the destinationJndiName.
+ *
+ * @return the destinationJndiName.
+ */
+ public String getDestinationJndiName()
+ {
+ return destinationJndiName;
+ }
+
+ /**
+ * Set the destinationJndiName.
+ *
+ * @param destinationJndiName the destinationJndiName.
+ * @throws IllegalArgumentException for a null destinationJndiName
+ */
+ public void setDestinationJndiName(String destinationJndiName)
+ {
+ if (destinationJndiName == null)
+ throw new IllegalArgumentException("Null destinationJndiName");
+ this.destinationJndiName = destinationJndiName;
+ }
+
+ /**
+ * Get the mdbUser.
+ *
+ * @return the mdbUser.
+ */
+ public String getMdbUser()
+ {
+ return mdbUser;
+ }
+
+ /**
+ * Set the mdbUser.
+ *
+ * @param mdbUser the mdbUser.
+ * @throws IllegalArgumentException for a null mdbUser
+ */
+ public void setMdbUser(String mdbUser)
+ {
+ if (mdbUser == null)
+ throw new IllegalArgumentException("Null mdbUser");
+ this.mdbUser = mdbUser;
+ }
+
+ /**
+ * Get the mdbPassword.
+ *
+ * @return the mdbPassword.
+ */
+ public String getMdbPassword()
+ {
+ return mdbPassword;
+ }
+
+ /**
+ * Set the mdbPassword.
+ *
+ * @param mdbPassword the mdbPassword.
+ * @throws IllegalArgumentException for a null mdbPassword
+ */
+ @XmlElement(name="mdb-passwd")
+ public void setMdbPassword(String mdbPassword)
+ {
+ if (mdbPassword == null)
+ throw new IllegalArgumentException("Null mdbPassword");
+ this.mdbPassword = mdbPassword;
+ }
+
+ /**
+ * Get the mdbClientId.
+ *
+ * @return the mdbClientId.
+ */
+ public String getMdbClientId()
+ {
+ return mdbClientId;
+ }
+
+ /**
+ * Set the mdbClientId.
+ *
+ * @param mdbClientId the mdbClientId.
+ * @throws IllegalArgumentException for a null mdbClientId
+ */
+ public void setMdbClientId(String mdbClientId)
+ {
+ if (mdbClientId == null)
+ throw new IllegalArgumentException("Null mdbClientId");
+ this.mdbClientId = mdbClientId;
+ }
+
+ /**
+ * Get the resourceAdapterName.
+ *
+ * @return the resourceAdapterName.
+ */
+ public String getResourceAdapterName()
+ {
+ return resourceAdapterName;
+ }
+
+ /**
+ * Set the resourceAdapterName.
+ *
+ * @param resourceAdapterName the resourceAdapterName.
+ * @throws IllegalArgumentException for a null resourceAdapterName
+ */
+ public void setResourceAdapterName(String resourceAdapterName)
+ {
+ if (resourceAdapterName == null)
+ throw new IllegalArgumentException("Null resourceAdapterName");
+ this.resourceAdapterName = resourceAdapterName;
+ }
+
+ /**
+ * Get the mdbSubscriptionId.
+ *
+ * @return the mdbSubscriptionId.
+ */
+ public String getMdbSubscriptionId()
+ {
+ return mdbSubscriptionId;
+ }
+
+ /**
+ * Set the mdbSubscriptionId.
+ *
+ * @param mdbSubscriptionId the mdbSubscriptionId.
+ * @throws IllegalArgumentException for a null mdbSubscriptionId
+ */
+ public void setMdbSubscriptionId(String mdbSubscriptionId)
+ {
+ if (mdbSubscriptionId == null)
+ throw new IllegalArgumentException("Null mdbSubscriptionId");
+ this.mdbSubscriptionId = mdbSubscriptionId;
+ }
+
+ /**
+ * Get the defaultActivationConfig.
+ *
+ * @return the defaultActivationConfig.
+ */
+ public ActivationConfigMetaData getDefaultActivationConfig()
+ {
+ return defaultActivationConfig;
+ }
+
+ /**
+ * Set the defaultActivationConfig.
+ *
+ * @param defaultActivationConfig the defaultActivationConfig.
+ * @throws IllegalArgumentException for a null defaultActivationConfig
+ */
+ public void setDefaultActivationConfig(ActivationConfigMetaData defaultActivationConfig)
+ {
+ if (defaultActivationConfig == null)
+ throw new IllegalArgumentException("Null defaultActivationConfig");
+ this.defaultActivationConfig = defaultActivationConfig;
+ }
+
+ /**
+ * Get the ejbTimeoutIdentity.
+ *
+ * @return the ejbTimeoutIdentity.
+ */
+ public SecurityIdentityMetaData getEjbTimeoutIdentity()
+ {
+ return ejbTimeoutIdentity;
+ }
+
+ /**
+ * Set the ejbTimeoutIdentity.
+ *
+ * @param ejbTimeoutIdentity the ejbTimeoutIdentity.
+ * @throws IllegalArgumentException for a null ejbTimeoutIdentity
+ */
+ public void setEjbTimeoutIdentity(SecurityIdentityMetaData ejbTimeoutIdentity)
+ {
+ if (ejbTimeoutIdentity == null)
+ throw new IllegalArgumentException("Null ejbTimeoutIdentity");
+ this.ejbTimeoutIdentity = ejbTimeoutIdentity;
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/JBossMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/JBossMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/JBossMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,492 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.jboss;
+
+import org.jboss.ejb.metadata.spec.EjbJarMetaData;
+import org.jboss.javaee.metadata.support.IdMetaDataImplWithDescriptionGroupWithOverride;
+import org.jboss.logging.Logger;
+import javax.xml.bind.annotation.XmlElement;
+
+/**
+ * JBossMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public class JBossMetaData extends IdMetaDataImplWithDescriptionGroupWithOverride<EjbJarMetaData>
+ // TODO LAST extends EjbJar30MetaData
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = 598759931857080298L;
+
+ /** The log */
+ private static final Logger log = Logger.getLogger(JBossMetaData.class);
+
+ /** The version */
+ private String version;
+
+ /** The loader repository */
+ private LoaderRepositoryMetaData loaderRepository;
+
+ /** The jmx name */
+ private String jmxName;
+
+ /** The security domain */
+ private String securityDomain;
+
+ /** Whether to exclude missing methods */
+ private boolean excludeMissingMethods = true;
+
+ /** The unauthenticated principal */
+ private String unauthenticatedPrincipal;
+
+ /** Whether to throw an exception when marked rollback */
+ private boolean exceptionOnRollback;
+
+ /** The webservices */
+ private WebservicesMetaData webservices;
+
+ /** The enterprise beans */
+ private JBossEnterpriseBeansMetaData enterpriseBeans;
+
+ /** The merged enterprise beans */
+ private JBossEnterpriseBeansMetaData mergedEnterpriseBeans;
+
+ /** The assembly descriptor */
+ private JBossAssemblyDescriptorMetaData assemblyDescriptor;
+
+ /** The merged assembly descriptor */
+ private JBossAssemblyDescriptorMetaData mergedAssemblyDescriptor;
+
+ /** The resource manager */
+ private ResourceManagersMetaData resourceManagers;
+
+ /** The invoker-proxy-bindings */
+ private InvokerProxyBindingsMetaData invokerProxyBindings;
+
+ /** The container configurations */
+ private ContainerConfigurationsMetaData containerConfigurations;
+
+ /**
+ * Create a new JBossMetaData.
+ */
+ public JBossMetaData()
+ {
+ // For serialization
+ }
+
+ /**
+ * Get the version.
+ *
+ * @return the version.
+ */
+ public String getVersion()
+ {
+ return version;
+ }
+
+ /**
+ * Set the version.
+ *
+ * @param version the version.
+ * @throws IllegalArgumentException for a null version
+ */
+ public void setVersion(String version)
+ {
+ if (version == null)
+ throw new IllegalArgumentException("Null version");
+ this.version = version;
+ }
+
+ /**
+ * Get the loaderRepository.
+ *
+ * @return the loaderRepository.
+ */
+ public LoaderRepositoryMetaData getLoaderRepository()
+ {
+ return loaderRepository;
+ }
+
+ /**
+ * Set the loaderRepository.
+ *
+ * @param loaderRepository the loaderRepository.
+ * @throws IllegalArgumentException for a null loaderRepository
+ */
+ public void setLoaderRepository(LoaderRepositoryMetaData loaderRepository)
+ {
+ if (loaderRepository == null)
+ throw new IllegalArgumentException("Null loaderRepository");
+ this.loaderRepository = loaderRepository;
+ }
+
+ /**
+ * Get the jmxName.
+ *
+ * @return the jmxName.
+ */
+ public String getJmxName()
+ {
+ return jmxName;
+ }
+
+ /**
+ * Set the jmxName.
+ *
+ * @param jmxName the jmxName.
+ * @throws IllegalArgumentException for a null jmxName
+ */
+ public void setJmxName(String jmxName)
+ {
+ if (jmxName == null)
+ throw new IllegalArgumentException("Null jmxName");
+ this.jmxName = jmxName;
+ }
+
+ /**
+ * Get the securityDomain.
+ *
+ * @return the securityDomain.
+ */
+ public String getSecurityDomain()
+ {
+ return securityDomain;
+ }
+
+ /**
+ * Set the securityDomain.
+ *
+ * @param securityDomain the securityDomain.
+ * @throws IllegalArgumentException for a null securityDomain
+ */
+ public void setSecurityDomain(String securityDomain)
+ {
+ if (securityDomain == null)
+ throw new IllegalArgumentException("Null securityDomain");
+ this.securityDomain = securityDomain;
+ }
+
+ /**
+ * Get the excludeMissingMethods.
+ *
+ * @return the excludeMissingMethods.
+ */
+ public boolean isExcludeMissingMethods()
+ {
+ return excludeMissingMethods;
+ }
+
+ /**
+ * Set the excludeMissingMethods.
+ *
+ * @param excludeMissingMethods the excludeMissingMethods.
+ */
+ @XmlElement(name="missing-method-permissions-excluded-mode")
+ public void setExcludeMissingMethods(boolean excludeMissingMethods)
+ {
+ this.excludeMissingMethods = excludeMissingMethods;
+ }
+
+ /**
+ * Get the unauthenticatedPrincipal.
+ *
+ * @return the unauthenticatedPrincipal.
+ */
+ public String getUnauthenticatedPrincipal()
+ {
+ return unauthenticatedPrincipal;
+ }
+
+ /**
+ * Set the unauthenticatedPrincipal.
+ *
+ * @param unauthenticatedPrincipal the unauthenticatedPrincipal.
+ * @throws IllegalArgumentException for a null unauthenticatedPrincipal
+ */
+ public void setUnauthenticatedPrincipal(String unauthenticatedPrincipal)
+ {
+ if (unauthenticatedPrincipal == null)
+ throw new IllegalArgumentException("Null unauthenticatedPrincipal");
+ this.unauthenticatedPrincipal = unauthenticatedPrincipal;
+ }
+
+ /**
+ * Get the exceptionOnRollback.
+ *
+ * @return the exceptionOnRollback.
+ */
+ public boolean isExceptionOnRollback()
+ {
+ return exceptionOnRollback;
+ }
+
+ /**
+ * Set the exceptionOnRollback.
+ *
+ * @param exceptionOnRollback the exceptionOnRollback.
+ */
+ public void setExceptionOnRollback(boolean exceptionOnRollback)
+ {
+ this.exceptionOnRollback = exceptionOnRollback;
+ }
+
+ /**
+ * Get the merged enterpriseBeans.
+ *
+ * @return the merged enterpriseBeans.
+ */
+ public JBossEnterpriseBeansMetaData getMergedEnterpriseBeans()
+ {
+ if (mergedEnterpriseBeans != null)
+ return mergedEnterpriseBeans;
+ mergedEnterpriseBeans = JBossEnterpriseBeansMetaData.merge(enterpriseBeans, getOverridenMetaDataWithCheck().getEnterpriseBeans());
+ mergedEnterpriseBeans.setJBossMetaData(this);
+ return mergedEnterpriseBeans;
+ }
+
+ /**
+ * Get a merged enterprise bean
+ *
+ * @param name the name
+ * @return the container configuration
+ */
+ public JBossEnterpriseBeanMetaData getMergedEnterpriseBean(String name)
+ {
+ return getMergedEnterpriseBeans().get(name);
+ }
+
+ /**
+ * Get the enterpriseBeans.
+ *
+ * @return the enterpriseBeans.
+ */
+ public JBossEnterpriseBeansMetaData getEnterpriseBeans()
+ {
+ return enterpriseBeans;
+ }
+
+ /**
+ * Set the enterpriseBeans.
+ *
+ * @param enterpriseBeans the enterpriseBeans.
+ * @throws IllegalArgumentException for a null enterpriseBeans
+ */
+ public void setEnterpriseBeans(JBossEnterpriseBeansMetaData enterpriseBeans)
+ {
+ if (enterpriseBeans == null)
+ throw new IllegalArgumentException("Null enterpriseBeans");
+ this.enterpriseBeans = enterpriseBeans;
+ enterpriseBeans.setJBossMetaData(this);
+ }
+
+ /**
+ * Get an enterprise bean
+ *
+ * @param name the name
+ * @return the container configuration
+ */
+ public JBossEnterpriseBeanMetaData getEnterpriseBean(String name)
+ {
+ if (enterpriseBeans == null)
+ return null;
+ return enterpriseBeans.get(name);
+ }
+
+ /**
+ * Set the enforceEjbRestrictions.
+ *
+ * @param enforceEjbRestrictions the enforceEjbRestrictions.
+ * @throws IllegalArgumentException for a null enforceEjbRestrictions
+ */
+ public void setEnforceEjbRestrictions(String enforceEjbRestrictions)
+ {
+ log.warn("<enforce-ejb-restrictions/> in jboss.xml is no longer used and will be removed in a future version.");
+ }
+
+ /**
+ * Get the webservices.
+ *
+ * @return the webservices.
+ */
+ public WebservicesMetaData getWebservices()
+ {
+ return webservices;
+ }
+
+ /**
+ * Set the webservices.
+ *
+ * @param webservices the webservices.
+ * @throws IllegalArgumentException for a null webservices
+ */
+ public void setWebservices(WebservicesMetaData webservices)
+ {
+ if (webservices == null)
+ throw new IllegalArgumentException("Null webservices");
+ this.webservices = webservices;
+ }
+
+ /**
+ * Get the containerConfigurations.
+ *
+ * @return the containerConfigurations.
+ */
+ public ContainerConfigurationsMetaData getContainerConfigurations()
+ {
+ return containerConfigurations;
+ }
+
+ /**
+ * Set the containerConfigurations.
+ *
+ * @param containerConfigurations the containerConfigurations.
+ * @throws IllegalArgumentException for a null containerConfigurations
+ */
+ public void setContainerConfigurations(ContainerConfigurationsMetaData containerConfigurations)
+ {
+ if (containerConfigurations == null)
+ throw new IllegalArgumentException("Null containerConfigurations");
+ this.containerConfigurations = containerConfigurations;
+ }
+
+ /**
+ * Get a container configuration
+ *
+ * @param name the name
+ * @return the container configuration
+ */
+ public ContainerConfigurationMetaData getContainerConfiguration(String name)
+ {
+ if (containerConfigurations == null)
+ return null;
+ return containerConfigurations.get(name);
+ }
+
+ /**
+ * Get the invokerProxyBindings.
+ *
+ * @return the invokerProxyBindings.
+ */
+ public InvokerProxyBindingsMetaData getInvokerProxyBindings()
+ {
+ return invokerProxyBindings;
+ }
+
+ /**
+ * Set the invokerProxyBindings.
+ *
+ * @param invokerProxyBindings the invokerProxyBindings.
+ * @throws IllegalArgumentException for a null invokerProxyBindings
+ */
+ public void setInvokerProxyBindings(InvokerProxyBindingsMetaData invokerProxyBindings)
+ {
+ if (invokerProxyBindings == null)
+ throw new IllegalArgumentException("Null invokerProxyBindings");
+ this.invokerProxyBindings = invokerProxyBindings;
+ }
+
+ /**
+ * Get an invoker proxy binding
+ *
+ * @param name the name
+ * @return the invoker proxy binding
+ */
+ public InvokerProxyBindingMetaData getInvokerProxyBinding(String name)
+ {
+ if (invokerProxyBindings == null)
+ return null;
+ return invokerProxyBindings.get(name);
+ }
+
+ /**
+ * Get the resourceManagers.
+ *
+ * @return the resourceManagers.
+ */
+ public ResourceManagersMetaData getResourceManagers()
+ {
+ return resourceManagers;
+ }
+
+ /**
+ * Set the resourceManagers.
+ *
+ * @param resourceManagers the resourceManagers.
+ * @throws IllegalArgumentException for a null resourceManagers
+ */
+ public void setResourceManagers(ResourceManagersMetaData resourceManagers)
+ {
+ if (resourceManagers == null)
+ throw new IllegalArgumentException("Null resourceManagers");
+ this.resourceManagers = resourceManagers;
+ }
+
+ /**
+ * Get a resource manager
+ *
+ * @param name the name
+ * @return the resource manager
+ */
+ public ResourceManagerMetaData getResourceManager(String name)
+ {
+ if (resourceManagers == null)
+ return null;
+ return resourceManagers.get(name);
+ }
+
+ /**
+ * Get the merged assembly descriptor
+ *
+ * @return the merged assembly descriptor.
+ */
+ public JBossAssemblyDescriptorMetaData getMergedAssemblyDescriptor()
+ {
+ if (mergedAssemblyDescriptor != null)
+ return mergedAssemblyDescriptor;
+ mergedAssemblyDescriptor = JBossAssemblyDescriptorMetaData.merge(assemblyDescriptor, getOverridenMetaDataWithCheck().getAssemblyDescriptor());
+ return mergedAssemblyDescriptor;
+ }
+
+ /**
+ * Get the assemblyDescriptor.
+ *
+ * @return the assemblyDescriptor.
+ */
+ public JBossAssemblyDescriptorMetaData getAssemblyDescriptor()
+ {
+ return assemblyDescriptor;
+ }
+
+ /**
+ * Set the assemblyDescriptor.
+ *
+ * @param assemblyDescriptor the assemblyDescriptor.
+ * @throws IllegalArgumentException for a null assemblyDescriptor
+ */
+ public void setAssemblyDescriptor(JBossAssemblyDescriptorMetaData assemblyDescriptor)
+ {
+ if (assemblyDescriptor == null)
+ throw new IllegalArgumentException("Null assemblyDescriptor");
+ this.assemblyDescriptor = assemblyDescriptor;
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/JBossSessionBeanMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/JBossSessionBeanMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/JBossSessionBeanMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,352 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.jboss;
+
+import org.jboss.ejb.metadata.spec.SecurityIdentityMetaData;
+import org.jboss.ejb.metadata.spec.SessionBeanMetaData;
+import javax.xml.bind.annotation.XmlTransient;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * SessionBeanMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlType(name="jboss-session-beanType")
+public class JBossSessionBeanMetaData extends JBossEnterpriseBeanMetaData
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = 720735017632869718L;
+
+ /** The jndi name */
+ private String jndiName;
+
+ /** Whether to call by value */
+ private boolean callByValue;
+
+ /** The remote binding */
+ private RemoteBindingMetaData remoteBinding;
+
+ /** Whether this bean is clustered */
+ private boolean clustered;
+
+ /** The cluster config */
+ private ClusterConfigMetaData clusterConfig;
+
+ /** The determined cluster config */
+ private transient ClusterConfigMetaData determinedClusterConfig;
+
+ // TODO webservice port-component
+
+ /** The ejb timeout identity */
+ private SecurityIdentityMetaData ejbTimeoutIdentity;
+
+ // TODO DOM cache config
+
+ /** Whether the bean is concurrent */
+ private boolean concurrent = false;
+
+ /**
+ * Create a new SessionBeanMetaData.
+ */
+ public JBossSessionBeanMetaData()
+ {
+ // For serialization
+ }
+
+ @Override
+ public SessionBeanMetaData getOverridenMetaData()
+ {
+ return (SessionBeanMetaData) super.getOverridenMetaData();
+ }
+
+ @XmlTransient
+ public void setOverridenMetaData(SessionBeanMetaData data)
+ {
+ super.setOverridenMetaData(data);
+ }
+
+ @Override
+ public boolean isSession()
+ {
+ return true;
+ }
+
+ @Override
+ public String getDefaultConfigurationName()
+ {
+ boolean stateful = false;
+ SessionBeanMetaData overriden = getOverridenMetaData();
+ if (overriden != null)
+ stateful = overriden.isStateful();
+
+ if (stateful)
+ {
+ if (isClustered())
+ return ContainerConfigurationMetaData.CLUSTERED_STATEFUL;
+ else
+ return ContainerConfigurationMetaData.STATEFUL;
+ }
+ else
+ {
+ if (isClustered())
+ return ContainerConfigurationMetaData.CLUSTERED_STATELESS;
+ else
+ return ContainerConfigurationMetaData.STATELESS;
+ }
+ }
+
+ @Override
+ public String getDefaultInvokerName()
+ {
+ boolean stateful = false;
+ SessionBeanMetaData overriden = getOverridenMetaData();
+ if (overriden != null)
+ stateful = overriden.isStateful();
+
+ if (stateful)
+ {
+ if (isClustered())
+ return InvokerBindingMetaData.CLUSTERED_STATEFUL;
+ else
+ return InvokerBindingMetaData.STATEFUL;
+ }
+ else
+ {
+ if (isClustered())
+ return InvokerBindingMetaData.CLUSTERED_STATELESS;
+ else
+ return InvokerBindingMetaData.STATELESS;
+ }
+ }
+
+ /**
+ * Get the jndiName.
+ *
+ * @return the jndiName.
+ */
+ public String getJndiName()
+ {
+ return jndiName;
+ }
+
+ /**
+ * Set the jndiName.
+ *
+ * @param jndiName the jndiName.
+ * @throws IllegalArgumentException for a null jndiName
+ */
+ public void setJndiName(String jndiName)
+ {
+ if (jndiName == null)
+ throw new IllegalArgumentException("Null jndiName");
+ this.jndiName = jndiName;
+ }
+
+ /**
+ * Determine the jndi name
+ *
+ * @return the jndi name
+ */
+ public String determineJndiName()
+ {
+ if (jndiName != null)
+ return jndiName;
+
+ SessionBeanMetaData overriden = getOverridenMetaData();
+ if (overriden != null)
+ {
+ String mapped = overriden.getMappedName();
+ if (mapped != null)
+ return mapped;
+ }
+ return getEjbName();
+ }
+
+ @Override
+ public String getContainerObjectNameJndiName()
+ {
+ boolean remote = false;
+ SessionBeanMetaData session = getOverridenMetaData();
+ if (session != null && session.getHome() != null)
+ remote = true;
+ return remote ? determineJndiName() : getLocalJndiName();
+ }
+
+ @Override
+ protected String getDefaultInvokerJndiName()
+ {
+ return determineJndiName();
+ }
+
+ /**
+ * Get the callByValue.
+ *
+ * @return the callByValue.
+ */
+ public boolean isCallByValue()
+ {
+ return callByValue;
+ }
+
+ /**
+ * Set the callByValue.
+ *
+ * @param callByValue the callByValue.
+ */
+ public void setCallByValue(boolean callByValue)
+ {
+ this.callByValue = callByValue;
+ }
+
+ /**
+ * Get the clustered.
+ *
+ * @return the clustered.
+ */
+ public boolean isClustered()
+ {
+ return clustered;
+ }
+
+ /**
+ * Set the clustered.
+ *
+ * @param clustered the clustered.
+ */
+ public void setClustered(boolean clustered)
+ {
+ this.clustered = clustered;
+ }
+
+ /**
+ * Get the concurrent.
+ *
+ * @return the concurrent.
+ */
+ public boolean isConcurrent()
+ {
+ return concurrent;
+ }
+
+ /**
+ * Set the concurrent.
+ *
+ * @param concurrent the concurrent.
+ */
+ public void setConcurrent(boolean concurrent)
+ {
+ this.concurrent = concurrent;
+ }
+
+ /**
+ * Get the ejbTimeoutIdentity.
+ *
+ * @return the ejbTimeoutIdentity.
+ */
+ public SecurityIdentityMetaData getEjbTimeoutIdentity()
+ {
+ return ejbTimeoutIdentity;
+ }
+
+ /**
+ * Set the ejbTimeoutIdentity.
+ *
+ * @param ejbTimeoutIdentity the ejbTimeoutIdentity.
+ * @throws IllegalArgumentException for a null ejbTimeoutIdentity
+ */
+ public void setEjbTimeoutIdentity(SecurityIdentityMetaData ejbTimeoutIdentity)
+ {
+ if (ejbTimeoutIdentity == null)
+ throw new IllegalArgumentException("Null ejbTimeoutIdentity");
+ this.ejbTimeoutIdentity = ejbTimeoutIdentity;
+ }
+
+ /**
+ * Get the clusterConfig.
+ *
+ * @return the clusterConfig.
+ */
+ public ClusterConfigMetaData getClusterConfig()
+ {
+ return clusterConfig;
+ }
+
+ /**
+ * Determine the clusterConfig.
+ *
+ * @return the clusterConfig.
+ */
+ public ClusterConfigMetaData determineClusterConfig()
+ {
+ if (determinedClusterConfig != null)
+ return determinedClusterConfig;
+ determinedClusterConfig = clusterConfig;
+ if (determinedClusterConfig == null)
+ {
+ ContainerConfigurationMetaData container = determineContainerConfiguration();
+ if (container != null)
+ determinedClusterConfig = container.getClusterConfig();
+ }
+ if (determinedClusterConfig == null)
+ determinedClusterConfig = new ClusterConfigMetaData();
+ return determinedClusterConfig;
+ }
+
+ /**
+ * Set the clusterConfig.
+ *
+ * @param clusterConfig the clusterConfig.
+ * @throws IllegalArgumentException for a null clusterConfig
+ */
+ public void setClusterConfig(ClusterConfigMetaData clusterConfig)
+ {
+ if (clusterConfig == null)
+ throw new IllegalArgumentException("Null clusterConfig");
+ clusterConfig.setEnterpriseBeanMetaData(this);
+ this.clusterConfig = clusterConfig;
+ }
+
+ /**
+ * Get the remoteBinding.
+ *
+ * @return the remoteBinding.
+ */
+ public RemoteBindingMetaData getRemoteBinding()
+ {
+ return remoteBinding;
+ }
+
+ /**
+ * Set the remoteBinding.
+ *
+ * @param remoteBinding the remoteBinding.
+ * @throws IllegalArgumentException for a null remoteBinding
+ */
+ public void setRemoteBinding(RemoteBindingMetaData remoteBinding)
+ {
+ if (remoteBinding == null)
+ throw new IllegalArgumentException("Null remoteBinding");
+ this.remoteBinding = remoteBinding;
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/LoaderRepositoryConfigMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/LoaderRepositoryConfigMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/LoaderRepositoryConfigMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,103 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.jboss;
+
+import org.jboss.javaee.metadata.support.IdMetaDataImpl;
+
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+
+/**
+ * LoaderRepositoryConfigMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlType(name="loader-repository-configType")
+public class LoaderRepositoryConfigMetaData extends IdMetaDataImpl
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = 8691106200687695652L;
+
+ /** The config parser class */
+ private String configParserClass;
+
+ /** The config */
+ private String config; // TODO DOM!
+
+ /**
+ * Create a new LoaderRepositoryConfigMetaData.
+ */
+ public LoaderRepositoryConfigMetaData()
+ {
+ // For serialization
+ }
+
+ /**
+ * Get the configParserClass.
+ *
+ * @return the configParserClass.
+ */
+ public String getConfigParserClass()
+ {
+ return configParserClass;
+ }
+
+ /**
+ * Set the configParserClass.
+ *
+ * @param configParserClass the configParserClass.
+ * @throws IllegalArgumentException for a null configParserClass
+ */
+ @XmlAttribute(name="configParserClass")
+ public void setConfigParserClass(String configParserClass)
+ {
+ if (configParserClass == null)
+ throw new IllegalArgumentException("Null configParserClass");
+ this.configParserClass = configParserClass;
+ }
+
+ /**
+ * Get the config.
+ *
+ * @return the config.
+ */
+ @XmlValue
+ public String getConfig()
+ {
+ return config;
+ }
+
+ /**
+ * Set the config.
+ *
+ * @param config the config.
+ * @throws IllegalArgumentException for a null config
+ */
+ public void setConfig(String config)
+ {
+ if (config == null)
+ throw new IllegalArgumentException("Null config");
+ this.config = config;
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/LoaderRepositoryMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/LoaderRepositoryMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/LoaderRepositoryMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,134 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.jboss;
+
+import java.util.Set;
+
+import org.jboss.javaee.metadata.support.IdMetaDataImpl;
+import org.jboss.javaee.metadata.support.NonNullLinkedHashSet;
+
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+
+/**
+ * LoaderRepositoryMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlType(name="loader-repositoryType")
+public class LoaderRepositoryMetaData extends IdMetaDataImpl
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = -8560208691041447012L;
+
+ /** The repository class */
+ private String loaderRepositoryClass;
+
+ /** The name */
+ private String name;
+
+ /** The config */
+ private Set<LoaderRepositoryConfigMetaData> loaderRepositoryConfig;
+
+ /**
+ * Create a new LoaderRepositoryConfigMetaData.
+ */
+ public LoaderRepositoryMetaData()
+ {
+ // For serialization
+ }
+
+ /**
+ * Get the loaderRepositoryClass.
+ *
+ * @return the loaderRepositoryClass.
+ */
+ public String getLoaderRepositoryClass()
+ {
+ return loaderRepositoryClass;
+ }
+
+ /**
+ * Set the loaderRepositoryClass.
+ *
+ * @param loaderRepositoryClass the loaderRepositoryClass.
+ * @throws IllegalArgumentException for a null loaderRepositoryClass
+ */
+ @XmlAttribute(name="loaderRepositoryClass") // TODO JBossXB default attribute names!
+ public void setLoaderRepositoryClass(String loaderRepositoryClass)
+ {
+ if (loaderRepositoryClass == null)
+ throw new IllegalArgumentException("Null loaderRepositoryClass");
+ this.loaderRepositoryClass = loaderRepositoryClass;
+ }
+
+ /**
+ * Get the loaderRepositoryConfig.
+ *
+ * @return the loaderRepositoryConfig.
+ */
+ public Set<LoaderRepositoryConfigMetaData> getLoaderRepositoryConfig()
+ {
+ return loaderRepositoryConfig;
+ }
+
+ /**
+ * Set the loaderRepositoryConfig.
+ *
+ * @param loaderRepositoryConfig the loaderRepositoryConfig.
+ * @throws IllegalArgumentException for a null loaderRepositoryConfig
+ */
+ @XmlElement(type=NonNullLinkedHashSet.class)
+ public void setLoaderRepositoryConfig(Set<LoaderRepositoryConfigMetaData> loaderRepositoryConfig)
+ {
+ if (loaderRepositoryConfig == null)
+ throw new IllegalArgumentException("Null loaderRepositoryConfig");
+ this.loaderRepositoryConfig = loaderRepositoryConfig;
+ }
+
+ /**
+ * Get the name.
+ *
+ * @return the name.
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * Set the name.
+ *
+ * @param name the name.
+ * @throws IllegalArgumentException for a null name
+ */
+ @XmlValue
+ public void setName(String name)
+ {
+ if (name == null)
+ throw new IllegalArgumentException("Null name");
+ this.name = name;
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/MethodAttributeMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/MethodAttributeMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/MethodAttributeMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,168 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.jboss;
+
+import org.jboss.javaee.metadata.support.NamedMetaData;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * MethodAttributeMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlType(name="jboss-methodType")
+public class MethodAttributeMetaData extends NamedMetaData
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = 8484757755955187189L;
+
+ /** The default methods attributes */
+ public static final MethodAttributeMetaData DEFAULT;
+
+ static
+ {
+ DEFAULT = new MethodAttributeMetaData();
+ DEFAULT.setMethodName("*");
+ }
+
+ /** Whether the method is read only */
+ private boolean readOnly;
+
+ /** Whether the method is idempotent */
+ private boolean idempotent;
+
+ /** The transaction timeout */
+ private int transactionTimeout;
+
+ /**
+ * Get the methodName.
+ *
+ * @return the methodName.
+ */
+ public String getMethodName()
+ {
+ return getName();
+ }
+
+ /**
+ * Set the methodName.
+ *
+ * @param methodName the methodName.
+ * @throws IllegalArgumentException for a null methodName
+ */
+ public void setMethodName(String methodName)
+ {
+ setName(methodName);
+ }
+
+ /**
+ * Get the readOnly.
+ *
+ * @return the readOnly.
+ */
+ public boolean isReadOnly()
+ {
+ return readOnly;
+ }
+
+ /**
+ * Set the readOnly.
+ *
+ * @param readOnly the readOnly.
+ */
+ public void setReadOnly(boolean readOnly)
+ {
+ this.readOnly = readOnly;
+ }
+
+ /**
+ * Get the idempotent.
+ *
+ * @return the idempotent.
+ */
+ public boolean isIdempotent()
+ {
+ return idempotent;
+ }
+
+ /**
+ * Set the idempotent.
+ *
+ * @param idempotent the idempotent.
+ */
+ public void setIdempotent(boolean idempotent)
+ {
+ this.idempotent = idempotent;
+ }
+
+ /**
+ * Get the transactionTimeout.
+ *
+ * @return the transactionTimeout.
+ */
+ public int getTransactionTimeout()
+ {
+ return transactionTimeout;
+ }
+
+ /**
+ * Set the transactionTimeout.
+ *
+ * @param transactionTimeout the transactionTimeout.
+ */
+ public void setTransactionTimeout(int transactionTimeout)
+ {
+ this.transactionTimeout = transactionTimeout;
+ }
+
+ /**
+ * Whether this matches the method name
+ *
+ * @param methodName the method name
+ * @return true for a match
+ */
+ public boolean matches(String methodName)
+ {
+ if (methodName == null)
+ return false;
+
+ int ct, end;
+
+ String pattern = getMethodName();
+
+ end = pattern.length();
+
+ if(end > methodName.length())
+ return false;
+
+ for(ct = 0; ct < end; ct ++)
+ {
+ char c = pattern.charAt(ct);
+ if(c == '*')
+ return true;
+ if(c != methodName.charAt(ct))
+ return false;
+ }
+ return ct == methodName.length();
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/MethodAttributesMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/MethodAttributesMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/MethodAttributesMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,107 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.jboss;
+
+import java.util.concurrent.ConcurrentHashMap;
+
+import org.jboss.javaee.metadata.support.AbstractMappedMetaData;
+import javax.xml.bind.annotation.XmlType;
+
+ at XmlType(name="method-attributesType")
+public class MethodAttributesMetaData extends AbstractMappedMetaData<MethodAttributeMetaData>
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = 4074287842839442989L;
+
+ /** The cache */
+ private transient ConcurrentHashMap<String, MethodAttributeMetaData> cache;
+
+ /**
+ * Create a new MethodAttributesMetaData.
+ */
+ public MethodAttributesMetaData()
+ {
+ super("method-name for method attributes");
+ }
+
+ /**
+ * Is this method a read-only method
+ *
+ * @param methodName the method name
+ * @return true for read only
+ */
+ public boolean isMethodReadOnly(String methodName)
+ {
+ MethodAttributeMetaData attribute = getMethodAttribute(methodName);
+ return attribute.isReadOnly();
+ }
+
+ /**
+ * Get the transaction timeout for the method
+ *
+ * @param methodName the method name
+ * @return the transaction timeout
+ */
+ public int getMethodTransactionTimeout(String methodName)
+ {
+ MethodAttributeMetaData attribute = getMethodAttribute(methodName);
+ return attribute.getTransactionTimeout();
+ }
+
+ /**
+ * Get the attributes for the method
+ *
+ * @param methodName the method name
+ * @return the attributes
+ */
+ public MethodAttributeMetaData getMethodAttribute(String methodName)
+ {
+ if (methodName == null)
+ return MethodAttributeMetaData.DEFAULT;
+
+ MethodAttributeMetaData result = null;
+ if (cache != null)
+ {
+ result = cache.get(methodName);
+ if (result != null)
+ return result;
+ }
+
+ for (MethodAttributeMetaData attribute : this)
+ {
+ if (attribute.matches(methodName))
+ {
+ result = attribute;
+ break;
+ }
+ }
+
+ if (result == null)
+ result = MethodAttributeMetaData.DEFAULT;
+
+ if (cache == null)
+ cache = new ConcurrentHashMap<String, MethodAttributeMetaData>();
+ cache.put(methodName, result);
+
+ return result;
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/RemoteBindingMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/RemoteBindingMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/RemoteBindingMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,142 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.jboss;
+
+import org.jboss.javaee.metadata.support.IdMetaDataImplWithDescriptions;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * RemoteBindingMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlType(name="remote-bindingType")
+public class RemoteBindingMetaData extends IdMetaDataImplWithDescriptions
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = 5521570230026108413L;
+
+ /** The jndi name */
+ private String jndiName;
+
+ /** The client bind url */
+ private String clientBindUrl;
+
+ /** The interceptor stack */
+ private String interceptorStack;
+
+ /** The proxy factory */
+ private String proxyFactory;
+
+ /**
+ * Get the jndiName.
+ *
+ * @return the jndiName.
+ */
+ public String getJndiName()
+ {
+ return jndiName;
+ }
+
+ /**
+ * Set the jndiName.
+ *
+ * @param jndiName the jndiName.
+ * @throws IllegalArgumentException for a null jndiName
+ */
+ public void setJndiName(String jndiName)
+ {
+ if (jndiName == null)
+ throw new IllegalArgumentException("Null jndiName");
+ this.jndiName = jndiName;
+ }
+
+ /**
+ * Get the clientBindUrl.
+ *
+ * @return the clientBindUrl.
+ */
+ public String getClientBindUrl()
+ {
+ return clientBindUrl;
+ }
+
+ /**
+ * Set the clientBindUrl.
+ *
+ * @param clientBindUrl the clientBindUrl.
+ * @throws IllegalArgumentException for a null clientBindUrl
+ */
+ public void setClientBindUrl(String clientBindUrl)
+ {
+ if (clientBindUrl == null)
+ throw new IllegalArgumentException("Null clientBindUrl");
+ this.clientBindUrl = clientBindUrl;
+ }
+
+ /**
+ * Get the interceptorStack.
+ *
+ * @return the interceptorStack.
+ */
+ public String getInterceptorStack()
+ {
+ return interceptorStack;
+ }
+
+ /**
+ * Set the interceptorStack.
+ *
+ * @param interceptorStack the interceptorStack.
+ * @throws IllegalArgumentException for a null interceptorStack
+ */
+ public void setInterceptorStack(String interceptorStack)
+ {
+ if (interceptorStack == null)
+ throw new IllegalArgumentException("Null interceptorStack");
+ this.interceptorStack = interceptorStack;
+ }
+
+ /**
+ * Get the proxyFactory.
+ *
+ * @return the proxyFactory.
+ */
+ public String getProxyFactory()
+ {
+ return proxyFactory;
+ }
+
+ /**
+ * Set the proxyFactory.
+ *
+ * @param proxyFactory the proxyFactory.
+ * @throws IllegalArgumentException for a null proxyFactory
+ */
+ public void setProxyFactory(String proxyFactory)
+ {
+ if (proxyFactory == null)
+ throw new IllegalArgumentException("Null proxyFactory");
+ this.proxyFactory = proxyFactory;
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/ResourceManagerMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/ResourceManagerMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/ResourceManagerMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,150 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.jboss;
+
+import org.jboss.javaee.metadata.support.NamedMetaDataWithDescriptions;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * ResourceManagerMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlType(name="resource-managerType")
+public class ResourceManagerMetaData extends NamedMetaDataWithDescriptions
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = 244708249262277696L;
+
+ /** The resource class */
+ private String resClass;
+
+ /** The resource jndi name */
+ private String resJndiName;
+
+ /** The resource url */
+ private String resUrl;
+
+ /**
+ * Get the resName.
+ *
+ * @return the resName.
+ */
+ public String getResName()
+ {
+ return getName();
+ }
+
+ /**
+ * Set the resName.
+ *
+ * @param resName the resName.
+ * @throws IllegalArgumentException for a null resName
+ */
+ public void setResName(String resName)
+ {
+ setName(resName);
+ }
+
+ /**
+ * Get the resClass.
+ *
+ * @return the resClass.
+ */
+ public String getResClass()
+ {
+ return resClass;
+ }
+
+ /**
+ * Set the resClass.
+ *
+ * @param resClass the resClass.
+ * @throws IllegalArgumentException for a null resClass
+ */
+ public void setResClass(String resClass)
+ {
+ if (resClass == null)
+ throw new IllegalArgumentException("Null resClass");
+ this.resClass = resClass;
+ }
+
+ /**
+ * Get the resJndiName.
+ *
+ * @return the resJndiName.
+ */
+ public String getResJndiName()
+ {
+ return resJndiName;
+ }
+
+ /**
+ * Set the resJndiName.
+ *
+ * @param resJndiName the resJndiName.
+ * @throws IllegalArgumentException for a null resJndiName
+ */
+ public void setResJndiName(String resJndiName)
+ {
+ if (resJndiName == null)
+ throw new IllegalArgumentException("Null resJndiName");
+ this.resJndiName = resJndiName;
+ }
+
+ /**
+ * Get the resUrl.
+ *
+ * @return the resUrl.
+ */
+ public String getResUrl()
+ {
+ return resUrl;
+ }
+
+ /**
+ * Set the resUrl.
+ *
+ * @param resUrl the resUrl.
+ * @throws IllegalArgumentException for a null resUrl
+ */
+ public void setResUrl(String resUrl)
+ {
+ if (resUrl == null)
+ throw new IllegalArgumentException("Null resUrl");
+ this.resUrl = resUrl;
+ }
+
+ /**
+ * Get the resource
+ *
+ * @return the resource
+ */
+ public String getResource()
+ {
+ if (resJndiName != null)
+ return resJndiName;
+ else
+ return resUrl;
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/ResourceManagersMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/ResourceManagersMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/ResourceManagersMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,46 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.jboss;
+
+import org.jboss.javaee.metadata.support.MappedMetaDataWithDescriptions;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * ResourceManagersMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlType(name="resource-managersType")
+public class ResourceManagersMetaData extends MappedMetaDataWithDescriptions<ResourceManagerMetaData>
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = -4930331173512895612L;
+
+ /**
+ * Create a new ResourceManagersMetaData.
+ */
+ public ResourceManagersMetaData()
+ {
+ super("res-name for resource manager");
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/WebserviceDescriptionMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/WebserviceDescriptionMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/WebserviceDescriptionMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,137 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.jboss;
+
+import org.jboss.javaee.metadata.support.NamedMetaData;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * WebservicesDescriptionMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlType(name="webservice-descriptionType")
+public class WebserviceDescriptionMetaData extends NamedMetaData
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = -3783036458417091083L;
+
+ /** The context name */
+ private String configName;
+
+ /** The context file */
+ private String configFile;
+
+ /** The wsdl publish location */
+ private String wsdlPublishLocation;
+
+ /**
+ * Get the webservicesDescriptionName.
+ *
+ * @return the webservicesDescriptionName.
+ */
+ public String getWebserviceDescriptionName()
+ {
+ return getName();
+ }
+
+ /**
+ * Set the webservicesDescriptionName.
+ *
+ * @param webservicesDescriptionName the webservicesDescriptionName.
+ * @throws IllegalArgumentException for a null webservicesDescriptionName
+ */
+ public void setWebserviceDescriptionName(String webservicesDescriptionName)
+ {
+ setName(webservicesDescriptionName);
+ }
+
+ /**
+ * Get the configName.
+ *
+ * @return the configName.
+ */
+ public String getConfigName()
+ {
+ return configName;
+ }
+
+ /**
+ * Set the configName.
+ *
+ * @param configName the configName.
+ * @throws IllegalArgumentException for a null configName
+ */
+ public void setConfigName(String configName)
+ {
+ if (configName == null)
+ throw new IllegalArgumentException("Null configName");
+ this.configName = configName;
+ }
+
+ /**
+ * Get the configFile.
+ *
+ * @return the configFile.
+ */
+ public String getConfigFile()
+ {
+ return configFile;
+ }
+
+ /**
+ * Set the configFile.
+ *
+ * @param configFile the configFile.
+ * @throws IllegalArgumentException for a null configFile
+ */
+ public void setConfigFile(String configFile)
+ {
+ if (configFile == null)
+ throw new IllegalArgumentException("Null configFile");
+ this.configFile = configFile;
+ }
+
+ /**
+ * Get the wsdlPublishLocation.
+ *
+ * @return the wsdlPublishLocation.
+ */
+ public String getWsdlPublishLocation()
+ {
+ return wsdlPublishLocation;
+ }
+
+ /**
+ * Set the wsdlPublishLocation.
+ *
+ * @param wsdlPublishLocation the wsdlPublishLocation.
+ * @throws IllegalArgumentException for a null wsdlPublishLocation
+ */
+ public void setWsdlPublishLocation(String wsdlPublishLocation)
+ {
+ if (wsdlPublishLocation == null)
+ throw new IllegalArgumentException("Null wsdlPublishLocation");
+ this.wsdlPublishLocation = wsdlPublishLocation;
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/WebserviceDescriptionsMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/WebserviceDescriptionsMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/WebserviceDescriptionsMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,44 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.jboss;
+
+import org.jboss.javaee.metadata.support.AbstractMappedMetaData;
+
+/**
+ * WebservicesDescriptionsMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public class WebserviceDescriptionsMetaData extends AbstractMappedMetaData<WebserviceDescriptionMetaData>
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = -1286417060419536332L;
+
+ /**
+ * Create a new WebservicesDescriptionsMetaData.
+ */
+ public WebserviceDescriptionsMetaData()
+ {
+ super("webservice-description-name for webservice description");
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/WebservicesMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/WebservicesMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/WebservicesMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,92 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.jboss;
+
+import org.jboss.javaee.metadata.support.IdMetaDataImpl;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * WebservicesMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlType(name="webservicesType")
+public class WebservicesMetaData extends IdMetaDataImpl
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = -3222358198684762084L;
+
+ /** The context root */
+ private String contextRoot;
+
+ /** The webservice descriptions */
+ private WebserviceDescriptionsMetaData webserviceDescriptions;
+
+ /**
+ * Get the contextRoot.
+ *
+ * @return the contextRoot.
+ */
+ public String getContextRoot()
+ {
+ return contextRoot;
+ }
+
+ /**
+ * Set the contextRoot.
+ *
+ * @param contextRoot the contextRoot.
+ * @throws IllegalArgumentException for a null contextRoot
+ */
+ public void setContextRoot(String contextRoot)
+ {
+ if (contextRoot == null)
+ throw new IllegalArgumentException("Null contextRoot");
+ this.contextRoot = contextRoot;
+ }
+
+ /**
+ * Get the webserviceDescriptions.
+ *
+ * @return the webserviceDescriptions.
+ */
+ public WebserviceDescriptionsMetaData getWebserviceDescriptions()
+ {
+ return webserviceDescriptions;
+ }
+
+ /**
+ * Set the webserviceDescriptions.
+ *
+ * @param webserviceDescriptions the webserviceDescriptions.
+ * @throws IllegalArgumentException for a null webserviceDescriptions
+ */
+ @XmlElement(name="webservice-description")
+ public void setWebserviceDescriptions(WebserviceDescriptionsMetaData webserviceDescriptions)
+ {
+ if (webserviceDescriptions == null)
+ throw new IllegalArgumentException("Null webserviceDescriptions");
+ this.webserviceDescriptions = webserviceDescriptions;
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/ActivationConfigMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/ActivationConfigMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/ActivationConfigMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,74 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.spec;
+
+import org.jboss.javaee.metadata.support.IdMetaDataImplWithDescriptions;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * ActivationConfigMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlType(name="activation-configType")
+public class ActivationConfigMetaData extends IdMetaDataImplWithDescriptions
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = -9138498601978922673L;
+
+ /** The activation config properties */
+ private ActivationConfigPropertiesMetaData activationConfigProperties;
+
+ /**
+ * Create a new CMPFieldMetaData.
+ */
+ public ActivationConfigMetaData()
+ {
+ // For serialization
+ }
+
+ /**
+ * Get the activationConfigProperties.
+ *
+ * @return the activationConfigProperties.
+ */
+ public ActivationConfigPropertiesMetaData getActivationConfigProperties()
+ {
+ return activationConfigProperties;
+ }
+
+ /**
+ * Set the activationConfigProperties.
+ *
+ * @param activationConfigProperties the activationConfigProperties.
+ * @throws IllegalArgumentException for a null activationConfigProperties
+ */
+ @XmlElement(name="activation-config-property")
+ public void setActivationConfigProperties(ActivationConfigPropertiesMetaData activationConfigProperties)
+ {
+ if (activationConfigProperties == null)
+ throw new IllegalArgumentException("Null activationConfigProperties");
+ this.activationConfigProperties = activationConfigProperties;
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/ActivationConfigPropertiesMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/ActivationConfigPropertiesMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/ActivationConfigPropertiesMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,44 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.spec;
+
+import org.jboss.javaee.metadata.support.AbstractMappedMetaData;
+
+/**
+ * ActivationConfigPropertiesMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public class ActivationConfigPropertiesMetaData extends AbstractMappedMetaData<ActivationConfigPropertyMetaData>
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = 8065908912716344436L;
+
+ /**
+ * Create a new ActivationConfigPropertiesMetaData.
+ */
+ public ActivationConfigPropertiesMetaData()
+ {
+ super("activation config property name");
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/ActivationConfigPropertyMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/ActivationConfigPropertyMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/ActivationConfigPropertyMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,96 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.spec;
+
+import org.jboss.javaee.metadata.support.NamedMetaData;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * ActivationConfigPropertyMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlType(name="activation-config-propertyType")
+public class ActivationConfigPropertyMetaData extends NamedMetaData
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = -2551310342222240351L;
+
+ /** The value */
+ private String value;
+
+ /**
+ * Create a new ActivationConfigMetaData.
+ */
+ public ActivationConfigPropertyMetaData()
+ {
+ // For serialization
+ }
+
+ /**
+ * Get the activationConfigPropertyName.
+ *
+ * @return the activationConfigPropertyName.
+ */
+ public String getActivationConfigPropertyName()
+ {
+ return getName();
+ }
+
+ /**
+ * Set the activationConfigPropertyName.
+ *
+ * @param activationConfigPropertyName the activationConfigPropertyName.
+ * @throws IllegalArgumentException for a null activationConfigPropertyName
+ */
+ public void setActivationConfigPropertyName(String activationConfigPropertyName)
+ {
+ setName(activationConfigPropertyName);
+ }
+
+ /**
+ * Get the value.
+ *
+ * @return the value.
+ */
+ public String getValue()
+ {
+ return value;
+ }
+
+ /**
+ * Set the value.
+ *
+ * @param value the value.
+ * @throws IllegalArgumentException for a null value
+ */
+ @XmlElement(name="activation-config-property-value")
+ public void setValue(String value)
+ {
+ if (value == null)
+ throw new IllegalArgumentException("Null value");
+ this.value = value;
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/ApplicationExceptionMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/ApplicationExceptionMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/ApplicationExceptionMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,90 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.spec;
+
+import org.jboss.javaee.metadata.support.NamedMetaData;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * ApplicationExceptionMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlType(name="application-exceptionType")
+public class ApplicationExceptionMetaData extends NamedMetaData
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = -485493144287221056L;
+
+ /** Whether to rollback */
+ private boolean rollback = false;
+
+ /**
+ * Create a new ApplicationExceptionMetaData.
+ */
+ public ApplicationExceptionMetaData()
+ {
+ // For serialization
+ }
+
+ /**
+ * Get the exceptionClass.
+ *
+ * @return the exceptionClass.
+ */
+ public String getExceptionClass()
+ {
+ return getName();
+ }
+
+ /**
+ * Set the exceptionClass.
+ *
+ * @param exceptionClass the exceptionClass.
+ * @throws IllegalArgumentException for a null exceptionClass
+ */
+ public void setExceptionClass(String exceptionClass)
+ {
+ setName(exceptionClass);
+ }
+
+ /**
+ * Get the rollback.
+ *
+ * @return the rollback.
+ */
+ public boolean isRollback()
+ {
+ return rollback;
+ }
+
+ /**
+ * Set the rollback.
+ *
+ * @param rollback the rollback.
+ */
+ public void setRollback(boolean rollback)
+ {
+ this.rollback = rollback;
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/ApplicationExceptionsMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/ApplicationExceptionsMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/ApplicationExceptionsMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,44 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.spec;
+
+import org.jboss.javaee.metadata.support.AbstractMappedMetaData;
+
+/**
+ * ApplicationExceptionsMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public class ApplicationExceptionsMetaData extends AbstractMappedMetaData<ApplicationExceptionMetaData>
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = -5880146271705804091L;
+
+ /**
+ * Create a new ApplicationExceptionsMetaData.
+ */
+ public ApplicationExceptionsMetaData()
+ {
+ super("application exception class");
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/AroundInvokeMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/AroundInvokeMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/AroundInvokeMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,101 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.spec;
+
+import java.io.Serializable;
+
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * AroundInvokeMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlType(name="around-invokeType")
+public class AroundInvokeMetaData implements Serializable
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = -4782968110296545024L;
+
+ /** The class */
+ private String className;
+
+ /** The method name */
+ private String methodName;
+
+ /**
+ * Create a new AroundInvokeMetaData.
+ */
+ public AroundInvokeMetaData()
+ {
+ // For serialization
+ }
+
+ /**
+ * Get the className.
+ *
+ * @return the className.
+ */
+ public String getClassName()
+ {
+ return className;
+ }
+
+ /**
+ * Set the className.
+ *
+ * @param className the className.
+ * @throws IllegalArgumentException for a null className
+ */
+ @XmlElement(name="class")
+ public void setClassName(String className)
+ {
+ if (className == null)
+ throw new IllegalArgumentException("Null className");
+ this.className = className;
+ }
+
+ /**
+ * Get the methodName.
+ *
+ * @return the methodName.
+ */
+ public String getMethodName()
+ {
+ return methodName;
+ }
+
+ /**
+ * Set the methodName.
+ *
+ * @param methodName the methodName.
+ * @throws IllegalArgumentException for a null methodName
+ */
+ public void setMethodName(String methodName)
+ {
+ if (methodName == null)
+ throw new IllegalArgumentException("Null methodName");
+ this.methodName = methodName;
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/AroundInvokesMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/AroundInvokesMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/AroundInvokesMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,44 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.spec;
+
+import org.jboss.javaee.metadata.support.NonNullLinkedHashSet;
+
+/**
+ * AroundInvokesMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public class AroundInvokesMetaData extends NonNullLinkedHashSet<AroundInvokeMetaData>
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = 3091116374471499482L;
+
+ /**
+ * Create a new AroundInvokesMetaData.
+ */
+ public AroundInvokesMetaData()
+ {
+ // For serialization
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/AssemblyDescriptorMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/AssemblyDescriptorMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/AssemblyDescriptorMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,319 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.spec;
+
+import org.jboss.javaee.metadata.spec.MessageDestinationMetaData;
+import org.jboss.javaee.metadata.spec.MessageDestinationsMetaData;
+import org.jboss.javaee.metadata.spec.SecurityRolesMetaData;
+import org.jboss.javaee.metadata.support.IdMetaDataImpl;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * AssemblyDescriptorMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlType(name="assembly-descriptorType")
+public class AssemblyDescriptorMetaData extends IdMetaDataImpl
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = 7634431073492003512L;
+
+ /** The security roles */
+ private SecurityRolesMetaData securityRoles;
+
+ /** The method permissions */
+ private MethodPermissionsMetaData methodPermissions;
+
+ /** The container transactions */
+ private ContainerTransactionsMetaData containerTransactions;
+
+ /** The interceptor bindings */
+ private InterceptorBindingsMetaData interceptorBindings;
+
+ /** The message destinations */
+ private MessageDestinationsMetaData messageDestinations;
+
+ /** The exclude list */
+ private ExcludeListMetaData excludeList;
+
+ /** The application exceptions */
+ private ApplicationExceptionsMetaData applicationExceptions;
+
+ /**
+ * Create a new AssemblyDescriptorMetaData
+ */
+ public AssemblyDescriptorMetaData()
+ {
+ // For serialization
+ }
+
+ /**
+ * Get the securityRoles.
+ *
+ * @return the securityRoles.
+ */
+ public SecurityRolesMetaData getSecurityRoles()
+ {
+ return securityRoles;
+ }
+
+ /**
+ * Set the securityRoles.
+ *
+ * @param securityRoles the securityRoles.
+ * @throws IllegalArgumentException for a null securityRoles
+ */
+ @XmlElement(name="security-role")
+ public void setSecurityRoles(SecurityRolesMetaData securityRoles)
+ {
+ if (securityRoles == null)
+ throw new IllegalArgumentException("Null securityRoles");
+ this.securityRoles = securityRoles;
+ }
+
+ /**
+ * Get the methodPermissions.
+ *
+ * @return the methodPermissions.
+ */
+ public MethodPermissionsMetaData getMethodPermissions()
+ {
+ return methodPermissions;
+ }
+
+ /**
+ * Set the methodPermissions.
+ *
+ * @param methodPermissions the methodPermissions.
+ * @throws IllegalArgumentException for a null methodPermissions
+ */
+ @XmlElement(name="method-permission")
+ public void setMethodPermissions(MethodPermissionsMetaData methodPermissions)
+ {
+ if (methodPermissions == null)
+ throw new IllegalArgumentException("Null methodPermissions");
+ this.methodPermissions = methodPermissions;
+ }
+
+ /**
+ * Get the methods permissions for an ejb
+ *
+ * @param ejbName the ejb name
+ * @return the method permissions or null for no result
+ * @throws IllegalArgumentException for a null ejb name
+ */
+ public MethodPermissionsMetaData getMethodPermissionsByEjbName(String ejbName)
+ {
+ if (ejbName == null)
+ throw new IllegalArgumentException("Null ejbName");
+
+ if (methodPermissions == null)
+ return null;
+ return methodPermissions.getMethodPermissionsByEjbName(ejbName);
+ }
+
+ /**
+ * Get the containerTransactions.
+ *
+ * @return the containerTransactions.
+ */
+ public ContainerTransactionsMetaData getContainerTransactions()
+ {
+ return containerTransactions;
+ }
+
+ /**
+ * Set the containerTransactions.
+ *
+ * @param containerTransactions the containerTransactions.
+ * @throws IllegalArgumentException for a null containerTransactions
+ */
+ @XmlElement(name="container-transaction")
+ public void setContainerTransactions(ContainerTransactionsMetaData containerTransactions)
+ {
+ if (containerTransactions == null)
+ throw new IllegalArgumentException("Null containerTransactions");
+ this.containerTransactions = containerTransactions;
+ }
+
+ /**
+ * Get the container transactions for an ejb
+ *
+ * @param ejbName the ejb name
+ * @return the container transactions or null for no result
+ * @throws IllegalArgumentException for a null ejb name
+ */
+ public ContainerTransactionsMetaData getContainerTransactionsByEjbName(String ejbName)
+ {
+ if (ejbName == null)
+ throw new IllegalArgumentException("Null ejbName");
+
+ if (containerTransactions == null)
+ return null;
+ return containerTransactions.getContainerTransactionsByEjbName(ejbName);
+ }
+
+ /**
+ * Get the interceptorBindings.
+ *
+ * @return the interceptorBindings.
+ */
+ public InterceptorBindingsMetaData getInterceptorBindings()
+ {
+ return interceptorBindings;
+ }
+
+ /**
+ * Set the interceptorBindings.
+ *
+ * @param interceptorBindings the interceptorBindings.
+ * @throws IllegalArgumentException for a null interceptorBindings
+ */
+ @XmlElement(name="interceptor-binding", required=false)
+ public void setInterceptorBindings(InterceptorBindingsMetaData interceptorBindings)
+ {
+ if (interceptorBindings == null)
+ throw new IllegalArgumentException("Null interceptorBindings");
+ this.interceptorBindings = interceptorBindings;
+ }
+
+ /**
+ * Get the interceptor binding for an ejb
+ *
+ * @param ejbName the ejb name
+ * @return the interceptor binding or null for no result
+ * @throws IllegalArgumentException for a null ejb name
+ */
+ public InterceptorBindingMetaData getInterceptorBindingByEjbName(String ejbName)
+ {
+ if (ejbName == null)
+ throw new IllegalArgumentException("Null ejbName");
+
+ if (interceptorBindings == null)
+ return null;
+ return interceptorBindings.get(ejbName);
+ }
+
+ /**
+ * Get the messageDestinations.
+ *
+ * @return the messageDestinations.
+ */
+ public MessageDestinationsMetaData getMessageDestinations()
+ {
+ return messageDestinations;
+ }
+
+ /**
+ * Set the messageDestinations.
+ *
+ * @param messageDestinations the messageDestinations.
+ * @throws IllegalArgumentException for a null messageDestinations
+ */
+ @XmlElement(name="message-destination")
+ public void setMessageDestinations(MessageDestinationsMetaData messageDestinations)
+ {
+ if (messageDestinations == null)
+ throw new IllegalArgumentException("Null messageDestinations");
+ this.messageDestinations = messageDestinations;
+ }
+
+ /**
+ * Get a message destination
+ *
+ * @param name the name of the destination
+ * @return the destination or null if not found
+ */
+ public MessageDestinationMetaData getMessageDestination(String name)
+ {
+ if (messageDestinations == null)
+ return null;
+ return messageDestinations.get(name);
+ }
+
+ /**
+ * Get the excludeList.
+ *
+ * @return the excludeList.
+ */
+ public ExcludeListMetaData getExcludeList()
+ {
+ return excludeList;
+ }
+
+ /**
+ * Set the excludeList.
+ *
+ * @param excludeList the excludeList.
+ * @throws IllegalArgumentException for a null excludeList
+ */
+ public void setExcludeList(ExcludeListMetaData excludeList)
+ {
+ if (excludeList == null)
+ throw new IllegalArgumentException("Null excludeList");
+ this.excludeList = excludeList;
+ }
+
+ /**
+ * Get the exclude list for an ejb
+ *
+ * @param ejbName the ejb name
+ * @return the exclude list or null for no result
+ * @throws IllegalArgumentException for a null ejb name
+ */
+ public ExcludeListMetaData getExcludeListByEjbName(String ejbName)
+ {
+ if (ejbName == null)
+ throw new IllegalArgumentException("Null ejbName");
+
+ if (excludeList == null)
+ return null;
+ return excludeList.getExcludeListByEjbName(ejbName);
+ }
+
+ /**
+ * Get the applicationExceptions.
+ *
+ * @return the applicationExceptions.
+ */
+ public ApplicationExceptionsMetaData getApplicationExceptions()
+ {
+ return applicationExceptions;
+ }
+
+ /**
+ * Set the applicationExceptions.
+ *
+ * @param applicationExceptions the applicationExceptions.
+ * @throws IllegalArgumentException for a null applicationExceptions
+ */
+ @XmlElement(name="application-exception", required=false)
+ public void setApplicationExceptions(ApplicationExceptionsMetaData applicationExceptions)
+ {
+ if (applicationExceptions == null)
+ throw new IllegalArgumentException("Null applicationExceptions");
+ this.applicationExceptions = applicationExceptions;
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/BusinessLocalsMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/BusinessLocalsMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/BusinessLocalsMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,44 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.spec;
+
+import org.jboss.javaee.metadata.support.NonNullLinkedHashSet;
+
+/**
+ * BusinessLocalsMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public class BusinessLocalsMetaData extends NonNullLinkedHashSet<String>
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = -2258099610577083158L;
+
+ /**
+ * Create a new BusinessLocalsMetaData.
+ */
+ public BusinessLocalsMetaData()
+ {
+ // For serialization
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/BusinessRemotesMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/BusinessRemotesMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/BusinessRemotesMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,44 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.spec;
+
+import org.jboss.javaee.metadata.support.NonNullLinkedHashSet;
+
+/**
+ * BusinessRemotesMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public class BusinessRemotesMetaData extends NonNullLinkedHashSet<String>
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = -1866760573785099573L;
+
+ /**
+ * Create a new BusinessRemotesMetaData.
+ */
+ public BusinessRemotesMetaData()
+ {
+ // For serialization
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/CMPFieldMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/CMPFieldMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/CMPFieldMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,67 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.spec;
+
+import org.jboss.javaee.metadata.support.NamedMetaDataWithDescriptions;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * CMPFieldMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlType(name="cmp-fieldType")
+public class CMPFieldMetaData extends NamedMetaDataWithDescriptions
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = -9138498601978922673L;
+
+ /**
+ * Create a new CMPFieldMetaData.
+ */
+ public CMPFieldMetaData()
+ {
+ // For serialization
+ }
+
+ /**
+ * Get the fieldName.
+ *
+ * @return the fieldName.
+ */
+ public String getFieldName()
+ {
+ return getName();
+ }
+
+ /**
+ * Set the fieldName.
+ *
+ * @param fieldName the fieldName.
+ * @throws IllegalArgumentException for a null fieldName
+ */
+ public void setFieldName(String fieldName)
+ {
+ setName(fieldName);
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/CMPFieldsMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/CMPFieldsMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/CMPFieldsMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,44 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.spec;
+
+import org.jboss.javaee.metadata.support.AbstractMappedMetaData;
+
+/**
+ * CMPFieldsMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public class CMPFieldsMetaData extends AbstractMappedMetaData<CMPFieldMetaData>
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = -8076951897867288171L;
+
+ /**
+ * Create a new CMPFieldsMetaData.
+ */
+ public CMPFieldsMetaData()
+ {
+ super("cmp field name");
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/CMRFieldMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/CMRFieldMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/CMRFieldMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,93 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.spec;
+
+import org.jboss.javaee.metadata.support.NamedMetaDataWithDescriptions;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * CMRFieldMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlType(name="cmr-fieldType")
+public class CMRFieldMetaData extends NamedMetaDataWithDescriptions
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = 8616356511004497092L;
+
+ /** The cmr field type */
+ private String cmrFieldType;
+
+ /**
+ * Create a new CMRFieldMetaData.
+ */
+ public CMRFieldMetaData()
+ {
+ // For serialization
+ }
+
+ /**
+ * Get the cmrFieldName.
+ *
+ * @return the cmrFieldName.
+ */
+ public String getCmrFieldName()
+ {
+ return getName();
+ }
+
+ /**
+ * Set the cmrFieldName.
+ *
+ * @param cmrFieldName the cmrFieldName.
+ * @throws IllegalArgumentException for a null cmrFieldName
+ */
+ public void setCmrFieldName(String cmrFieldName)
+ {
+ setName(cmrFieldName);
+ }
+
+ /**
+ * Get the cmrFieldType.
+ *
+ * @return the cmrFieldType.
+ */
+ public String getCmrFieldType()
+ {
+ return cmrFieldType;
+ }
+
+ /**
+ * Set the cmrFieldType.
+ *
+ * @param cmrFieldType the cmrFieldType.
+ * @throws IllegalArgumentException for a null cmrFieldType
+ */
+ public void setCmrFieldType(String cmrFieldType)
+ {
+ if (cmrFieldType == null)
+ throw new IllegalArgumentException("Null cmrFieldType");
+ this.cmrFieldType = cmrFieldType;
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/ContainerTransactionMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/ContainerTransactionMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/ContainerTransactionMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,162 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.spec;
+
+import org.jboss.javaee.metadata.support.IdMetaDataImplWithDescriptions;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * ContainerTransactionMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlType(name="container-transactionType")
+public class ContainerTransactionMetaData extends IdMetaDataImplWithDescriptions
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = -8080829946285127796L;
+
+ /** The methods */
+ private MethodsMetaData methods;
+
+ /** The transaction attribute */
+ private TransAttributeType transAttribute;
+
+ /**
+ * Create a new MethodPermissionMetaData.
+ */
+ public ContainerTransactionMetaData()
+ {
+ // For serialization
+ }
+
+ /**
+ * Get the methods.
+ *
+ * @return the methods.
+ */
+ public MethodsMetaData getMethods()
+ {
+ return methods;
+ }
+
+ /**
+ * Set the methods.
+ *
+ * @param methods the methods.
+ * @throws IllegalArgumentException for a null methods
+ */
+ @XmlElement(name="method")
+ public void setMethods(MethodsMetaData methods)
+ {
+ if (methods == null)
+ throw new IllegalArgumentException("Null methods");
+ this.methods = methods;
+ }
+
+ /**
+ * Get the transactionAttribute.
+ *
+ * @return the transactionAttribute.
+ */
+ @XmlElement(name="trans-attribute")
+ public TransAttributeType getTransAttribute()
+ {
+ return transAttribute;
+ }
+
+ /**
+ * Set the transactionAttribute.
+ *
+ * @param transactionAttribute the transactionAttribute.
+ * @throws IllegalArgumentException for a null transactionAttribute
+ */
+ public void setTransAttribute(TransAttributeType transactionAttribute)
+ {
+ if (transactionAttribute == null)
+ throw new IllegalArgumentException("Null transactionAttribute");
+ this.transAttribute = transactionAttribute;
+ }
+
+ /**
+ * Get the container transaction for an ejb
+ *
+ * @param ejbName the ejb name
+ * @return the container transactions or null for no result
+ * @throws IllegalArgumentException for a null ejb name
+ */
+ public ContainerTransactionMetaData getContainerTransactionsByEjbName(String ejbName)
+ {
+ if (ejbName == null)
+ throw new IllegalArgumentException("Null ejbName");
+
+ if (methods == null)
+ return null;
+
+ MethodsMetaData ejbMethods = methods.getMethodsByEjbName(ejbName);
+ if (ejbMethods == null)
+ return null;
+
+ ContainerTransactionMetaData result = clone();
+ result.setMethods(ejbMethods);
+ return result;
+ }
+
+ /**
+ * Whether this matches
+ *
+ * @param methodName the method name
+ * @param params the parameters
+ * @param interfaceType the interface type
+ * @return true when it matches
+ */
+ public boolean matches(String methodName, Class[] params, MethodInterfaceType interfaceType)
+ {
+ if (methods == null)
+ return false;
+ return methods.matches(methodName, params, interfaceType);
+ }
+
+ /**
+ * Whether this matches
+ *
+ * @param methodName the method name
+ * @param params the parameters
+ * @param interfaceType the interface type
+ * @param bestMatch the previous best match
+ * @return the best match
+ */
+ public MethodMetaData bestMatch(String methodName, Class[] params, MethodInterfaceType interfaceType, MethodMetaData bestMatch)
+ {
+ if (methods == null)
+ return bestMatch;
+ return methods.bestMatch(methodName, params, interfaceType, bestMatch);
+ }
+
+ @Override
+ public ContainerTransactionMetaData clone()
+ {
+ return (ContainerTransactionMetaData) super.clone();
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/ContainerTransactionsMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/ContainerTransactionsMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/ContainerTransactionsMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,73 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.spec;
+
+import org.jboss.javaee.metadata.support.NonNullLinkedHashSet;
+
+/**
+ * ContainerTransactionsMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public class ContainerTransactionsMetaData extends NonNullLinkedHashSet<ContainerTransactionMetaData>
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = -1360496515258292681L;
+
+ /**
+ * Create a new ContainerTransactionsMetaData.
+ */
+ public ContainerTransactionsMetaData()
+ {
+ // For serialization
+ }
+
+ /**
+ * Get the container transactions for an ejb
+ *
+ * @param ejbName the ejb name
+ * @return the container transactions or null for no result
+ * @throws IllegalArgumentException for a null ejb name
+ */
+ public ContainerTransactionsMetaData getContainerTransactionsByEjbName(String ejbName)
+ {
+ if (ejbName == null)
+ throw new IllegalArgumentException("Null ejbName");
+
+ if (isEmpty())
+ return null;
+
+ ContainerTransactionsMetaData result = null;
+ for (ContainerTransactionMetaData transaction : this)
+ {
+ ContainerTransactionMetaData ejbTransaction = transaction.getContainerTransactionsByEjbName(ejbName);
+ if (ejbTransaction != null)
+ {
+ if (result == null)
+ result = new ContainerTransactionsMetaData();
+ result.add(ejbTransaction);
+ }
+ }
+ return result;
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/EjbJar21MetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/EjbJar21MetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/EjbJar21MetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,78 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.spec;
+
+import org.jboss.javaee.metadata.spec.JavaEEMetaDataConstants;
+import org.jboss.xb.annotations.JBossXmlSchema;
+
+import javax.xml.bind.annotation.XmlNsForm;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * EjbJar21MetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlRootElement(name="ejb-jar", namespace=JavaEEMetaDataConstants.J2EE_NS)
+ at JBossXmlSchema(ignoreUnresolvedFieldOrClass=false,
+ namespace="http://java.sun.com/xml/ns/j2ee",
+ elementFormDefault=XmlNsForm.QUALIFIED)
+ at XmlType(name="ejb-jarType",
+ namespace=JavaEEMetaDataConstants.J2EE_NS,
+ propOrder={"descriptionGroup", "enterpriseBeans", "relationships", "assemblyDescriptor", "ejbClientJar", "version", "id"})
+/*@XmlTypeImpls
+({
+ @XmlTypeImpl(name="fully-qualified-classType", startElementCreatesObject=false),
+ @XmlTypeImpl(name="java-typeType", startElementCreatesObject=false),
+ @XmlTypeImpl(name="java-identifierType", startElementCreatesObject=false),
+ @XmlTypeImpl(name="true-falseType", startElementCreatesObject=false),
+ @XmlTypeImpl(name="string", namespace=JavaEEMetaDataConstants.J2EE_NS, startElementCreatesObject=false),
+ @XmlTypeImpl(name="xsdStringType", startElementCreatesObject=false),
+ @XmlTypeImpl(name="env-entry-type-valuesType", startElementCreatesObject=false),
+ @XmlTypeImpl(name="ejb-linkType", startElementCreatesObject=false),
+ @XmlTypeImpl(name="jndi-nameType", startElementCreatesObject=false),
+ @XmlTypeImpl(name="role-nameType", startElementCreatesObject=false),
+ @XmlTypeImpl(name="message-destination-typeType", startElementCreatesObject=false),
+ @XmlTypeImpl(name="message-destination-linkType", startElementCreatesObject=false),
+})
+*/
+public class EjbJar21MetaData extends EjbJar2xMetaData
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = 7919600230211960565L;
+
+ /**
+ * Create a new EjbJar21MetaData.
+ */
+ public EjbJar21MetaData()
+ {
+ // For serialization
+ }
+
+ @Override
+ public boolean isEJB21()
+ {
+ return true;
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/EjbJar2xMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/EjbJar2xMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/EjbJar2xMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,76 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.spec;
+
+import java.math.BigDecimal;
+
+/**
+ * EjbJar2xMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public class EjbJar2xMetaData extends EjbJarMetaData
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = 809339942454480150L;
+
+ /** The version */
+ private BigDecimal version;
+
+ /**
+ * Create a new EjbJarMetaData.
+ */
+ public EjbJar2xMetaData()
+ {
+ // For serialization
+ }
+
+ @Override
+ public boolean isEJB2x()
+ {
+ return true;
+ }
+
+ /**
+ * Get the version.
+ *
+ * @return the version.
+ */
+ public BigDecimal getVersion()
+ {
+ return version;
+ }
+
+ /**
+ * Set the version.
+ *
+ * @param version the version.
+ * @throws IllegalArgumentException for a null version
+ */
+ public void setVersion(BigDecimal version)
+ {
+ if (version == null)
+ throw new IllegalArgumentException("Null version");
+ this.version = version;
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/EjbJar30MetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/EjbJar30MetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/EjbJar30MetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,63 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.spec;
+
+import org.jboss.javaee.metadata.spec.JavaEEMetaDataConstants;
+import org.jboss.xb.annotations.JBossXmlSchema;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * EjbJar30MetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at JBossXmlSchema(ignoreUnresolvedFieldOrClass=false)
+ at XmlType(name="ejb-jarType", namespace=JavaEEMetaDataConstants.JAVAEE_NS)
+/*@XmlTypeImpls
+({
+ @XmlTypeImpl(name="fully-qualified-classType", startElementCreatesObject=false),
+ @XmlTypeImpl(name="java-typeType", startElementCreatesObject=false),
+ @XmlTypeImpl(name="java-identifierType", startElementCreatesObject=false),
+ @XmlTypeImpl(name="true-falseType", startElementCreatesObject=false),
+ @XmlTypeImpl(name="string", namespace=JavaEEMetaDataConstants.JAVAEE_NS, startElementCreatesObject=false),
+ @XmlTypeImpl(name="xsdStringType", startElementCreatesObject=false),
+ @XmlTypeImpl(name="env-entry-type-valuesType", startElementCreatesObject=false),
+ @XmlTypeImpl(name="ejb-linkType", startElementCreatesObject=false),
+ @XmlTypeImpl(name="jndi-nameType", startElementCreatesObject=false),
+ @XmlTypeImpl(name="role-nameType", startElementCreatesObject=false),
+ @XmlTypeImpl(name="message-destination-typeType", startElementCreatesObject=false),
+ @XmlTypeImpl(name="message-destination-linkType", startElementCreatesObject=false),
+})
+*/public class EjbJar30MetaData extends EjbJar3xMetaData
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = 4822895045737616761L;
+
+ /**
+ * Create a new EjbJar30MetaData.
+ */
+ public EjbJar30MetaData()
+ {
+ // For serialization
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/EjbJar3xMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/EjbJar3xMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/EjbJar3xMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,123 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.spec;
+
+/**
+ * EjbJar3xMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public abstract class EjbJar3xMetaData extends EjbJarMetaData
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = 272246605720472113L;
+
+ /** The version */
+ private String version;
+
+ /** Metadata complete */
+ private boolean metadataComplete;
+
+ /** The interceptors */
+ private InterceptorsMetaData interceptors;
+
+ /**
+ * Create a new EjbJar3xMetaData.
+ */
+ public EjbJar3xMetaData()
+ {
+ // For serialization
+ }
+
+ @Override
+ public boolean isEJB3x()
+ {
+ return true;
+ }
+
+ /**
+ * Get the version.
+ *
+ * @return the version.
+ */
+ public String getVersion()
+ {
+ return version;
+ }
+
+ /**
+ * Set the version.
+ *
+ * @param version the version.
+ * @throws IllegalArgumentException for a null version
+ */
+ public void setVersion(String version)
+ {
+ if (version == null)
+ throw new IllegalArgumentException("Null version");
+ this.version = version;
+ }
+
+ /**
+ * Get the metadataComplete.
+ *
+ * @return the metadataComplete.
+ */
+ public boolean isMetadataComplete()
+ {
+ return metadataComplete;
+ }
+
+ /**
+ * Set the metadataComplete.
+ *
+ * @param metadataComplete the metadataComplete.
+ */
+ public void setMetadataComplete(boolean metadataComplete)
+ {
+ this.metadataComplete = metadataComplete;
+ }
+
+ /**
+ * Get the interceptors.
+ *
+ * @return the interceptors.
+ */
+ public InterceptorsMetaData getInterceptors()
+ {
+ return interceptors;
+ }
+
+ /**
+ * Set the interceptors.
+ *
+ * @param interceptors the interceptors.
+ * @throws IllegalArgumentException for a null interceptors
+ */
+ public void setInterceptors(InterceptorsMetaData interceptors)
+ {
+ if (interceptors == null)
+ throw new IllegalArgumentException("Null interceptors");
+ this.interceptors = interceptors;
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/EjbJarMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/EjbJarMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/EjbJarMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,189 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.spec;
+
+import org.jboss.javaee.metadata.support.IdMetaDataImplWithDescriptionGroup;
+
+/**
+ * EjbJarMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public abstract class EjbJarMetaData extends IdMetaDataImplWithDescriptionGroup
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = 809339942454480150L;
+
+ /** The ejb client jar */
+ private String ejbClientJar;
+
+ /** The enterprise beans */
+ private EnterpriseBeansMetaData enterpriseBeans;
+
+ /** The relations */
+ private RelationsMetaData relationships;
+
+ /** The assembly descriptor */
+ private AssemblyDescriptorMetaData assemblyDescriptor;
+
+ /**
+ * Create a new EjbJarMetaData.
+ */
+ public EjbJarMetaData()
+ {
+ // For serialization
+ }
+
+ /**
+ * Whether this is ejb1.x
+ *
+ * @return true when ejb1.x
+ */
+ public boolean isEJB1x()
+ {
+ return false;
+ }
+
+ /**
+ * Whether this is ejb2.x
+ *
+ * @return true when ejb2.x
+ */
+ public boolean isEJB2x()
+ {
+ return false;
+ }
+
+ /**
+ * Whether this is ejb2.1
+ *
+ * @return true when ejb2.1
+ */
+ public boolean isEJB21()
+ {
+ return false;
+ }
+
+ /**
+ * Whether this is ejb3.x
+ *
+ * @return true when ejb3.x
+ */
+ public boolean isEJB3x()
+ {
+ return false;
+ }
+
+ /**
+ * Get the ejbClientJar.
+ *
+ * @return the ejbClientJar.
+ */
+ public String getEjbClientJar()
+ {
+ return ejbClientJar;
+ }
+
+ /**
+ * Set the ejbClientJar.
+ *
+ * @param ejbClientJar the ejbClientJar.
+ * @throws IllegalArgumentException for a null ejbClientJar
+ */
+ public void setEjbClientJar(String ejbClientJar)
+ {
+ if (ejbClientJar == null)
+ throw new IllegalArgumentException("Null ejbClientJar");
+ this.ejbClientJar = ejbClientJar;
+ }
+
+ /**
+ * Get the enterpriseBeans.
+ *
+ * @return the enterpriseBeans.
+ */
+ public EnterpriseBeansMetaData getEnterpriseBeans()
+ {
+ return enterpriseBeans;
+ }
+
+ /**
+ * Set the enterpriseBeans.
+ *
+ * @param enterpriseBeans the enterpriseBeans.
+ * @throws IllegalArgumentException for a null enterpriseBeans
+ */
+ public void setEnterpriseBeans(EnterpriseBeansMetaData enterpriseBeans)
+ {
+ if (enterpriseBeans == null)
+ throw new IllegalArgumentException("Null enterpriseBeans");
+ this.enterpriseBeans = enterpriseBeans;
+ enterpriseBeans.setEjbJarMetaData(this);
+ }
+
+ /**
+ * Get the relationships.
+ *
+ * @return the relationships.
+ */
+ public RelationsMetaData getRelationships()
+ {
+ return relationships;
+ }
+
+ /**
+ * Set the relationships.
+ *
+ * @param relationships the relationships.
+ * @throws IllegalArgumentException for a null relationships
+ */
+ public void setRelationships(RelationsMetaData relationships)
+ {
+ if (relationships == null)
+ throw new IllegalArgumentException("Null relationships");
+ this.relationships = relationships;
+ }
+
+ /**
+ * Get the assemblyDescriptor.
+ *
+ * @return the assemblyDescriptor.
+ */
+ public AssemblyDescriptorMetaData getAssemblyDescriptor()
+ {
+ return assemblyDescriptor;
+ }
+
+ /**
+ * Set the assemblyDescriptor.
+ *
+ * @param assemblyDescriptor the assemblyDescriptor.
+ * @throws IllegalArgumentException for a null assemblyDescriptor
+ */
+ public void setAssemblyDescriptor(AssemblyDescriptorMetaData assemblyDescriptor)
+ {
+ if (assemblyDescriptor == null)
+ throw new IllegalArgumentException("Null assemblyDescriptor");
+ this.assemblyDescriptor = assemblyDescriptor;
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/EnterpriseBeanMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/EnterpriseBeanMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/EnterpriseBeanMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,556 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.spec;
+
+import java.lang.reflect.Method;
+import java.util.concurrent.ConcurrentHashMap;
+
+import org.jboss.javaee.metadata.spec.EJBLocalReferenceMetaData;
+import org.jboss.javaee.metadata.spec.EJBLocalReferencesMetaData;
+import org.jboss.javaee.metadata.spec.EJBReferenceMetaData;
+import org.jboss.javaee.metadata.spec.EJBReferencesMetaData;
+import org.jboss.javaee.metadata.spec.Environment;
+import org.jboss.javaee.metadata.spec.EnvironmentEntriesMetaData;
+import org.jboss.javaee.metadata.spec.EnvironmentEntryMetaData;
+import org.jboss.javaee.metadata.spec.EnvironmentRefsGroupMetaData;
+import org.jboss.javaee.metadata.spec.LifecycleCallbacksMetaData;
+import org.jboss.javaee.metadata.spec.MessageDestinationReferenceMetaData;
+import org.jboss.javaee.metadata.spec.MessageDestinationReferencesMetaData;
+import org.jboss.javaee.metadata.spec.PersistenceContextReferenceMetaData;
+import org.jboss.javaee.metadata.spec.PersistenceContextReferencesMetaData;
+import org.jboss.javaee.metadata.spec.PersistenceUnitReferenceMetaData;
+import org.jboss.javaee.metadata.spec.PersistenceUnitReferencesMetaData;
+import org.jboss.javaee.metadata.spec.ResourceEnvironmentReferenceMetaData;
+import org.jboss.javaee.metadata.spec.ResourceEnvironmentReferencesMetaData;
+import org.jboss.javaee.metadata.spec.ResourceReferenceMetaData;
+import org.jboss.javaee.metadata.spec.ResourceReferencesMetaData;
+import org.jboss.javaee.metadata.spec.ServiceReferenceMetaData;
+import org.jboss.javaee.metadata.spec.ServiceReferencesMetaData;
+import org.jboss.javaee.metadata.support.AbstractMappedMetaData;
+import org.jboss.javaee.metadata.support.NamedMetaDataWithDescriptionGroup;
+import org.jboss.xb.annotations.JBossXmlConstants;
+import org.jboss.xb.annotations.JBossXmlModelGroup;
+
+import javax.xml.bind.annotation.XmlElement;
+
+/**
+ * EnterpriseBean.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at JBossXmlModelGroup(
+ kind=JBossXmlConstants.MODEL_GROUP_CHOICE,
+ particles={
+ @JBossXmlModelGroup.Particle(element=@XmlElement(name="session"), type=SessionBeanMetaData.class),
+ @JBossXmlModelGroup.Particle(element=@XmlElement(name="entity"), type=EntityBeanMetaData.class),
+ @JBossXmlModelGroup.Particle(element=@XmlElement(name="message-driven"), type=MessageDrivenBeanMetaData.class)})
+public abstract class EnterpriseBeanMetaData extends NamedMetaDataWithDescriptionGroup implements Environment
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = -10005320902508914L;
+
+ /** The enterprise bean container */
+ private EnterpriseBeansMetaData enterpriseBeansMetaData;
+
+ /** The mapped name */
+ private String mappedName;
+
+ /** The ejb class */
+ private String ejbClass;
+
+ /** The environment */
+ private EnvironmentRefsGroupMetaData jndiEnvironmentRefsGroup;
+
+ /** The security identity */
+ private SecurityIdentityMetaData securityIdentity;
+
+ /** The cached container transactions */
+ private transient ContainerTransactionsMetaData cachedContainerTransactions;
+
+ /** The transaction type cache */
+ private transient ConcurrentHashMap<Method, TransAttributeType> methodTx;
+
+ /**
+ * Create a new EnterpriseBeanMetaData.
+ */
+ public EnterpriseBeanMetaData()
+ {
+ // For serialization
+ }
+
+ /**
+ * Set the enterpriseBeansMetaData.
+ *
+ * @param enterpriseBeansMetaData the enterpriseBeansMetaData.
+ */
+ void setEnterpriseBeansMetaData(EnterpriseBeansMetaData enterpriseBeansMetaData)
+ {
+ this.enterpriseBeansMetaData = enterpriseBeansMetaData;
+ }
+
+ /**
+ * Get the ejbJarMetaData.
+ *
+ * @return the ejbJarMetaData.
+ */
+ public EjbJarMetaData getEjbJarMetaData()
+ {
+ if (enterpriseBeansMetaData == null)
+ return null;
+ return enterpriseBeansMetaData.getEjbJarMetaData();
+ }
+
+ /**
+ * Get the assembly descriptor
+ *
+ * @return the ejbJarMetaData.
+ */
+ AssemblyDescriptorMetaData getAssemblyDescriptor()
+ {
+ EjbJarMetaData ejbJar = getEjbJarMetaData();
+ if (ejbJar == null)
+ return null;
+ return ejbJar.getAssemblyDescriptor();
+ }
+
+ /**
+ * Get the ejbName.
+ *
+ * @return the ejbName.
+ */
+ public String getEjbName()
+ {
+ return getName();
+ }
+
+ /**
+ * Set the ejbName.
+ *
+ * @param ejbName the ejbName.
+ * @throws IllegalArgumentException for a null ejbName
+ */
+ public void setEjbName(String ejbName)
+ {
+ setName(ejbName);
+ }
+
+ /**
+ * Whether this is a session bean
+ *
+ * @return true when a session bean
+ */
+ public boolean isSession()
+ {
+ return false;
+ }
+
+ /**
+ * Whether this is a message driven bean
+ *
+ * @return true when a message driven bean
+ */
+ public boolean isMessageDriven()
+ {
+ return false;
+ }
+
+ /**
+ * Whether this is an entity bean
+ *
+ * @return true when an entity bean
+ */
+ public boolean isEntity()
+ {
+ return false;
+ }
+
+ /**
+ * Get the transactionType.
+ *
+ * @return the transactionType.
+ */
+ public TransactionType getTransactionType()
+ {
+ return TransactionType.Container;
+ }
+
+ /**
+ * Is this container managed transactions
+ *
+ * @return true when CMT
+ */
+ public boolean isCMT()
+ {
+ TransactionType type = getTransactionType();
+ if (type == null)
+ return true;
+ else
+ return type == TransactionType.Container;
+ }
+
+ /**
+ * Is this bean managed transactions
+ *
+ * @return true when BMT
+ */
+ public boolean isBMT()
+ {
+ return isCMT() == false;
+ }
+
+ /**
+ * Get the mappedName.
+ *
+ * @return the mappedName.
+ */
+ public String getMappedName()
+ {
+ return mappedName;
+ }
+
+ /**
+ * Set the mappedName.
+ *
+ * @param mappedName the mappedName.
+ * @throws IllegalArgumentException for a null mappedName
+ */
+ @XmlElement(required=false)
+ public void setMappedName(String mappedName)
+ {
+ if (mappedName == null)
+ throw new IllegalArgumentException("Null mappedName");
+ this.mappedName = mappedName;
+ }
+
+ /**
+ * Get the ejbClass.
+ *
+ * @return the ejbClass.
+ */
+ public String getEjbClass()
+ {
+ return ejbClass;
+ }
+
+ /**
+ * Set the ejbClass.
+ *
+ * @param ejbClass the ejbClass.
+ * @throws IllegalArgumentException for a null ejbClass
+ */
+ public void setEjbClass(String ejbClass)
+ {
+ if (ejbClass == null)
+ throw new IllegalArgumentException("Null ejbClass");
+ this.ejbClass = ejbClass;
+ }
+
+ /**
+ * Get the jndiEnvironmentRefsGroup.
+ *
+ * @return the jndiEnvironmentRefsGroup.
+ */
+ public EnvironmentRefsGroupMetaData getJndiEnvironmentRefsGroup()
+ {
+ return jndiEnvironmentRefsGroup;
+ }
+
+ /**
+ * Set the jndiEnvironmentRefsGroup.
+ *
+ * @param jndiEnvironmentRefsGroup the jndiEnvironmentRefsGroup.
+ * @throws IllegalArgumentException for a null jndiEnvironmentRefsGroup
+ */
+ public void setJndiEnvironmentRefsGroup(EnvironmentRefsGroupMetaData jndiEnvironmentRefsGroup)
+ {
+ if (jndiEnvironmentRefsGroup == null)
+ throw new IllegalArgumentException("Null jndiEnvironmentRefsGroup");
+ this.jndiEnvironmentRefsGroup = jndiEnvironmentRefsGroup;
+ }
+
+ /**
+ * Get the securityIdentity.
+ *
+ * @return the securityIdentity.
+ */
+ public SecurityIdentityMetaData getSecurityIdentity()
+ {
+ return securityIdentity;
+ }
+
+ /**
+ * Set the securityIdentity.
+ *
+ * @param securityIdentity the securityIdentity.
+ * @throws IllegalArgumentException for a null securityIdentity
+ */
+ public void setSecurityIdentity(SecurityIdentityMetaData securityIdentity)
+ {
+ if (securityIdentity == null)
+ throw new IllegalArgumentException("Null securityIdentity");
+ this.securityIdentity = securityIdentity;
+ }
+
+ public EJBLocalReferenceMetaData getEjbLocalReferenceByName(String name)
+ {
+ return AbstractMappedMetaData.getByName(name, getEjbLocalReferences());
+ }
+
+ public EJBLocalReferencesMetaData getEjbLocalReferences()
+ {
+ if (jndiEnvironmentRefsGroup != null)
+ return jndiEnvironmentRefsGroup.getEjbLocalReferences();
+ return null;
+ }
+
+ public EJBReferenceMetaData getEjbReferenceByName(String name)
+ {
+ return AbstractMappedMetaData.getByName(name, getEjbReferences());
+ }
+
+ public EJBReferencesMetaData getEjbReferences()
+ {
+ if (jndiEnvironmentRefsGroup != null)
+ return jndiEnvironmentRefsGroup.getEjbReferences();
+ return null;
+ }
+
+ public EnvironmentEntriesMetaData getEnvironmentEntries()
+ {
+ if (jndiEnvironmentRefsGroup != null)
+ return jndiEnvironmentRefsGroup.getEnvironmentEntries();
+ return null;
+ }
+
+ public EnvironmentEntryMetaData getEnvironmentEntryByName(String name)
+ {
+ return AbstractMappedMetaData.getByName(name, getEnvironmentEntries());
+ }
+
+ public MessageDestinationReferenceMetaData getMessageDestinationReferenceByName(String name)
+ {
+ return AbstractMappedMetaData.getByName(name, getMessageDestinationReferences());
+ }
+
+ public MessageDestinationReferencesMetaData getMessageDestinationReferences()
+ {
+ if (jndiEnvironmentRefsGroup != null)
+ return jndiEnvironmentRefsGroup.getMessageDestinationReferences();
+ return null;
+ }
+
+ public PersistenceContextReferenceMetaData getPersistenceContextReferenceByName(String name)
+ {
+ return AbstractMappedMetaData.getByName(name, getPersistenceContextRefs());
+ }
+
+ public PersistenceContextReferencesMetaData getPersistenceContextRefs()
+ {
+ if (jndiEnvironmentRefsGroup != null)
+ return jndiEnvironmentRefsGroup.getPersistenceContextRefs();
+ return null;
+ }
+
+ public PersistenceUnitReferenceMetaData getPersistenceUnitReferenceByName(String name)
+ {
+ return AbstractMappedMetaData.getByName(name, getPersistenceUnitRefs());
+ }
+
+ public PersistenceUnitReferencesMetaData getPersistenceUnitRefs()
+ {
+ if (jndiEnvironmentRefsGroup != null)
+ return jndiEnvironmentRefsGroup.getPersistenceUnitRefs();
+ return null;
+ }
+
+ public LifecycleCallbacksMetaData getPostConstructs()
+ {
+ if (jndiEnvironmentRefsGroup != null)
+ return jndiEnvironmentRefsGroup.getPostConstructs();
+ return null;
+ }
+
+ public LifecycleCallbacksMetaData getPreDestroys()
+ {
+ if (jndiEnvironmentRefsGroup != null)
+ return jndiEnvironmentRefsGroup.getPreDestroys();
+ return null;
+ }
+
+ public ResourceEnvironmentReferenceMetaData getResourceEnvironmentReferenceByName(String name)
+ {
+ return AbstractMappedMetaData.getByName(name, getResourceEnvironmentReferences());
+ }
+
+ public ResourceEnvironmentReferencesMetaData getResourceEnvironmentReferences()
+ {
+ if (jndiEnvironmentRefsGroup != null)
+ return jndiEnvironmentRefsGroup.getResourceEnvironmentReferences();
+ return null;
+ }
+
+ public ResourceReferenceMetaData getResourceReferenceByName(String name)
+ {
+ return AbstractMappedMetaData.getByName(name, getResourceReferences());
+ }
+
+ public ResourceReferencesMetaData getResourceReferences()
+ {
+ if (jndiEnvironmentRefsGroup != null)
+ return jndiEnvironmentRefsGroup.getResourceReferences();
+ return null;
+ }
+
+ public ServiceReferenceMetaData getServiceReferenceByName(String name)
+ {
+ return AbstractMappedMetaData.getByName(name, getServiceReferences());
+ }
+
+ public ServiceReferencesMetaData getServiceReferences()
+ {
+ if (jndiEnvironmentRefsGroup != null)
+ return jndiEnvironmentRefsGroup.getServiceReferences();
+ return null;
+ }
+
+ /**
+ * Get the methods permissions
+ *
+ * @return the method permissions or null for no result
+ */
+ public MethodPermissionsMetaData getMethodPermissions()
+ {
+ AssemblyDescriptorMetaData assemblyDescriptor = getAssemblyDescriptor();
+ if (assemblyDescriptor == null)
+ return null;
+ return assemblyDescriptor.getMethodPermissionsByEjbName(getEjbName());
+ }
+
+ /**
+ * Get the container transactions
+ *
+ * @return the container transactions or null for no result
+ */
+ public ContainerTransactionsMetaData getContainerTransactions()
+ {
+ if (cachedContainerTransactions != null)
+ return cachedContainerTransactions;
+ AssemblyDescriptorMetaData assemblyDescriptor = getAssemblyDescriptor();
+ if (assemblyDescriptor == null)
+ return null;
+ return assemblyDescriptor.getContainerTransactionsByEjbName(getEjbName());
+ }
+
+ /**
+ * Get the method transaction type
+ *
+ * @param methodName the method name
+ * @param params the parameters
+ * @param iface the interface type
+ * @return the method transaction type
+ */
+ public TransAttributeType getMethodTransactionType(String methodName, Class[] params, MethodInterfaceType iface)
+ {
+ // default value
+ TransAttributeType result = null;
+
+ ContainerTransactionsMetaData containerTransactions = getContainerTransactions();
+ if (containerTransactions == null || containerTransactions.isEmpty())
+ return result;
+
+ ContainerTransactionMetaData bestMatchTransaction = null;
+ MethodMetaData bestMatch = null;
+ for (ContainerTransactionMetaData transaction : containerTransactions)
+ {
+ MethodMetaData match = transaction.bestMatch(methodName, params, iface, bestMatch);
+ if (match != bestMatch)
+ {
+ bestMatchTransaction = transaction;
+ bestMatch = match;
+ }
+ }
+
+ if (bestMatchTransaction != null)
+ result = bestMatchTransaction.getTransAttribute();
+
+ return result;
+ }
+
+ /**
+ * Get the transaction type
+ *
+ * @param m the method
+ * @param iface the interface type
+ * @return the transaction type
+ */
+ public TransAttributeType getMethodTransactionType(Method m, MethodInterfaceType iface)
+ {
+ if (m == null)
+ return TransAttributeType.Supports;
+
+ TransAttributeType result = null;
+ if (methodTx != null)
+ {
+ result = methodTx.get(m);
+ if (result != null)
+ return result;
+ }
+
+ result = getMethodTransactionType(m.getName(), m.getParameterTypes(), iface);
+
+ // provide default if method is not found in descriptor
+ if (result == null)
+ result = TransAttributeType.Required;
+
+ if (methodTx == null)
+ methodTx = new ConcurrentHashMap<Method, TransAttributeType>();
+ methodTx.put(m, result);
+ return result;
+ }
+
+ /**
+ * Get the interceptor binding
+ *
+ * @return the interceptor binding or null for no result
+ */
+ public InterceptorBindingMetaData getInterceptorBinding()
+ {
+ AssemblyDescriptorMetaData assemblyDescriptor = getAssemblyDescriptor();
+ if (assemblyDescriptor == null)
+ return null;
+ return assemblyDescriptor.getInterceptorBindingByEjbName(getEjbName());
+ }
+
+ /**
+ * Get the exclude list
+ *
+ * @return the exclude list or null for no result
+ */
+ public ExcludeListMetaData getExcludeList()
+ {
+ AssemblyDescriptorMetaData assemblyDescriptor = getAssemblyDescriptor();
+ if (assemblyDescriptor == null)
+ return null;
+ return assemblyDescriptor.getExcludeListByEjbName(getEjbName());
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/EnterpriseBeansMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/EnterpriseBeansMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/EnterpriseBeansMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,84 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.spec;
+
+import org.jboss.javaee.metadata.support.AbstractMappedMetaData;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * EnterpriseBeansMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlType(name="enterprise-beansType")
+public class EnterpriseBeansMetaData extends AbstractMappedMetaData<EnterpriseBeanMetaData>
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = -5528174778237011844L;
+
+ /** The top level metadata */
+ private EjbJarMetaData ejbJarMetaData;
+
+ /**
+ * Create a new EnterpriseBeansMetaData.
+ */
+ public EnterpriseBeansMetaData()
+ {
+ super("ejb name for enterprise bean");
+ }
+
+ /**
+ * Get the ejbJarMetaData.
+ *
+ * @return the ejbJarMetaData.
+ */
+ EjbJarMetaData getEjbJarMetaData()
+ {
+ return ejbJarMetaData;
+ }
+
+ /**
+ * Set the ejbJarMetaData.
+ *
+ * @param ejbJarMetaData the ejbJarMetaData.
+ * @throws IllegalArgumentException for a null ejbJarMetaData
+ */
+ void setEjbJarMetaData(EjbJarMetaData ejbJarMetaData)
+ {
+ if (ejbJarMetaData == null)
+ throw new IllegalArgumentException("Null ejbJarMetaData");
+ this.ejbJarMetaData = ejbJarMetaData;
+ }
+
+ @Override
+ public void addNotification(EnterpriseBeanMetaData added)
+ {
+ added.setEnterpriseBeansMetaData(this);
+ }
+
+ @Override
+ public void removeNotification(EnterpriseBeanMetaData removed)
+ {
+ removed.setEnterpriseBeansMetaData(null);
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/EntityBeanMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/EntityBeanMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/EntityBeanMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,424 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.spec;
+
+import org.jboss.javaee.metadata.spec.SecurityRoleRefsMetaData;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * EntityBeanMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlType(name="entity-beanType")
+public class EntityBeanMetaData extends EnterpriseBeanMetaData
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = 1538890391418490043L;
+
+ /** The home interface */
+ private String home;
+
+ /** The remote interface */
+ private String remote;
+
+ /** The local home */
+ private String localHome;
+
+ /** The local */
+ private String local;
+
+ /** The persistence type */
+ private PersistenceType persistenceType;
+
+ /** The primary key class */
+ private String primKeyClass;
+
+ /** The reentrant */
+ private boolean reentrant;
+
+ /** The cmp version */
+ private String cmpVersion;
+
+ /** The abstract schema name */
+ private String abstractSchemaName;
+
+ /** The cmp fields */
+ private CMPFieldsMetaData cmpFields;
+
+ /** The primary key field */
+ private String primKeyField;
+
+ /** The security role refs */
+ private SecurityRoleRefsMetaData securityRoleRefs;
+
+ /** The queries */
+ private QueriesMetaData queries;
+
+ /**
+ * Create a new EntityBeanMetaData.
+ */
+ public EntityBeanMetaData()
+ {
+ // For serialization
+ }
+
+ @Override
+ public boolean isEntity()
+ {
+ return true;
+ }
+
+ /**
+ * Get the home.
+ *
+ * @return the home.
+ */
+ public String getHome()
+ {
+ return home;
+ }
+
+ /**
+ * Set the home.
+ *
+ * @param home the home.
+ * @throws IllegalArgumentException for a null home
+ */
+ public void setHome(String home)
+ {
+ if (home == null)
+ throw new IllegalArgumentException("Null home");
+ this.home = home;
+ }
+
+ /**
+ * Get the remote.
+ *
+ * @return the remote.
+ */
+ public String getRemote()
+ {
+ return remote;
+ }
+
+ /**
+ * Set the remote.
+ *
+ * @param remote the remote.
+ * @throws IllegalArgumentException for a null remote
+ */
+ public void setRemote(String remote)
+ {
+ if (remote == null)
+ throw new IllegalArgumentException("Null remote");
+ this.remote = remote;
+ }
+
+ /**
+ * Get the localHome.
+ *
+ * @return the localHome.
+ */
+ public String getLocalHome()
+ {
+ return localHome;
+ }
+
+ /**
+ * Set the localHome.
+ *
+ * @param localHome the localHome.
+ * @throws IllegalArgumentException for a null localHome
+ */
+ public void setLocalHome(String localHome)
+ {
+ if (localHome == null)
+ throw new IllegalArgumentException("Null localHome");
+ this.localHome = localHome;
+ }
+
+ /**
+ * Get the local.
+ *
+ * @return the local.
+ */
+ public String getLocal()
+ {
+ return local;
+ }
+
+ /**
+ * Set the local.
+ *
+ * @param local the local.
+ * @throws IllegalArgumentException for a null local
+ */
+ public void setLocal(String local)
+ {
+ if (local == null)
+ throw new IllegalArgumentException("Null local");
+ this.local = local;
+ }
+
+ /**
+ * Is this container managed persistence
+ *
+ * @return true for cmp
+ */
+ public boolean isCMP()
+ {
+ if (persistenceType == null)
+ return true;
+ return persistenceType == PersistenceType.Container;
+ }
+
+ /**
+ * Is this bean managed persistence
+ *
+ * @return true for bmp
+ */
+ public boolean isBMP()
+ {
+ return isCMP() == false;
+ }
+
+ /**
+ * Get the persistenceType.
+ *
+ * @return the persistenceType.
+ */
+ public PersistenceType getPersistenceType()
+ {
+ return persistenceType;
+ }
+
+ /**
+ * Set the persistenceType.
+ *
+ * @param persistenceType the persistenceType.
+ * @throws IllegalArgumentException for a null persistenceType
+ */
+ public void setPersistenceType(PersistenceType persistenceType)
+ {
+ if (persistenceType == null)
+ throw new IllegalArgumentException("Null persistenceType");
+ this.persistenceType = persistenceType;
+ }
+
+ /**
+ * Get the primKeyClass.
+ *
+ * @return the primKeyClass.
+ */
+ public String getPrimKeyClass()
+ {
+ return primKeyClass;
+ }
+
+ /**
+ * Set the primKeyClass.
+ *
+ * @param primKeyClass the primKeyClass.
+ * @throws IllegalArgumentException for a null primKeyClass
+ */
+ public void setPrimKeyClass(String primKeyClass)
+ {
+ if (primKeyClass == null)
+ throw new IllegalArgumentException("Null primKeyClass");
+ this.primKeyClass = primKeyClass;
+ }
+
+ /**
+ * Get the reentrant.
+ *
+ * @return the reentrant.
+ */
+ public boolean isReentrant()
+ {
+ return reentrant;
+ }
+
+ /**
+ * Set the reentrant.
+ *
+ * @param reentrant the reentrant.
+ */
+ public void setReentrant(boolean reentrant)
+ {
+ this.reentrant = reentrant;
+ }
+
+ /**
+ * Whether it is CMP1x
+ *
+ * @return true for cmp1x
+ */
+ public boolean isCMP1x()
+ {
+ return "1.x".equals(cmpVersion);
+ }
+
+ /**
+ * Get the cmpVersion.
+ *
+ * @return the cmpVersion.
+ */
+ public String getCmpVersion()
+ {
+ return cmpVersion;
+ }
+
+ /**
+ * Set the cmpVersion.
+ *
+ * @param cmpVersion the cmpVersion.
+ * @throws IllegalArgumentException for a null cmpVersion
+ */
+ public void setCmpVersion(String cmpVersion)
+ {
+ if (cmpVersion == null)
+ throw new IllegalArgumentException("Null cmpVersion");
+ this.cmpVersion = cmpVersion;
+ }
+
+ /**
+ * Get the abstractSchemaName.
+ *
+ * @return the abstractSchemaName.
+ */
+ public String getAbstractSchemaName()
+ {
+ return abstractSchemaName;
+ }
+
+ /**
+ * Set the abstractSchemaName.
+ *
+ * @param abstractSchemaName the abstractSchemaName.
+ * @throws IllegalArgumentException for a null abstractSchemaName
+ */
+ public void setAbstractSchemaName(String abstractSchemaName)
+ {
+ if (abstractSchemaName == null)
+ throw new IllegalArgumentException("Null abstractSchemaName");
+ this.abstractSchemaName = abstractSchemaName;
+ }
+
+ /**
+ * Get the primKeyField.
+ *
+ * @return the primKeyField.
+ */
+ public String getPrimKeyField()
+ {
+ return primKeyField;
+ }
+
+ /**
+ * Set the primKeyField.
+ *
+ * @param primKeyField the primKeyField.
+ * @throws IllegalArgumentException for a null primKeyField
+ */
+ @XmlElement(name="primkey-field")
+ public void setPrimKeyField(String primKeyField)
+ {
+ if (primKeyField == null)
+ throw new IllegalArgumentException("Null primKeyField");
+ this.primKeyField = primKeyField;
+ }
+
+ /**
+ * Get the cmpFields.
+ *
+ * @return the cmpFields.
+ */
+ public CMPFieldsMetaData getCmpFields()
+ {
+ return cmpFields;
+ }
+
+ /**
+ * Set the cmpFields.
+ *
+ * @param cmpFields the cmpFields.
+ * @throws IllegalArgumentException for a null cmpFields
+ */
+ @XmlElement(name="cmp-field")
+ public void setCmpFields(CMPFieldsMetaData cmpFields)
+ {
+ if (cmpFields == null)
+ throw new IllegalArgumentException("Null cmpFields");
+ this.cmpFields = cmpFields;
+ }
+
+ /**
+ * Get the securityRoleRefs.
+ *
+ * @return the securityRoleRefs.
+ */
+ public SecurityRoleRefsMetaData getSecurityRoleRefs()
+ {
+ return securityRoleRefs;
+ }
+
+ /**
+ * Set the securityRoleRefs.
+ *
+ * @param securityRoleRefs the securityRoleRefs.
+ * @throws IllegalArgumentException for a null securityRoleRefs
+ */
+ @XmlElement(name="security-role-ref")
+ public void setSecurityRoleRefs(SecurityRoleRefsMetaData securityRoleRefs)
+ {
+ if (securityRoleRefs == null)
+ throw new IllegalArgumentException("Null securityRoleRefs");
+ this.securityRoleRefs = securityRoleRefs;
+ }
+
+ /**
+ * Get the queries.
+ *
+ * @return the queries.
+ */
+ public QueriesMetaData getQueries()
+ {
+ return queries;
+ }
+
+ /**
+ * Set the queries.
+ *
+ * @param queries the queries.
+ * @throws IllegalArgumentException for a null queries
+ */
+ @XmlElement(name="query")
+ public void setQueries(QueriesMetaData queries)
+ {
+ if (queries == null)
+ throw new IllegalArgumentException("Null queries");
+ this.queries = queries;
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/ExcludeListMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/ExcludeListMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/ExcludeListMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,119 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.spec;
+
+import org.jboss.javaee.metadata.support.IdMetaDataImplWithDescriptions;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * ExcludeListMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlType(name="exclude-listType")
+public class ExcludeListMetaData extends IdMetaDataImplWithDescriptions
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = -7505132782235878508L;
+
+ /** The methods */
+ private MethodsMetaData methods;
+
+ /**
+ * Create a new ExcludeListMetaData.
+ */
+ public ExcludeListMetaData()
+ {
+ // For serialization
+ }
+
+ /**
+ * Get the methods.
+ *
+ * @return the methods.
+ */
+ public MethodsMetaData getMethods()
+ {
+ return methods;
+ }
+
+ /**
+ * Set the methods.
+ *
+ * @param methods the methods.
+ * @throws IllegalArgumentException for a null methods
+ */
+ @XmlElement(name="method")
+ public void setMethods(MethodsMetaData methods)
+ {
+ if (methods == null)
+ throw new IllegalArgumentException("Null methods");
+ this.methods = methods;
+ }
+
+ /**
+ * Whether this matches
+ *
+ * @param methodName the method name
+ * @param params the parameters
+ * @param interfaceType the interface type
+ * @return true when it matches
+ */
+ public boolean matches(String methodName, Class[] params, MethodInterfaceType interfaceType)
+ {
+ if (methods == null)
+ return false;
+ return methods.matches(methodName, params, interfaceType);
+ }
+
+ /**
+ * Get the exclude list for an ejb
+ *
+ * @param ejbName the ejb name
+ * @return the exclude list or null for no result
+ * @throws IllegalArgumentException for a null ejb name
+ */
+ public ExcludeListMetaData getExcludeListByEjbName(String ejbName)
+ {
+ if (ejbName == null)
+ throw new IllegalArgumentException("Null ejbName");
+
+ if (methods == null)
+ return null;
+
+ MethodsMetaData ejbMethods = methods.getMethodsByEjbName(ejbName);
+ if (ejbMethods == null)
+ return null;
+
+ ExcludeListMetaData result = clone();
+ result.setMethods(ejbMethods);
+ return result;
+ }
+
+ @Override
+ public ExcludeListMetaData clone()
+ {
+ return (ExcludeListMetaData) super.clone();
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/InitMethodMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/InitMethodMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/InitMethodMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,98 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.spec;
+
+import org.jboss.javaee.metadata.support.IdMetaDataImpl;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * InitMethodMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlType(name="init-methodType")
+public class InitMethodMetaData extends IdMetaDataImpl
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = 1830841714074832930L;
+
+ /** The create method */
+ private NamedMethodMetaData createMethod;
+
+ /** The bean method */
+ private NamedMethodMetaData beanMethod;
+
+ /**
+ * Create a new InitMethodMetaData.
+ */
+ public InitMethodMetaData()
+ {
+ // For serialization
+ }
+
+ /**
+ * Get the createMethod.
+ *
+ * @return the createMethod.
+ */
+ public NamedMethodMetaData getCreateMethod()
+ {
+ return createMethod;
+ }
+
+ /**
+ * Set the createMethod.
+ *
+ * @param createMethod the createMethod.
+ * @throws IllegalArgumentException for a null createMethod
+ */
+ public void setCreateMethod(NamedMethodMetaData createMethod)
+ {
+ if (createMethod == null)
+ throw new IllegalArgumentException("Null createMethod");
+ this.createMethod = createMethod;
+ }
+
+ /**
+ * Get the beanMethod.
+ *
+ * @return the beanMethod.
+ */
+ public NamedMethodMetaData getBeanMethod()
+ {
+ return beanMethod;
+ }
+
+ /**
+ * Set the beanMethod.
+ *
+ * @param beanMethod the beanMethod.
+ * @throws IllegalArgumentException for a null beanMethod
+ */
+ public void setBeanMethod(NamedMethodMetaData beanMethod)
+ {
+ if (beanMethod == null)
+ throw new IllegalArgumentException("Null beanMethod");
+ this.beanMethod = beanMethod;
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/InitMethodsMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/InitMethodsMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/InitMethodsMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,44 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.spec;
+
+import org.jboss.javaee.metadata.support.NonNullLinkedHashSet;
+
+/**
+ * InitMethodsMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public class InitMethodsMetaData extends NonNullLinkedHashSet<InitMethodMetaData>
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = -2908907768394563619L;
+
+ /**
+ * Create a new InitMethodsMetaData.
+ */
+ public InitMethodsMetaData()
+ {
+ // For serialization
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/InterceptorBindingMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/InterceptorBindingMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/InterceptorBindingMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,193 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.spec;
+
+import org.jboss.javaee.metadata.support.NamedMetaDataWithDescriptions;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * InterceptorBindingMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlType(name="interceptor-bindingType")
+public class InterceptorBindingMetaData extends NamedMetaDataWithDescriptions
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = 3265594088830429912L;
+
+ /** The interceptor classes */
+ private InterceptorClassesMetaData interceptorClasses;
+
+ /** The interceptor order */
+ private InterceptorOrderMetaData interceptorOrder;
+
+ /** Exclude the default interceptors */
+ private boolean excludeDefaultInterceptors = false;
+
+ /** Exclude the class interceptors */
+ private boolean excludeClassInterceptors = false;
+
+ /** The method */
+ private NamedMethodMetaData method;
+
+ /**
+ * Create a new MethodMetaData.
+ */
+ public InterceptorBindingMetaData()
+ {
+ // For serialization
+ }
+
+ /**
+ * Get the ejbName.
+ *
+ * @return the ejbName.
+ */
+ public String getEjbName()
+ {
+ return getName();
+ }
+
+ /**
+ * Set the ejbName.
+ *
+ * @param ejbName the ejbName.
+ * @throws IllegalArgumentException for a null ejbName
+ */
+ public void setEjbName(String ejbName)
+ {
+ setName(ejbName);
+ }
+
+ /**
+ * Get the excludeClassInterceptors.
+ *
+ * @return the excludeClassInterceptors.
+ */
+ public boolean isExcludeClassInterceptors()
+ {
+ return excludeClassInterceptors;
+ }
+
+ /**
+ * Set the excludeClassInterceptors.
+ *
+ * @param excludeClassInterceptors the excludeClassInterceptors.
+ */
+ public void setExcludeClassInterceptors(boolean excludeClassInterceptors)
+ {
+ this.excludeClassInterceptors = excludeClassInterceptors;
+ }
+
+ /**
+ * Get the excludeDefaultInterceptors.
+ *
+ * @return the excludeDefaultInterceptors.
+ */
+ public boolean isExcludeDefaultInterceptors()
+ {
+ return excludeDefaultInterceptors;
+ }
+
+ /**
+ * Set the excludeDefaultInterceptors.
+ *
+ * @param excludeDefaultInterceptors the excludeDefaultInterceptors.
+ */
+ public void setExcludeDefaultInterceptors(boolean excludeDefaultInterceptors)
+ {
+ this.excludeDefaultInterceptors = excludeDefaultInterceptors;
+ }
+
+ /**
+ * Get the interceptorClasses.
+ *
+ * @return the interceptorClasses.
+ */
+ public InterceptorClassesMetaData getInterceptorClasses()
+ {
+ return interceptorClasses;
+ }
+
+ /**
+ * Set the interceptorClasses.
+ *
+ * @param interceptorClasses the interceptorClasses.
+ * @throws IllegalArgumentException for a null interceptorClasses
+ */
+ @XmlElement(name="interceptor-class")
+ public void setInterceptorClasses(InterceptorClassesMetaData interceptorClasses)
+ {
+ if (interceptorClasses == null)
+ throw new IllegalArgumentException("Null interceptorClasses");
+ this.interceptorClasses = interceptorClasses;
+ }
+
+ /**
+ * Get the interceptorOrder.
+ *
+ * @return the interceptorOrder.
+ */
+ public InterceptorOrderMetaData getInterceptorOrder()
+ {
+ return interceptorOrder;
+ }
+
+ /**
+ * Set the interceptorOrder.
+ *
+ * @param interceptorOrder the interceptorOrder.
+ * @throws IllegalArgumentException for a null interceptorOrder
+ */
+ public void setInterceptorOrder(InterceptorOrderMetaData interceptorOrder)
+ {
+ if (interceptorOrder == null)
+ throw new IllegalArgumentException("Null interceptorOrder");
+ this.interceptorOrder = interceptorOrder;
+ }
+
+ /**
+ * Get the method.
+ *
+ * @return the method.
+ */
+ public NamedMethodMetaData getMethod()
+ {
+ return method;
+ }
+
+ /**
+ * Set the method.
+ *
+ * @param method the method.
+ * @throws IllegalArgumentException for a null method
+ */
+ public void setMethod(NamedMethodMetaData method)
+ {
+ if (method == null)
+ throw new IllegalArgumentException("Null method");
+ this.method = method;
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/InterceptorBindingsMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/InterceptorBindingsMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/InterceptorBindingsMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,44 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.spec;
+
+import org.jboss.javaee.metadata.support.AbstractMappedMetaData;
+
+/**
+ * InterceptorBindingsMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public class InterceptorBindingsMetaData extends AbstractMappedMetaData<InterceptorBindingMetaData>
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = 7802311372886754408L;
+
+ /**
+ * Create a new InterceptorBindingsMetaData.
+ */
+ public InterceptorBindingsMetaData()
+ {
+ super("ejb name for interceptor binding");
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/InterceptorClassesMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/InterceptorClassesMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/InterceptorClassesMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,44 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.spec;
+
+import org.jboss.javaee.metadata.support.NonNullLinkedHashSetWithId;
+
+/**
+ * InterceptorClassesMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public class InterceptorClassesMetaData extends NonNullLinkedHashSetWithId<String>
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = 5516210500525606753L;
+
+ /**
+ * Create a new InterceptorClassesMetaData.
+ */
+ public InterceptorClassesMetaData()
+ {
+ // For serialization
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/InterceptorMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/InterceptorMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/InterceptorMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,320 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.spec;
+
+import org.jboss.javaee.metadata.spec.EJBLocalReferenceMetaData;
+import org.jboss.javaee.metadata.spec.EJBLocalReferencesMetaData;
+import org.jboss.javaee.metadata.spec.EJBReferenceMetaData;
+import org.jboss.javaee.metadata.spec.EJBReferencesMetaData;
+import org.jboss.javaee.metadata.spec.Environment;
+import org.jboss.javaee.metadata.spec.EnvironmentEntriesMetaData;
+import org.jboss.javaee.metadata.spec.EnvironmentEntryMetaData;
+import org.jboss.javaee.metadata.spec.EnvironmentRefsGroupMetaData;
+import org.jboss.javaee.metadata.spec.LifecycleCallbacksMetaData;
+import org.jboss.javaee.metadata.spec.MessageDestinationReferenceMetaData;
+import org.jboss.javaee.metadata.spec.MessageDestinationReferencesMetaData;
+import org.jboss.javaee.metadata.spec.PersistenceContextReferenceMetaData;
+import org.jboss.javaee.metadata.spec.PersistenceContextReferencesMetaData;
+import org.jboss.javaee.metadata.spec.PersistenceUnitReferenceMetaData;
+import org.jboss.javaee.metadata.spec.PersistenceUnitReferencesMetaData;
+import org.jboss.javaee.metadata.spec.ResourceEnvironmentReferenceMetaData;
+import org.jboss.javaee.metadata.spec.ResourceEnvironmentReferencesMetaData;
+import org.jboss.javaee.metadata.spec.ResourceReferenceMetaData;
+import org.jboss.javaee.metadata.spec.ResourceReferencesMetaData;
+import org.jboss.javaee.metadata.spec.ServiceReferenceMetaData;
+import org.jboss.javaee.metadata.spec.ServiceReferencesMetaData;
+import org.jboss.javaee.metadata.support.AbstractMappedMetaData;
+import org.jboss.javaee.metadata.support.NamedMetaDataWithDescriptions;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * InterceptorMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlType(name="interceptorType")
+public class InterceptorMetaData extends NamedMetaDataWithDescriptions implements Environment
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = 334047485589422650L;
+
+ /** The around invokes */
+ private AroundInvokesMetaData aroundInvokes;
+
+ /** The environment */
+ private EnvironmentRefsGroupMetaData environment;
+
+ /** The post activate method */
+ private LifecycleCallbacksMetaData postActivates;
+
+ /** The pre passivate method */
+ private LifecycleCallbacksMetaData prePassivates;
+
+ /**
+ * Create a new InterceptorMetaData.
+ */
+ public InterceptorMetaData()
+ {
+ // For serialization
+ }
+
+ /**
+ * Get the environment.
+ *
+ * @return the environment.
+ */
+ public EnvironmentRefsGroupMetaData getJndiEnvironmentRefsGroup()
+ {
+ return environment;
+ }
+
+ /**
+ * Set the environment.
+ *
+ * @param environment the environment.
+ * @throws IllegalArgumentException for a null environment
+ */
+ @XmlElement(/*noInterceptor=true*/)
+ public void setJndiEnvironmentRefsGroup(EnvironmentRefsGroupMetaData environment)
+ {
+ if (environment == null)
+ throw new IllegalArgumentException("Null environment");
+ this.environment = environment;
+ }
+
+ /**
+ * Get the interceptorClass.
+ *
+ * @return the interceptorClass.
+ */
+ public String getInterceptorClass()
+ {
+ return getName();
+ }
+
+ /**
+ * Set the interceptorClass.
+ *
+ * @param interceptorClass the interceptorClass.
+ * @throws IllegalArgumentException for a null interceptorClass
+ */
+ public void setInterceptorClass(String interceptorClass)
+ {
+ setName(interceptorClass);
+ }
+
+ /**
+ * Get the aroundInvokes.
+ *
+ * @return the aroundInvokes.
+ */
+ public AroundInvokesMetaData getAroundInvokes()
+ {
+ return aroundInvokes;
+ }
+
+ /**
+ * Set the aroundInvokes.
+ *
+ * @param aroundInvokes the aroundInvokes.
+ * @throws IllegalArgumentException for a null aroundInvokes
+ */
+ @XmlElement(name="around-invoke")
+ public void setAroundInvokes(AroundInvokesMetaData aroundInvokes)
+ {
+ if (aroundInvokes == null)
+ throw new IllegalArgumentException("Null aroundInvokes");
+ this.aroundInvokes = aroundInvokes;
+ }
+
+ /**
+ * Get the postActivates.
+ *
+ * @return the postActivates.
+ */
+ public LifecycleCallbacksMetaData getPostActivates()
+ {
+ return postActivates;
+ }
+
+ /**
+ * Set the postActivates.
+ *
+ * @param postActivates the postActivates.
+ * @throws IllegalArgumentException for a null postActivates
+ */
+ @XmlElement(name="post-activate")
+ public void setPostActivates(LifecycleCallbacksMetaData postActivates)
+ {
+ if (postActivates == null)
+ throw new IllegalArgumentException("Null postActivates");
+ this.postActivates = postActivates;
+ }
+
+ /**
+ * Get the prePassivates.
+ *
+ * @return the prePassivates.
+ */
+ public LifecycleCallbacksMetaData getPrePassivates()
+ {
+ return prePassivates;
+ }
+
+ /**
+ * Set the prePassivates.
+ *
+ * @param prePassivates the prePassivates.
+ * @throws IllegalArgumentException for a null prePassivates
+ */
+ @XmlElement(name="pre-passivate")
+ public void setPrePassivates(LifecycleCallbacksMetaData prePassivates)
+ {
+ if (prePassivates == null)
+ throw new IllegalArgumentException("Null prePassivates");
+ this.prePassivates = prePassivates;
+ }
+
+ public EJBLocalReferenceMetaData getEjbLocalReferenceByName(String name)
+ {
+ return AbstractMappedMetaData.getByName(name, getEjbLocalReferences());
+ }
+
+ public EJBLocalReferencesMetaData getEjbLocalReferences()
+ {
+ if (environment != null)
+ return environment.getEjbLocalReferences();
+ return null;
+ }
+
+ public EJBReferenceMetaData getEjbReferenceByName(String name)
+ {
+ return AbstractMappedMetaData.getByName(name, getEjbReferences());
+ }
+
+ public EJBReferencesMetaData getEjbReferences()
+ {
+ if (environment != null)
+ return environment.getEjbReferences();
+ return null;
+ }
+
+ public EnvironmentEntriesMetaData getEnvironmentEntries()
+ {
+ if (environment != null)
+ return environment.getEnvironmentEntries();
+ return null;
+ }
+
+ public EnvironmentEntryMetaData getEnvironmentEntryByName(String name)
+ {
+ return AbstractMappedMetaData.getByName(name, getEnvironmentEntries());
+ }
+
+ public MessageDestinationReferenceMetaData getMessageDestinationReferenceByName(String name)
+ {
+ return AbstractMappedMetaData.getByName(name, getMessageDestinationReferences());
+ }
+
+ public MessageDestinationReferencesMetaData getMessageDestinationReferences()
+ {
+ if (environment != null)
+ return environment.getMessageDestinationReferences();
+ return null;
+ }
+
+ public PersistenceContextReferenceMetaData getPersistenceContextReferenceByName(String name)
+ {
+ return AbstractMappedMetaData.getByName(name, getPersistenceContextRefs());
+ }
+
+ public PersistenceContextReferencesMetaData getPersistenceContextRefs()
+ {
+ if (environment != null)
+ return environment.getPersistenceContextRefs();
+ return null;
+ }
+
+ public PersistenceUnitReferenceMetaData getPersistenceUnitReferenceByName(String name)
+ {
+ return AbstractMappedMetaData.getByName(name, getPersistenceUnitRefs());
+ }
+
+ public PersistenceUnitReferencesMetaData getPersistenceUnitRefs()
+ {
+ if (environment != null)
+ return environment.getPersistenceUnitRefs();
+ return null;
+ }
+
+ public LifecycleCallbacksMetaData getPostConstructs()
+ {
+ if (environment != null)
+ return environment.getPostConstructs();
+ return null;
+ }
+
+ public LifecycleCallbacksMetaData getPreDestroys()
+ {
+ if (environment != null)
+ return environment.getPreDestroys();
+ return null;
+ }
+
+ public ResourceEnvironmentReferenceMetaData getResourceEnvironmentReferenceByName(String name)
+ {
+ return AbstractMappedMetaData.getByName(name, getResourceEnvironmentReferences());
+ }
+
+ public ResourceEnvironmentReferencesMetaData getResourceEnvironmentReferences()
+ {
+ if (environment != null)
+ return environment.getResourceEnvironmentReferences();
+ return null;
+ }
+
+ public ResourceReferenceMetaData getResourceReferenceByName(String name)
+ {
+ return AbstractMappedMetaData.getByName(name, getResourceReferences());
+ }
+
+ public ResourceReferencesMetaData getResourceReferences()
+ {
+ if (environment != null)
+ return environment.getResourceReferences();
+ return null;
+ }
+
+ public ServiceReferenceMetaData getServiceReferenceByName(String name)
+ {
+ return AbstractMappedMetaData.getByName(name, getServiceReferences());
+ }
+
+ public ServiceReferencesMetaData getServiceReferences()
+ {
+ if (environment != null)
+ return environment.getServiceReferences();
+ return null;
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/InterceptorOrderMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/InterceptorOrderMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/InterceptorOrderMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,45 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.spec;
+
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * InterceptorClassesMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlType(name="interceptor-orderType")
+public class InterceptorOrderMetaData extends InterceptorClassesMetaData
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = 5127501603376984685L;
+
+ /**
+ * Create a new InterceptorClassesMetaData.
+ */
+ public InterceptorOrderMetaData()
+ {
+ // For serialization
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/InterceptorsMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/InterceptorsMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/InterceptorsMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,46 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.spec;
+
+import org.jboss.javaee.metadata.support.MappedMetaDataWithDescriptions;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * InterceptorsMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlType(name="interceptorsType")
+public class InterceptorsMetaData extends MappedMetaDataWithDescriptions<InterceptorMetaData>
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = 2111431052074738841L;
+
+ /**
+ * Create a new EnterpriseBeansMetaData.
+ */
+ public InterceptorsMetaData()
+ {
+ super("interceptor class");
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/MessageDrivenBeanMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/MessageDrivenBeanMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/MessageDrivenBeanMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,338 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.spec;
+
+
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * MessageDrivenBeanMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlType(name="message-driven-beanType")
+public class MessageDrivenBeanMetaData extends EnterpriseBeanMetaData
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = -7353017099819838715L;
+
+ /** The messaging type */
+ private String messagingType;
+
+ /** The timeout method */
+ private NamedMethodMetaData timeoutMethod;
+
+ /** The transaction type */
+ private TransactionType transactionType;
+
+ /** The message destination type */
+ private String messageDestinationType;
+
+ /** The message destination link */
+ private String messageDestinationLink;
+
+ /** The activation config */
+ private ActivationConfigMetaData activationConfig;
+
+ /** The around invokes */
+ private AroundInvokesMetaData aroundInvokes;
+
+ /** The message selector */
+ private String messageSelector;
+
+ /** The acknowledge mode */
+ private String acknowledgeMode;
+
+ /** The subscription durability */
+ private SubscriptionDurability subscriptionDurability = SubscriptionDurability.NonDurable;
+
+ /**
+ * Create a new MessageDrivenBeanMetaData.
+ */
+ public MessageDrivenBeanMetaData()
+ {
+ // For serialization
+ }
+
+ @Override
+ public boolean isMessageDriven()
+ {
+ return true;
+ }
+
+
+ /**
+ * Get the messagingType.
+ *
+ * @return the messagingType.
+ */
+ public String getMessagingType()
+ {
+ return messagingType;
+ }
+
+ /**
+ * Is this JMS
+ *
+ * @return true for jms
+ */
+ public boolean isJMS()
+ {
+ return "javax.jms.MessageListener".equals(getMessagingType());
+ }
+
+
+ /**
+ * Set the messagingType.
+ *
+ * @param messagingType the messagingType.
+ * @throws IllegalArgumentException for a null messagingType
+ */
+ public void setMessagingType(String messagingType)
+ {
+ if (messagingType == null)
+ throw new IllegalArgumentException("Null messagingType");
+ this.messagingType = messagingType;
+ }
+
+
+ /**
+ * Get the timeoutMethod.
+ *
+ * @return the timeoutMethod.
+ */
+ public NamedMethodMetaData getTimeoutMethod()
+ {
+ return timeoutMethod;
+ }
+
+
+ /**
+ * Set the timeoutMethod.
+ *
+ * @param timeoutMethod the timeoutMethod.
+ * @throws IllegalArgumentException for a null timeoutMethod
+ */
+ @XmlElement(required=false)
+ public void setTimeoutMethod(NamedMethodMetaData timeoutMethod)
+ {
+ if (timeoutMethod == null)
+ throw new IllegalArgumentException("Null timeoutMethod");
+ this.timeoutMethod = timeoutMethod;
+ }
+
+
+ @Override
+ public TransactionType getTransactionType()
+ {
+ return transactionType;
+ }
+
+
+ /**
+ * Set the transactionType.
+ *
+ * @param transactionType the transactionType.
+ * @throws IllegalArgumentException for a null transactionType
+ */
+ public void setTransactionType(TransactionType transactionType)
+ {
+ if (transactionType == null)
+ throw new IllegalArgumentException("Null transactionType");
+ this.transactionType = transactionType;
+ }
+
+
+ /**
+ * Get the messageDestinationType.
+ *
+ * @return the messageDestinationType.
+ */
+ public String getMessageDestinationType()
+ {
+ return messageDestinationType;
+ }
+
+
+ /**
+ * Set the messageDestinationType.
+ *
+ * @param messageDestinationType the messageDestinationType.
+ * @throws IllegalArgumentException for a null messageDestinationType
+ */
+ public void setMessageDestinationType(String messageDestinationType)
+ {
+ if (messageDestinationType == null)
+ throw new IllegalArgumentException("Null messageDestinationType");
+ this.messageDestinationType = messageDestinationType;
+ }
+
+
+ /**
+ * Get the aroundInvokes.
+ *
+ * @return the aroundInvokes.
+ */
+ public AroundInvokesMetaData getAroundInvokes()
+ {
+ return aroundInvokes;
+ }
+
+
+ /**
+ * Set the aroundInvokes.
+ *
+ * @param aroundInvokes the aroundInvokes.
+ * @throws IllegalArgumentException for a null aroundInvokes
+ */
+ @XmlElement(name="around-invoke", required=false)
+ public void setAroundInvokes(AroundInvokesMetaData aroundInvokes)
+ {
+ if (aroundInvokes == null)
+ throw new IllegalArgumentException("Null aroundInvokes");
+ this.aroundInvokes = aroundInvokes;
+ }
+
+
+ /**
+ * Get the messageDestinationLink.
+ *
+ * @return the messageDestinationLink.
+ */
+ public String getMessageDestinationLink()
+ {
+ return messageDestinationLink;
+ }
+
+
+ /**
+ * Set the messageDestinationLink.
+ *
+ * @param messageDestinationLink the messageDestinationLink.
+ * @throws IllegalArgumentException for a null messageDestinationLink
+ */
+ public void setMessageDestinationLink(String messageDestinationLink)
+ {
+ if (messageDestinationLink == null)
+ throw new IllegalArgumentException("Null messageDestinationLink");
+ this.messageDestinationLink = messageDestinationLink;
+ }
+
+
+ /**
+ * Get the activationConfig.
+ *
+ * @return the activationConfig.
+ */
+ public ActivationConfigMetaData getActivationConfig()
+ {
+ return activationConfig;
+ }
+
+
+ /**
+ * Set the activationConfig.
+ *
+ * @param activationConfig the activationConfig.
+ * @throws IllegalArgumentException for a null activationConfig
+ */
+ public void setActivationConfig(ActivationConfigMetaData activationConfig)
+ {
+ if (activationConfig == null)
+ throw new IllegalArgumentException("Null activationConfig");
+ this.activationConfig = activationConfig;
+ }
+
+ /**
+ * Get the messageSelector.
+ *
+ * @return the messageSelector.
+ */
+ public String getMessageSelector()
+ {
+ return messageSelector;
+ }
+
+ /**
+ * Set the messageSelector.
+ *
+ * @param messageSelector the messageSelector.
+ * @throws IllegalArgumentException for a null messageSelector
+ */
+ @XmlElement(required=false)
+ public void setMessageSelector(String messageSelector)
+ {
+ if (messageSelector == null)
+ throw new IllegalArgumentException("Null messageSelector");
+ this.messageSelector = messageSelector;
+ }
+
+ /**
+ * Get the acknowledgeMode.
+ *
+ * @return the acknowledgeMode.
+ */
+ public String getAcknowledgeMode()
+ {
+ return acknowledgeMode;
+ }
+
+ /**
+ * Set the acknowledgeMode.
+ *
+ * @param acknowledgeMode the acknowledgeMode.
+ * @throws IllegalArgumentException for a null acknowledgeMode
+ */
+ @XmlElement(required=false)
+ public void setAcknowledgeMode(String acknowledgeMode)
+ {
+ if (acknowledgeMode == null)
+ throw new IllegalArgumentException("Null acknowledgeMode");
+ this.acknowledgeMode = acknowledgeMode;
+ }
+
+ /**
+ * Get the subscriptionDurability.
+ *
+ * @return the subscriptionDurability.
+ */
+ public SubscriptionDurability getSubscriptionDurability()
+ {
+ return subscriptionDurability;
+ }
+
+ /**
+ * Set the subscriptionDurability.
+ *
+ * @param subscriptionDurability the subscriptionDurability.
+ * @throws IllegalArgumentException for a null subscriptionDurability
+ */
+ @XmlElement(required=false)
+ public void setSubscriptionDurability(SubscriptionDurability subscriptionDurability)
+ {
+ if (subscriptionDurability == null)
+ throw new IllegalArgumentException("Null subscriptionDurability");
+ this.subscriptionDurability = subscriptionDurability;
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/MethodInterfaceType.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/MethodInterfaceType.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/MethodInterfaceType.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,49 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.spec;
+
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * MethodInterfaceType.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlType(name="method-intfType")
+public enum MethodInterfaceType
+{
+ /** Home */
+ Home,
+
+ /** Remote */
+ Remote,
+
+ /** LocalHome */
+ LocalHome,
+
+ /** Local */
+ Local,
+
+ /** ServiceEndpoint */
+ ServiceEndpoint,
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/MethodMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/MethodMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/MethodMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,250 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.spec;
+
+import org.jboss.javaee.metadata.support.IdMetaDataImplWithDescriptions;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * MethodMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlType(name="methodType")
+public class MethodMetaData extends IdMetaDataImplWithDescriptions
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = -985973586611090108L;
+
+ /** The ejb name */
+ private String ejbName;
+
+ /** The method interface */
+ private MethodInterfaceType methodInterface;
+
+ /** The method name */
+ private String methodName;
+
+ /** The method parameters */
+ private MethodParametersMetaData methodParams;
+
+ /**
+ * Create a new MethodMetaData.
+ */
+ public MethodMetaData()
+ {
+ // For serialization
+ }
+
+ /**
+ * Get the ejbName.
+ *
+ * @return the ejbName.
+ */
+ public String getEjbName()
+ {
+ return ejbName;
+ }
+
+ /**
+ * Set the ejbName.
+ *
+ * @param ejbName the ejbName.
+ * @throws IllegalArgumentException for a null ejbName
+ */
+ public void setEjbName(String ejbName)
+ {
+ if (ejbName == null)
+ throw new IllegalArgumentException("Null ejbName");
+ this.ejbName = ejbName;
+ }
+
+ /**
+ * Get the methodInterface.
+ *
+ * @return the methodInterface.
+ */
+ public MethodInterfaceType getMethodIntf()
+ {
+ return methodInterface;
+ }
+
+ /**
+ * Set the methodInterface.
+ *
+ * @param methodInterface the methodInterface.
+ * @throws IllegalArgumentException for a null methodInterface
+ */
+ @XmlElement(name="method-intf")
+ public void setMethodIntf(MethodInterfaceType methodInterface)
+ {
+ if (methodInterface == null)
+ throw new IllegalArgumentException("Null methodInterface");
+ this.methodInterface = methodInterface;
+ }
+
+ /**
+ * Get the methodName.
+ *
+ * @return the methodName.
+ */
+ public String getMethodName()
+ {
+ return methodName;
+ }
+
+ /**
+ * Set the methodName.
+ *
+ * @param methodName the methodName.
+ * @throws IllegalArgumentException for a null methodName
+ */
+ public void setMethodName(String methodName)
+ {
+ if (methodName == null)
+ throw new IllegalArgumentException("Null methodName");
+ this.methodName = methodName;
+ }
+
+ /**
+ * Get the methodParams.
+ *
+ * @return the methodParams.
+ */
+ public MethodParametersMetaData getMethodParams()
+ {
+ return methodParams;
+ }
+
+ /**
+ * Set the methodParams.
+ *
+ * TODO this should probably be done with XmlElementWrapper annotation
+ * instead of the JBossXmlChild...
+ *
+ * @param methodParams the methodParams.
+ * @throws IllegalArgumentException for a null methodParams
+ */
+ public void setMethodParams(MethodParametersMetaData methodParams)
+ {
+ if (methodParams == null)
+ throw new IllegalArgumentException("Null methodParams");
+ this.methodParams = methodParams;
+ }
+
+ /**
+ * Whether this matches
+ *
+ * @param methodName the method name
+ * @param params the parameters
+ * @param interfaceType the interface type
+ * @return true when it matches
+ */
+ public boolean matches(String methodName, String[] params, MethodInterfaceType interfaceType)
+ {
+ if (methodName == null)
+ throw new IllegalArgumentException("Null methodName");
+
+ // Check the type
+ if (methodInterface != null && methodInterface != interfaceType)
+ return false;
+
+ // the wildcard matches everything
+ if (getMethodName().equals("*"))
+ return true;
+
+ // Method name does not match
+ if (getMethodName().equals(methodName) == false)
+ return false;
+
+ // No parameters to match
+ if (methodParams == null)
+ return true;
+
+ // Wrong number of paremters
+ if (params.length != methodParams.size())
+ return false;
+
+ // Check each parameter
+ int i = 0;
+ for (String param : methodParams)
+ {
+ if (param.equals(params[i++]) == false)
+ return false;
+ }
+
+ // We match
+ return true;
+ }
+
+ /**
+ * Whether this is a home method
+ *
+ * @return true when a home method
+ */
+ public boolean isHomeMethod()
+ {
+ return MethodInterfaceType.Home == methodInterface;
+ }
+
+ /**
+ * Whether this is a remote method
+ *
+ * @return true when a remote method
+ */
+ public boolean isRemoteMethod()
+ {
+ return MethodInterfaceType.Remote == methodInterface;
+ }
+
+ /**
+ * Whether this is a local home method
+ *
+ * @return true when a local home method
+ */
+ public boolean isLocalHomeMethod()
+ {
+ return MethodInterfaceType.LocalHome == methodInterface;
+ }
+
+ /**
+ * Whether this is a local method
+ *
+ * @return true when a local method
+ */
+ public boolean isLocalMethod()
+ {
+ return MethodInterfaceType.Local == methodInterface;
+ }
+
+ /**
+ * Whether this is a service endpoint method
+ *
+ * @return true when a service endpoint method
+ */
+ public boolean isServiceEndpointMethod()
+ {
+ return MethodInterfaceType.ServiceEndpoint == methodInterface;
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/MethodParametersMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/MethodParametersMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/MethodParametersMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,49 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.spec;
+
+import org.jboss.javaee.metadata.support.NonNullLinkedHashSet;
+import org.jboss.xb.annotations.JBossXmlChild;
+
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * MethodParametersMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlType(name="method-paramsType")
+ at JBossXmlChild(name="method-param", type=String.class, unbounded=true)
+public class MethodParametersMetaData extends NonNullLinkedHashSet<String>
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = -9138498601978922673L;
+
+ /**
+ * Create a new MethodParametersMetaData.
+ */
+ public MethodParametersMetaData()
+ {
+ // For serialization
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/MethodPermissionMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/MethodPermissionMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/MethodPermissionMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,195 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.spec;
+
+import java.util.Set;
+
+import org.jboss.javaee.metadata.spec.EmptyMetaData;
+import org.jboss.javaee.metadata.support.IdMetaDataImplWithDescriptions;
+import org.jboss.javaee.metadata.support.NonNullLinkedHashSet;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * MethodPermissionMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlType(name="method-permissionType")
+public class MethodPermissionMetaData extends IdMetaDataImplWithDescriptions
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = -985973586611090108L;
+
+ /** Whether it is unchecked */
+ private EmptyMetaData unchecked;
+
+ /** The roles */
+ private Set<String> roles;
+
+ /** The methods */
+ private MethodsMetaData methods;
+
+ /**
+ * Create a new MethodPermissionMetaData.
+ */
+ public MethodPermissionMetaData()
+ {
+ // For serialization
+ }
+
+ /**
+ * Get the unchecked.
+ *
+ * @return the unchecked.
+ */
+ public boolean isNotChecked()
+ {
+ return unchecked != null;
+ }
+
+ /**
+ * Get the unchecked.
+ *
+ * @return the unchecked.
+ */
+ public EmptyMetaData getUnchecked()
+ {
+ return unchecked;
+ }
+
+ /**
+ * Set the unchecked.
+ *
+ * @param unchecked the unchecked.
+ */
+ public void setUnchecked(EmptyMetaData unchecked)
+ {
+ this.unchecked = unchecked;
+ }
+
+ /**
+ * Get the roles.
+ *
+ * @return the roles.
+ */
+ public Set<String> getRoles()
+ {
+ return roles;
+ }
+
+ /**
+ * Set the roles.
+ *
+ * @param roles the roles.
+ */
+ @XmlElement(name="role-name", type=NonNullLinkedHashSet.class)
+ public void setRoles(Set<String> roles)
+ {
+ this.roles = roles;
+ }
+
+ /**
+ * Get the methods.
+ *
+ * @return the methods.
+ */
+ public MethodsMetaData getMethods()
+ {
+ return methods;
+ }
+
+ /**
+ * Set the methods.
+ *
+ * @param methods the methods.
+ * @throws IllegalArgumentException for a null methods
+ */
+ @XmlElement(name="method")
+ public void setMethods(MethodsMetaData methods)
+ {
+ if (methods == null)
+ throw new IllegalArgumentException("Null methods");
+ this.methods = methods;
+ }
+
+ /**
+ * Get the method permissions for an ejb
+ *
+ * @param ejbName the ejb name
+ * @return the method permission or null for no result
+ * @throws IllegalArgumentException for a null ejb name
+ */
+ public MethodPermissionMetaData getMethodPermissionByEjbName(String ejbName)
+ {
+ if (ejbName == null)
+ throw new IllegalArgumentException("Null ejbName");
+
+ if (methods == null)
+ return null;
+
+ MethodsMetaData ejbMethods = methods.getMethodsByEjbName(ejbName);
+ if (ejbMethods == null)
+ return null;
+
+ MethodPermissionMetaData result = clone();
+ result.setMethods(ejbMethods);
+ return result;
+ }
+
+ @Override
+ public MethodPermissionMetaData clone()
+ {
+ return (MethodPermissionMetaData) super.clone();
+ }
+
+ /**
+ * Whether this matches
+ *
+ * @param methodName the method name
+ * @param params the parameters
+ * @param interfaceType the interface type
+ * @return true when it matches
+ */
+ public boolean matches(String methodName, Class[] params, MethodInterfaceType interfaceType)
+ {
+ if (methods == null)
+ return false;
+ return methods.matches(methodName, params, interfaceType);
+ }
+
+ /**
+ * Whether this is not checked
+ *
+ * @param methodName the method name
+ * @param params the parameters
+ * @param interfaceType the interface type
+ * @return true when it is not checked and it matches matches
+ */
+ public boolean isNotChecked(String methodName, Class[] params, MethodInterfaceType interfaceType)
+ {
+ if (isNotChecked() == false)
+ return false;
+ return matches(methodName, params, interfaceType);
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/MethodPermissionsMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/MethodPermissionsMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/MethodPermissionsMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,89 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.spec;
+
+import org.jboss.javaee.metadata.support.IdMetaData;
+import org.jboss.javaee.metadata.support.NonNullLinkedHashSet;
+
+/**
+ * MethodPermissionsMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public class MethodPermissionsMetaData extends NonNullLinkedHashSet<MethodPermissionMetaData> implements IdMetaData
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = -1393413242478179085L;
+
+ /** The id */
+ private String id;
+
+ /**
+ * Get the id.
+ *
+ * @return the id.
+ */
+ public String getId()
+ {
+ return id;
+ }
+
+ /**
+ * Set the id.
+ *
+ * @param id the id.
+ */
+ public void setId(String id)
+ {
+ this.id = id;
+ }
+
+ /**
+ * Get the methods permissions for an ejb
+ *
+ * @param ejbName the ejb name
+ * @return the method permissions or null for no result
+ * @throws IllegalArgumentException for a null ejb name
+ */
+ public MethodPermissionsMetaData getMethodPermissionsByEjbName(String ejbName)
+ {
+ if (ejbName == null)
+ throw new IllegalArgumentException("Null ejbName");
+
+ if (isEmpty())
+ return null;
+
+ MethodPermissionsMetaData result = null;
+ for (MethodPermissionMetaData permission : this)
+ {
+ MethodPermissionMetaData ejbPermission = permission.getMethodPermissionByEjbName(ejbName);
+ if (ejbPermission != null)
+ {
+ if (result == null)
+ result = new MethodPermissionsMetaData();
+ result.add(ejbPermission);
+ }
+ }
+ return result;
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/MethodsMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/MethodsMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/MethodsMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,167 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.spec;
+
+import org.jboss.javaee.metadata.support.NonNullLinkedHashSet;
+
+/**
+ * MethodsMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public class MethodsMetaData extends NonNullLinkedHashSet<MethodMetaData>
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = -1713776894150257182L;
+
+ /**
+ * Whether this matches
+ *
+ * @param methodName the method name
+ * @param params the parameters
+ * @param interfaceType the interface type
+ * @return true when it matches
+ */
+ public boolean matches(String methodName, Class[] params, MethodInterfaceType interfaceType)
+ {
+ return matches(methodName, getParametersAsStrings(params), interfaceType);
+ }
+
+ /**
+ * Whether this matches
+ *
+ * @param methodName the method name
+ * @param params the parameters
+ * @param interfaceType the interface type
+ * @return true when it matches
+ */
+ public boolean matches(String methodName, String[] params, MethodInterfaceType interfaceType)
+ {
+ if (isEmpty())
+ return false;
+
+ for (MethodMetaData method : this)
+ {
+ if (method.matches(methodName, params, interfaceType))
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * Whether this matches
+ *
+ * @param methodName the method name
+ * @param params the parameters
+ * @param interfaceType the interface type
+ * @param bestMatch the previous best match
+ * @return best match
+ */
+ public MethodMetaData bestMatch(String methodName, Class[] params, MethodInterfaceType interfaceType, MethodMetaData bestMatch)
+ {
+ return bestMatch(methodName, getParametersAsStrings(params), interfaceType, bestMatch);
+ }
+
+ /**
+ * Whether this matches
+ *
+ * @param methodName the method name
+ * @param params the parameters
+ * @param interfaceType the interface type
+ * @param bestMatch the previous best match
+ * @return best match
+ */
+ public MethodMetaData bestMatch(String methodName, String[] params, MethodInterfaceType interfaceType, MethodMetaData bestMatch)
+ {
+ if (isEmpty())
+ return bestMatch;
+
+ for (MethodMetaData method : this)
+ {
+ if (method.matches(methodName, params, interfaceType))
+ {
+ // No previous best match
+ if (bestMatch == null)
+ bestMatch = method;
+ // better match because the previous was a wildcard
+ else if ("*".equals(bestMatch.getMethodName()))
+ bestMatch = method;
+ // better because it specifies parameters
+ else if (method.getMethodParams() != null)
+ bestMatch = method;
+ }
+ }
+ return bestMatch;
+ }
+
+ /**
+ * Get the methods for an ejb
+ *
+ * @param ejbName the ejb name
+ * @return the methods or null for no methods
+ * @throws IllegalArgumentException for a null ejb name
+ */
+ public MethodsMetaData getMethodsByEjbName(String ejbName)
+ {
+ if (ejbName == null)
+ throw new IllegalArgumentException("Null ejbName");
+
+ MethodsMetaData result = null;
+ for (MethodMetaData method : this)
+ {
+ if (ejbName.equals(method.getEjbName()))
+ {
+ if (result == null)
+ result = new MethodsMetaData();
+ result.add(method);
+ }
+ }
+ return result;
+ }
+
+ /**
+ * Get string names of classes
+ *
+ * @param classes the classes
+ * @return the string names
+ */
+ private String[] getParametersAsStrings(Class[] classes)
+ {
+ if (classes == null)
+ return null;
+
+ String out[] = new String[classes.length];
+ for (int i = 0; i < out.length; i++)
+ {
+ String brackets = "";
+ Class cls = classes[i];
+ while (cls.isArray())
+ {
+ brackets += "[]";
+ cls = cls.getComponentType();
+ }
+ out[i] = cls.getName() + brackets;
+ }
+ return out;
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/MultiplicityType.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/MultiplicityType.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/MultiplicityType.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,40 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.spec;
+
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * MultiplicityType.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlType(name="multiplicityType")
+public enum MultiplicityType
+{
+ /** One */
+ One,
+
+ /** Many */
+ Many,
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/NamedMethodMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/NamedMethodMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/NamedMethodMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,93 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.spec;
+
+import org.jboss.javaee.metadata.support.NamedMetaData;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * NamedMethodMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlType(name="named-methodType")
+public class NamedMethodMetaData extends NamedMetaData
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = -2439949201898491207L;
+
+ /** The method parameters */
+ private MethodParametersMetaData methodParams;
+
+ /**
+ * Create a new NamedMethodMetaData.
+ */
+ public NamedMethodMetaData()
+ {
+ // For serialization
+ }
+
+ /**
+ * Get the methodName.
+ *
+ * @return the methodName.
+ */
+ public String getMethodName()
+ {
+ return getName();
+ }
+
+ /**
+ * Set the methodName.
+ *
+ * @param methodName the methodName.
+ * @throws IllegalArgumentException for a null methodName
+ */
+ public void setMethodName(String methodName)
+ {
+ setName(methodName);
+ }
+
+ /**
+ * Get the methodParams.
+ *
+ * @return the methodParams.
+ */
+ public MethodParametersMetaData getMethodParams()
+ {
+ return methodParams;
+ }
+
+ /**
+ * Set the methodParams.
+ *
+ * @param methodParams the methodParams.
+ * @throws IllegalArgumentException for a null methodParams
+ */
+ public void setMethodParams(MethodParametersMetaData methodParams)
+ {
+ if (methodParams == null)
+ throw new IllegalArgumentException("Null methodParams");
+ this.methodParams = methodParams;
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/PersistenceType.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/PersistenceType.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/PersistenceType.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,40 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.spec;
+
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * PersistenceType.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlType(name="persistence-typeType")
+public enum PersistenceType
+{
+ /** CMP */
+ Container,
+
+ /** BMP */
+ Bean,
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/QueriesMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/QueriesMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/QueriesMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,44 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.spec;
+
+import org.jboss.javaee.metadata.support.NonNullLinkedHashSet;
+
+/**
+ * QueriesMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public class QueriesMetaData extends NonNullLinkedHashSet<QueryMetaData>
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = -3666752837810424640L;
+
+ /**
+ * Create a new QueriessMetaData.
+ */
+ public QueriesMetaData()
+ {
+ // For serialization
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/QueryMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/QueryMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/QueryMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,127 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.spec;
+
+import org.jboss.javaee.metadata.support.IdMetaDataImpl;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * QueryMetaData.
+ *
+ * TODO JBossXB description
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlType(name="queryType")
+public class QueryMetaData extends IdMetaDataImpl
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = -8080829946285127796L;
+
+ /** The query method */
+ private QueryMethodMetaData queryMethod;
+
+ /** The result type mapping */
+ private ResultTypeMapping resultTypeMapping;
+
+ /** The ejb ql */
+ private String ejbQL;
+
+ /**
+ * Create a new MethodPermissionMetaData.
+ */
+ public QueryMetaData()
+ {
+ // For serialization
+ }
+
+ /**
+ * Get the ejbQL.
+ *
+ * @return the ejbQL.
+ */
+ public String getEjbQL()
+ {
+ return ejbQL;
+ }
+
+ /**
+ * Set the ejbQL.
+ *
+ * @param ejbQL the ejbQL.
+ * @throws IllegalArgumentException for a null ejbQL
+ */
+ @XmlElement(name="ejb-ql")
+ public void setEjbQL(String ejbQL)
+ {
+ if (ejbQL == null)
+ throw new IllegalArgumentException("Null ejbQL");
+ this.ejbQL = ejbQL;
+ }
+
+ /**
+ * Get the queryMethod.
+ *
+ * @return the queryMethod.
+ */
+ public QueryMethodMetaData getQueryMethod()
+ {
+ return queryMethod;
+ }
+
+ /**
+ * Set the queryMethod.
+ *
+ * @param queryMethod the queryMethod.
+ * @throws IllegalArgumentException for a null queryMethod
+ */
+ public void setQueryMethod(QueryMethodMetaData queryMethod)
+ {
+ if (queryMethod == null)
+ throw new IllegalArgumentException("Null queryMethod");
+ this.queryMethod = queryMethod;
+ }
+
+ /**
+ * Get the resultTypeMapping.
+ *
+ * @return the resultTypeMapping.
+ */
+ public ResultTypeMapping getResultTypeMapping()
+ {
+ return resultTypeMapping;
+ }
+
+ /**
+ * Set the resultTypeMapping.
+ *
+ * @param resultTypeMapping the resultTypeMapping.
+ * @throws IllegalArgumentException for a null resultTypeMapping
+ */
+ public void setResultTypeMapping(ResultTypeMapping resultTypeMapping)
+ {
+ if (resultTypeMapping == null)
+ throw new IllegalArgumentException("Null resultTypeMapping");
+ this.resultTypeMapping = resultTypeMapping;
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/QueryMethodMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/QueryMethodMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/QueryMethodMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,93 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.spec;
+
+import org.jboss.javaee.metadata.support.NamedMetaData;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * QueryMethodMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlType(name="query-methodType")
+public class QueryMethodMetaData extends NamedMetaData
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = -2699157157608413256L;
+
+ /** The method parameters */
+ private MethodParametersMetaData methodParams;
+
+ /**
+ * Create a new QueryMethodMetaData.
+ */
+ public QueryMethodMetaData()
+ {
+ // For serialization
+ }
+
+ /**
+ * Get the methodName.
+ *
+ * @return the methodName.
+ */
+ public String getMethodName()
+ {
+ return getName();
+ }
+
+ /**
+ * Set the methodName.
+ *
+ * @param methodName the methodName.
+ * @throws IllegalArgumentException for a null methodName
+ */
+ public void setMethodName(String methodName)
+ {
+ setName(methodName);
+ }
+
+ /**
+ * Get the methodParams.
+ *
+ * @return the methodParams.
+ */
+ public MethodParametersMetaData getMethodParams()
+ {
+ return methodParams;
+ }
+
+ /**
+ * Set the methodParams.
+ *
+ * @param methodParams the methodParams.
+ * @throws IllegalArgumentException for a null methodParams
+ */
+ public void setMethodParams(MethodParametersMetaData methodParams)
+ {
+ if (methodParams == null)
+ throw new IllegalArgumentException("Null methodParams");
+ this.methodParams = methodParams;
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/RelationMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/RelationMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/RelationMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,211 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.spec;
+
+import java.util.List;
+
+import org.jboss.javaee.metadata.support.NamedMetaDataWithDescriptions;
+import org.jboss.xb.annotations.JBossXmlConstants;
+import org.jboss.xb.annotations.JBossXmlModelGroup;
+
+import javax.xml.bind.annotation.XmlElement;
+
+/**
+ * RelationMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+// TODO it's currently bound as a choice with single particle...
+//@XmlType(name="ejb-relationType")
+ at JBossXmlModelGroup(
+ kind=JBossXmlConstants.MODEL_GROUP_CHOICE,
+ particles={@JBossXmlModelGroup.Particle(element=@XmlElement(name="ejb-relation"), type=RelationMetaData.class)})
+public class RelationMetaData extends NamedMetaDataWithDescriptions
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = -3955264328575239287L;
+
+ /** The left role */
+ private RelationRoleMetaData leftRole;
+
+ /** The right role */
+ private RelationRoleMetaData rightRole;
+
+ /**
+ * Create a new RelationMetaData.
+ */
+ public RelationMetaData()
+ {
+ // For serialization
+ }
+
+ /**
+ * Get the ejbRelationName.
+ *
+ * @return the ejbRelationName.
+ */
+ public String getEjbRelationName()
+ {
+ return getName();
+ }
+
+ /**
+ * Set the ejbRelationName.
+ *
+ * @param ejbRelationName the ejbRelationName.
+ * @throws IllegalArgumentException for a null ejbRelationName
+ */
+ public void setEjbRelationName(String ejbRelationName)
+ {
+ setName(ejbRelationName);
+ }
+
+ /**
+ * Get the leftRole.
+ *
+ * @return the leftRole.
+ */
+ public RelationRoleMetaData getLeftRole()
+ {
+ return leftRole;
+ }
+
+ /**
+ * Set the leftRole.
+ *
+ * @param leftRole the leftRole.
+ * @throws IllegalArgumentException for a null leftRole
+ */
+ @XmlElement(required=false)
+ public void setLeftRole(RelationRoleMetaData leftRole)
+ {
+ if (leftRole == null)
+ throw new IllegalArgumentException("Null leftRole");
+ this.leftRole = leftRole;
+ leftRole.setRelation(this);
+ }
+
+ /**
+ * Get the rightRole.
+ *
+ * @return the rightRole.
+ */
+ public RelationRoleMetaData getRightRole()
+ {
+ return rightRole;
+ }
+
+ /**
+ * Set the rightRole.
+ *
+ * @param rightRole the rightRole.
+ * @throws IllegalArgumentException for a null rightRole
+ */
+ @XmlElement(required=false)
+ public void setRightRole(RelationRoleMetaData rightRole)
+ {
+ if (rightRole == null)
+ throw new IllegalArgumentException("Null rightRole");
+ this.rightRole = rightRole;
+ rightRole.setRelation(this);
+ }
+
+ /**
+ * Get the other role
+ *
+ * @param role the reference role
+ * @return the related role
+ * @throws IllegalArgumentException if the role is not a role in this relationship
+ */
+ public RelationRoleMetaData getRelatedRole(RelationRoleMetaData role)
+ {
+ if (role == leftRole)
+ return rightRole;
+ else if (role == rightRole)
+ return leftRole;
+ throw new IllegalArgumentException(role + " is not a role in this relationship: " + this);
+ }
+
+ /**
+ * TODO JBossXB figureout why this is required and why
+ * JBossXB wants to use the xml name as the property rather than the one I want to give it
+ *
+ * @return null always
+ */
+ public List<RelationRoleMetaData> getEjbRelationshipRoles()
+ {
+ return new java.util.AbstractList<RelationRoleMetaData>()
+ {
+ @Override
+ public RelationRoleMetaData get(int index)
+ {
+ if(index > size())
+ {
+ throw new IllegalArgumentException("Index must be less then " + size() + ": " + index);
+ }
+ return index == 0 ? leftRole : rightRole;
+ }
+
+ @Override
+ public int size()
+ {
+ return leftRole == null ? (rightRole == null ? 0 : 1) : 2;
+ }
+
+ @Override
+ public boolean add(RelationRoleMetaData o)
+ {
+ if(leftRole == null)
+ {
+ leftRole = o;
+ }
+ else if(rightRole == null)
+ {
+ rightRole = o;
+ }
+ else
+ {
+ throw new IllegalStateException("Too many roles: " + o);
+ }
+ return true;
+ }
+ };
+ }
+
+ /**
+ * Set the relation role metadata<p>
+ *
+ * On first invocation it sets the left role,
+ * on second invocation it sets the right role,
+ * after that it throws an IllegalStateException
+ *
+ * @param roleMetaData
+ * @throws IllegalArgumentException for a null role metadata
+ * @throws IllegalStateException for too many roles
+ */
+ @XmlElement(name="ejb-relationship-role")
+ public void setEjbRelationshipRoles(List<RelationRoleMetaData> roleMetaData)
+ {
+ throw new UnsupportedOperationException("this list shouldn't be set");
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/RelationRoleMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/RelationRoleMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/RelationRoleMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,235 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.spec;
+
+import org.jboss.javaee.metadata.spec.EmptyMetaData;
+import org.jboss.javaee.metadata.support.NamedMetaDataWithDescriptions;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * RelationRoleMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlType(name="ejb-relationship-roleType")
+public class RelationRoleMetaData extends NamedMetaDataWithDescriptions
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = 16044363266734061L;
+
+ /** The multiplicity type */
+ private MultiplicityType multiplicityType;
+
+ /** Cascaded delete */
+ private EmptyMetaData cascadedDelete;
+
+ /** The relation metadata */
+ private RelationMetaData relation;
+
+ /** The role source */
+ private RelationRoleSourceMetaData roleSource;
+
+ /** The cmr field */
+ private CMRFieldMetaData cmrField;
+
+ /**
+ * Create a new EnterpriseBeanMetaData.
+ */
+ public RelationRoleMetaData()
+ {
+ // For serialization
+ }
+
+ /**
+ * Get the ejbRelationshipRoleName.
+ *
+ * @return the ejbRelationshipRoleName.
+ */
+ public String getEjbRelationshipRoleName()
+ {
+ return getName();
+ }
+
+ /**
+ * Set the ejbRelationshipRoleName.
+ *
+ * @param ejbRelationshipRoleName the ejbRelationshipRoleName.
+ * @throws IllegalArgumentException for a null ejbRelationshipRoleName
+ */
+ public void setEjbRelationshipRoleName(String ejbRelationshipRoleName)
+ {
+ setName(ejbRelationshipRoleName);
+ }
+
+ /**
+ * Get the multiplicityType.
+ *
+ * @return the multiplicityType.
+ */
+ public MultiplicityType getMultiplicity()
+ {
+ return multiplicityType;
+ }
+
+ /**
+ * Set the multiplicityType.
+ *
+ * @param multiplicityType the multiplicityType.
+ * @throws IllegalArgumentException for a null multiplicityType
+ */
+ @XmlElement(name="multiplicity")
+ public void setMultiplicity(MultiplicityType multiplicityType)
+ {
+ if (multiplicityType == null)
+ throw new IllegalArgumentException("Null multiplicityType");
+ this.multiplicityType = multiplicityType;
+ }
+
+ /**
+ * Is this multiplicity one
+ *
+ * @return true when it is one
+ */
+ public boolean isMultiplicityOne()
+ {
+ return multiplicityType == MultiplicityType.One;
+ }
+
+ /**
+ * Is this multiplicity many
+ *
+ * @return true when it is many
+ */
+ public boolean isMultiplicityMany()
+ {
+ return multiplicityType == MultiplicityType.Many;
+ }
+
+ public boolean isCascadedDelete()
+ {
+ return cascadedDelete != null;
+ }
+
+ /**
+ * Get the cascadedDelete.
+ *
+ * @return the cascadedDelete.
+ */
+ public EmptyMetaData getCascadeDelete()
+ {
+ return cascadedDelete;
+ }
+
+ /**
+ * Set the cascadedDelete.
+ *
+ * @param cascadedDelete the cascadedDelete.
+ */
+ public void setCascadeDelete(EmptyMetaData cascadedDelete)
+ {
+ this.cascadedDelete = cascadedDelete;
+ }
+
+ /**
+ * Get the relation.
+ *
+ * @return the relation.
+ */
+ public RelationMetaData getRelation()
+ {
+ return relation;
+ }
+
+ /**
+ * Set the relation.
+ *
+ * @param relation the relation.
+ * @throws IllegalArgumentException for a null relation
+ */
+ void setRelation(RelationMetaData relation)
+ {
+ if (relation == null)
+ throw new IllegalArgumentException("Null relation");
+ this.relation = relation;
+ }
+
+ /**
+ * Get the releated role
+ *
+ * @return the related role
+ */
+ public RelationRoleMetaData getRelatedRole()
+ {
+ if (relation == null)
+ throw new IllegalStateException("Relation has not been set");
+ return relation.getRelatedRole(this);
+ }
+
+ /**
+ * Get the roleSource.
+ *
+ * @return the roleSource.
+ */
+ public RelationRoleSourceMetaData getRoleSource()
+ {
+ return roleSource;
+ }
+
+ /**
+ * Set the roleSource.
+ *
+ * @param roleSource the roleSource.
+ * @throws IllegalArgumentException for a null roleSource
+ */
+ @XmlElement(name="relationship-role-source")
+ public void setRoleSource(RelationRoleSourceMetaData roleSource)
+ {
+ if (roleSource == null)
+ throw new IllegalArgumentException("Null roleSource");
+ this.roleSource = roleSource;
+ }
+
+ /**
+ * Get the cmrField.
+ *
+ * @return the cmrField.
+ */
+ public CMRFieldMetaData getCmrField()
+ {
+ return cmrField;
+ }
+
+ /**
+ * Set the cmrField.
+ *
+ * @param cmrField the cmrField.
+ * @throws IllegalArgumentException for a null cmrField
+ */
+ public void setCmrField(CMRFieldMetaData cmrField)
+ {
+ if (cmrField == null)
+ throw new IllegalArgumentException("Null cmrField");
+ this.cmrField = cmrField;
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/RelationRoleSourceMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/RelationRoleSourceMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/RelationRoleSourceMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,72 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.spec;
+
+import org.jboss.javaee.metadata.support.IdMetaDataImplWithDescriptions;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * RelationRoleSourceMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlType(name="relationship-role-sourceType")
+public class RelationRoleSourceMetaData extends IdMetaDataImplWithDescriptions
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = -9067826695189947397L;
+
+ /** The ejb name */
+ private String ejbName;
+
+ /**
+ * Create a new RelationRoleSourceMetaData.
+ */
+ public RelationRoleSourceMetaData()
+ {
+ // For serialization
+ }
+
+ /**
+ * Get the ejbName.
+ *
+ * @return the ejbName.
+ */
+ public String getEjbName()
+ {
+ return ejbName;
+ }
+
+ /**
+ * Set the ejbName.
+ *
+ * @param ejbName the ejbName.
+ * @throws IllegalArgumentException for a null ejbName
+ */
+ public void setEjbName(String ejbName)
+ {
+ if (ejbName == null)
+ throw new IllegalArgumentException("Null ejbName");
+ this.ejbName = ejbName;
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/RelationsMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/RelationsMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/RelationsMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,46 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.spec;
+
+import org.jboss.javaee.metadata.support.MappedMetaDataWithDescriptions;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * RelationsMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlType(name="relationshipsType")
+public class RelationsMetaData extends MappedMetaDataWithDescriptions<RelationMetaData>
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = -3080564843998267217L;
+
+ /**
+ * Create a new RelationsMetaData.
+ */
+ public RelationsMetaData()
+ {
+ super("relation name");
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/RemoveMethodMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/RemoveMethodMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/RemoveMethodMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,95 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.spec;
+
+import org.jboss.javaee.metadata.support.IdMetaDataImpl;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * RemoveMethodMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlType(name="remove-methodType")
+public class RemoveMethodMetaData extends IdMetaDataImpl
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = 1830841714074832930L;
+
+ /** The bean method */
+ private NamedMethodMetaData beanMethod;
+
+ /** Retain if exception */
+ private boolean retainIfException = false;
+
+ /**
+ * Create a new RemoveMethodMetaData.
+ */
+ public RemoveMethodMetaData()
+ {
+ // For serialization
+ }
+
+ /**
+ * Get the beanMethod.
+ *
+ * @return the beanMethod.
+ */
+ public NamedMethodMetaData getBeanMethod()
+ {
+ return beanMethod;
+ }
+
+ /**
+ * Set the beanMethod.
+ *
+ * @param beanMethod the beanMethod.
+ * @throws IllegalArgumentException for a null beanMethod
+ */
+ public void setBeanMethod(NamedMethodMetaData beanMethod)
+ {
+ if (beanMethod == null)
+ throw new IllegalArgumentException("Null beanMethod");
+ this.beanMethod = beanMethod;
+ }
+
+ /**
+ * Get the retainIfException.
+ *
+ * @return the retainIfException.
+ */
+ public boolean isRetainIfException()
+ {
+ return retainIfException;
+ }
+
+ /**
+ * Set the retainIfException.
+ *
+ * @param retainIfException the retainIfException.
+ */
+ public void setRetainIfException(boolean retainIfException)
+ {
+ this.retainIfException = retainIfException;
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/RemoveMethodsMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/RemoveMethodsMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/RemoveMethodsMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,44 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.spec;
+
+import org.jboss.javaee.metadata.support.NonNullLinkedHashSet;
+
+/**
+ * RemoveMethodsMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public class RemoveMethodsMetaData extends NonNullLinkedHashSet<RemoveMethodMetaData>
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = -7679945562287708913L;
+
+ /**
+ * Create a new RemoveMethodsMetaData.
+ */
+ public RemoveMethodsMetaData()
+ {
+ // For serialization
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/ResultTypeMapping.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/ResultTypeMapping.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/ResultTypeMapping.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,40 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.spec;
+
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * ResultTypeMapping.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlType(name="result-type-mappingType")
+public enum ResultTypeMapping
+{
+ /** Local */
+ Local,
+
+ /** Remote */
+ Remote,
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/SecurityIdentityMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/SecurityIdentityMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/SecurityIdentityMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,159 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.spec;
+
+import org.jboss.javaee.metadata.spec.EmptyMetaData;
+import org.jboss.javaee.metadata.spec.RunAsMetaData;
+import org.jboss.javaee.metadata.support.IdMetaDataImplWithDescriptions;
+import org.jboss.javaee.metadata.support.MergeableMetaData;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * SecurityIdentityMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlType(name="security-identityType")
+public class SecurityIdentityMetaData extends IdMetaDataImplWithDescriptions implements MergeableMetaData<SecurityIdentityMetaData>
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = -6336033602938028216L;
+
+ /** The use caller identity */
+ private EmptyMetaData useCallerIdentity;
+
+ /** The run as */
+ private RunAsMetaData runAs;
+
+ /** The run as principal */
+ private String runAsPrincipal;
+
+ /**
+ * Create a new SecurityIdentityMetaData
+ */
+ public SecurityIdentityMetaData()
+ {
+ // For serialization
+ }
+
+ /**
+ * Whether to use caller identity
+ *
+ * @return true for caller id
+ */
+ public boolean isUseCallerId()
+ {
+ return useCallerIdentity != null;
+ }
+
+ /**
+ * Get the useCallerIdentity.
+ *
+ * @return the useCallerIdentity.
+ */
+ public EmptyMetaData getUseCallerIdentity()
+ {
+ return useCallerIdentity;
+ }
+
+ /**
+ * Set the useCallerIdentity.
+ *
+ * @param useCallerIdentity the useCallerIdentity.
+ */
+ @XmlElement(required=false)
+ public void setUseCallerIdentity(EmptyMetaData useCallerIdentity)
+ {
+ this.useCallerIdentity = useCallerIdentity;
+ }
+
+ /**
+ * Get the runAs.
+ *
+ * @return the runAs.
+ */
+ public RunAsMetaData getRunAs()
+ {
+ return runAs;
+ }
+
+ /**
+ * Set the runAs.
+ *
+ * @param runAs the runAs.
+ * @throws IllegalArgumentException for a null runAs
+ */
+ @XmlElement(required=false)
+ public void setRunAs(RunAsMetaData runAs)
+ {
+ if (runAs == null)
+ throw new IllegalArgumentException("Null runAs");
+ this.runAs = runAs;
+ }
+
+ /**
+ * Get the runAsPrincipal.
+ *
+ * @return the runAsPrincipal.
+ */
+ public String getRunAsPrincipal()
+ {
+ return runAsPrincipal;
+ }
+
+ /**
+ * Set the runAsPrincipal.
+ *
+ * @param runAsPrincipal the runAsPrincipal.
+ * @throws IllegalArgumentException for a null runAsPrincipal
+ */
+ @XmlElement(required=false)
+ public void setRunAsPrincipal(String runAsPrincipal)
+ {
+ if (runAsPrincipal == null)
+ throw new IllegalArgumentException("Null runAsPrincipal");
+ this.runAsPrincipal = runAsPrincipal;
+ }
+
+ public SecurityIdentityMetaData merge(SecurityIdentityMetaData original)
+ {
+ SecurityIdentityMetaData merged = new SecurityIdentityMetaData();
+ merge(merged, original);
+ return merged;
+ }
+
+ /**
+ * Merge
+ *
+ * @param merged the data to merge into
+ * @param original the original data
+ */
+ public void merge(SecurityIdentityMetaData merged, SecurityIdentityMetaData original)
+ {
+ super.merge(merged, original);
+ merged.setUseCallerIdentity(original.getUseCallerIdentity());
+ merged.setRunAs(original.getRunAs());
+ merged.setRunAsPrincipal(getRunAsPrincipal());
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/SessionBeanMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/SessionBeanMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/SessionBeanMetaData.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,497 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.spec;
+
+import org.jboss.javaee.metadata.spec.LifecycleCallbacksMetaData;
+import org.jboss.javaee.metadata.spec.SecurityRoleRefsMetaData;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * SessionBeanMetaData.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlType(name="session-beanType")
+public class SessionBeanMetaData extends EnterpriseBeanMetaData
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = 2093953120735574157L;
+
+ /** The home interface */
+ private String home;
+
+ /** The remote interface */
+ private String remote;
+
+ /** The local home */
+ private String localHome;
+
+ /** The local */
+ private String local;
+
+ /** The business locals */
+ private BusinessLocalsMetaData businessLocals;
+
+ /** The business remotes */
+ private BusinessRemotesMetaData businessRemotes;
+
+ /** The service endpoint */
+ private String serviceEndpoint;
+
+ /** The sesion type */
+ private SessionType sessionType;
+
+ /** The timeout method */
+ private NamedMethodMetaData timeoutMethod;
+
+ /** The init methods */
+ private InitMethodsMetaData initMethods;
+
+ /** The remove methods */
+ private RemoveMethodsMetaData removeMethods;
+
+ /** The transaction type */
+ private TransactionType transactionType;
+
+ /** The around invoke */
+ private AroundInvokesMetaData aroundInvokes;
+
+ /** The post activates */
+ private LifecycleCallbacksMetaData postActivates;
+
+ /** The pre passivates */
+ private LifecycleCallbacksMetaData prePassivates;
+
+ /** The security role ref */
+ private SecurityRoleRefsMetaData securityRoleRefs;
+
+ /**
+ * Create a new SessionBeanMetaData.
+ */
+ public SessionBeanMetaData()
+ {
+ // For serialization
+ }
+
+ @Override
+ public boolean isSession()
+ {
+ return true;
+ }
+
+ /**
+ * Get the home.
+ *
+ * @return the home.
+ */
+ public String getHome()
+ {
+ return home;
+ }
+
+ /**
+ * Set the home.
+ *
+ * @param home the home.
+ * @throws IllegalArgumentException for a null home
+ */
+ public void setHome(String home)
+ {
+ if (home == null)
+ throw new IllegalArgumentException("Null home");
+ this.home = home;
+ }
+
+ /**
+ * Get the remote.
+ *
+ * @return the remote.
+ */
+ public String getRemote()
+ {
+ return remote;
+ }
+
+ /**
+ * Set the remote.
+ *
+ * @param remote the remote.
+ * @throws IllegalArgumentException for a null remote
+ */
+ public void setRemote(String remote)
+ {
+ if (remote == null)
+ throw new IllegalArgumentException("Null remote");
+ this.remote = remote;
+ }
+
+ /**
+ * Get the localHome.
+ *
+ * @return the localHome.
+ */
+ public String getLocalHome()
+ {
+ return localHome;
+ }
+
+ /**
+ * Set the localHome.
+ *
+ * @param localHome the localHome.
+ * @throws IllegalArgumentException for a null localHome
+ */
+ public void setLocalHome(String localHome)
+ {
+ if (localHome == null)
+ throw new IllegalArgumentException("Null localHome");
+ this.localHome = localHome;
+ }
+
+ /**
+ * Get the local.
+ *
+ * @return the local.
+ */
+ public String getLocal()
+ {
+ return local;
+ }
+
+ /**
+ * Set the local.
+ *
+ * @param local the local.
+ * @throws IllegalArgumentException for a null local
+ */
+ public void setLocal(String local)
+ {
+ if (local == null)
+ throw new IllegalArgumentException("Null local");
+ this.local = local;
+ }
+
+ /**
+ * Get the businessLocals.
+ *
+ * @return the businessLocals.
+ */
+ public BusinessLocalsMetaData getBusinessLocals()
+ {
+ return businessLocals;
+ }
+
+ /**
+ * Set the businessLocals.
+ *
+ * @param businessLocals the businessLocals.
+ * @throws IllegalArgumentException for a null businessLocasl
+ */
+ @XmlElement(name="business-local", required=false)
+ public void setBusinessLocals(BusinessLocalsMetaData businessLocals)
+ {
+ if (businessLocals == null)
+ throw new IllegalArgumentException("Null businessLocals");
+ this.businessLocals = businessLocals;
+ }
+
+ /**
+ * Get the businessRemotes.
+ *
+ * @return the businessRemotes.
+ */
+ public BusinessRemotesMetaData getBusinessRemotes()
+ {
+ return businessRemotes;
+ }
+
+ /**
+ * Set the businessRemotes.
+ *
+ * @param businessRemotes the businessRemotes.
+ * @throws IllegalArgumentException for a null businessRemotes
+ */
+ @XmlElement(name="business-remote", required=false)
+ public void setBusinessRemotes(BusinessRemotesMetaData businessRemotes)
+ {
+ if (businessRemotes == null)
+ throw new IllegalArgumentException("Null businessRemotes");
+ this.businessRemotes = businessRemotes;
+ }
+
+ /**
+ * Get the serviceEndpoint.
+ *
+ * @return the serviceEndpoint.
+ */
+ public String getServiceEndpoint()
+ {
+ return serviceEndpoint;
+ }
+
+ /**
+ * Set the serviceEndpoint.
+ *
+ * @param serviceEndpoint the serviceEndpoint.
+ * @throws IllegalArgumentException for a null serviceEndpoint
+ */
+ public void setServiceEndpoint(String serviceEndpoint)
+ {
+ if (serviceEndpoint == null)
+ throw new IllegalArgumentException("Null serviceEndpoint");
+ this.serviceEndpoint = serviceEndpoint;
+ }
+
+ /**
+ * Get the sessionType.
+ *
+ * @return the sessionType.
+ */
+ public SessionType getSessionType()
+ {
+ return sessionType;
+ }
+
+ /**
+ * Set the sessionType.
+ *
+ * @param sessionType the sessionType.
+ * @throws IllegalArgumentException for a null sessionType
+ */
+ public void setSessionType(SessionType sessionType)
+ {
+ if (sessionType == null)
+ throw new IllegalArgumentException("Null sessionType");
+ this.sessionType = sessionType;
+ }
+
+ /**
+ * Is this stateful
+ *
+ * @return true for stateful
+ */
+ public boolean isStateful()
+ {
+ if (sessionType == null)
+ return false;
+ return sessionType == SessionType.Stateful;
+ }
+
+ /**
+ * Is this stateless
+ *
+ * @return true for stateless
+ */
+ public boolean isStateless()
+ {
+ return isStateful() == false;
+ }
+
+ /**
+ * Get the timeoutMethod.
+ *
+ * @return the timeoutMethod.
+ */
+ public NamedMethodMetaData getTimeoutMethod()
+ {
+ return timeoutMethod;
+ }
+
+ /**
+ * Set the timeoutMethod.
+ *
+ * @param timeoutMethod the timeoutMethod.
+ * @throws IllegalArgumentException for a null timeoutMethod
+ */
+ @XmlElement(required=false)
+ public void setTimeoutMethod(NamedMethodMetaData timeoutMethod)
+ {
+ if (timeoutMethod == null)
+ throw new IllegalArgumentException("Null timeoutMethod");
+ this.timeoutMethod = timeoutMethod;
+ }
+
+ /**
+ * Get the initMethods.
+ *
+ * @return the initMethods.
+ */
+ public InitMethodsMetaData getInitMethods()
+ {
+ return initMethods;
+ }
+
+ /**
+ * Set the initMethods.
+ *
+ * @param initMethods the initMethods.
+ * @throws IllegalArgumentException for a null initMethods
+ */
+ @XmlElement(name="init-method", required=false)
+ public void setInitMethods(InitMethodsMetaData initMethods)
+ {
+ if (initMethods == null)
+ throw new IllegalArgumentException("Null initMethods");
+ this.initMethods = initMethods;
+ }
+
+ /**
+ * Get the removeMethods.
+ *
+ * @return the removeMethods.
+ */
+ public RemoveMethodsMetaData getRemoveMethods()
+ {
+ return removeMethods;
+ }
+
+ /**
+ * Set the removeMethods.
+ *
+ * @param removeMethods the removeMethods.
+ * @throws IllegalArgumentException for a null removeMethods
+ */
+ @XmlElement(name="remove-method", required=false)
+ public void setRemoveMethods(RemoveMethodsMetaData removeMethods)
+ {
+ if (removeMethods == null)
+ throw new IllegalArgumentException("Null removeMethods");
+ this.removeMethods = removeMethods;
+ }
+
+ @Override
+ public TransactionType getTransactionType()
+ {
+ return transactionType;
+ }
+
+ /**
+ * Set the transactionType.
+ *
+ * @param transactionType the transactionType.
+ * @throws IllegalArgumentException for a null transactionType
+ */
+ public void setTransactionType(TransactionType transactionType)
+ {
+ if (transactionType == null)
+ throw new IllegalArgumentException("Null transactionType");
+ this.transactionType = transactionType;
+ }
+
+ /**
+ * Get the aroundInvokes.
+ *
+ * @return the aroundInvokes.
+ */
+ public AroundInvokesMetaData getAroundInvokes()
+ {
+ return aroundInvokes;
+ }
+
+ /**
+ * Set the aroundInvokes.
+ *
+ * @param aroundInvokes the aroundInvokes.
+ * @throws IllegalArgumentException for a null aroundInvokes
+ */
+ @XmlElement(name="around-invoke", required=false)
+ public void setAroundInvokes(AroundInvokesMetaData aroundInvokes)
+ {
+ if (aroundInvokes == null)
+ throw new IllegalArgumentException("Null aroundInvokes");
+ this.aroundInvokes = aroundInvokes;
+ }
+
+ /**
+ * Get the postActivates.
+ *
+ * @return the postActivates.
+ */
+ public LifecycleCallbacksMetaData getPostActivates()
+ {
+ return postActivates;
+ }
+
+ /**
+ * Set the postActivates.
+ *
+ * @param postActivates the postActivates.
+ * @throws IllegalArgumentException for a null postActivates
+ */
+ @XmlElement(name="post-activate", required=false)
+ public void setPostActivates(LifecycleCallbacksMetaData postActivates)
+ {
+ if (postActivates == null)
+ throw new IllegalArgumentException("Null postActivates");
+ this.postActivates = postActivates;
+ }
+
+ /**
+ * Get the prePassivates.
+ *
+ * @return the prePassivates.
+ */
+ public LifecycleCallbacksMetaData getPrePassivates()
+ {
+ return prePassivates;
+ }
+
+ /**
+ * Set the prePassivates.
+ *
+ * @param prePassivates the prePassivates.
+ * @throws IllegalArgumentException for a null prePassivates
+ */
+ @XmlElement(name="pre-passivate", required=false)
+ public void setPrePassivates(LifecycleCallbacksMetaData prePassivates)
+ {
+ if (prePassivates == null)
+ throw new IllegalArgumentException("Null prePassivates");
+ this.prePassivates = prePassivates;
+ }
+
+ /**
+ * Get the securityRoleRefs.
+ *
+ * @return the securityRoleRefs.
+ */
+ public SecurityRoleRefsMetaData getSecurityRoleRefs()
+ {
+ return securityRoleRefs;
+ }
+
+ /**
+ * Set the securityRoleRefs.
+ *
+ * @param securityRoleRefs the securityRoleRefs.
+ * @throws IllegalArgumentException for a null securityRoleRefs
+ */
+ @XmlElement(name="security-role-ref")
+ public void setSecurityRoleRefs(SecurityRoleRefsMetaData securityRoleRefs)
+ {
+ if (securityRoleRefs == null)
+ throw new IllegalArgumentException("Null securityRoleRefs");
+ this.securityRoleRefs = securityRoleRefs;
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/SessionType.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/SessionType.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/SessionType.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,42 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.spec;
+
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * SessionType.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlType(name="session-typeType")
+ at XmlEnum(String.class)
+public enum SessionType
+{
+ /** Stateless session bean */
+ Stateless,
+
+ /** Stateful session bean */
+ Stateful,
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/SubscriptionDurability.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/SubscriptionDurability.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/SubscriptionDurability.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,37 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.spec;
+
+/**
+ * Subscription durability
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public enum SubscriptionDurability
+{
+ /** Durable */
+ Durable,
+
+ /** Non durable */
+ NonDurable,
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/TransAttributeType.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/TransAttributeType.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/TransAttributeType.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,52 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.spec;
+
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * TransAttributeType.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlType(name="trans-attributeType")
+public enum TransAttributeType
+{
+ /** Not Supprot */
+ NotSupported,
+
+ /** Supports */
+ Supports,
+
+ /** Required */
+ Required,
+
+ /** RequiresNew */
+ RequiresNew,
+
+ /** Mandatory */
+ Mandatory,
+
+ /** Never */
+ Never,
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/TransactionType.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/TransactionType.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/spec/TransactionType.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,40 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.spec;
+
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * TransactionType.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlType(name="transaction-typeType")
+public enum TransactionType
+{
+ /** CMT */
+ Container,
+
+ /** BMT */
+ Bean,
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/test/ejb/AbstractEJBEverythingTest.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/test/ejb/AbstractEJBEverythingTest.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/test/ejb/AbstractEJBEverythingTest.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,1266 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb;
+
+import java.util.Iterator;
+import java.util.Set;
+
+import junit.framework.AssertionFailedError;
+
+import org.jboss.ejb.metadata.jboss.CacheInvalidationConfigMetaData;
+import org.jboss.ejb.metadata.jboss.ClusterConfigMetaData;
+import org.jboss.ejb.metadata.jboss.IORASContextMetaData;
+import org.jboss.ejb.metadata.jboss.IORSASContextMetaData;
+import org.jboss.ejb.metadata.jboss.IORSecurityConfigMetaData;
+import org.jboss.ejb.metadata.jboss.IORTransportConfigMetaData;
+import org.jboss.ejb.metadata.jboss.MethodAttributeMetaData;
+import org.jboss.ejb.metadata.jboss.MethodAttributesMetaData;
+import org.jboss.ejb.metadata.jboss.RemoteBindingMetaData;
+import org.jboss.ejb.metadata.spec.ActivationConfigMetaData;
+import org.jboss.ejb.metadata.spec.ActivationConfigPropertiesMetaData;
+import org.jboss.ejb.metadata.spec.ActivationConfigPropertyMetaData;
+import org.jboss.ejb.metadata.spec.AssemblyDescriptorMetaData;
+import org.jboss.ejb.metadata.spec.CMRFieldMetaData;
+import org.jboss.ejb.metadata.spec.ContainerTransactionMetaData;
+import org.jboss.ejb.metadata.spec.ContainerTransactionsMetaData;
+import org.jboss.ejb.metadata.spec.EjbJarMetaData;
+import org.jboss.ejb.metadata.spec.EnterpriseBeanMetaData;
+import org.jboss.ejb.metadata.spec.EnterpriseBeansMetaData;
+import org.jboss.ejb.metadata.spec.EntityBeanMetaData;
+import org.jboss.ejb.metadata.spec.ExcludeListMetaData;
+import org.jboss.ejb.metadata.spec.MessageDrivenBeanMetaData;
+import org.jboss.ejb.metadata.spec.MethodInterfaceType;
+import org.jboss.ejb.metadata.spec.MethodMetaData;
+import org.jboss.ejb.metadata.spec.MethodParametersMetaData;
+import org.jboss.ejb.metadata.spec.MethodPermissionMetaData;
+import org.jboss.ejb.metadata.spec.MethodPermissionsMetaData;
+import org.jboss.ejb.metadata.spec.MethodsMetaData;
+import org.jboss.ejb.metadata.spec.MultiplicityType;
+import org.jboss.ejb.metadata.spec.PersistenceType;
+import org.jboss.ejb.metadata.spec.RelationMetaData;
+import org.jboss.ejb.metadata.spec.RelationRoleMetaData;
+import org.jboss.ejb.metadata.spec.RelationRoleSourceMetaData;
+import org.jboss.ejb.metadata.spec.RelationsMetaData;
+import org.jboss.ejb.metadata.spec.SecurityIdentityMetaData;
+import org.jboss.ejb.metadata.spec.SessionBeanMetaData;
+import org.jboss.ejb.metadata.spec.SessionType;
+import org.jboss.ejb.metadata.spec.TransAttributeType;
+import org.jboss.ejb.metadata.spec.TransactionType;
+import org.jboss.javaee.metadata.jboss.IgnoreDependencyMetaData;
+import org.jboss.javaee.metadata.spec.RunAsMetaData;
+import org.jboss.javaee.metadata.spec.SecurityRoleRefMetaData;
+import org.jboss.javaee.metadata.spec.SecurityRoleRefsMetaData;
+//import org.jboss.metadata.ApplicationMetaData;
+//import org.jboss.metadata.BeanMetaData;
+//import org.jboss.metadata.EntityMetaData;
+//import org.jboss.metadata.IorSecurityConfigMetaData;
+//import org.jboss.metadata.MessageDrivenMetaData;
+//import org.jboss.metadata.MetaData;
+//import org.jboss.metadata.RelationshipRoleMetaData;
+//import org.jboss.metadata.SessionMetaData;
+import org.jboss.test.javaee.AbstractJavaEEEverythingTest;
+import org.jboss.util.NotImplementedException;
+
+/**
+ * AbstractEJBEverythingTest.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public abstract class AbstractEJBEverythingTest extends AbstractJavaEEEverythingTest
+{
+ public AbstractEJBEverythingTest(String name)
+ {
+ super(name);
+ }
+
+ protected void assertEnterpriseBeans(EjbJarMetaData ejbJarMetaData)
+ {
+ EnterpriseBeansMetaData enterpriseBeansMetaData = ejbJarMetaData.getEnterpriseBeans();
+ assertNotNull(enterpriseBeansMetaData);
+ assertId("enterprise-beans", enterpriseBeansMetaData);
+ assertEquals(15, enterpriseBeansMetaData.size());
+
+ assertNullSession("session0", enterpriseBeansMetaData);
+ assertFullSession("session1", enterpriseBeansMetaData);
+ assertFullSession("session2", enterpriseBeansMetaData);
+ SessionBeanMetaData session = assertSession("session3", enterpriseBeansMetaData);
+ assertEquals(SessionType.Stateful, session.getSessionType());
+ session = assertSession("session4", enterpriseBeansMetaData);
+ assertEquals(TransactionType.Bean, session.getTransactionType());
+ session = assertSession("session5", enterpriseBeansMetaData);
+ SecurityIdentityMetaData securityIdentityMetaData = session.getSecurityIdentity();
+ assertNotNull(securityIdentityMetaData);
+ assertFalse(securityIdentityMetaData.isUseCallerId());
+
+ assertNullEntity("entity0", enterpriseBeansMetaData);
+ assertFullEntity("entity1", enterpriseBeansMetaData);
+ assertFullEntity("entity2", enterpriseBeansMetaData);
+ EntityBeanMetaData entity = assertEntity("entity3", enterpriseBeansMetaData);
+ assertEquals(PersistenceType.Bean, entity.getPersistenceType());
+ entity = assertEntity("entity4", enterpriseBeansMetaData);
+ assertFalse(entity.isReentrant());
+ entity = assertEntity("entity5", enterpriseBeansMetaData);
+ assertEquals("1.x", entity.getCmpVersion());
+ assertTrue(entity.isCMP1x());
+
+ assertNullMDB("mdb0", enterpriseBeansMetaData);
+ assertFullMDB("mdb1", enterpriseBeansMetaData);
+ assertFullMDB("mdb2", enterpriseBeansMetaData);
+ }
+
+/* protected void assertEnterpriseBeans(ApplicationMetaData applicationMetaData)
+ {
+ Iterator<BeanMetaData> i = applicationMetaData.getEnterpriseBeans();
+ assertNotNull(i);
+ int count = 0;
+ while (i.hasNext())
+ {
+ i.next();
+ ++count;
+ }
+
+ assertEquals(15, count);
+
+ assertNullSession("session0", applicationMetaData);
+ assertFullSession("session1", applicationMetaData);
+ assertFullSession("session2", applicationMetaData);
+ SessionMetaData session = assertSession("session3", applicationMetaData);
+ assertTrue(session.isStateful());
+ assertFalse(session.isStateless());
+ session = assertSession("session4", applicationMetaData);
+ assertTrue(session.isBeanManagedTx());
+ assertFalse(session.isContainerManagedTx());
+ session = assertSession("session5", applicationMetaData);
+ org.jboss.metadata.SecurityIdentityMetaData securityIdentityMetaData = session.getSecurityIdentityMetaData();
+ assertNotNull(securityIdentityMetaData);
+ assertFalse(securityIdentityMetaData.getUseCallerIdentity());
+
+ assertNullEntity("entity0", applicationMetaData);
+ assertFullEntity("entity1", applicationMetaData);
+ assertFullEntity("entity2", applicationMetaData);
+ EntityMetaData entity = assertEntity("entity3", applicationMetaData);
+ assertTrue(entity.isBMP());
+ entity = assertEntity("entity4", applicationMetaData);
+ assertFalse(entity.isReentrant());
+ entity = assertEntity("entity5", applicationMetaData);
+ assertTrue(entity.isCMP1x());
+ assertTrue(entity.isCMP1x());
+
+ assertNullMDB("mdb0", applicationMetaData);
+ assertFullMDB("mdb1", applicationMetaData);
+ assertFullMDB("mdb2", applicationMetaData);
+ }
+*/
+ protected SessionBeanMetaData assertFullSession(String ejbName, EnterpriseBeansMetaData enterpriseBeansMetaData)
+ {
+ throw new NotImplementedException();
+ }
+
+ private SessionBeanMetaData assertNullSession(String ejbName, EnterpriseBeansMetaData enterpriseBeansMetaData)
+ {
+ SessionBeanMetaData session = assertSession(ejbName, enterpriseBeansMetaData);
+ assertNull(session.getId());
+ assertNull(session.getMappedName());
+ assertNull(session.getHome());
+ assertNull(session.getRemote());
+ assertNull(session.getLocalHome());
+ assertNull(session.getLocal());
+ assertNull(session.getBusinessLocals());
+ assertNull(session.getBusinessRemotes());
+ assertNull(session.getServiceEndpoint());
+ assertNull(session.getEjbClass());
+ assertNull(session.getSessionType());
+ assertNull(session.getTimeoutMethod());
+ assertNull(session.getInitMethods());
+ assertNull(session.getRemoveMethods());
+ assertNull(session.getTransactionType());
+ assertNull(session.getAroundInvokes());
+ assertNull(session.getPostActivates());
+ assertNull(session.getPrePassivates());
+ assertNull(session.getJndiEnvironmentRefsGroup());
+ assertNull(session.getContainerTransactions());
+ assertNull(session.getMethodPermissions());
+ assertNull(session.getExcludeList());
+ assertNull(session.getSecurityRoleRefs());
+ assertNull(session.getSecurityIdentity());
+
+ return session;
+ }
+
+ protected SessionBeanMetaData assertSession(String ejbName, EnterpriseBeansMetaData enterpriseBeansMetaData)
+ {
+ SessionBeanMetaData session = assertEnterpriseBean(ejbName, enterpriseBeansMetaData, SessionBeanMetaData.class);
+ assertTrue(session.isSession());
+ assertFalse(session.isEntity());
+ assertFalse(session.isMessageDriven());
+ return session;
+ }
+
+/* private SessionMetaData assertFullSession(String ejbName, ApplicationMetaData applicationMetaData)
+ {
+ SessionMetaData session = assertSession(ejbName, applicationMetaData);
+ assertClass(ejbName, "Home", session.getHome());
+ assertClass(ejbName, "Remote", session.getRemote());
+ assertClass(ejbName, "LocalHome", session.getLocalHome());
+ assertClass(ejbName, "Local", session.getLocal());
+ assertClass(ejbName, "ServiceEndpoint", session.getServiceEndpoint());
+ assertClass(ejbName, "EjbClass", session.getEjbClass());
+ assertTrue(session.isStateless());
+ assertTrue(session.isContainerManagedTx());
+ assertEnvironment(ejbName, session, true);
+ assertMethodAttributes(ejbName, session);
+ assertContainerTransactions(session.getTransactionMethods());
+ assertMethodPermissions(7, session);
+ assertExcludedMethods(ejbName, session.getExcludedMethods());
+ assertSecurityRoleRefs(ejbName, 2, session.getSecurityRoleReferences());
+ assertSecurityIdentity(ejbName, "SecurityIdentity", session.getSecurityIdentityMetaData(), true);
+
+ return session;
+ }
+*/
+/* private SessionMetaData assertNullSession(String ejbName, ApplicationMetaData applicationMetaData)
+ {
+ SessionMetaData session = assertSession(ejbName, applicationMetaData);
+ assertNull(session.getHome());
+ assertNull(session.getRemote());
+ assertNull(session.getLocalHome());
+ assertNull(session.getLocal());
+ assertNull(session.getServiceEndpoint());
+ assertNull(session.getEjbClass());
+ assertTrue(session.isStateless());
+ assertTrue(session.isContainerManagedTx());
+ assertNullEnvironment(session);
+ assertDefaultMethodAttributes(ejbName, session);
+ assertEmptyIterator(session.getTransactionMethods());
+ assertEmptyIterator(session.getPermissionMethods());
+ assertEmptyIterator(session.getExcludedMethods());
+ assertEmptyIterator(session.getSecurityRoleReferences());
+ assertNull(session.getSecurityIdentityMetaData());
+
+ return session;
+ }
+*/
+/* private SessionMetaData assertSession(String ejbName, ApplicationMetaData applicationMetaData)
+ {
+ SessionMetaData session = assertEnterpriseBean(ejbName, applicationMetaData, SessionMetaData.class);
+ assertTrue(session.isSession());
+ assertFalse(session.isEntity());
+ assertFalse(session.isMessageDriven());
+ return session;
+ }
+*/
+ protected EntityBeanMetaData assertFullEntity(String ejbName, EnterpriseBeansMetaData enterpriseBeansMetaData)
+ {
+ throw new NotImplementedException();
+ }
+
+ private EntityBeanMetaData assertNullEntity(String ejbName, EnterpriseBeansMetaData enterpriseBeansMetaData)
+ {
+ EntityBeanMetaData entity = assertEntity(ejbName, enterpriseBeansMetaData);
+ assertNull(entity.getId());
+ assertNull(entity.getMappedName());
+ assertNull(entity.getHome());
+ assertNull(entity.getRemote());
+ assertNull(entity.getLocalHome());
+ assertNull(entity.getLocal());
+ assertNull(entity.getEjbClass());
+ assertNull(entity.getPersistenceType());
+ assertNull(entity.getPrimKeyClass());
+ assertFalse(entity.isReentrant());
+ assertNull(entity.getCmpVersion());
+ assertFalse(entity.isCMP1x());
+ assertNull(entity.getAbstractSchemaName());
+ assertNull(entity.getCmpFields());
+ assertNull(entity.getPrimKeyField());
+ assertNull(entity.getJndiEnvironmentRefsGroup());
+ assertNull(entity.getContainerTransactions());
+ assertNull(entity.getMethodPermissions());
+ assertNull(entity.getExcludeList());
+ assertNull(entity.getSecurityRoleRefs());
+ assertNull(entity.getSecurityIdentity());
+ assertNull(entity.getQueries());
+
+ return entity;
+ }
+
+ protected EntityBeanMetaData assertEntity(String ejbName, EnterpriseBeansMetaData enterpriseBeansMetaData)
+ {
+ EntityBeanMetaData entity = assertEnterpriseBean(ejbName, enterpriseBeansMetaData, EntityBeanMetaData.class);
+ assertFalse(entity.isSession());
+ assertTrue(entity.isEntity());
+ assertFalse(entity.isMessageDriven());
+ return entity;
+ }
+
+/* private EntityMetaData assertFullEntity(String ejbName, ApplicationMetaData applicationMetaData)
+ {
+ EntityMetaData entity = assertEntity(ejbName, applicationMetaData);
+ assertEquals(ejbName + "Home", entity.getHome());
+ assertEquals(ejbName + "Remote", entity.getRemote());
+ assertEquals(ejbName + "LocalHome", entity.getLocalHome());
+ assertEquals(ejbName + "Local",entity.getLocal());
+ assertEquals(ejbName + "EjbClass", entity.getEjbClass());
+ assertTrue(entity.isCMP());
+ assertEquals(ejbName + "PrimKeyClass", entity.getPrimaryKeyClass());
+ assertTrue(entity.isReentrant());
+ assertTrue(entity.isCMP2x());
+ assertFalse(entity.isCMP1x());
+ assertEquals(ejbName + "AbstractSchemaName", entity.getAbstractSchemaName());
+ assertCmpFields(ejbName, 2, entity.getCMPFields());
+ assertEquals(ejbName + "PrimKeyField",entity.getPrimKeyField());
+ assertEnvironment(ejbName, entity, true);
+ assertMethodAttributes(ejbName, entity);
+ assertMethodPermissions(7, entity);
+ assertExcludedMethods(ejbName, entity.getExcludedMethods());
+ assertSecurityRoleRefs(ejbName, 2, entity.getSecurityRoleReferences());
+ assertSecurityIdentity(ejbName, "SecurityIdentity", entity.getSecurityIdentityMetaData(), true);
+ assertQueries(ejbName, 2, entity.getQueries());
+
+ return entity;
+ }
+*/
+/* private EntityMetaData assertNullEntity(String ejbName, ApplicationMetaData applicationMetaData)
+ {
+ EntityMetaData entity = assertEntity(ejbName, applicationMetaData);
+ assertNull(entity.getHome());
+ assertNull(entity.getRemote());
+ assertNull(entity.getLocalHome());
+ assertNull(entity.getLocal());
+ assertNull(entity.getEjbClass());
+ assertTrue(entity.isCMP());
+ assertNull(entity.getPrimaryKeyClass());
+ assertFalse(entity.isReentrant());
+ assertTrue(entity.isCMP2x());
+ assertFalse(entity.isCMP1x());
+ assertNull(entity.getAbstractSchemaName());
+ assertEmptyIterator(entity.getCMPFields());
+ assertNull(entity.getPrimKeyField());
+ assertNullEnvironment(entity);
+ assertDefaultMethodAttributes(ejbName, entity);
+ assertEmptyIterator(entity.getPermissionMethods());
+ assertEmptyIterator(entity.getExcludedMethods());
+ assertEmptyIterator(entity.getSecurityRoleReferences());
+ assertNull(entity.getSecurityIdentityMetaData());
+ assertEmptyIterator(entity.getQueries());
+
+ return entity;
+ }
+*/
+/* protected EntityMetaData assertEntity(String ejbName, ApplicationMetaData applicationMetaData)
+ {
+ EntityMetaData entity = assertEnterpriseBean(ejbName, applicationMetaData, EntityMetaData.class);
+ assertFalse(entity.isSession());
+ assertTrue(entity.isEntity());
+ assertFalse(entity.isMessageDriven());
+ return entity;
+ }
+*/
+/* private void assertCmpFields(String ejbName, int size, Iterator<String> cmpFieldsMetaData)
+ {
+ assertNotNull(cmpFieldsMetaData);
+ int count = 1;
+ while (cmpFieldsMetaData.hasNext())
+ {
+ assertEquals(ejbName + "CmpField" + count, cmpFieldsMetaData.next());
+ ++count;
+ }
+ assertEquals(size + 1, count);
+ }
+*/
+/* private void assertQueries(String ejbName, int size, Iterator<org.jboss.metadata.QueryMetaData> queries)
+ {
+ assertNotNull(queries);
+ int count = 1;
+ while (queries.hasNext())
+ {
+ org.jboss.metadata.QueryMetaData query = queries.next();
+ String prefix = ejbName + "Query" + count;
+ assertEquals(prefix + "QueryMethod", query.getMethodName());
+ assertMethodParams(prefix + "QueryMethod", 2, query.getMethodParams());
+ if (count == 1)
+ assertEquals("Local", query.getResultTypeMapping());
+ else
+ assertEquals("Remote", query.getResultTypeMapping());
+ assertEquals(prefix + "EjbQL", query.getEjbQl());
+ ++count;
+ }
+ assertEquals(size + 1, count);
+ }
+*/
+ private void assertMethodParams(String prefix, int size, Iterator<String> params)
+ {
+ assertNotNull(params);
+ int count = 1;
+ while (params.hasNext())
+ {
+ assertEquals(prefix + "Param" + count, params.next());
+ ++count;
+ }
+ assertEquals(size + 1, count);
+ }
+
+ private void assertMethodParams(String prefix, int size, String[] params)
+ {
+ assertNotNull(params);
+ assertEquals(size, params.length);
+ for (int count = 1; count <= params.length; ++count)
+ assertEquals(prefix + "Param" + count, params[count-1]);
+ }
+
+ protected MessageDrivenBeanMetaData assertFullMDB(String ejbName, EnterpriseBeansMetaData enterpriseBeansMetaData)
+ {
+ throw new NotImplementedException();
+ }
+
+ private MessageDrivenBeanMetaData assertNullMDB(String ejbName, EnterpriseBeansMetaData enterpriseBeansMetaData)
+ {
+ MessageDrivenBeanMetaData mdb = assertMDB(ejbName, enterpriseBeansMetaData);
+
+ assertNull(mdb.getId());
+ assertNull(mdb.getMappedName());
+ assertNull(mdb.getEjbClass());
+ assertNull(mdb.getMessagingType());
+ assertNull(mdb.getTimeoutMethod());
+ assertNull(mdb.getTransactionType());
+ assertNull(mdb.getMessageDestinationType());
+ assertNull(mdb.getMessageDestinationLink());
+ assertNull(mdb.getActivationConfig());
+ assertNull(mdb.getAroundInvokes());
+ assertNull(mdb.getJndiEnvironmentRefsGroup());
+ assertNull(mdb.getContainerTransactions());
+ assertNull(mdb.getMethodPermissions());
+ assertNull(mdb.getExcludeList());
+ assertNull(mdb.getSecurityIdentity());
+
+ return mdb;
+ }
+
+ protected MessageDrivenBeanMetaData assertMDB(String ejbName, EnterpriseBeansMetaData enterpriseBeansMetaData)
+ {
+ MessageDrivenBeanMetaData mdb = assertEnterpriseBean(ejbName, enterpriseBeansMetaData, MessageDrivenBeanMetaData.class);
+ assertFalse(mdb.isSession());
+ assertFalse(mdb.isEntity());
+ assertTrue(mdb.isMessageDriven());
+ return mdb;
+ }
+
+/* protected MessageDrivenMetaData assertFullMDB(String ejbName, ApplicationMetaData applicationMetaData)
+ {
+ MessageDrivenMetaData mdb = assertMDB(ejbName, applicationMetaData);
+
+ assertEquals(ejbName + "EjbClass", mdb.getEjbClass());
+ assertEquals(ejbName + "MessagingType", mdb.getMessagingType());
+ assertTrue(mdb.isContainerManagedTx());
+ assertEquals(ejbName + "MessageDestinationType", mdb.getDestinationType());
+ assertEquals(ejbName + "MessageDestinationLink", mdb.getDestinationLink());
+ assertActivationConfigProperties(ejbName, 2, mdb.getActivationConfigProperties());
+ assertEnvironment(ejbName, mdb, true);
+ assertMethodAttributes(ejbName, mdb);
+ assertMethodPermissions(7, mdb);
+ assertExcludedMethods(ejbName, mdb.getExcludedMethods());
+ assertSecurityIdentity(ejbName, "SecurityIdentity", mdb.getSecurityIdentityMetaData(), true);
+
+ return mdb;
+ }
+*/
+/* private MessageDrivenMetaData assertNullMDB(String ejbName, ApplicationMetaData applicationMetaData)
+ {
+ MessageDrivenMetaData mdb = assertMDB(ejbName, applicationMetaData);
+
+ assertNull(mdb.getEjbClass());
+ assertNull(mdb.getMessagingType());
+ assertTrue(mdb.isContainerManagedTx());
+ assertNull(mdb.getDestinationType());
+ assertNull(mdb.getDestinationLink());
+ assertEquals(0, mdb.getActivationConfigProperties().size());
+ assertNullEnvironment(mdb);
+ assertDefaultMethodAttributes(ejbName, mdb);
+ assertEmptyIterator(mdb.getPermissionMethods());
+ assertEmptyIterator(mdb.getExcludedMethods());
+ assertNull(mdb.getSecurityIdentityMetaData());
+
+ return mdb;
+ }
+*/
+ protected void assertActivationConfig(String prefix, ActivationConfigMetaData activationConfigMetaData)
+ {
+ assertNotNull(activationConfigMetaData);
+ assertId(prefix + "ActivationConfig", activationConfigMetaData);
+ assertActivationConfigProperties(prefix, 2, activationConfigMetaData.getActivationConfigProperties());
+ }
+
+ private void assertActivationConfigProperties(String prefix, int size, ActivationConfigPropertiesMetaData activationConfigPropertiesMetaData)
+ {
+ assertNotNull(activationConfigPropertiesMetaData);
+ assertEquals(size, activationConfigPropertiesMetaData.size());
+ int count = 1;
+ for (ActivationConfigPropertyMetaData property : activationConfigPropertiesMetaData)
+ {
+ assertId(prefix + "ActivationConfigProperty" + count, property);
+ assertEquals(prefix + "ActivationConfigProperty" + count + "Name", property.getActivationConfigPropertyName());
+ assertEquals(prefix + "ActivationConfigProperty" + count + "Value", property.getValue());
+ ++count;
+ }
+ }
+
+/* private void assertActivationConfigProperties(String ejbName, int size, Map<String, org.jboss.metadata.ActivationConfigPropertyMetaData> activationConfigPropertiesMetaData)
+ {
+ assertNotNull(activationConfigPropertiesMetaData);
+ assertEquals(size, activationConfigPropertiesMetaData.size());
+ int count = 1;
+ for (Entry<String, org.jboss.metadata.ActivationConfigPropertyMetaData> property : activationConfigPropertiesMetaData.entrySet())
+ {
+ String prefix = ejbName + "ActivationConfigProperty" + count;
+ assertEquals(prefix + "Name", property.getKey());
+ assertEquals(prefix + "Name", property.getValue().getName());
+ assertEquals(prefix + "Value", property.getValue().getValue());
+ ++count;
+ }
+ }
+*/
+/* protected MessageDrivenMetaData assertMDB(String ejbName, ApplicationMetaData applicationMetaData)
+ {
+ MessageDrivenMetaData mdb = assertEnterpriseBean(ejbName, applicationMetaData, MessageDrivenMetaData.class);
+ assertFalse(mdb.isSession());
+ assertFalse(mdb.isEntity());
+ assertTrue(mdb.isMessageDriven());
+ return mdb;
+ }
+*/
+ protected <T extends EnterpriseBeanMetaData> T assertEnterpriseBean(String ejbName, EnterpriseBeansMetaData enterpriseBeansMetaData, Class<T> expected)
+ {
+ EnterpriseBeanMetaData enterpriseBeanMeta = enterpriseBeansMetaData.get(ejbName);
+ assertNotNull(enterpriseBeanMeta);
+ assertEquals(ejbName, enterpriseBeanMeta.getEjbName());
+ return expected.cast(enterpriseBeanMeta);
+ }
+
+/* private <T extends BeanMetaData> T assertEnterpriseBean(String ejbName, ApplicationMetaData applicationMetaData, Class<T> expected)
+ {
+ BeanMetaData beanMeta = applicationMetaData.getBeanByEjbName(ejbName);
+ assertNotNull(beanMeta);
+ assertEquals(ejbName, beanMeta.getEjbName());
+ return expected.cast(beanMeta);
+ }
+*/
+ protected void assertRelationships(EjbJarMetaData ejbJarMetaData)
+ {
+ RelationsMetaData relationsMetaData = ejbJarMetaData.getRelationships();
+ assertNotNull(relationsMetaData);
+ assertId("relationships", relationsMetaData);
+ assertDescriptions("relationships", relationsMetaData.getDescriptions());
+ assertEquals(2, relationsMetaData.size());
+ int count = 1;
+ for (RelationMetaData relation : relationsMetaData)
+ assertRelation("relation" + (count++), relation);
+ }
+
+ private void assertRelation(String prefix, RelationMetaData relationMetaData)
+ {
+ assertId(prefix, relationMetaData);
+ assertDescriptions(prefix, relationMetaData.getDescriptions());
+ assertEquals(prefix + "Name", relationMetaData.getEjbRelationName());
+ assertRelationRole(prefix + "Role1", MultiplicityType.One, relationMetaData.getLeftRole());
+ assertRelationRole(prefix + "Role2", MultiplicityType.Many, relationMetaData.getRightRole());
+ assertEquals(relationMetaData.getLeftRole(), relationMetaData.getRelatedRole(relationMetaData.getRightRole()));
+ assertEquals(relationMetaData.getRightRole(), relationMetaData.getRelatedRole(relationMetaData.getLeftRole()));
+ assertEquals(relationMetaData.getLeftRole(), relationMetaData.getRightRole().getRelatedRole());
+ assertEquals(relationMetaData.getRightRole(), relationMetaData.getLeftRole().getRelatedRole());
+ }
+
+ private void assertRelationRole(String prefix, MultiplicityType multiplicity, RelationRoleMetaData relationRoleMetaData)
+ {
+ assertNotNull(relationRoleMetaData);
+ assertId(prefix, relationRoleMetaData);
+ assertDescriptions(prefix, relationRoleMetaData.getDescriptions());
+ assertEquals(prefix + "Name", relationRoleMetaData.getEjbRelationshipRoleName());
+ assertEquals(multiplicity, relationRoleMetaData.getMultiplicity());
+ if (multiplicity == MultiplicityType.Many)
+ {
+ assertTrue(relationRoleMetaData.isMultiplicityMany());
+ assertFalse(relationRoleMetaData.isMultiplicityOne());
+ }
+ else
+ {
+ assertFalse(relationRoleMetaData.isMultiplicityMany());
+ assertTrue(relationRoleMetaData.isMultiplicityOne());
+ }
+ assertEmpty(prefix, "CascadeDelete", relationRoleMetaData.getCascadeDelete());
+ assertTrue(relationRoleMetaData.isCascadedDelete());
+ assertRelationRoleSource(prefix + "RoleSource", relationRoleMetaData.getRoleSource());
+ assertCmrField(prefix + "CmrField", relationRoleMetaData.getCmrField());
+ }
+
+ private void assertRelationRoleSource(String prefix, RelationRoleSourceMetaData relationRoleSourceMetaData)
+ {
+ assertNotNull(relationRoleSourceMetaData);
+ assertId(prefix, relationRoleSourceMetaData);
+ assertDescriptions(prefix, relationRoleSourceMetaData.getDescriptions());
+ assertEquals(prefix + "Name", relationRoleSourceMetaData.getEjbName());
+ }
+
+ private void assertCmrField(String prefix, CMRFieldMetaData cmrFieldMetaData)
+ {
+ assertNotNull(cmrFieldMetaData);
+ assertId(prefix, cmrFieldMetaData);
+ assertDescriptions(prefix, cmrFieldMetaData.getDescriptions());
+ assertEquals(prefix + "Name", cmrFieldMetaData.getCmrFieldName());
+ assertEquals(prefix + "Type", cmrFieldMetaData.getCmrFieldType());
+ }
+
+/* protected void assertRelationships(ApplicationMetaData applicationMetaData)
+ {
+ Iterator<org.jboss.metadata.RelationMetaData> i = applicationMetaData.getRelationships();
+ assertNotNull(i);
+ int count = 1;
+ while (i.hasNext())
+ {
+ org.jboss.metadata.RelationMetaData relation = i.next();
+ assertRelation("relation" + (count++), relation);
+ }
+ assertEquals(3, count);
+ }
+*/
+/* private void assertRelation(String prefix, org.jboss.metadata.RelationMetaData relationMetaData)
+ {
+ assertEquals(prefix + "Name", relationMetaData.getRelationName());
+ assertRelationRole(prefix + "Role1", false, relationMetaData.getLeftRelationshipRole());
+ assertRelationRole(prefix + "Role2", true, relationMetaData.getRightRelationshipRole());
+ assertEquals(relationMetaData.getLeftRelationshipRole(), relationMetaData.getOtherRelationshipRole(relationMetaData.getRightRelationshipRole()));
+ assertEquals(relationMetaData.getRightRelationshipRole(), relationMetaData.getOtherRelationshipRole(relationMetaData.getLeftRelationshipRole()));
+ assertEquals(relationMetaData.getLeftRelationshipRole(), relationMetaData.getRightRelationshipRole().getRelatedRoleMetaData());
+ assertEquals(relationMetaData.getRightRelationshipRole(), relationMetaData.getLeftRelationshipRole().getRelatedRoleMetaData());
+ }
+*/
+/* private void assertRelationRole(String prefix, boolean many, RelationshipRoleMetaData relationRoleMetaData)
+ {
+ assertNotNull(relationRoleMetaData);
+ assertEquals(prefix + "Name", relationRoleMetaData.getRelationshipRoleName());
+ if (many)
+ {
+ assertTrue(relationRoleMetaData.isMultiplicityMany());
+ assertFalse(relationRoleMetaData.isMultiplicityOne());
+ }
+ else
+ {
+ assertFalse(relationRoleMetaData.isMultiplicityMany());
+ assertTrue(relationRoleMetaData.isMultiplicityOne());
+ }
+ assertTrue(relationRoleMetaData.isCascadeDelete());
+ assertEquals(prefix + "RoleSourceName", relationRoleMetaData.getEntityName());
+ assertEquals(prefix + "CmrFieldName", relationRoleMetaData.getCMRFieldName());
+ assertEquals(prefix + "CmrFieldType", relationRoleMetaData.getCMRFieldType());
+ }
+*/
+ protected AssemblyDescriptorMetaData assertAssemblyDescriptor(EjbJarMetaData ejbJarMetaData)
+ {
+ AssemblyDescriptorMetaData assemblyDescriptorMetaData = ejbJarMetaData.getAssemblyDescriptor();
+ assertNotNull(assemblyDescriptorMetaData);
+ assertId("assembly-descriptor", assemblyDescriptorMetaData);
+ assertSecurityRoles(2, assemblyDescriptorMetaData.getSecurityRoles());
+ assertMethodPermissions(null, "methodPermission", 21, 3, assemblyDescriptorMetaData.getMethodPermissions());
+ assertContainerTransactions(null, 42, 6, assemblyDescriptorMetaData.getContainerTransactions());
+ assertMessageDestinations(2, assemblyDescriptorMetaData.getMessageDestinations());
+ assertExcludeList(null, 35, 5, assemblyDescriptorMetaData.getExcludeList());
+ return assemblyDescriptorMetaData;
+ }
+
+/* protected void assertAssemblyDescriptor(ApplicationMetaData applicationMetaData)
+ {
+ org.jboss.metadata.AssemblyDescriptorMetaData assemblyDescriptorMetaData = applicationMetaData.getAssemblyDescriptor();
+ assertNotNull(assemblyDescriptorMetaData);
+ assertSecurityRoles(2, assemblyDescriptorMetaData.getSecurityRoles());
+ assertMessageDestination("messageDestination1", assemblyDescriptorMetaData.getMessageDestinationMetaData("messageDestination1Name"));
+ assertMessageDestination("messageDestination2", assemblyDescriptorMetaData.getMessageDestinationMetaData("messageDestination2Name"));
+ }
+*/
+ protected void assertMethodPermissions(String ejbName, String prefix, int size, int limit, MethodPermissionsMetaData methodPermissionsMetaData)
+ {
+ assertNotNull(methodPermissionsMetaData);
+ assertEquals(size, methodPermissionsMetaData.size());
+ int count = 1;
+ for (MethodPermissionMetaData methodPermissionMetaData : methodPermissionsMetaData)
+ {
+ assertId(prefix + count, methodPermissionMetaData);
+ assertDescriptions(prefix + count, methodPermissionMetaData.getDescriptions());
+ if (count == 1)
+ {
+ assertEmpty(prefix + count, "Unchecked", methodPermissionMetaData.getUnchecked());
+ assertTrue(methodPermissionMetaData.isNotChecked());
+ }
+ else
+ {
+ assertRolesNames(prefix + count, 2, methodPermissionMetaData.getRoles());
+ assertFalse(methodPermissionMetaData.isNotChecked());
+ }
+ if (count == 1)
+ assertMethods(ejbName, prefix + count + "Method", 5, methodPermissionMetaData.getMethods());
+ else
+ assertMethods(ejbName, prefix + count + "Method", 1, methodPermissionMetaData.getMethods());
+ ++count;
+ if (count > limit)
+ break;
+ }
+ }
+
+/* private void assertMethodPermissions(int size, BeanMetaData beanMetaData)
+ {
+ int count = 1;
+ Iterator<org.jboss.metadata.MethodMetaData> methods = beanMetaData.getPermissionMethods();
+ assertNotNull(methods);
+ while(methods.hasNext())
+ {
+ String permissionPrefix = null;
+ if (count <= 5)
+ permissionPrefix = beanMetaData.getEjbName() + "MethodPermission1";
+ else if (count == 6)
+ permissionPrefix = beanMetaData.getEjbName() + "MethodPermission2";
+ else if (count == 7)
+ permissionPrefix = beanMetaData.getEjbName() + "MethodPermission3";
+
+ org.jboss.metadata.MethodMetaData<?> methodMetaData = methods.next();
+ if (count <= 5)
+ {
+ assertEmpty(methodMetaData.getRoles());
+ assertTrue(methodMetaData.isUnchecked());
+ }
+ else
+ {
+ assertRolesNames(permissionPrefix, 2, methodMetaData.getRoles());
+ assertFalse(methodMetaData.isUnchecked());
+ }
+ assertEquals(beanMetaData.getEjbName(), methodMetaData.getEjbName());
+ assertTrue(methodMetaData.isIntfGiven());
+ if (count == 1)
+ {
+ assertEquals(org.jboss.metadata.MethodMetaData.HOME_TYPE, methodMetaData.getInterfaceType());
+ assertTrue(methodMetaData.isHomeMethod());
+ assertFalse(methodMetaData.isRemoteMethod());
+ assertFalse(methodMetaData.isLocalHomeMethod());
+ assertFalse(methodMetaData.isLocalMethod());
+ assertFalse(methodMetaData.isServiceEndpointMethod());
+ String prefix = permissionPrefix + "Method1";
+ assertEquals(prefix + "MethodName", methodMetaData.getMethodName());
+ assertTrue(methodMetaData.isParamGiven());
+ assertMethodParams(prefix, 2, methodMetaData.getMethodParams());
+ }
+ else if (count == 2)
+ {
+ assertEquals(org.jboss.metadata.MethodMetaData.REMOTE_TYPE, methodMetaData.getInterfaceType());
+ assertFalse(methodMetaData.isHomeMethod());
+ assertTrue(methodMetaData.isRemoteMethod());
+ assertFalse(methodMetaData.isLocalHomeMethod());
+ assertFalse(methodMetaData.isLocalMethod());
+ assertFalse(methodMetaData.isServiceEndpointMethod());
+ String prefix = permissionPrefix + "Method2";
+ assertEquals(prefix + "MethodName", methodMetaData.getMethodName());
+ assertFalse(methodMetaData.isParamGiven());
+ }
+ else if (count == 3)
+ {
+ assertEquals(org.jboss.metadata.MethodMetaData.LOCAL_HOME_TYPE, methodMetaData.getInterfaceType());
+ assertFalse(methodMetaData.isHomeMethod());
+ assertFalse(methodMetaData.isRemoteMethod());
+ assertTrue(methodMetaData.isLocalHomeMethod());
+ assertFalse(methodMetaData.isLocalMethod());
+ assertFalse(methodMetaData.isServiceEndpointMethod());
+ String prefix = permissionPrefix + "Method3";
+ assertEquals(prefix + "MethodName", methodMetaData.getMethodName());
+ assertFalse(methodMetaData.isParamGiven());
+ }
+ else if (count == 4)
+ {
+ assertEquals(org.jboss.metadata.MethodMetaData.LOCAL_TYPE, methodMetaData.getInterfaceType());
+ assertFalse(methodMetaData.isHomeMethod());
+ assertFalse(methodMetaData.isRemoteMethod());
+ assertFalse(methodMetaData.isLocalHomeMethod());
+ assertTrue(methodMetaData.isLocalMethod());
+ assertFalse(methodMetaData.isServiceEndpointMethod());
+ String prefix = permissionPrefix + "Method4";
+ assertEquals(prefix + "MethodName", methodMetaData.getMethodName());
+ assertFalse(methodMetaData.isParamGiven());
+ }
+ else if (count == 5)
+ {
+ assertEquals(org.jboss.metadata.MethodMetaData.SERVICE_ENDPOINT_TYPE, methodMetaData.getInterfaceType());
+ assertFalse(methodMetaData.isHomeMethod());
+ assertFalse(methodMetaData.isRemoteMethod());
+ assertFalse(methodMetaData.isLocalHomeMethod());
+ assertFalse(methodMetaData.isLocalMethod());
+ assertTrue(methodMetaData.isServiceEndpointMethod());
+ String prefix = permissionPrefix + "Method5";
+ assertEquals(prefix + "MethodName", methodMetaData.getMethodName());
+ assertFalse(methodMetaData.isParamGiven());
+ }
+ else if (count > 5)
+ {
+ assertEquals(org.jboss.metadata.MethodMetaData.HOME_TYPE, methodMetaData.getInterfaceType());
+ assertTrue(methodMetaData.isHomeMethod());
+ assertFalse(methodMetaData.isRemoteMethod());
+ assertFalse(methodMetaData.isLocalHomeMethod());
+ assertFalse(methodMetaData.isLocalMethod());
+ assertFalse(methodMetaData.isServiceEndpointMethod());
+ String prefix = permissionPrefix + "Method1";
+ assertEquals(prefix + "MethodName", methodMetaData.getMethodName());
+ assertMethodParams(prefix, 2, methodMetaData.getMethodParams());
+ }
+ ++count;
+ }
+ assertEquals(beanMetaData.getEjbName(), size, count-1);
+ }
+*/
+ private void assertRolesNames(String prefix, int size, Set<String> roles)
+ {
+ assertNotNull(roles);
+ assertEquals(size, roles.size());
+ int count = 1;
+ for (String roleName : roles)
+ {
+ assertEquals(prefix + "RoleName" + count, roleName);
+ ++count;
+ }
+ }
+
+ private void assertMethods(String ejbName, String prefix, int size, MethodsMetaData methodsMetaData)
+ {
+ assertMethods(ejbName, prefix, size, size, methodsMetaData);
+ }
+
+ private void assertMethods(String ejbName, String prefix, int size, int limit, MethodsMetaData methodsMetaData)
+ {
+ assertNotNull(methodsMetaData);
+ assertEquals(size, methodsMetaData.size());
+ int count = 1;
+ for (MethodMetaData methodMetaData : methodsMetaData)
+ {
+ assertId(prefix + count, methodMetaData);
+ assertDescriptions(prefix + count, methodMetaData.getDescriptions());
+ if (ejbName == null)
+ assertEquals(prefix + count + "EjbName", methodMetaData.getEjbName());
+ else
+ assertEquals(ejbName, methodMetaData.getEjbName());
+ if (count == 1)
+ assertEquals(MethodInterfaceType.Home, methodMetaData.getMethodIntf());
+ else if (count == 2)
+ assertEquals(MethodInterfaceType.Remote, methodMetaData.getMethodIntf());
+ else if (count == 3)
+ assertEquals(MethodInterfaceType.LocalHome, methodMetaData.getMethodIntf());
+ else if (count == 4)
+ assertEquals(MethodInterfaceType.Local, methodMetaData.getMethodIntf());
+ else
+ assertEquals(MethodInterfaceType.ServiceEndpoint, methodMetaData.getMethodIntf());
+ assertEquals(prefix + count + "MethodName", methodMetaData.getMethodName());
+ if (count == 1)
+ assertMethodParams(prefix + count, 2, methodMetaData.getMethodParams());
+ ++count;
+ if (count > limit)
+ break;
+ }
+ }
+
+/* private void assertMethods(String ejbName, String prefix, int size, Iterator<org.jboss.metadata.MethodMetaData> methods)
+ {
+ assertNotNull(methods);
+ int count = 1;
+ while (methods.hasNext())
+ {
+ org.jboss.metadata.MethodMetaData methodMetaData = methods.next();
+ if (ejbName == null)
+ assertEquals(prefix + count + "EjbName", methodMetaData.getEjbName());
+ else
+ assertEquals(ejbName, methodMetaData.getEjbName());
+ if (count == 1)
+ assertEquals(org.jboss.metadata.MethodMetaData.HOME_TYPE, methodMetaData.getInterfaceType());
+ else if (count == 2)
+ assertEquals(org.jboss.metadata.MethodMetaData.REMOTE_TYPE, methodMetaData.getInterfaceType());
+ else if (count == 3)
+ assertEquals(org.jboss.metadata.MethodMetaData.LOCAL_HOME_TYPE, methodMetaData.getInterfaceType());
+ else if (count == 4)
+ assertEquals(org.jboss.metadata.MethodMetaData.LOCAL_TYPE, methodMetaData.getInterfaceType());
+ else
+ assertEquals(org.jboss.metadata.MethodMetaData.SERVICE_ENDPOINT_TYPE, methodMetaData.getInterfaceType());
+ assertEquals(prefix + count + "MethodName", methodMetaData.getMethodName());
+ if (count == 1)
+ assertMethodParams(prefix + count, 2, methodMetaData.getMethodParams());
+ ++count;
+ }
+ assertEquals(size, count-1);
+ }
+*/
+ protected void assertMethodParams(String prefix, int size, MethodParametersMetaData methodParametersMetaData)
+ {
+ assertNotNull(methodParametersMetaData);
+ assertEquals(size, methodParametersMetaData.size());
+ int count = 1;
+ for (String parameter : methodParametersMetaData)
+ assertEquals(prefix + "Param" + (count++), parameter);
+ }
+
+ protected void assertContainerTransactions(String ejbName, int size, int limit, ContainerTransactionsMetaData containerTransactionsMetaData)
+ {
+ assertNotNull(containerTransactionsMetaData);
+ assertEquals(size, containerTransactionsMetaData.size());
+ int count = 1;
+ String prefix;
+ if (ejbName == null)
+ prefix = "containerTransaction";
+ else
+ prefix = ejbName + "ContainerTransaction";
+ for (ContainerTransactionMetaData containerTransactionMetaData : containerTransactionsMetaData)
+ {
+ assertId(prefix + count, containerTransactionMetaData);
+ assertDescriptions(prefix + count, containerTransactionMetaData.getDescriptions());
+ if (count == 1)
+ assertMethods(ejbName, prefix + count + "Method", 5, containerTransactionMetaData.getMethods());
+ else
+ assertMethods(ejbName, prefix + count + "Method", 1, containerTransactionMetaData.getMethods());
+ if (count == 1)
+ assertEquals(TransAttributeType.NotSupported, containerTransactionMetaData.getTransAttribute());
+ else if (count == 2)
+ assertEquals(TransAttributeType.Supports, containerTransactionMetaData.getTransAttribute());
+ else if (count == 3)
+ assertEquals(TransAttributeType.Required, containerTransactionMetaData.getTransAttribute());
+ else if (count == 4)
+ assertEquals(TransAttributeType.RequiresNew, containerTransactionMetaData.getTransAttribute());
+ else if (count == 5)
+ assertEquals(TransAttributeType.Mandatory, containerTransactionMetaData.getTransAttribute());
+ else
+ assertEquals(TransAttributeType.Never, containerTransactionMetaData.getTransAttribute());
+ ++count;
+ if (count > limit)
+ break;
+ }
+ }
+
+/* private void assertContainerTransactions(Iterator<org.jboss.metadata.MethodMetaData> transactions)
+ {
+ assertNotNull(transactions);
+ int count = 1;
+ while(transactions.hasNext())
+ {
+ org.jboss.metadata.MethodMetaData<?> method = transactions.next();
+ if (count <= 5)
+ assertEquals(MetaData.TX_NOT_SUPPORTED, method.getTransactionType());
+ else if (count == 6)
+ assertEquals(MetaData.TX_SUPPORTS, method.getTransactionType());
+ else if (count == 7)
+ assertEquals(MetaData.TX_REQUIRED, method.getTransactionType());
+ else if (count == 8)
+ assertEquals(MetaData.TX_REQUIRES_NEW, method.getTransactionType());
+ else if (count == 9)
+ assertEquals(MetaData.TX_MANDATORY, method.getTransactionType());
+ else
+ assertEquals(MetaData.TX_NEVER, method.getTransactionType());
+ ++count;
+ }
+ assertEquals(10, count-1);
+ }
+*/
+ protected void assertExcludeList(String ejbName, int size, int limit, ExcludeListMetaData excludeListMetaData)
+ {
+ assertNotNull(excludeListMetaData);
+ assertId("excludeList", excludeListMetaData);
+ assertDescriptions("excludeList", excludeListMetaData.getDescriptions());
+ if (ejbName != null)
+ assertMethods(ejbName, ejbName + "ExcludeListMethod", size, limit, excludeListMetaData.getMethods());
+ else
+ assertMethods(null, "excludeListMethod", size, limit, excludeListMetaData.getMethods());
+ }
+
+/* private void assertExcludedMethods(String ejbName, Iterator<org.jboss.metadata.MethodMetaData> excluded)
+ {
+ assertMethods(ejbName, ejbName + "ExcludeListMethod", 5, excluded);
+ }
+*/
+/* protected void assertEnvironment(String prefix, BeanMetaData bean, boolean full)
+ {
+ if (full)
+ assertEnvEntries(prefix, 2, bean.getEnvironmentEntries(), full);
+ assertEjbRefs(prefix, 2, bean.getEjbReferences(), full);
+ assertEjbLocalRefs(prefix, 2, bean.getEjbLocalReferences(), full);
+ // TODO webservice service references
+ assertResourceRefs(prefix, 2, bean.getResourceReferences(), full);
+ assertResourceEnvRefs(prefix, 2, bean.getResourceEnvReferences(), full);
+ assertMessageDestinationRefs(prefix, 3, bean.getMessageDestinationReferences(), full);
+ }
+*/
+/* protected void assertNullEnvironment(BeanMetaData bean)
+ {
+ assertEmptyIterator(bean.getEnvironmentEntries());
+ assertEmptyIterator(bean.getEjbReferences());
+ assertEmptyIterator(bean.getEjbLocalReferences());
+ // TODO webservice service references
+ assertEmptyIterator(bean.getResourceReferences());
+ assertEmptyIterator(bean.getResourceEnvReferences());
+ assertEmptyIterator(bean.getMessageDestinationReferences());
+ }
+*/
+ protected void assertSecurityIdentity(String ejbName, String type, SecurityIdentityMetaData securityIdentity, boolean full)
+ {
+ assertNotNull(ejbName, securityIdentity);
+ String prefix = ejbName + type;
+ assertId(prefix, securityIdentity);
+ assertDescriptions(prefix, securityIdentity.getDescriptions());
+ if (full)
+ {
+ assertEmpty(prefix, "UseCallerIdentity", securityIdentity.getUseCallerIdentity());
+ assertTrue(securityIdentity.isUseCallerId());
+ assertRunAs(ejbName, type, securityIdentity.getRunAs());
+ }
+ }
+
+/* protected void assertSecurityIdentity(String ejbName, String type, org.jboss.metadata.SecurityIdentityMetaData securityIdentity, boolean full)
+ {
+ assertNotNull(ejbName, securityIdentity);
+ String prefix = ejbName + type;
+ assertEquals("en-" + prefix + "-desc", securityIdentity.getDescription());
+ if (full)
+ {
+ assertTrue(securityIdentity.getUseCallerIdentity());
+ assertEquals(prefix + "RunAsRoleName", securityIdentity.getRunAsRoleName());
+ }
+ }
+*/
+ protected void assertRunAs(String prefix, String type, RunAsMetaData runAsMetaData)
+ {
+ assertNotNull(runAsMetaData);
+ assertId(prefix + type + "RunAs", runAsMetaData);
+ assertDescriptions(prefix + type + "RunAs", runAsMetaData.getDescriptions());
+ assertEquals(prefix + type + "RunAsRoleName", runAsMetaData.getRoleName());
+ }
+
+ protected void assertSecurityRoleRefs(String ejbName, int size, SecurityRoleRefsMetaData securityRoleRefsMetaData)
+ {
+ assertNotNull(securityRoleRefsMetaData);
+ assertEquals(size, securityRoleRefsMetaData.size());
+ int count = 1;
+ for (SecurityRoleRefMetaData securityRoleRefMetaData : securityRoleRefsMetaData)
+ {
+ assertId(ejbName + "SecurityRoleRef" + count, securityRoleRefMetaData);
+ assertDescriptions(ejbName + "SecurityRoleRef" + count, securityRoleRefMetaData.getDescriptions());
+ assertEquals(ejbName + "SecurityRoleRef" + count + "RoleName", securityRoleRefMetaData.getRoleName());
+ assertEquals(ejbName + "SecurityRoleRef" + count + "RoleLink", securityRoleRefMetaData.getRoleLink());
+ ++count;
+ }
+ }
+
+/* protected void assertSecurityRoleRefs(String ejbName, int size, Iterator<org.jboss.metadata.SecurityRoleRefMetaData> securityRoleRefs)
+ {
+ assertNotNull(securityRoleRefs);
+ int count = 1;
+ while (securityRoleRefs.hasNext())
+ {
+ org.jboss.metadata.SecurityRoleRefMetaData securityRoleRefMetaData = securityRoleRefs.next();
+ assertEquals("en-" + ejbName + "SecurityRoleRef" + count + "-desc", securityRoleRefMetaData.getDescription());
+ assertEquals(ejbName + "SecurityRoleRef" + count + "RoleName", securityRoleRefMetaData.getName());
+ assertEquals(ejbName + "SecurityRoleRef" + count + "RoleLink", securityRoleRefMetaData.getLink());
+ ++count;
+ }
+ assertEquals(ejbName, size, count-1);
+ }
+*/
+ protected void assertClusterConfig(String prefix, ClusterConfigMetaData clusterConfig, boolean isSession)
+ {
+ assertNotNull(clusterConfig);
+ prefix = prefix + "ClusterConfig";
+ assertId(prefix, clusterConfig);
+ assertDescriptions(prefix, clusterConfig.getDescriptions());
+ assertEquals(prefix + "PartitionName", clusterConfig.getPartitionName());
+ assertEquals(prefix + "HomeLoadBalancingPolicy", clusterConfig.getHomeLoadBalancingPolicy());
+ assertEquals(prefix + "BeanLoadBalancingPolicy", clusterConfig.getBeanLoadBalancingPolicy());
+ if (isSession)
+ assertEquals(prefix + "SessionStateManagerJndiName", clusterConfig.getSessionStateManagerJndiName());
+ }
+
+/* protected void assertClusterConfig(String prefix, org.jboss.metadata.ClusterConfigMetaData clusterConfig, boolean isSession)
+ {
+ assertNotNull(clusterConfig);
+ prefix = prefix + "ClusterConfig";
+ assertEquals(prefix + "PartitionName", clusterConfig.getPartitionName());
+ assertEquals(prefix + "HomeLoadBalancingPolicy", clusterConfig.getHomeLoadBalancePolicy());
+ assertEquals(prefix + "BeanLoadBalancingPolicy", clusterConfig.getBeanLoadBalancePolicy());
+ if (isSession)
+ assertEquals(prefix + "SessionStateManagerJndiName", clusterConfig.getHaSessionStateName());
+ }
+*/
+ protected void assertCacheInvalidationConfig(String prefix, CacheInvalidationConfigMetaData invalidationConfig)
+ {
+ assertNotNull(invalidationConfig);
+ prefix = prefix + "CacheInvalidationConfig";
+ assertId(prefix, invalidationConfig);
+ assertDescriptions(prefix, invalidationConfig.getDescriptions());
+ assertEquals(prefix + "InvalidationGroupName", invalidationConfig.getInvalidationGroupName());
+ assertEquals(prefix + "InvalidationManagerName", invalidationConfig.getInvalidationManagerName());
+ }
+
+/* protected void assertCacheInvalidationConfig(String prefix, org.jboss.metadata.CacheInvalidationConfigMetaData invalidationConfig)
+ {
+ assertNotNull(invalidationConfig);
+ prefix = prefix + "CacheInvalidationConfig";
+ assertEquals(prefix + "InvalidationGroupName", invalidationConfig.getInvalidationGroupName());
+ assertEquals(prefix + "InvalidationManagerName", invalidationConfig.getInvalidationManagerName());
+ }
+*/
+ protected void assertIORSecurityConfig(String ejbName, IORSecurityConfigMetaData iorSecurityConfig)
+ {
+ assertNotNull(iorSecurityConfig);
+ String prefix = ejbName + "IorSecurityConfig";
+ assertId(prefix, iorSecurityConfig);
+ assertDescriptions(prefix, iorSecurityConfig.getDescriptions());
+ assertIORTransportConfig(ejbName, iorSecurityConfig.getTransportConfig());
+ assertIORASContext(ejbName, iorSecurityConfig.getAsContext());
+ assertIORSASContext(ejbName, iorSecurityConfig.getSasContext());
+ }
+
+/* protected void assertIORSecurityConfig(String ejbName, IorSecurityConfigMetaData iorSecurityConfig)
+ {
+ assertNotNull(iorSecurityConfig);
+ assertIORTransportConfig(ejbName, iorSecurityConfig.getTransportConfig());
+ assertIORASContext(ejbName, iorSecurityConfig.getAsContext());
+ assertIORSASContext(ejbName, iorSecurityConfig.getSasContext());
+ }
+*/
+ protected void assertIORTransportConfig(String ejbName, IORTransportConfigMetaData iorTransportConfig)
+ {
+ assertNotNull(iorTransportConfig);
+ String prefix = ejbName + "TransportConfig";
+ assertId(prefix, iorTransportConfig);
+ assertDescriptions(prefix, iorTransportConfig.getDescriptions());
+ assertEquals(IORTransportConfigMetaData.INTEGRITY_NONE, iorTransportConfig.getIntegrity());
+ assertEquals(IORTransportConfigMetaData.CONFIDENTIALITY_NONE, iorTransportConfig.getConfidentiality());
+ assertEquals(IORTransportConfigMetaData.ESTABLISH_TRUST_IN_TARGET_NONE, iorTransportConfig.getEstablishTrustInTarget());
+ assertEquals(IORTransportConfigMetaData.ESTABLISH_TRUST_IN_CLIENT_NONE, iorTransportConfig.getEstablishTrustInClient());
+ assertEquals(IORTransportConfigMetaData.DETECT_MISORDERING_NONE, iorTransportConfig.getDetectMisordering());
+ assertEquals(IORTransportConfigMetaData.DETECT_REPLAY_NONE, iorTransportConfig.getDetectReplay());
+ }
+
+/* protected void assertIORTransportConfig(String ejbName, IorSecurityConfigMetaData.TransportConfig iorTransportConfig)
+ {
+ assertNotNull(iorTransportConfig);
+ assertEquals(IORTransportConfigMetaData.INTEGRITY_NONE, iorTransportConfig.getIntegrity());
+ assertEquals(IORTransportConfigMetaData.CONFIDENTIALITY_NONE, iorTransportConfig.getConfidentiality());
+ assertEquals(IORTransportConfigMetaData.ESTABLISH_TRUST_IN_TARGET_NONE, iorTransportConfig.getEstablishTrustInTarget());
+ assertEquals(IORTransportConfigMetaData.ESTABLISH_TRUST_IN_CLIENT_NONE, iorTransportConfig.getEstablishTrustInClient());
+ assertEquals(IORTransportConfigMetaData.DETECT_MISORDERING_NONE, iorTransportConfig.getDetectMisordering());
+ assertEquals(IORTransportConfigMetaData.DETECT_REPLAY_NONE, iorTransportConfig.getDetectReplay());
+ }
+*/
+ protected void assertIORASContext(String ejbName, IORASContextMetaData asContext)
+ {
+ assertNotNull(asContext);
+ String prefix = ejbName + "ASContext";
+ assertId(prefix, asContext);
+ assertDescriptions(prefix, asContext.getDescriptions());
+ assertEquals(IORASContextMetaData.AUTH_METHOD_USERNAME_PASSWORD, asContext.getAuthMethod());
+ assertEquals(prefix + "Realm", asContext.getRealm());
+ assertFalse(asContext.isRequired());
+ }
+
+/* protected void assertIORASContext(String ejbName, IorSecurityConfigMetaData.AsContext asContext)
+ {
+ assertNotNull(asContext);
+ String prefix = ejbName + "ASContext";
+ assertEquals(IORASContextMetaData.AUTH_METHOD_USERNAME_PASSWORD, asContext.getAuthMethod());
+ assertEquals(prefix + "Realm", asContext.getRealm());
+ assertFalse(asContext.isRequired());
+ }
+*/
+ protected void assertIORSASContext(String ejbName, IORSASContextMetaData sasContext)
+ {
+ assertNotNull(sasContext);
+ String prefix = ejbName + "SASContext";
+ assertId(prefix, sasContext);
+ assertDescriptions(prefix, sasContext.getDescriptions());
+ assertEquals(IORSASContextMetaData.CALLER_PROPAGATION_NONE, sasContext.getCallerPropagation());
+ }
+
+/* protected void assertIORSASContext(String ejbName, IorSecurityConfigMetaData.SasContext sasContext)
+ {
+ assertNotNull(sasContext);
+ assertEquals(IORSASContextMetaData.CALLER_PROPAGATION_NONE, sasContext.getCallerPropagation());
+ }
+*/
+ protected void assertIgnoreDependency(String ejbName, IgnoreDependencyMetaData ignoreDependency)
+ {
+ assertNotNull(ejbName, ignoreDependency);
+ String prefix = ejbName + "IgnoreDependency";
+ assertId(prefix, ignoreDependency);
+ assertDescriptions(prefix, ignoreDependency.getDescriptions());
+ assertResourceInjectionTargets(prefix, 2, ignoreDependency.getInjectionTargets());
+ }
+
+ protected void assertRemoteBinding(String ejbName, RemoteBindingMetaData remoteBinding)
+ {
+ assertNotNull(ejbName, remoteBinding);
+ String prefix = ejbName + "RemoteBinding";
+ assertId(prefix, remoteBinding);
+ assertDescriptions(prefix, remoteBinding.getDescriptions());
+ assertEquals(prefix + "JndiName", remoteBinding.getJndiName());
+ assertEquals(prefix + "ClientBindUrl", remoteBinding.getClientBindUrl());
+ assertEquals(prefix + "InterceptorStack", remoteBinding.getInterceptorStack());
+ assertEquals(prefix + "ProxyFactory", remoteBinding.getProxyFactory());
+ }
+
+ protected void assertMethodAttributes(String ejbName, MethodAttributesMetaData methodAttributes)
+ {
+ assertNotNull(ejbName, methodAttributes);
+ assertEquals(2, methodAttributes.size());
+ String prefix = ejbName + "MethodAttributes";
+ assertId(prefix, methodAttributes);
+ int count = 1;
+ for (MethodAttributeMetaData methodAttribute : methodAttributes)
+ {
+ if (count++ == 1)
+ {
+ assertEquals("get*", methodAttribute.getMethodName());
+ assertTrue(methodAttribute.isReadOnly());
+ assertTrue(methodAttribute.isIdempotent());
+ assertEquals(5000, methodAttribute.getTransactionTimeout());
+ }
+ else
+ {
+ assertEquals("*", methodAttribute.getMethodName());
+ assertFalse(methodAttribute.isReadOnly());
+ assertFalse(methodAttribute.isIdempotent());
+ assertEquals(0, methodAttribute.getTransactionTimeout());
+ }
+ }
+ }
+
+/* protected void assertMethodAttributes(String ejbName, BeanMetaData bean)
+ {
+ assertDefaultMethodAttributes(ejbName, bean);
+ }
+*/
+/* protected void assertDefaultMethodAttributes(String ejbName, BeanMetaData bean)
+ {
+ assertFalse(bean.isMethodReadOnly("getSomething"));
+ assertEquals(0, bean.getTransactionTimeout("getSomething"));
+ }
+*/
+ private void assertEmptyIterator(Iterator i)
+ {
+ if (i != null && i.hasNext())
+ throw new AssertionFailedError("The iterator should be empty: " + i);
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/test/ejb/EJBTestSuite.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/test/ejb/EJBTestSuite.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/test/ejb/EJBTestSuite.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,51 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2005, JBoss Inc., 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.ejb;
+
+import org.jboss.test.ejb.metadata.test.EJBMetaDataTestSuite;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+import junit.textui.TestRunner;
+
+/**
+ * EJB Test Suite.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.8 $
+ */
+public class EJBTestSuite extends TestSuite
+{
+ public static void main(String[] args)
+ {
+ TestRunner.run(suite());
+ }
+
+ public static Test suite()
+ {
+ TestSuite suite = new TestSuite("EJB Tests");
+
+ suite.addTest(EJBMetaDataTestSuite.suite());
+
+ return suite;
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/test/ejb/metadata/test/EJBMetaDataTestSuite.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/test/ejb/metadata/test/EJBMetaDataTestSuite.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/test/ejb/metadata/test/EJBMetaDataTestSuite.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,53 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2005, JBoss Inc., 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.ejb.metadata.test;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+import junit.textui.TestRunner;
+
+/**
+ * EJB Metadata Test Suite.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.8 $
+ */
+public class EJBMetaDataTestSuite extends TestSuite
+{
+ public static void main(String[] args)
+ {
+ TestRunner.run(suite());
+ }
+
+ public static Test suite()
+ {
+ TestSuite suite = new TestSuite("EJB Metadata Tests");
+
+ suite.addTest(EjbJar3xUnitTestCase.suite());
+ suite.addTest(EjbJar21UnitTestCase.suite());
+ suite.addTest(EjbJar3xEverythingUnitTestCase.suite());
+ suite.addTest(EjbJar21EverythingUnitTestCase.suite());
+ suite.addTest(JBoss5xEverythingUnitTestCase.suite());
+
+ return suite;
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/test/ejb/metadata/test/EjbJar21EverythingUnitTestCase.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/test/ejb/metadata/test/EjbJar21EverythingUnitTestCase.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/test/ejb/metadata/test/EjbJar21EverythingUnitTestCase.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,257 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.test;
+
+import java.math.BigDecimal;
+
+import junit.framework.Test;
+
+import org.jboss.ejb.metadata.spec.CMPFieldMetaData;
+import org.jboss.ejb.metadata.spec.CMPFieldsMetaData;
+import org.jboss.ejb.metadata.spec.EjbJar21MetaData;
+import org.jboss.ejb.metadata.spec.EjbJar2xMetaData;
+import org.jboss.ejb.metadata.spec.EjbJarMetaData;
+import org.jboss.ejb.metadata.spec.EnterpriseBeansMetaData;
+import org.jboss.ejb.metadata.spec.EntityBeanMetaData;
+import org.jboss.ejb.metadata.spec.MessageDrivenBeanMetaData;
+import org.jboss.ejb.metadata.spec.PersistenceType;
+import org.jboss.ejb.metadata.spec.QueriesMetaData;
+import org.jboss.ejb.metadata.spec.QueryMetaData;
+import org.jboss.ejb.metadata.spec.QueryMethodMetaData;
+import org.jboss.ejb.metadata.spec.ResultTypeMapping;
+import org.jboss.ejb.metadata.spec.SessionBeanMetaData;
+import org.jboss.ejb.metadata.spec.SessionType;
+import org.jboss.ejb.metadata.spec.TransactionType;
+import org.jboss.javaee.metadata.spec.LifecycleCallbacksMetaData;
+import org.jboss.javaee.metadata.spec.PersistenceContextReferencesMetaData;
+import org.jboss.javaee.metadata.spec.PersistenceUnitReferencesMetaData;
+import org.jboss.javaee.metadata.spec.ResourceInjectionMetaData;
+import org.jboss.test.ejb.AbstractEJBEverythingTest;
+import org.jboss.xb.binding.sunday.unmarshalling.SchemaBindingResolver;
+
+/**
+ * EjbJar2xUnitTestCase.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public class EjbJar21EverythingUnitTestCase extends AbstractEJBEverythingTest
+{
+ public static Test suite()
+ {
+ return suite(EjbJar21EverythingUnitTestCase.class);
+ }
+
+ public static SchemaBindingResolver initResolver()
+ {
+ return schemaResolverForClass(EjbJar21MetaData.class);
+ //return AbstractJavaEEMetaDataTest.initResolverJ2EE(EjbJar21MetaData.class);
+ }
+
+ public EjbJar21EverythingUnitTestCase(String name)
+ {
+ super(name);
+ }
+
+ protected EjbJar2xMetaData unmarshal() throws Exception
+ {
+ return unmarshal(EjbJar21MetaData.class);
+ }
+
+ public void testEverything() throws Exception
+ {
+ //enableTrace("org.jboss.xb");
+ enableTrace("org.jboss.xb.builder");
+ EjbJar2xMetaData ejbJarMetaData = unmarshal();
+ //ApplicationMetaData applicationMetaData = new ApplicationMetaData(ejbJarMetaData);
+ assertVersion(ejbJarMetaData);
+ //assertVersion(applicationMetaData);
+ assertId("ejb-jar", ejbJarMetaData);
+ assertEquals("ejb-jar-id", ejbJarMetaData.getId());
+ assertEjbClientJar(ejbJarMetaData);
+ assertDescriptionGroup("ejb-jar", ejbJarMetaData.getDescriptionGroup());
+ assertEnterpriseBeans(ejbJarMetaData);
+ //assertEnterpriseBeans(applicationMetaData);
+ assertRelationships(ejbJarMetaData);
+ //assertRelationships(applicationMetaData);
+ assertAssemblyDescriptor(ejbJarMetaData);
+ //assertAssemblyDescriptor(applicationMetaData);
+ }
+
+ private void assertVersion(EjbJar2xMetaData ejbJar2xMetaData)
+ {
+ assertEquals(new BigDecimal("2.1"), ejbJar2xMetaData.getVersion());
+ assertFalse(ejbJar2xMetaData.isEJB1x());
+ assertTrue(ejbJar2xMetaData.isEJB2x());
+ assertTrue(ejbJar2xMetaData.isEJB21());
+ assertFalse(ejbJar2xMetaData.isEJB3x());
+ }
+
+/* private void assertVersion(ApplicationMetaData applicationMetadata)
+ {
+ assertFalse(applicationMetadata.isEJB1x());
+ assertTrue(applicationMetadata.isEJB2x());
+ assertTrue(applicationMetadata.isEJB21());
+ assertFalse(applicationMetadata.isEJB3x());
+ }
+*/
+ protected SessionBeanMetaData assertFullSession(String ejbName, EnterpriseBeansMetaData enterpriseBeansMetaData)
+ {
+ SessionBeanMetaData session = assertSession(ejbName, enterpriseBeansMetaData);
+ assertId(ejbName, session);
+ assertClass(ejbName, "Home", session.getHome());
+ assertClass(ejbName, "Remote", session.getRemote());
+ assertClass(ejbName, "LocalHome", session.getLocalHome());
+ assertClass(ejbName, "Local", session.getLocal());
+ assertClass(ejbName, "ServiceEndpoint", session.getServiceEndpoint());
+ assertClass(ejbName, "EjbClass", session.getEjbClass());
+ assertEquals(SessionType.Stateless, session.getSessionType());
+ assertEquals(TransactionType.Container, session.getTransactionType());
+ assertEnvironment(ejbName, session.getJndiEnvironmentRefsGroup(), true);
+ assertContainerTransactions(ejbName, 6, 6, session.getContainerTransactions());
+ assertMethodPermissions(ejbName, ejbName + "MethodPermission", 3, 3, session.getMethodPermissions());
+ assertExcludeList(ejbName, 5, 5, session.getExcludeList());
+ assertSecurityRoleRefs(ejbName, 2, session.getSecurityRoleRefs());
+ assertSecurityIdentity(ejbName, "SecurityIdentity", session.getSecurityIdentity(), true);
+
+ return session;
+ }
+
+ protected EntityBeanMetaData assertFullEntity(String ejbName, EnterpriseBeansMetaData enterpriseBeansMetaData)
+ {
+ EntityBeanMetaData entity = assertEntity(ejbName, enterpriseBeansMetaData);
+ assertId(ejbName, entity);
+ assertClass(ejbName, "Home", entity.getHome());
+ assertClass(ejbName, "Remote", entity.getRemote());
+ assertClass(ejbName, "LocalHome", entity.getLocalHome());
+ assertClass(ejbName, "Local", entity.getLocal());
+ assertClass(ejbName, "EjbClass", entity.getEjbClass());
+ assertEquals(PersistenceType.Container, entity.getPersistenceType());
+ assertEquals(ejbName + "PrimKeyClass", entity.getPrimKeyClass());
+ assertTrue(entity.isReentrant());
+ assertEquals("2.x", entity.getCmpVersion());
+ assertFalse(entity.isCMP1x());
+ assertEquals(ejbName + "AbstractSchemaName", entity.getAbstractSchemaName());
+ assertCmpFields(ejbName, 2, entity.getCmpFields());
+ assertEquals(ejbName + "PrimKeyField", entity.getPrimKeyField());
+ assertEnvironment(ejbName, entity.getJndiEnvironmentRefsGroup(), true);
+ assertContainerTransactions(ejbName, 6, 6, entity.getContainerTransactions());
+ assertMethodPermissions(ejbName, ejbName + "MethodPermission", 3, 3, entity.getMethodPermissions());
+ assertExcludeList(ejbName, 5, 5, entity.getExcludeList());
+ assertSecurityRoleRefs(ejbName, 2, entity.getSecurityRoleRefs());
+ assertSecurityIdentity(ejbName, "SecurityIdentity", entity.getSecurityIdentity(), true);
+ assertQueries(ejbName, 2, entity.getQueries());
+
+ return entity;
+ }
+
+ private void assertCmpFields(String ejbName, int size, CMPFieldsMetaData cmpFieldsMetaData)
+ {
+ assertNotNull(cmpFieldsMetaData);
+ assertEquals(size, cmpFieldsMetaData.size());
+ int count = 1;
+ for (CMPFieldMetaData cmpField : cmpFieldsMetaData)
+ {
+ assertId(ejbName + "CmpField" + count, cmpField);
+ assertEquals(ejbName + "CmpField" + count, cmpField.getFieldName());
+ ++count;
+ }
+ }
+
+ private void assertQueries(String ejbName, int size, QueriesMetaData queriesMetaData)
+ {
+ assertNotNull(queriesMetaData);
+ assertEquals(size, queriesMetaData.size());
+ int count = 1;
+ for (QueryMetaData query : queriesMetaData)
+ {
+ assertId(ejbName + "Query" + count, query);
+ assertQueryMethod(ejbName + "Query" + count, 2, query.getQueryMethod());
+ if (count == 1)
+ assertEquals(ResultTypeMapping.Local, query.getResultTypeMapping());
+ else
+ assertEquals(ResultTypeMapping.Remote, query.getResultTypeMapping());
+ assertEquals(ejbName + "Query" + count + "EjbQL", query.getEjbQL());
+ ++count;
+ }
+ }
+
+ private void assertQueryMethod(String ejbName, int size, QueryMethodMetaData queryMethodMetaData)
+ {
+ assertNotNull(queryMethodMetaData);
+ assertId(ejbName + "QueryMethod", queryMethodMetaData);
+ assertEquals(ejbName + "QueryMethod", queryMethodMetaData.getMethodName());
+ if (size > 0)
+ assertMethodParams(ejbName + "QueryMethod", size, queryMethodMetaData.getMethodParams());
+ }
+
+ protected MessageDrivenBeanMetaData assertFullMDB(String ejbName, EnterpriseBeansMetaData enterpriseBeansMetaData)
+ {
+ MessageDrivenBeanMetaData mdb = assertMDB(ejbName, enterpriseBeansMetaData);
+ assertId(ejbName, mdb);
+ assertEquals(ejbName + "MessagingType", mdb.getMessagingType());
+ assertEquals(TransactionType.Container, mdb.getTransactionType());
+ assertEquals(ejbName + "MessageDestinationType", mdb.getMessageDestinationType());
+ assertEquals(ejbName + "MessageDestinationLink", mdb.getMessageDestinationLink());
+ assertActivationConfig(ejbName, mdb.getActivationConfig());
+ assertEnvironment(ejbName, mdb.getJndiEnvironmentRefsGroup(), true);
+ assertContainerTransactions(ejbName, 6, 6, mdb.getContainerTransactions());
+ assertMethodPermissions(ejbName, ejbName + "MethodPermission", 3, 3, mdb.getMethodPermissions());
+ assertExcludeList(ejbName, 5, 5, mdb.getExcludeList());
+ assertSecurityIdentity(ejbName, "SecurityIdentity", mdb.getSecurityIdentity(), true);
+
+ return mdb;
+ }
+
+ private void assertEjbClientJar(EjbJarMetaData ejbJarMetaData)
+ {
+ assertEquals("some/path/client.jar", ejbJarMetaData.getEjbClientJar());
+ }
+
+ protected void assertPersistenceContextRefs(String prefix, int size, PersistenceContextReferencesMetaData persistenceContextReferencesMetaData)
+ {
+ assertNull(persistenceContextReferencesMetaData);
+ }
+
+ protected void assertPersistenceUnitRefs(String prefix, int size, PersistenceUnitReferencesMetaData persistenceUnitReferencesMetaData)
+ {
+ assertNull(persistenceUnitReferencesMetaData);
+ }
+
+ protected void assertLifecycleCallbacks(String ejbName, String type, int size, LifecycleCallbacksMetaData lifecycleCallbacksMetaData)
+ {
+ assertNull(lifecycleCallbacksMetaData);
+ }
+
+ protected void assertResourceGroup(String prefix, ResourceInjectionMetaData resourceInjectionMetaData, boolean full, boolean first)
+ {
+ return;
+ }
+
+ protected void assertJndiName(String prefix, boolean full, String jndiName)
+ {
+ if (full)
+ assertNull(jndiName);
+ else
+ assertEquals(prefix + "JndiName", jndiName);
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/test/ejb/metadata/test/EjbJar21UnitTestCase.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/test/ejb/metadata/test/EjbJar21UnitTestCase.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/test/ejb/metadata/test/EjbJar21UnitTestCase.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,77 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.test;
+
+import java.math.BigDecimal;
+
+import junit.framework.Test;
+
+import org.jboss.ejb.metadata.spec.EjbJar21MetaData;
+import org.jboss.ejb.metadata.spec.EjbJar2xMetaData;
+//import org.jboss.metadata.ApplicationMetaData;
+import org.jboss.test.javaee.metadata.AbstractJavaEEMetaDataTest;
+import org.jboss.xb.binding.sunday.unmarshalling.SchemaBindingResolver;
+
+/**
+ * EjbJarUnitTestCase.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public class EjbJar21UnitTestCase extends AbstractJavaEEMetaDataTest
+{
+ public static Test suite()
+ {
+ return suite(EjbJar21UnitTestCase.class);
+ }
+
+ public static SchemaBindingResolver initResolver()
+ {
+ return AbstractJavaEEMetaDataTest.initResolverJ2EE(EjbJar21MetaData.class);
+ }
+
+ public EjbJar21UnitTestCase(String name)
+ {
+ super(name);
+ }
+
+ protected EjbJar21MetaData unmarshal() throws Exception
+ {
+ return unmarshal(EjbJar21MetaData.class);
+ }
+
+ public void testVersion() throws Exception
+ {
+ EjbJar2xMetaData result = unmarshal();
+ assertEquals(new BigDecimal("2.1"), result.getVersion());
+ assertFalse(result.isEJB1x());
+ assertTrue(result.isEJB2x());
+ assertTrue(result.isEJB21());
+ assertFalse(result.isEJB3x());
+
+/* ApplicationMetaData old = new ApplicationMetaData(result);
+ assertFalse(old.isEJB1x());
+ assertTrue(old.isEJB2x());
+ assertTrue(old.isEJB21());
+ assertFalse(old.isEJB3x());
+*/ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/test/ejb/metadata/test/EjbJar3xEverythingUnitTestCase.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/test/ejb/metadata/test/EjbJar3xEverythingUnitTestCase.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/test/ejb/metadata/test/EjbJar3xEverythingUnitTestCase.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,432 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.test;
+
+import java.util.LinkedHashSet;
+
+import junit.framework.Test;
+
+import org.jboss.ejb.metadata.spec.ApplicationExceptionMetaData;
+import org.jboss.ejb.metadata.spec.ApplicationExceptionsMetaData;
+import org.jboss.ejb.metadata.spec.AroundInvokeMetaData;
+import org.jboss.ejb.metadata.spec.AroundInvokesMetaData;
+import org.jboss.ejb.metadata.spec.AssemblyDescriptorMetaData;
+import org.jboss.ejb.metadata.spec.CMPFieldMetaData;
+import org.jboss.ejb.metadata.spec.CMPFieldsMetaData;
+import org.jboss.ejb.metadata.spec.EjbJar30MetaData;
+import org.jboss.ejb.metadata.spec.EjbJar3xMetaData;
+import org.jboss.ejb.metadata.spec.EjbJarMetaData;
+import org.jboss.ejb.metadata.spec.EnterpriseBeansMetaData;
+import org.jboss.ejb.metadata.spec.EntityBeanMetaData;
+import org.jboss.ejb.metadata.spec.InitMethodMetaData;
+import org.jboss.ejb.metadata.spec.InitMethodsMetaData;
+import org.jboss.ejb.metadata.spec.InterceptorBindingMetaData;
+import org.jboss.ejb.metadata.spec.InterceptorBindingsMetaData;
+import org.jboss.ejb.metadata.spec.InterceptorClassesMetaData;
+import org.jboss.ejb.metadata.spec.InterceptorMetaData;
+import org.jboss.ejb.metadata.spec.InterceptorOrderMetaData;
+import org.jboss.ejb.metadata.spec.InterceptorsMetaData;
+import org.jboss.ejb.metadata.spec.MessageDrivenBeanMetaData;
+import org.jboss.ejb.metadata.spec.NamedMethodMetaData;
+import org.jboss.ejb.metadata.spec.PersistenceType;
+import org.jboss.ejb.metadata.spec.QueriesMetaData;
+import org.jboss.ejb.metadata.spec.QueryMetaData;
+import org.jboss.ejb.metadata.spec.QueryMethodMetaData;
+import org.jboss.ejb.metadata.spec.RemoveMethodMetaData;
+import org.jboss.ejb.metadata.spec.RemoveMethodsMetaData;
+import org.jboss.ejb.metadata.spec.ResultTypeMapping;
+import org.jboss.ejb.metadata.spec.SessionBeanMetaData;
+import org.jboss.ejb.metadata.spec.SessionType;
+import org.jboss.ejb.metadata.spec.TransactionType;
+import org.jboss.javaee.metadata.spec.MessageDestinationMetaData;
+//import org.jboss.metadata.ApplicationMetaData;
+import org.jboss.test.ejb.AbstractEJBEverythingTest;
+import org.jboss.xb.binding.sunday.unmarshalling.SchemaBindingResolver;
+
+/**
+ * EjbJar3xUnitTestCase.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public class EjbJar3xEverythingUnitTestCase extends AbstractEJBEverythingTest
+{
+ public static Test suite()
+ {
+ return suite(EjbJar3xEverythingUnitTestCase.class);
+ }
+
+ public static SchemaBindingResolver initResolver()
+ {
+ return initResolverJavaEE(EjbJar30MetaData.class);
+ }
+
+ public EjbJar3xEverythingUnitTestCase(String name)
+ {
+ super(name);
+ }
+
+ protected EjbJar3xMetaData unmarshal() throws Exception
+ {
+ return unmarshal(EjbJar30MetaData.class);
+ }
+
+ public void testEverything() throws Exception
+ {
+ //enableTrace("org.jboss.xb");
+ //enableTrace("org.jboss.xb.binding.builder");
+ EjbJar3xMetaData ejbJarMetaData = unmarshal();
+ //ApplicationMetaData applicationMetaData = new ApplicationMetaData(ejbJarMetaData);
+ assertVersion(ejbJarMetaData);
+ //assertVersion(applicationMetaData);
+ assertMetaDataComplete(ejbJarMetaData);
+ assertId("ejb-jar", ejbJarMetaData);
+ assertEjbClientJar(ejbJarMetaData);
+ assertDescriptionGroup("ejb-jar", ejbJarMetaData.getDescriptionGroup());
+ assertEnterpriseBeans(ejbJarMetaData);
+ //assertEnterpriseBeans(applicationMetaData);
+ assertInterceptors(ejbJarMetaData);
+ assertRelationships(ejbJarMetaData);
+ //assertRelationships(applicationMetaData);
+ assertAssemblyDescriptor(ejbJarMetaData);
+ //assertAssemblyDescriptor(applicationMetaData);
+ }
+
+ private void assertVersion(EjbJar3xMetaData ejbJar3xMetaData)
+ {
+ assertEquals("3.0", ejbJar3xMetaData.getVersion());
+ assertFalse(ejbJar3xMetaData.isEJB1x());
+ assertFalse(ejbJar3xMetaData.isEJB2x());
+ assertFalse(ejbJar3xMetaData.isEJB21());
+ assertTrue(ejbJar3xMetaData.isEJB3x());
+ }
+
+/* private void assertVersion(ApplicationMetaData applicationMetadata)
+ {
+ assertFalse(applicationMetadata.isEJB1x());
+ assertFalse(applicationMetadata.isEJB2x());
+ assertFalse(applicationMetadata.isEJB21());
+ assertTrue(applicationMetadata.isEJB3x());
+ }
+*/
+ private void assertMetaDataComplete(EjbJar3xMetaData ejbJar3xMetaData)
+ {
+ assertEquals(true, ejbJar3xMetaData.isMetadataComplete());
+ }
+
+ protected SessionBeanMetaData assertFullSession(String ejbName, EnterpriseBeansMetaData enterpriseBeansMetaData)
+ {
+ SessionBeanMetaData session = assertSession(ejbName, enterpriseBeansMetaData);
+ assertId(ejbName, session);
+ assertMappedName(ejbName, session.getMappedName());
+ assertClass(ejbName, "Home", session.getHome());
+ assertClass(ejbName, "Remote", session.getRemote());
+ assertClass(ejbName, "LocalHome", session.getLocalHome());
+ assertClass(ejbName, "Local", session.getLocal());
+ assertClasses(ejbName, "BusinessLocal", 2, session.getBusinessLocals());
+ assertClasses(ejbName, "BusinessRemote", 2, session.getBusinessRemotes());
+ assertClass(ejbName, "ServiceEndpoint", session.getServiceEndpoint());
+ assertClass(ejbName, "EjbClass", session.getEjbClass());
+ assertEquals(SessionType.Stateless, session.getSessionType());
+ assertNamedMethod(ejbName + "TimeoutMethod", 2, session.getTimeoutMethod());
+ assertInitMethods(ejbName, 2, session.getInitMethods());
+ assertRemoveMethods(ejbName, 3, session.getRemoveMethods());
+ assertEquals(TransactionType.Container, session.getTransactionType());
+ assertAroundInvokes(ejbName, 2, session.getAroundInvokes());
+ assertLifecycleCallbacks(ejbName, "PostActivate", 2, session.getPostActivates());
+ assertLifecycleCallbacks(ejbName, "PrePassivate", 2, session.getPrePassivates());
+ assertEnvironment(ejbName, session.getJndiEnvironmentRefsGroup(), true);
+ assertContainerTransactions(ejbName, 6, 6, session.getContainerTransactions());
+ assertMethodPermissions(ejbName, ejbName + "MethodPermission", 3, 3, session.getMethodPermissions());
+ assertExcludeList(ejbName, 5, 5, session.getExcludeList());
+ assertSecurityRoleRefs(ejbName, 2, session.getSecurityRoleRefs());
+ assertSecurityIdentity(ejbName, "SecurityIdentity", session.getSecurityIdentity(), true);
+
+ return session;
+ }
+
+ private void assertInitMethods(String ejbName, int size, InitMethodsMetaData initMethodsMetaData)
+ {
+ assertNotNull(initMethodsMetaData);
+ assertEquals(size, initMethodsMetaData.size());
+ int count = 1;
+ for (InitMethodMetaData initMethod : initMethodsMetaData)
+ {
+ assertId(ejbName + "InitMethod" + count, initMethod);
+ assertNamedMethod(ejbName + "InitCreateMethod" + count, 0, initMethod.getCreateMethod());
+ assertNamedMethod(ejbName + "InitBeanMethod" + count, 0, initMethod.getBeanMethod());
+ ++count;
+ }
+ }
+
+ private void assertRemoveMethods(String ejbName, int size, RemoveMethodsMetaData removeMethodsMetaData)
+ {
+ assertNotNull(removeMethodsMetaData);
+ assertEquals(size, removeMethodsMetaData.size());
+ int count = 1;
+ for (RemoveMethodMetaData removeMethod : removeMethodsMetaData)
+ {
+ assertId(ejbName + "RemoveMethod" + count, removeMethod);
+ assertNamedMethod(ejbName + "RemoveBeanMethod" + count, 0, removeMethod.getBeanMethod());
+ if (count == 1)
+ assertTrue(removeMethod.isRetainIfException());
+ else
+ assertFalse(removeMethod.isRetainIfException());
+ ++count;
+ }
+ }
+
+ protected EntityBeanMetaData assertFullEntity(String ejbName, EnterpriseBeansMetaData enterpriseBeansMetaData)
+ {
+ EntityBeanMetaData entity = assertEntity(ejbName, enterpriseBeansMetaData);
+ assertId(ejbName, entity);
+ assertMappedName(ejbName, entity.getMappedName());
+ assertClass(ejbName, "Home", entity.getHome());
+ assertClass(ejbName, "Remote", entity.getRemote());
+ assertClass(ejbName, "LocalHome", entity.getLocalHome());
+ assertClass(ejbName, "Local", entity.getLocal());
+ assertClass(ejbName, "EjbClass", entity.getEjbClass());
+ assertEquals(PersistenceType.Container, entity.getPersistenceType());
+ assertEquals(ejbName + "PrimKeyClass", entity.getPrimKeyClass());
+ assertTrue(entity.isReentrant());
+ assertEquals("2.x", entity.getCmpVersion());
+ assertFalse(entity.isCMP1x());
+ assertEquals(ejbName + "AbstractSchemaName", entity.getAbstractSchemaName());
+ assertCmpFields(ejbName, 2, entity.getCmpFields());
+ assertEquals(ejbName + "PrimKeyField", entity.getPrimKeyField());
+ assertEnvironment(ejbName, entity.getJndiEnvironmentRefsGroup(), true);
+ assertContainerTransactions(ejbName, 6, 6, entity.getContainerTransactions());
+ assertMethodPermissions(ejbName, ejbName + "MethodPermission", 3, 3, entity.getMethodPermissions());
+ assertExcludeList(ejbName, 5, 5, entity.getExcludeList());
+ assertSecurityRoleRefs(ejbName, 2, entity.getSecurityRoleRefs());
+ assertSecurityIdentity(ejbName, "SecurityIdentity", entity.getSecurityIdentity(), true);
+ assertQueries(ejbName, 2, entity.getQueries());
+
+ return entity;
+ }
+
+ private void assertCmpFields(String ejbName, int size, CMPFieldsMetaData cmpFieldsMetaData)
+ {
+ assertNotNull(cmpFieldsMetaData);
+ assertEquals(size, cmpFieldsMetaData.size());
+ int count = 1;
+ for (CMPFieldMetaData cmpField : cmpFieldsMetaData)
+ {
+ assertId(ejbName + "CmpField" + count, cmpField);
+ assertEquals(ejbName + "CmpField" + count, cmpField.getFieldName());
+ ++count;
+ }
+ }
+
+ private void assertQueries(String ejbName, int size, QueriesMetaData queriesMetaData)
+ {
+ assertNotNull(queriesMetaData);
+ assertEquals(size, queriesMetaData.size());
+ int count = 1;
+ for (QueryMetaData query : queriesMetaData)
+ {
+ assertId(ejbName + "Query" + count, query);
+ assertQueryMethod(ejbName + "Query" + count, 2, query.getQueryMethod());
+ if (count == 1)
+ assertEquals(ResultTypeMapping.Local, query.getResultTypeMapping());
+ else
+ assertEquals(ResultTypeMapping.Remote, query.getResultTypeMapping());
+ assertEquals(ejbName + "Query" + count + "EjbQL", query.getEjbQL());
+ ++count;
+ }
+ }
+
+ private void assertQueryMethod(String ejbName, int size, QueryMethodMetaData queryMethodMetaData)
+ {
+ assertNotNull(queryMethodMetaData);
+ assertId(ejbName + "QueryMethod", queryMethodMetaData);
+ assertEquals(ejbName + "QueryMethod", queryMethodMetaData.getMethodName());
+ if (size > 0)
+ assertMethodParams(ejbName + "QueryMethod", size, queryMethodMetaData.getMethodParams());
+ }
+
+ protected MessageDrivenBeanMetaData assertFullMDB(String ejbName, EnterpriseBeansMetaData enterpriseBeansMetaData)
+ {
+ MessageDrivenBeanMetaData mdb = assertMDB(ejbName, enterpriseBeansMetaData);
+ assertId(ejbName, mdb);
+ assertMappedName(ejbName, mdb.getMappedName());
+ assertEquals(ejbName + "MessagingType", mdb.getMessagingType());
+ assertNamedMethod(ejbName + "TimeoutMethod", 2, mdb.getTimeoutMethod());
+ assertEquals(TransactionType.Container, mdb.getTransactionType());
+ assertEquals(ejbName + "MessageDestinationType", mdb.getMessageDestinationType());
+ assertEquals(ejbName + "MessageDestinationLink", mdb.getMessageDestinationLink());
+ assertActivationConfig(ejbName, mdb.getActivationConfig());
+ assertAroundInvokes(ejbName, 2, mdb.getAroundInvokes());
+ assertEnvironment(ejbName, mdb.getJndiEnvironmentRefsGroup(), true);
+ assertContainerTransactions(ejbName, 6, 6, mdb.getContainerTransactions());
+ assertMethodPermissions(ejbName, ejbName + "MethodPermission", 3, 3, mdb.getMethodPermissions());
+ assertExcludeList(ejbName, 5, 5, mdb.getExcludeList());
+ assertSecurityIdentity(ejbName, "SecurityIdentity", mdb.getSecurityIdentity(), true);
+
+ return mdb;
+ }
+
+ private void assertInterceptors(EjbJar3xMetaData ejbJarMetaData)
+ {
+ InterceptorsMetaData interceptorsMetaData = ejbJarMetaData.getInterceptors();
+ assertNotNull(interceptorsMetaData);
+ assertId("interceptors", interceptorsMetaData);
+ assertDescriptions("interceptors", interceptorsMetaData.getDescriptions());
+ assertEquals(2, interceptorsMetaData.size());
+ int count = 1;
+ for (InterceptorMetaData interceptor : interceptorsMetaData)
+ assertInterceptor("interceptor" + (count++), interceptor);
+ }
+
+ private void assertInterceptor(String prefix, InterceptorMetaData interceptorMetaData)
+ {
+ assertId(prefix, interceptorMetaData);
+ assertDescriptions(prefix, interceptorMetaData.getDescriptions());
+ assertEquals(prefix + "Class", interceptorMetaData.getInterceptorClass());
+ assertAroundInvokes(prefix, 2, interceptorMetaData.getAroundInvokes());
+ assertEnvironment(prefix, interceptorMetaData.getJndiEnvironmentRefsGroup(), true);
+ assertLifecycleCallbacks(prefix, "PostActivate", 2, interceptorMetaData.getPostActivates());
+ assertLifecycleCallbacks(prefix, "PrePassivate", 2, interceptorMetaData.getPrePassivates());
+ }
+
+ private AssemblyDescriptorMetaData assertAssemblyDescriptor(EjbJar3xMetaData ejbJarMetaData)
+ {
+ AssemblyDescriptorMetaData assemblyDescriptorMetaData = super.assertAssemblyDescriptor(ejbJarMetaData);
+ assertInterceptorBindings(2, assemblyDescriptorMetaData.getInterceptorBindings());
+ assertApplicationExceptions(2, assemblyDescriptorMetaData.getApplicationExceptions());
+ return assemblyDescriptorMetaData;
+ }
+
+ private void assertAroundInvokes(String ejbName, int size, AroundInvokesMetaData aroundInvokesMetaData)
+ {
+ assertNotNull(aroundInvokesMetaData);
+ assertEquals(size, aroundInvokesMetaData.size());
+ int count = 1;
+ for (AroundInvokeMetaData aroundInvoke : aroundInvokesMetaData)
+ {
+ assertEquals(ejbName + "AroundInvoke" + count + "Class", aroundInvoke.getClassName());
+ assertEquals(ejbName + "AroundInvoke" + count + "Method", aroundInvoke.getMethodName());
+ ++count;
+ }
+ }
+
+ private void assertEjbClientJar(EjbJarMetaData ejbJarMetaData)
+ {
+ assertEquals("some/path/client.jar", ejbJarMetaData.getEjbClientJar());
+ }
+
+ private void assertInterceptorBindings(int size, InterceptorBindingsMetaData interceptorBindingsMetaData)
+ {
+ assertNotNull(interceptorBindingsMetaData);
+ assertEquals(size, interceptorBindingsMetaData.size());
+ int count = 1;
+ for (InterceptorBindingMetaData interceptorBindingMetaData : interceptorBindingsMetaData)
+ {
+ assertId("interceptorBinding" + count, interceptorBindingMetaData);
+ assertDescriptions("interceptorBinding" + count, interceptorBindingMetaData.getDescriptions());
+ assertEquals("interceptorBinding" + count + "EjbName", interceptorBindingMetaData.getEjbName());
+ if (count == 1)
+ {
+ assertInterceptorClasses("interceptorBinding" + count, 2, interceptorBindingMetaData.getInterceptorClasses());
+ assertTrue(interceptorBindingMetaData.isExcludeDefaultInterceptors());
+ assertTrue(interceptorBindingMetaData.isExcludeClassInterceptors());
+ }
+ else
+ {
+ assertInterceptorOrder("interceptorBinding" + count, 2, interceptorBindingMetaData.getInterceptorOrder());
+ assertFalse(interceptorBindingMetaData.isExcludeDefaultInterceptors());
+ assertFalse(interceptorBindingMetaData.isExcludeClassInterceptors());
+ }
+ assertNamedMethod("interceptorBinding" + count + "Method", 2, interceptorBindingMetaData.getMethod());
+ ++count;
+ }
+ }
+
+ private void assertInterceptorClasses(String prefix, int size, InterceptorClassesMetaData interceptorClassesMetaData)
+ {
+ assertNotNull(interceptorClassesMetaData);
+ assertEquals(size, interceptorClassesMetaData.size());
+ int count = 1;
+ for (String interceptorClass : interceptorClassesMetaData)
+ {
+ assertEquals(prefix + "Class" + count, interceptorClass);
+ ++count;
+ }
+ }
+
+ private void assertInterceptorOrder(String prefix, int size, InterceptorOrderMetaData interceptorOrderMetaData)
+ {
+ assertNotNull(interceptorOrderMetaData);
+ assertId(prefix + "InterceptorOrder", interceptorOrderMetaData);
+ assertInterceptorClasses(prefix, size, interceptorOrderMetaData);
+ }
+
+ protected void assertMessageDestination(String prefix, MessageDestinationMetaData messageDestinationMetaData)
+ {
+ assertMessageDestination50(prefix, messageDestinationMetaData);
+ }
+
+/* protected void assertMessageDestination(String prefix, org.jboss.metadata.MessageDestinationMetaData messageDestinationMetaData)
+ {
+ assertMessageDestination50(prefix, messageDestinationMetaData);
+ }
+*/
+ private void assertApplicationExceptions(int size, ApplicationExceptionsMetaData applicationExceptionsMetaData)
+ {
+ assertNotNull(applicationExceptionsMetaData);
+ assertEquals(size, applicationExceptionsMetaData.size());
+ int count = 1;
+ for (ApplicationExceptionMetaData applicationExceptionMetaData : applicationExceptionsMetaData)
+ {
+ assertId("applicationException" + count, applicationExceptionMetaData);
+ assertEquals("applicationException" + count + "Class", applicationExceptionMetaData.getExceptionClass());
+ if (count == 1)
+ assertTrue(applicationExceptionMetaData.isRollback());
+ else
+ assertFalse(applicationExceptionMetaData.isRollback());
+ ++count;
+ }
+ }
+
+ private void assertMappedName(String prefix, String mappedName)
+ {
+ assertEquals(prefix + "-mapped-name", mappedName);
+ }
+
+ private void assertClasses(String prefix, String type, int size, LinkedHashSet<String> classes)
+ {
+ assertNotNull(classes);
+ assertEquals(size, classes.size());
+ int count = 1;
+ for (String className : classes)
+ assertClass(prefix, type + count++, className);
+ }
+
+ private void assertNamedMethod(String prefix, int size, NamedMethodMetaData namedMethodMetaData)
+ {
+ assertNotNull(namedMethodMetaData);
+ assertId(prefix, namedMethodMetaData);
+ assertEquals(prefix, namedMethodMetaData.getMethodName());
+ if (size > 0)
+ assertMethodParams(prefix, size, namedMethodMetaData.getMethodParams());
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/test/ejb/metadata/test/EjbJar3xUnitTestCase.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/test/ejb/metadata/test/EjbJar3xUnitTestCase.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/test/ejb/metadata/test/EjbJar3xUnitTestCase.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,160 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.test;
+
+import java.util.Iterator;
+
+import junit.framework.Test;
+
+import org.jboss.ejb.metadata.spec.EjbJar30MetaData;
+import org.jboss.ejb.metadata.spec.EjbJar3xMetaData;
+import org.jboss.ejb.metadata.spec.EnterpriseBeanMetaData;
+import org.jboss.ejb.metadata.spec.EnterpriseBeansMetaData;
+import org.jboss.javaee.annotation.Description;
+import org.jboss.javaee.annotation.Descriptions;
+import org.jboss.javaee.annotation.DisplayName;
+import org.jboss.javaee.annotation.DisplayNames;
+import org.jboss.javaee.annotation.Icon;
+import org.jboss.javaee.annotation.Icons;
+import org.jboss.javaee.metadata.spec.DescriptionGroupMetaData;
+import org.jboss.javaee.metadata.spec.DescriptionImpl;
+import org.jboss.javaee.metadata.spec.DisplayNameImpl;
+import org.jboss.javaee.metadata.spec.IconImpl;
+//import org.jboss.metadata.ApplicationMetaData;
+//import org.jboss.metadata.BeanMetaData;
+import org.jboss.test.javaee.metadata.AbstractJavaEEMetaDataTest;
+import org.jboss.xb.binding.sunday.unmarshalling.SchemaBindingResolver;
+
+/**
+ * EjbJar3xUnitTestCase.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public class EjbJar3xUnitTestCase extends AbstractJavaEEMetaDataTest
+{
+ public static Test suite()
+ {
+ return suite(EjbJar3xUnitTestCase.class);
+ }
+
+ public static SchemaBindingResolver initResolver()
+ {
+ return AbstractJavaEEMetaDataTest.initResolverJavaEE(EjbJar30MetaData.class);
+ }
+
+ public EjbJar3xUnitTestCase(String name)
+ {
+ super(name);
+ }
+
+ protected EjbJar3xMetaData unmarshal() throws Exception
+ {
+ return unmarshal(EjbJar30MetaData.class);
+ }
+
+ public void testId() throws Exception
+ {
+ EjbJar3xMetaData result = unmarshal();
+ assertEquals("ejb-jar-test-id", result.getId());
+ }
+
+ public void testVersion() throws Exception
+ {
+ EjbJar3xMetaData result = unmarshal();
+ assertEquals("3.0", result.getVersion());
+ assertFalse(result.isEJB1x());
+ assertFalse(result.isEJB2x());
+ assertFalse(result.isEJB21());
+ assertTrue(result.isEJB3x());
+
+/* ApplicationMetaData old = new ApplicationMetaData(result);
+ assertFalse(old.isEJB1x());
+ assertFalse(old.isEJB2x());
+ assertFalse(old.isEJB21());
+ assertTrue(old.isEJB3x());
+*/ }
+
+ public void testDescriptionDefaultLanguage() throws Exception
+ {
+ EjbJar3xMetaData result = unmarshal();
+ DescriptionGroupMetaData group = result.getDescriptionGroup();
+ assertNotNull(group);
+ Descriptions descriptions = group.getDescriptions();
+ assertNotNull(descriptions);
+
+ DescriptionImpl hello = new DescriptionImpl();
+ hello.setDescription("Hello");
+ assertEquals(new Description[] { hello }, descriptions.value());
+ }
+
+ public void testDisplayNameDefaultLanguage() throws Exception
+ {
+ EjbJar3xMetaData result = unmarshal();
+ DescriptionGroupMetaData group = result.getDescriptionGroup();
+ assertNotNull(group);
+ DisplayNames displayNames = group.getDisplayNames();
+ assertNotNull(displayNames);
+
+ DisplayNameImpl hello = new DisplayNameImpl();
+ hello.setDisplayName("Hello");
+ assertEquals(new DisplayName[] { hello }, displayNames.value());
+ }
+
+ public void testIconDefaultLanguage() throws Exception
+ {
+ EjbJar3xMetaData result = unmarshal();
+ DescriptionGroupMetaData group = result.getDescriptionGroup();
+ assertNotNull(group);
+ Icons icons = group.getIcons();
+ assertNotNull(icons);
+
+ IconImpl icon = new IconImpl();
+ icon.setSmallIcon("small");
+ icon.setLargeIcon("large");
+ assertEquals(new Icon[] { icon }, icons.value());
+ }
+
+ public void testEjbClientJar() throws Exception
+ {
+ EjbJar3xMetaData result = unmarshal();
+ assertEquals("some/path/client.jar", result.getEjbClientJar());
+ }
+
+ public void testEnterpriseBeans() throws Exception
+ {
+ EjbJar3xMetaData result = unmarshal();
+ EnterpriseBeansMetaData beans = result.getEnterpriseBeans();
+ assertNotNull(beans);
+
+ assertEquals(1, beans.size());
+ EnterpriseBeanMetaData bean = beans.iterator().next();
+ assertEquals("TestBean", bean.getEjbName());
+
+/* ApplicationMetaData old = new ApplicationMetaData(result);
+ Iterator<BeanMetaData> iterator = old.getEnterpriseBeans();
+ assertTrue(iterator.hasNext());
+ BeanMetaData beanMetaData = iterator.next();
+ assertEquals("TestBean", beanMetaData.getEjbName());
+ assertFalse(iterator.hasNext());
+*/ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/test/ejb/metadata/test/JBoss5xEverythingUnitTestCase.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/test/ejb/metadata/test/JBoss5xEverythingUnitTestCase.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/test/ejb/metadata/test/JBoss5xEverythingUnitTestCase.java 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,1402 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2006, JBoss Inc., 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.ejb.metadata.test;
+
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Set;
+
+import junit.framework.Test;
+
+import org.jboss.ejb.metadata.jboss.CommitOption;
+import org.jboss.ejb.metadata.jboss.ContainerConfigurationMetaData;
+import org.jboss.ejb.metadata.jboss.ContainerConfigurationsMetaData;
+import org.jboss.ejb.metadata.jboss.InvokerBindingMetaData;
+import org.jboss.ejb.metadata.jboss.InvokerBindingsMetaData;
+import org.jboss.ejb.metadata.jboss.InvokerProxyBindingMetaData;
+import org.jboss.ejb.metadata.jboss.InvokerProxyBindingsMetaData;
+import org.jboss.ejb.metadata.jboss.JBoss50MetaData;
+import org.jboss.ejb.metadata.jboss.JBossAssemblyDescriptorMetaData;
+import org.jboss.ejb.metadata.jboss.JBossEnterpriseBeanMetaData;
+import org.jboss.ejb.metadata.jboss.JBossEnterpriseBeansMetaData;
+import org.jboss.ejb.metadata.jboss.JBossEntityBeanMetaData;
+import org.jboss.ejb.metadata.jboss.JBossMessageDrivenBeanMetaData;
+import org.jboss.ejb.metadata.jboss.JBossMetaData;
+import org.jboss.ejb.metadata.jboss.JBossSessionBeanMetaData;
+import org.jboss.ejb.metadata.jboss.LoaderRepositoryConfigMetaData;
+import org.jboss.ejb.metadata.jboss.LoaderRepositoryMetaData;
+import org.jboss.ejb.metadata.jboss.ResourceManagerMetaData;
+import org.jboss.ejb.metadata.jboss.ResourceManagersMetaData;
+import org.jboss.ejb.metadata.jboss.WebserviceDescriptionMetaData;
+import org.jboss.ejb.metadata.jboss.WebserviceDescriptionsMetaData;
+import org.jboss.ejb.metadata.jboss.WebservicesMetaData;
+import org.jboss.ejb.metadata.spec.AssemblyDescriptorMetaData;
+import org.jboss.ejb.metadata.spec.EjbJar30MetaData;
+import org.jboss.ejb.metadata.spec.EjbJarMetaData;
+import org.jboss.ejb.metadata.spec.EnterpriseBeanMetaData;
+import org.jboss.ejb.metadata.spec.EnterpriseBeansMetaData;
+import org.jboss.ejb.metadata.spec.EntityBeanMetaData;
+import org.jboss.ejb.metadata.spec.MessageDrivenBeanMetaData;
+import org.jboss.ejb.metadata.spec.SecurityIdentityMetaData;
+import org.jboss.ejb.metadata.spec.SessionBeanMetaData;
+import org.jboss.javaee.metadata.spec.EJBLocalReferencesMetaData;
+import org.jboss.javaee.metadata.spec.EJBReferencesMetaData;
+import org.jboss.javaee.metadata.spec.EnvironmentRefsGroupMetaData;
+import org.jboss.javaee.metadata.spec.MessageDestinationMetaData;
+import org.jboss.javaee.metadata.spec.MessageDestinationReferencesMetaData;
+import org.jboss.javaee.metadata.spec.MessageDestinationsMetaData;
+import org.jboss.javaee.metadata.spec.ResourceEnvironmentReferencesMetaData;
+import org.jboss.javaee.metadata.spec.ResourceInjectionMetaData;
+import org.jboss.javaee.metadata.spec.ResourceReferencesMetaData;
+import org.jboss.javaee.metadata.spec.SecurityRoleMetaData;
+//import org.jboss.metadata.ApplicationMetaData;
+//import org.jboss.metadata.BeanMetaData;
+//import org.jboss.metadata.ConfigurationMetaData;
+//import org.jboss.metadata.EntityMetaData;
+//import org.jboss.metadata.MessageDrivenMetaData;
+//import org.jboss.metadata.SessionMetaData;
+import org.jboss.test.ejb.AbstractEJBEverythingTest;
+import org.jboss.test.javaee.metadata.AbstractJavaEEMetaDataTest;
+import org.jboss.xb.binding.sunday.unmarshalling.SchemaBindingResolver;
+
+/**
+ * JBoss5xEverythingUnitTestCase.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision: 1.1 $
+ */
+public class JBoss5xEverythingUnitTestCase extends AbstractEJBEverythingTest
+{
+ public static Test suite()
+ {
+ return suite(JBoss5xEverythingUnitTestCase.class);
+ }
+
+ public static SchemaBindingResolver initResolver()
+ {
+ return AbstractJavaEEMetaDataTest.initResolverJavaEE(JBoss50MetaData.class);
+ }
+
+ public JBoss5xEverythingUnitTestCase(String name)
+ {
+ super(name);
+ }
+
+ protected JBoss50MetaData unmarshal() throws Exception
+ {
+ return unmarshal(JBoss50MetaData.class);
+ }
+
+ public void testEverything() throws Exception
+ {
+ //enableTrace("org.jboss.xb");
+ //enableTrace("org.jboss.xb.binding.builder");
+ JBoss50MetaData jbossMetaData = unmarshal();
+ assertVersion(jbossMetaData);
+ assertId("jboss", jbossMetaData);
+ assertDescriptionGroup("jboss", jbossMetaData.getDescriptionGroup());
+ assertLoaderRepository(jbossMetaData.getLoaderRepository());
+ assertEquals("jboss-jmx-name", jbossMetaData.getJmxName());
+ assertEquals("jboss-security-domain", jbossMetaData.getSecurityDomain());
+ assertFalse(jbossMetaData.isExcludeMissingMethods());
+ assertEquals("jboss-unauthenticated-principal", jbossMetaData.getUnauthenticatedPrincipal());
+ assertTrue(jbossMetaData.isExceptionOnRollback());
+ assertWebservices(jbossMetaData.getWebservices());
+ assertJBossEnterpriseBeans(jbossMetaData);
+ assertAssemblyDescriptor(jbossMetaData);
+ assertResourceManagers(jbossMetaData.getResourceManagers());
+ assertResourceManager("resourceManager1", true, jbossMetaData.getResourceManager("resourceManager1Name"));
+ assertResourceManager("resourceManager2", false, jbossMetaData.getResourceManager("resourceManager2Name"));
+ assertInvokerProxyBindings(jbossMetaData.getInvokerProxyBindings());
+ assertInvokerProxyBinding("invokerProxyBinding1", 1, jbossMetaData.getInvokerProxyBinding("invokerProxyBinding1Name"));
+ assertInvokerProxyBinding("invokerProxyBinding2", 2, jbossMetaData.getInvokerProxyBinding("invokerProxyBinding2Name"));
+ fixUpContainerConfigurations(jbossMetaData);
+ assertContainerConfigurations(jbossMetaData);
+
+ fixUpEjbJar(jbossMetaData);
+ //ApplicationMetaData application = new ApplicationMetaData(jbossMetaData);
+ //assertEquals("jboss-jmx-name", application.getJmxName());
+ //assertEquals("jboss-security-domain", application.getSecurityDomain());
+ //assertFalse(application.isExcludeMissingMethods());
+ //assertEquals("jboss-unauthenticated-principal", application.getUnauthenticatedPrincipal());
+ //assertTrue(application.getExceptionRollback());
+ //assertWebservices(application);
+ fixUpEnterpriseBeans(jbossMetaData);
+ //assertJBossEnterpriseBeans(application);
+ fixUpAssemblyDescriptor(jbossMetaData);
+ //assertAssemblyDescriptor(application);
+ //assertEquals("resourceManager1JndiName", application.getResourceByName("resourceManager1Name"));
+ //assertEquals("resourceManager2URL", application.getResourceByName("resourceManager2Name"));
+ //assertInvokerProxyBindings(application.getInvokerProxyBindings());
+ //assertInvokerProxyBinding("invokerProxyBinding1", application.getInvokerProxyBindingMetaDataByName("invokerProxyBinding1Name"));
+ //assertInvokerProxyBinding("invokerProxyBinding2", application.getInvokerProxyBindingMetaDataByName("invokerProxyBinding2Name"));
+ //assertContainerConfigurations(application);
+ }
+
+ private void fixUpEjbJar(JBossMetaData jbossMetaData)
+ {
+ EjbJarMetaData ejbJarMetaData = jbossMetaData.getOverridenMetaData();
+ if (ejbJarMetaData == null)
+ {
+ ejbJarMetaData = new EjbJar30MetaData();
+ jbossMetaData.setOverridenMetaData(ejbJarMetaData);
+ }
+ }
+
+ private void assertVersion(JBoss50MetaData jbossMetaData)
+ {
+ assertEquals("5.0", jbossMetaData.getVersion());
+ }
+
+ private void assertLoaderRepository(LoaderRepositoryMetaData loaderRepositoryMetaData)
+ {
+ assertNotNull(loaderRepositoryMetaData);
+ assertId("loaderRepository", loaderRepositoryMetaData);
+ assertEquals("loaderRepositoryClass", loaderRepositoryMetaData.getLoaderRepositoryClass());
+ assertEquals("loaderRepositoryName", trim(loaderRepositoryMetaData.getName()));
+ assertLoaderRepositoryConfig(2, loaderRepositoryMetaData);
+ }
+
+ private void assertLoaderRepositoryConfig(int size, LoaderRepositoryMetaData loaderRepositoryMetaData)
+ {
+ Set<LoaderRepositoryConfigMetaData> configs = loaderRepositoryMetaData.getLoaderRepositoryConfig();
+ assertNotNull(configs);
+ assertEquals(size, configs.size());
+ int count = 1;
+ for (LoaderRepositoryConfigMetaData config : configs)
+ {
+ assertId("loaderRepositoryConfig" + count, config);
+ assertEquals("loaderRepositoryConfigParserClass" + count, config.getConfigParserClass());
+ assertEquals("loaderRepositoryConfig" + count, trim(config.getConfig()));
+ ++count;
+ }
+ }
+
+ private void assertWebservices(WebservicesMetaData webservices)
+ {
+ assertNotNull(webservices);
+ assertId("webservices", webservices);
+ assertEquals("webservicesContextRoot", webservices.getContextRoot());
+ WebserviceDescriptionsMetaData webserviceDescriptionsMetaData = webservices.getWebserviceDescriptions();
+ assertNotNull(webserviceDescriptionsMetaData);
+ assertEquals(2, webserviceDescriptionsMetaData.size());
+ int count = 1;
+ for (WebserviceDescriptionMetaData description : webserviceDescriptionsMetaData)
+ {
+ assertId("webserviceDescription" + count, description);
+ assertEquals("webserviceDescription" + count + "ConfigName", description.getConfigName());
+ assertEquals("webserviceDescription" + count + "ConfigFile", description.getConfigFile());
+ assertEquals("webserviceDescription" + count + "WsdlPublishLocation", description.getWsdlPublishLocation());
+ ++count;
+ }
+ }
+
+/* private void assertWebservices(ApplicationMetaData application)
+ {
+ assertEquals("webservicesContextRoot", application.getWebServiceContextRoot());
+ assertEquals("webserviceDescription2ConfigName", application.getConfigName());
+ assertEquals("webserviceDescription2ConfigFile", application.getConfigFile());
+ Map<String, String> result = application.getWsdlPublishLocations();
+ Map<String, String> expected = new HashMap<String, String>();
+ expected.put("webserviceDescription1Name", "webserviceDescription1WsdlPublishLocation");
+ expected.put("webserviceDescription2Name", "webserviceDescription2WsdlPublishLocation");
+ assertEquals(expected, result);
+ assertEquals("webserviceDescription1WsdlPublishLocation", application.getWsdlPublishLocationByName("webserviceDescription1Name"));
+ assertEquals("webserviceDescription2WsdlPublishLocation", application.getWsdlPublishLocationByName("webserviceDescription2Name"));
+ }
+*/
+ private String trim(String string)
+ {
+ assertNotNull(string);
+ return string.trim();
+ }
+
+ private void assertJBossEnterpriseBeans(JBossMetaData jbossMetaData)
+ {
+ JBossEnterpriseBeansMetaData enterpriseBeansMetaData = jbossMetaData.getEnterpriseBeans();
+ assertNotNull(enterpriseBeansMetaData);
+ assertEquals(9, enterpriseBeansMetaData.size());
+
+ assertNullSessionBean("session0", jbossMetaData);
+ assertFullSessionBean("session1", jbossMetaData, true);
+ assertFullSessionBean("session2", jbossMetaData, false);
+
+ assertNullEntityBean("entity0", jbossMetaData);
+ assertFullEntityBean("entity1", jbossMetaData, true);
+ assertFullEntityBean("entity2", jbossMetaData, false);
+
+ assertNullMessageDrivenBean("mdb0", jbossMetaData);
+ assertFullMessageDrivenBean("mdb1", jbossMetaData, true);
+ assertFullMessageDrivenBean("mdb2", jbossMetaData, false);
+ }
+
+ private void fixUpEnterpriseBeans(JBossMetaData jbossMetaData)
+ {
+ EjbJarMetaData ejbJarMetaData = jbossMetaData.getOverridenMetaData();
+ assertNotNull(ejbJarMetaData);
+
+ EnterpriseBeansMetaData enterpriseBeansMetaData = ejbJarMetaData.getEnterpriseBeans();
+ if (enterpriseBeansMetaData == null)
+ {
+ enterpriseBeansMetaData = new EnterpriseBeansMetaData();
+ ejbJarMetaData.setEnterpriseBeans(enterpriseBeansMetaData);
+ }
+
+ JBossEnterpriseBeansMetaData jbossEnterpriseBeansMetaData = jbossMetaData.getEnterpriseBeans();
+ for (JBossEnterpriseBeanMetaData jbossEnterpriseBeanMetaData : jbossEnterpriseBeansMetaData)
+ {
+ String name = jbossEnterpriseBeanMetaData.getEjbName();
+ if (enterpriseBeansMetaData.get(name) == null)
+ {
+ EnterpriseBeanMetaData enterpriseBeanMetaData = null;
+ if (jbossEnterpriseBeanMetaData instanceof JBossSessionBeanMetaData)
+ enterpriseBeanMetaData = new SessionBeanMetaData();
+ else if (jbossEnterpriseBeanMetaData instanceof JBossEntityBeanMetaData)
+ enterpriseBeanMetaData = new EntityBeanMetaData();
+ else if (jbossEnterpriseBeanMetaData instanceof JBossMessageDrivenBeanMetaData)
+ enterpriseBeanMetaData = new MessageDrivenBeanMetaData();
+ enterpriseBeanMetaData.setEjbName(name);
+ jbossEnterpriseBeanMetaData.setOverridenMetaData(enterpriseBeanMetaData);
+ enterpriseBeansMetaData.add(enterpriseBeanMetaData);
+ }
+ }
+
+ for (JBossEnterpriseBeanMetaData enterpriseBean : jbossMetaData.getEnterpriseBeans())
+ fixUpEnterpriseBean(enterpriseBean);
+ }
+
+/* private void assertJBossEnterpriseBeans(ApplicationMetaData application)
+ {
+ Iterator<BeanMetaData> beans = application.getEnterpriseBeans();
+ assertNotNull(beans);
+ int count = 0;
+ while (beans.hasNext())
+ {
+ beans.next();
+ ++count;
+ }
+ assertEquals(9, count);
+
+ assertNullSessionBean("session0", application);
+ assertFullSessionBean("session1", application, true);
+ assertFullSessionBean("session2", application, false);
+
+ assertNullEntityBean("entity0", application);
+ assertFullEntityBean("entity1", application, true);
+ assertFullEntityBean("entity2", application, false);
+
+ assertNullMessageDrivenBean("mdb0", application);
+ assertFullMessageDrivenBean("mdb1", application, true);
+ assertFullMessageDrivenBean("mdb2", application, false);
+ }
+*/
+ private void fixUpEnterpriseBean(JBossEnterpriseBeanMetaData jbossEjb)
+ {
+ EnterpriseBeanMetaData ejb = jbossEjb.getOverridenMetaData();
+ fixUpEnvironment(ejb, jbossEjb);
+ }
+
+ private <T extends JBossEnterpriseBeanMetaData> T assertJBossEnterpriseBean(String prefix, JBossMetaData jBossMetaData, Class<T> expected)
+ {
+ JBossEnterpriseBeanMetaData ejb = jBossMetaData.getEnterpriseBean(prefix + "EjbName");
+ assertNotNull(ejb);
+ assertEquals(prefix + "EjbName", ejb.getEjbName());
+ assertTrue(expected.isInstance(ejb));
+ return expected.cast(ejb);
+ }
+
+/* private <T extends BeanMetaData> T assertBeanMetaData(String prefix, ApplicationMetaData application, Class<T> expected)
+ {
+ BeanMetaData ejb = application.getBeanByEjbName(prefix + "EjbName");
+ assertNotNull(ejb);
+ assertEquals(prefix + "EjbName", ejb.getEjbName());
+ assertTrue(expected.isInstance(ejb));
+ return expected.cast(ejb);
+ }
+*/
+ private JBossSessionBeanMetaData assertJBossSessionBean(String prefix, JBossMetaData jbossMetaData)
+ {
+ JBossSessionBeanMetaData ejb = assertJBossEnterpriseBean(prefix, jbossMetaData, JBossSessionBeanMetaData.class);
+ assertTrue(ejb.isSession());
+ assertFalse(ejb.isEntity());
+ assertFalse(ejb.isMessageDriven());
+ return ejb;
+ }
+
+/* private SessionMetaData assertJBossSessionBean(String prefix, ApplicationMetaData application)
+ {
+ SessionMetaData ejb = assertBeanMetaData(prefix, application, SessionMetaData.class);
+ assertTrue(ejb.isSession());
+ assertFalse(ejb.isEntity());
+ assertFalse(ejb.isMessageDriven());
+ return ejb;
+ }
+*/
+ private void assertFullSessionBean(String prefix, JBossMetaData jbossMetaData, boolean first)
+ {
+ JBossSessionBeanMetaData session = assertJBossSessionBean(prefix, jbossMetaData);
+ assertId(prefix, session);
+ assertDescriptionGroup(prefix, session.getDescriptionGroup());
+
+ assertRemoteBinding(prefix, session.getRemoteBinding());
+
+ assertEquals(prefix + "JndiName", session.getJndiName());
+ assertEquals(prefix + "LocalJndiName", session.getLocalJndiName());
+ assertEquals(prefix + "ConfigurationName", session.getConfigurationName());
+ assertEquals(prefix + "SecurityProxy", session.getSecurityProxy());
+ assertEquals(prefix + "SecurityDomain", session.getSecurityDomain());
+
+ if (first)
+ {
+ assertTrue(session.isCallByValue());
+ assertTrue(session.isExceptionOnRollback());
+ assertTrue(session.isTimerPersistence());
+ assertTrue(session.isClustered());
+ }
+ else
+ {
+ assertFalse(session.isCallByValue());
+ assertFalse(session.isExceptionOnRollback());
+ assertFalse(session.isTimerPersistence());
+ assertFalse(session.isClustered());
+ }
+
+ assertInvokerBindings(prefix, session.getInvokerBindings());
+
+ assertEnvironment(prefix, session.getJbossJndiEnvironmentRefsGroup(), false);
+
+ assertSecurityIdentity(prefix, "SecurityIdentity", session.getSecurityIdentity(), false);
+
+ assertClusterConfig(prefix, session.determineClusterConfig(), true);
+
+ assertMethodAttributes(prefix, session.getMethodAttributes());
+
+ assertDepends(prefix, 2, session.getDepends());
+
+ assertIORSecurityConfig(prefix, session.getIorSecurityConfig());
+
+ // TODO webservice port-component
+
+ assertSecurityIdentity(prefix, "EjbTimeoutIdentity", session.getEjbTimeoutIdentity(), false);
+
+ assertAnnotations(prefix, 2, session.getAnnotations());
+
+ assertIgnoreDependency(prefix, session.getIgnoreDependency());
+
+ assertEquals(prefix + "AOPDomain", session.getAopDomainName());
+
+ // TODO DOM cache-config
+
+ // TODO DOM pool-config
+
+ if (first)
+ assertTrue(session.isConcurrent());
+ else
+ assertFalse(session.isConcurrent());
+
+ assertJndiRefs(prefix, 2, session.getJndiRefs());
+ }
+
+ private void assertNullSessionBean(String prefix, JBossMetaData jbossMetaData)
+ {
+ JBossSessionBeanMetaData session = assertJBossSessionBean(prefix, jbossMetaData);
+ assertNull(session.getId());
+ assertNull(session.getDescriptionGroup());
+
+ assertNull(session.getRemoteBinding());
+
+ assertNull(session.getJndiName());
+ assertNull(session.getLocalJndiName());
+ assertNull(session.getConfigurationName());
+ assertNull(session.getSecurityProxy());
+ assertNull(session.getSecurityDomain());
+
+ assertFalse(session.isCallByValue());
+ assertFalse(session.isExceptionOnRollback());
+ assertTrue(session.isTimerPersistence());
+ assertFalse(session.isClustered());
+
+ assertNull(session.getInvokerBindings());
+
+ assertNullEnvironment(session.getJbossJndiEnvironmentRefsGroup());
+
+ assertNull(session.getMethodAttributes());
+
+ assertNull(session.getSecurityIdentity());
+ assertNull(session.getEjbTimeoutIdentity());
+
+ assertNull(session.getClusterConfig());
+
+ assertNull(session.getDepends());
+
+ assertNull(session.getIorSecurityConfig());
+
+ assertNull(session.getAnnotations());
+ assertNull(session.getIgnoreDependency());
+ assertNull(session.getAopDomainName());
+ assertFalse(session.isConcurrent());
+ assertNull(session.getJndiRefs());
+ }
+
+/* private void assertFullSessionBean(String prefix, ApplicationMetaData application, boolean first)
+ {
+ SessionMetaData session = assertJBossSessionBean(prefix, application);
+
+ assertEquals(prefix + "JndiName", session.getJndiName());
+ assertEquals(prefix + "LocalJndiName", session.getLocalJndiName());
+ assertEquals(prefix + "ConfigurationName", session.getConfigurationName());
+ assertEquals(prefix + "SecurityProxy", session.getSecurityProxy());
+
+ if (first)
+ {
+ assertTrue(session.isCallByValue());
+ assertTrue(session.getExceptionRollback());
+ assertTrue(session.getTimerPersistence());
+ assertTrue(session.isClustered());
+ }
+ else
+ {
+ assertFalse(session.isCallByValue());
+ assertFalse(session.getExceptionRollback());
+ assertFalse(session.getTimerPersistence());
+ assertFalse(session.isClustered());
+ }
+
+ assertInvokerBindings(prefix, session, session.getInvokerBindings());
+
+ assertEnvironment(prefix, session, false);
+
+ assertSecurityIdentity(prefix, "SecurityIdentity", session.getSecurityIdentityMetaData(), false);
+
+ assertClusterConfig(prefix, session.getClusterConfigMetaData(), true);
+
+ assertMethodAttributes(prefix, session);
+
+ assertDepends(prefix, 2, session.getDepends());
+
+ assertIORSecurityConfig(prefix, session.getIorSecurityConfigMetaData());
+
+ // TODO webservice port-component
+
+ assertSecurityIdentity(prefix, "EjbTimeoutIdentity", session.getEjbTimeoutIdentity(), false);
+ }
+*/
+/* private void assertNullSessionBean(String prefix, ApplicationMetaData application)
+ {
+ SessionMetaData session = assertJBossSessionBean(prefix, application);
+
+ String ejbName = session.getEjbName();
+ assertEquals(session.getEjbName(), session.getJndiName());
+ String localName = "local/" + ejbName + '@' + System.identityHashCode(ejbName);
+ assertEquals(localName, session.getLocalJndiName());
+ assertEquals(ContainerConfigurationMetaData.STATELESS, session.getConfigurationName());
+ assertNull(session.getSecurityProxy());
+
+ assertFalse(session.isCallByValue());
+ assertFalse(session.getExceptionRollback());
+ assertTrue(session.getTimerPersistence());
+ assertFalse(session.isClustered());
+
+ assertDefaultInvoker(InvokerBindingMetaData.STATELESS, session);
+
+ assertNullEnvironment(session);
+
+ assertNull(session.getSecurityIdentityMetaData());
+
+ assertDefaultMethodAttributes(ejbName, session);
+
+ assertEmpty(session.getDepends());
+
+ assertNull(session.getIorSecurityConfigMetaData());
+
+ // TODO webservice port-component
+
+ assertNull(session.getEjbTimeoutIdentity());
+ }
+*/
+ private JBossEntityBeanMetaData assertJBossEntityBean(String prefix, JBossMetaData jbossMetaData)
+ {
+ JBossEntityBeanMetaData ejb = assertJBossEnterpriseBean(prefix, jbossMetaData, JBossEntityBeanMetaData.class);
+ assertFalse(ejb.isSession());
+ assertTrue(ejb.isEntity());
+ assertFalse(ejb.isMessageDriven());
+ return ejb;
+ }
+
+/* private EntityMetaData assertJBossEntityBean(String prefix, ApplicationMetaData application)
+ {
+ EntityMetaData ejb = assertBeanMetaData(prefix, application, EntityMetaData.class);
+ assertFalse(ejb.isSession());
+ assertTrue(ejb.isEntity());
+ assertFalse(ejb.isMessageDriven());
+ return ejb;
+ }
+*/
+ private void assertFullEntityBean(String prefix, JBossMetaData jbossMetaData, boolean first)
+ {
+ JBossEntityBeanMetaData entity = assertJBossEntityBean(prefix, jbossMetaData);
+ assertId(prefix, entity);
+ assertDescriptionGroup(prefix, entity.getDescriptionGroup());
+
+ assertEquals(prefix + "JndiName", entity.getJndiName());
+ assertEquals(prefix + "LocalJndiName", entity.getLocalJndiName());
+ assertEquals(prefix + "ConfigurationName", entity.getConfigurationName());
+ assertEquals(prefix + "SecurityProxy", entity.getSecurityProxy());
+ assertEquals(prefix + "SecurityDomain", entity.getSecurityDomain());
+
+ if (first)
+ {
+ assertTrue(entity.isCallByValue());
+ assertTrue(entity.isReadOnly());
+ assertTrue(entity.isExceptionOnRollback());
+ assertTrue(entity.isTimerPersistence());
+ assertTrue(entity.isClustered());
+ assertTrue(entity.isCacheInvalidation());
+ }
+ else
+ {
+ assertFalse(entity.isCallByValue());
+ assertFalse(entity.isReadOnly());
+ assertFalse(entity.isExceptionOnRollback());
+ assertFalse(entity.isTimerPersistence());
+ assertFalse(entity.isClustered());
+ assertFalse(entity.isCacheInvalidation());
+ }
+
+ assertInvokerBindings(prefix, entity.getInvokerBindings());
+
+ assertEnvironment(prefix, entity.getJbossJndiEnvironmentRefsGroup(), false);
+
+ assertSecurityIdentity(prefix, "SecurityIdentity", entity.getSecurityIdentity(), false);
+
+ assertClusterConfig(prefix, entity.getClusterConfig(), false);
+
+ assertMethodAttributes(prefix, entity.getMethodAttributes());
+
+ assertDepends(prefix, 2, entity.getDepends());
+
+ assertIORSecurityConfig(prefix, entity.getIorSecurityConfig());
+
+ assertAnnotations(prefix, 2, entity.getAnnotations());
+
+ assertIgnoreDependency(prefix, entity.getIgnoreDependency());
+
+ assertEquals(prefix + "AOPDomain", entity.getAopDomainName());
+
+ assertCacheInvalidationConfig(prefix, entity.getCacheInvalidationConfig());
+
+ // TODO DOM cache-config
+
+ // TODO DOM pool-config
+
+ assertJndiRefs(prefix, 2, entity.getJndiRefs());
+ }
+
+ private void assertNullEntityBean(String prefix, JBossMetaData jbossMetaData)
+ {
+ JBossEntityBeanMetaData entity = assertJBossEntityBean(prefix, jbossMetaData);
+ assertNull(entity.getId());
+ assertNull(entity.getDescriptionGroup());
+
+ assertNull(entity.getJndiName());
+ assertNull(entity.getLocalJndiName());
+ assertNull(entity.getConfigurationName());
+ assertNull(entity.getSecurityProxy());
+ assertNull(entity.getSecurityDomain());
+
+ assertFalse(entity.isCallByValue());
+ assertFalse(entity.isReadOnly());
+ assertFalse(entity.isExceptionOnRollback());
+ assertTrue(entity.isTimerPersistence());
+ assertFalse(entity.isClustered());
+ assertFalse(entity.isCacheInvalidation());
+
+ assertNull(entity.getInvokerBindings());
+
+ assertNullEnvironment(entity.getJbossJndiEnvironmentRefsGroup());
+
+ assertNull(entity.getMethodAttributes());
+
+ assertNull(entity.getSecurityIdentity());
+
+ assertNull(entity.getClusterConfig());
+
+ assertNull(entity.getCacheInvalidationConfig());
+
+ assertNull(entity.getDepends());
+
+ assertNull(entity.getIorSecurityConfig());
+
+ assertNull(entity.getAnnotations());
+ assertNull(entity.getIgnoreDependency());
+ assertNull(entity.getAopDomainName());
+ assertNull(entity.getJndiRefs());
+ }
+
+/* private void assertFullEntityBean(String prefix, ApplicationMetaData application, boolean first)
+ {
+ EntityMetaData entity = assertJBossEntityBean(prefix, application);
+
+ assertEquals(prefix + "JndiName", entity.getJndiName());
+ assertEquals(prefix + "LocalJndiName", entity.getLocalJndiName());
+ assertEquals(prefix + "ConfigurationName", entity.getConfigurationName());
+ assertEquals(prefix + "SecurityProxy", entity.getSecurityProxy());
+
+ if (first)
+ {
+ assertTrue(entity.isCallByValue());
+ assertTrue(entity.isReadOnly());
+ assertTrue(entity.getExceptionRollback());
+ assertTrue(entity.getTimerPersistence());
+ assertTrue(entity.isClustered());
+ }
+ else
+ {
+ assertFalse(entity.isCallByValue());
+ assertFalse(entity.isReadOnly());
+ assertFalse(entity.getExceptionRollback());
+ assertFalse(entity.getTimerPersistence());
+ assertFalse(entity.isClustered());
+ }
+
+ assertInvokerBindings(prefix, entity, entity.getInvokerBindings());
+
+ assertEnvironment(prefix, entity, false);
+
+ assertSecurityIdentity(prefix, "SecurityIdentity", entity.getSecurityIdentityMetaData(), false);
+
+ assertClusterConfig(prefix, entity.getClusterConfigMetaData(), false);
+
+ assertMethodAttributes(prefix, entity);
+
+ assertCacheInvalidationConfig(prefix, entity.getDistributedCacheInvalidationConfig());
+
+ assertDepends(prefix, 2, entity.getDepends());
+
+ assertIORSecurityConfig(prefix, entity.getIorSecurityConfigMetaData());
+ }
+*/
+/* private void assertNullEntityBean(String prefix, ApplicationMetaData application)
+ {
+ EntityMetaData entity = assertJBossEntityBean(prefix, application);
+
+ String ejbName = entity.getEjbName();
+ assertEquals(entity.getEjbName(), entity.getJndiName());
+ String localName = "local/" + ejbName + '@' + System.identityHashCode(ejbName);
+ assertEquals(localName, entity.getLocalJndiName());
+ assertEquals(ContainerConfigurationMetaData.CMP_2x, entity.getConfigurationName());
+ assertNull(entity.getSecurityProxy());
+
+ assertFalse(entity.isCallByValue());
+ assertFalse(entity.isReadOnly());
+ assertFalse(entity.getExceptionRollback());
+ assertTrue(entity.getTimerPersistence());
+ assertFalse(entity.isClustered());
+ assertFalse(entity.doDistributedCacheInvalidations());
+
+ assertDefaultInvoker(InvokerBindingMetaData.CMP_2x, entity);
+
+ assertNullEnvironment(entity);
+
+ assertNull(entity.getSecurityIdentityMetaData());
+
+ assertNull(entity.getDistributedCacheInvalidationConfig());
+
+ assertEmpty(entity.getDepends());
+
+ assertNull(entity.getIorSecurityConfigMetaData());
+ }
+*/
+ private JBossMessageDrivenBeanMetaData assertJBossMessageDrivenBean(String prefix, JBossMetaData jbossMetaData)
+ {
+ JBossMessageDrivenBeanMetaData ejb = assertJBossEnterpriseBean(prefix, jbossMetaData, JBossMessageDrivenBeanMetaData.class);
+ assertFalse(ejb.isSession());
+ assertFalse(ejb.isEntity());
+ assertTrue(ejb.isMessageDriven());
+ return ejb;
+ }
+
+/* private MessageDrivenMetaData assertJBossMessageDrivenBean(String prefix, ApplicationMetaData application)
+ {
+ MessageDrivenMetaData ejb = assertBeanMetaData(prefix, application, MessageDrivenMetaData.class);
+ assertFalse(ejb.isSession());
+ assertFalse(ejb.isEntity());
+ assertTrue(ejb.isMessageDriven());
+ return ejb;
+ }
+*/
+ private void assertFullMessageDrivenBean(String prefix, JBossMetaData jbossMetaData, boolean first)
+ {
+ JBossMessageDrivenBeanMetaData mdb = assertJBossMessageDrivenBean(prefix, jbossMetaData);
+ assertId(prefix, mdb);
+ assertDescriptionGroup(prefix, mdb.getDescriptionGroup());
+
+ assertEquals(prefix + "DestinationJndiName", mdb.getDestinationJndiName());
+ assertEquals(prefix + "LocalJndiName", mdb.getLocalJndiName());
+ assertEquals(prefix + "User", mdb.getMdbUser());
+ assertEquals(prefix + "Password", mdb.getMdbPassword());
+ assertEquals(prefix + "ClientId", mdb.getMdbClientId());
+ assertEquals(prefix + "SubscriptionId", mdb.getMdbSubscriptionId());
+ assertEquals(prefix + "RAR", mdb.getResourceAdapterName());
+ assertEquals(prefix + "ConfigurationName", mdb.getConfigurationName());
+ assertEquals(prefix + "SecurityProxy", mdb.getSecurityProxy());
+
+ if (first)
+ {
+ assertTrue(mdb.isExceptionOnRollback());
+ assertTrue(mdb.isTimerPersistence());
+ }
+ else
+ {
+ assertFalse(mdb.isExceptionOnRollback());
+ assertFalse(mdb.isTimerPersistence());
+ }
+
+ assertInvokerBindings(prefix, mdb.getInvokerBindings());
+
+ assertEnvironment(prefix, mdb.getJbossJndiEnvironmentRefsGroup(), false);
+
+ assertMethodAttributes(prefix, mdb.getMethodAttributes());
+
+ assertSecurityIdentity(prefix, "SecurityIdentity", mdb.getSecurityIdentity(), false);
+
+ assertDepends(prefix, 2, mdb.getDepends());
+
+ assertIORSecurityConfig(prefix, mdb.getIorSecurityConfig());
+
+ assertSecurityIdentity(prefix, "EjbTimeoutIdentity", mdb.getEjbTimeoutIdentity(), false);
+
+ assertAnnotations(prefix, 2, mdb.getAnnotations());
+
+ assertIgnoreDependency(prefix, mdb.getIgnoreDependency());
+
+ assertEquals(prefix + "AOPDomain", mdb.getAopDomainName());
+
+ // TODO DOM pool-config
+
+ assertJndiRefs(prefix, 2, mdb.getJndiRefs());
+
+ assertActivationConfig(prefix + "Default", mdb.getDefaultActivationConfig());
+ }
+
+ private void assertNullMessageDrivenBean(String prefix, JBossMetaData jbossMetaData)
+ {
+ JBossMessageDrivenBeanMetaData mdb = assertJBossMessageDrivenBean(prefix, jbossMetaData);
+ assertNull(mdb.getId());
+ assertNull(mdb.getDescriptionGroup());
+
+ assertNull(mdb.getDestinationJndiName());
+ assertNull(mdb.getLocalJndiName());
+ assertNull(mdb.getMdbUser());
+ assertNull(mdb.getMdbPassword());
+ assertNull(mdb.getMdbClientId());
+ assertNull(mdb.getMdbSubscriptionId());
+ assertNull(mdb.getResourceAdapterName());
+ assertNull(mdb.getConfigurationName());
+ assertNull(mdb.getSecurityProxy());
+
+ assertFalse(mdb.isExceptionOnRollback());
+ assertTrue(mdb.isTimerPersistence());
+
+ assertNull(mdb.getInvokerBindings());
+
+ assertNullEnvironment(mdb.getJbossJndiEnvironmentRefsGroup());
+
+ assertNull(mdb.getMethodAttributes());
+
+ assertNull(mdb.getSecurityIdentity());
+ assertNull(mdb.getEjbTimeoutIdentity());
+
+ assertNull(mdb.getDepends());
+
+ assertNull(mdb.getIorSecurityConfig());
+
+ assertNull(mdb.getAnnotations());
+ assertNull(mdb.getIgnoreDependency());
+ assertNull(mdb.getAopDomainName());
+ assertNull(mdb.getJndiRefs());
+ }
+
+/* private void assertFullMessageDrivenBean(String prefix, ApplicationMetaData application, boolean first)
+ {
+ MessageDrivenMetaData mdb = assertJBossMessageDrivenBean(prefix, application);
+
+ assertEquals(prefix + "DestinationJndiName", mdb.getDestinationJndiName());
+ assertEquals(prefix + "LocalJndiName", mdb.getLocalJndiName());
+ assertEquals(prefix + "User", mdb.getUser());
+ assertEquals(prefix + "Password", mdb.getPasswd());
+ assertEquals(prefix + "ClientId", mdb.getClientId());
+ assertEquals(prefix + "SubscriptionId", mdb.getSubscriptionId());
+ assertEquals(prefix + "RAR", mdb.getResourceAdapterName());
+ assertEquals(prefix + "ConfigurationName", mdb.getConfigurationName());
+ assertEquals(prefix + "SecurityProxy", mdb.getSecurityProxy());
+
+ if (first)
+ {
+ assertTrue(mdb.getExceptionRollback());
+ assertTrue(mdb.getTimerPersistence());
+ }
+ else
+ {
+ assertFalse(mdb.getExceptionRollback());
+ assertFalse(mdb.getTimerPersistence());
+ }
+
+ assertInvokerBindings(prefix, mdb, mdb.getInvokerBindings());
+
+ assertEnvironment(prefix, mdb, false);
+
+ assertSecurityIdentity(prefix, "SecurityIdentity", mdb.getSecurityIdentityMetaData(), false);
+
+ assertSecurityIdentity(prefix, "EjbTimeoutIdentity", mdb.getEjbTimeoutIdentity(), false);
+
+ assertMethodAttributes(prefix, mdb);
+
+ assertDepends(prefix, 2, mdb.getDepends());
+
+ assertIORSecurityConfig(prefix, mdb.getIorSecurityConfigMetaData());
+ }
+*/
+/* private void assertNullMessageDrivenBean(String prefix, ApplicationMetaData application)
+ {
+ MessageDrivenMetaData mdb = assertJBossMessageDrivenBean(prefix, application);
+
+ assertNull(mdb.getDestinationJndiName());
+ String ejbName = mdb.getEjbName();
+ String localName = "local/" + ejbName + '@' + System.identityHashCode(ejbName);
+ assertEquals(localName, mdb.getLocalJndiName());
+ assertNull(mdb.getUser());
+ assertNull(mdb.getPasswd());
+ assertNull(mdb.getClientId());
+ assertNull(mdb.getSubscriptionId());
+ assertNull(mdb.getResourceAdapterName());
+ assertEquals(ContainerConfigurationMetaData.MESSAGE_INFLOW_DRIVEN, mdb.getConfigurationName());
+ assertNull(mdb.getSecurityProxy());
+
+ assertFalse(mdb.getExceptionRollback());
+ assertTrue(mdb.getTimerPersistence());
+
+ assertNullEnvironment(mdb);
+
+ assertDefaultMethodAttributes(prefix, mdb);
+
+ assertNull(mdb.getSecurityIdentityMetaData());
+
+ assertNull(mdb.getEjbTimeoutIdentity());
+
+ assertEmpty(mdb.getDepends());
+
+ assertNull(mdb.getIorSecurityConfigMetaData());
+ }
+*/
+ private void fixUpContainerConfigurations(JBossMetaData jbossMetaData)
+ {
+ ContainerConfigurationsMetaData configurations = jbossMetaData.getContainerConfigurations();
+ assertNotNull(configurations);
+ fixUpContainerConfiguration(ContainerConfigurationMetaData.STATELESS, configurations);
+ fixUpContainerConfiguration(ContainerConfigurationMetaData.CMP_2x, configurations);
+ fixUpContainerConfiguration(ContainerConfigurationMetaData.MESSAGE_INFLOW_DRIVEN, configurations);
+ fixUpContainerConfiguration("session1ConfigurationName", configurations);
+ fixUpContainerConfiguration("session2ConfigurationName", configurations);
+ fixUpContainerConfiguration("entity1ConfigurationName", configurations);
+ fixUpContainerConfiguration("entity2ConfigurationName", configurations);
+ fixUpContainerConfiguration("mdb1ConfigurationName", configurations);
+ fixUpContainerConfiguration("mdb2ConfigurationName", configurations);
+ }
+
+ private void fixUpContainerConfiguration(String name, ContainerConfigurationsMetaData configurations)
+ {
+ if (configurations.get(name) == null)
+ {
+ ContainerConfigurationMetaData configuration = new ContainerConfigurationMetaData();
+ configuration.setName(name);
+ configurations.add(configuration);
+ }
+ }
+
+ private void assertContainerConfigurations(JBossMetaData jbossMetaData)
+ {
+ ContainerConfigurationsMetaData configurations = jbossMetaData.getContainerConfigurations();
+ assertNotNull(configurations);
+ assertEquals(14, configurations.size());
+ assertNullContainerConfiguration("containerConfiguration0", jbossMetaData);
+ assertFullContainerConfiguration("containerConfiguration1", jbossMetaData, true);
+ assertFullContainerConfiguration("containerConfiguration2", jbossMetaData, false);
+ ContainerConfigurationMetaData configuration = assertContainerConfiguration("containerConfiguration3", jbossMetaData);
+ assertEquals(CommitOption.B, configuration.getCommitOption());
+ configuration = assertContainerConfiguration("containerConfiguration4", jbossMetaData);
+ assertEquals(CommitOption.C, configuration.getCommitOption());
+ }
+
+/* private void assertContainerConfigurations(ApplicationMetaData application)
+ {
+ Iterator<ConfigurationMetaData> configurations = application.getConfigurations();
+ assertNotNull(configurations);
+ int count = 0;
+ while (configurations.hasNext())
+ {
+ configurations.next();
+ ++count;
+ }
+ assertEquals(14, count);
+ assertNullContainerConfiguration("containerConfiguration0", application);
+ assertFullContainerConfiguration("containerConfiguration1", application, true);
+ assertFullContainerConfiguration("containerConfiguration2", application, false);
+ ConfigurationMetaData configuration = assertContainerConfiguration("containerConfiguration3", application);
+ assertEquals(ConfigurationMetaData.B_COMMIT_OPTION, configuration.getCommitOption());
+ configuration = assertContainerConfiguration("containerConfiguration4", application);
+ assertEquals(ConfigurationMetaData.C_COMMIT_OPTION, configuration.getCommitOption());
+ }
+*/
+ private ContainerConfigurationMetaData assertContainerConfiguration(String prefix, JBossMetaData jBossMetaData)
+ {
+ ContainerConfigurationMetaData configuration = jBossMetaData.getContainerConfiguration(prefix + "Name");
+ assertNotNull(configuration);
+ assertEquals(prefix + "Name", configuration.getContainerName());
+ return configuration;
+ }
+
+ private void assertFullContainerConfiguration(String prefix, JBossMetaData jBossMetaData, boolean first)
+ {
+ ContainerConfigurationMetaData configuration = assertContainerConfiguration(prefix, jBossMetaData);
+ assertId(prefix, configuration);
+ assertDescriptions(prefix, configuration.getDescriptions());
+ assertEquals(prefix + "Extends", configuration.getExtendsName());
+ assertEquals(prefix + "InstancePool", configuration.getInstancePool());
+ assertEquals(prefix + "InstanceCache", configuration.getInstanceCache());
+ assertEquals(prefix + "PersistenceManager", configuration.getPersistenceManager());
+ assertEquals(prefix + "WebClassLoader", configuration.getWebClassLoader());
+ assertEquals(prefix + "LockingPolicy", configuration.getLockingPolicy());
+ assertEquals(prefix + "SecurityDomain", configuration.getSecurityDomain());
+ if (first)
+ {
+ assertTrue(configuration.isCallLogging());
+ assertTrue(configuration.isSyncOnCommitOnly());
+ assertTrue(configuration.isInsertAfterEjbPostCreate());
+ assertTrue(configuration.isEjbStoreOnClean());
+ assertTrue(configuration.isStoreNotFlushed());
+ }
+ else
+ {
+ assertFalse(configuration.isCallLogging());
+ assertFalse(configuration.isSyncOnCommitOnly());
+ assertFalse(configuration.isInsertAfterEjbPostCreate());
+ assertFalse(configuration.isEjbStoreOnClean());
+ assertFalse(configuration.isStoreNotFlushed());
+ }
+ assertInvokerProxyBindingNames(prefix, 2, configuration.getInvokerProxyBindingNames());
+ // TODO DOM container interceptors
+ // TODO DOM container cache conf
+ // TODO DOM container pool conf
+ assertEquals(CommitOption.D, configuration.getCommitOption());
+ assertEquals(10000, configuration.getOptiondRefreshRateMillis());
+ assertClusterConfig(prefix, configuration.getClusterConfig(), true);
+ assertDepends(prefix, 2, configuration.getDepends());
+ }
+
+ private void assertNullContainerConfiguration(String prefix, JBossMetaData jBossMetaData)
+ {
+ ContainerConfigurationMetaData configuration = assertContainerConfiguration(prefix, jBossMetaData);
+ assertNull(configuration.getId());
+ assertNull(configuration.getDescriptions());
+ assertNull(configuration.getExtendsName());
+ assertNull(configuration.getInstancePool());
+ assertNull(configuration.getInstanceCache());
+ assertNull(configuration.getPersistenceManager());
+ assertNull(configuration.getWebClassLoader());
+ assertNull(configuration.getLockingPolicy());
+ assertNull(configuration.getSecurityDomain());
+ assertFalse(configuration.isCallLogging());
+ assertFalse(configuration.isSyncOnCommitOnly());
+ assertFalse(configuration.isInsertAfterEjbPostCreate());
+ assertFalse(configuration.isEjbStoreOnClean());
+ assertTrue(configuration.isStoreNotFlushed());
+ assertNull(configuration.getInvokerProxyBindingNames());
+ // TODO DOM container interceptors
+ // TODO DOM container cache conf
+ // TODO DOM container pool conf
+ assertEquals(CommitOption.A, configuration.getCommitOption());
+ assertEquals(30000, configuration.getOptiondRefreshRateMillis());
+ assertNull(configuration.getClusterConfig());
+ assertNull(configuration.getDepends());
+ }
+
+/* private ConfigurationMetaData assertContainerConfiguration(String prefix, ApplicationMetaData application)
+ {
+ ConfigurationMetaData configuration = application.getConfigurationMetaDataByName(prefix + "Name");
+ assertNotNull(configuration);
+ assertEquals(prefix + "Name", configuration.getName());
+ return configuration;
+ }
+*/
+/* private void assertFullContainerConfiguration(String prefix, ApplicationMetaData application, boolean first)
+ {
+ ConfigurationMetaData configuration = assertContainerConfiguration(prefix, application);
+ assertEquals(prefix + "InstancePool", configuration.getInstancePool());
+ assertEquals(prefix + "InstanceCache", configuration.getInstanceCache());
+ assertEquals(prefix + "PersistenceManager", configuration.getPersistenceManager());
+ assertEquals(prefix + "WebClassLoader", configuration.getWebClassLoader());
+ assertEquals(prefix + "LockingPolicy", configuration.getLockClass());
+ assertEquals(prefix + "SecurityDomain", configuration.getSecurityDomain());
+ if (first)
+ {
+ assertTrue(configuration.getCallLogging());
+ assertTrue(configuration.getSyncOnCommitOnly());
+ assertTrue(configuration.isInsertAfterEjbPostCreate());
+ assertTrue(configuration.isEjbStoreForClean());
+ assertTrue(configuration.isStoreNotFlushed());
+ }
+ else
+ {
+ assertFalse(configuration.getCallLogging());
+ assertFalse(configuration.getSyncOnCommitOnly());
+ assertFalse(configuration.isInsertAfterEjbPostCreate());
+ assertFalse(configuration.isEjbStoreForClean());
+ assertFalse(configuration.isStoreNotFlushed());
+ }
+ assertInvokerProxyBindingNames(prefix, 2, configuration.getInvokers());
+ // TODO DOM container interceptors
+ // TODO DOM container cache conf
+ // TODO DOM container pool conf
+ assertEquals(ConfigurationMetaData.D_COMMIT_OPTION, configuration.getCommitOption());
+ assertEquals(10000, configuration.getOptionDRefreshRate());
+ assertClusterConfig(prefix, configuration.getClusterConfigMetaData(), true);
+ assertDepends(prefix, 2, configuration.getDepends());
+ }
+*/
+/* private void assertNullContainerConfiguration(String prefix, ApplicationMetaData application)
+ {
+ ConfigurationMetaData configuration = assertContainerConfiguration(prefix, application);
+ assertNull(configuration.getInstancePool());
+ assertNull(configuration.getInstanceCache());
+ assertNull(configuration.getPersistenceManager());
+ assertNull(configuration.getWebClassLoader());
+ assertNull(configuration.getLockClass());
+ assertNull(configuration.getSecurityDomain());
+ assertFalse(configuration.getCallLogging());
+ assertFalse(configuration.getSyncOnCommitOnly());
+ assertFalse(configuration.isInsertAfterEjbPostCreate());
+ assertFalse(configuration.isEjbStoreForClean());
+ assertTrue(configuration.isStoreNotFlushed());
+ assertInvokerProxyBindingNames(null, 0, configuration.getInvokers());
+ // TODO DOM container interceptors
+ // TODO DOM container cache conf
+ // TODO DOM container pool conf
+ assertEquals(ConfigurationMetaData.A_COMMIT_OPTION, configuration.getCommitOption());
+ assertEquals(30000, configuration.getOptionDRefreshRate());
+ assertNull(configuration.getClusterConfigMetaData());
+ assertEmpty(configuration.getDepends());
+ }
+*/
+ private void assertInvokerProxyBindingNames(String prefix, int size, Collection<String> names)
+ {
+ assertNotNull(names);
+ assertEquals(2, names.size());
+ int count = 1;
+ for (String name : names)
+ {
+ assertEquals(prefix + "InvokerProxyBindingName" + count, name);
+ ++count;
+ }
+ }
+
+ private void assertInvokerProxyBindingNames(String prefix, int size, String[] names)
+ {
+ assertNotNull(names);
+ assertEquals(size, names.length);
+ int count = 1;
+ for (String name : names)
+ {
+ assertEquals(prefix + "InvokerProxyBindingName" + count, name);
+ ++count;
+ }
+ }
+
+ private void assertDepends(String prefix, int size, Collection<String> depends)
+ {
+ assertNotNull(depends);
+ assertEquals(size, depends.size());
+ int count = 1;
+ for (String depend : depends)
+ {
+ assertEquals(prefix + "Depends" + count, depend);
+ ++count;
+ }
+ }
+
+ private void assertInvokerProxyBindings(InvokerProxyBindingsMetaData bindings)
+ {
+ assertNotNull(bindings);
+ assertId("invoker-proxy-bindings", bindings);
+ assertDescriptions("invoker-proxy-bindings", bindings.getDescriptions());
+ assertEquals(2, bindings.size());
+ int count = 1;
+ for (InvokerProxyBindingMetaData binding : bindings)
+ {
+ assertInvokerProxyBinding("invokerProxyBinding" + count, count, binding);
+ ++count;
+ }
+ }
+
+ private void assertInvokerProxyBinding(String prefix, int count, InvokerProxyBindingMetaData binding)
+ {
+ assertNotNull(binding);
+ assertId(prefix, binding);
+ assertDescriptions(prefix, binding.getDescriptions());
+ assertEquals(prefix + "Name", binding.getInvokerProxyBindingName());
+ assertEquals(prefix + "InvokerMBean", binding.getInvokerMBean());
+ assertEquals(prefix + "ProxyFactory", binding.getProxyFactory());
+ // TODO DOM invoker-proxy-config
+ }
+
+/* private void assertInvokerProxyBindings(Iterator<org.jboss.metadata.InvokerProxyBindingMetaData> bindings)
+ {
+ assertNotNull(bindings);
+ int count = 1;
+ while (bindings.hasNext())
+ {
+ assertInvokerProxyBinding("invokerProxyBinding" + count, bindings.next());
+ ++count;
+ }
+ assertEquals(3, count);
+ }
+*/
+/* private void assertInvokerProxyBinding(String prefix, org.jboss.metadata.InvokerProxyBindingMetaData binding)
+ {
+ assertNotNull(binding);
+ assertEquals(prefix + "Name", binding.getName());
+ assertEquals(prefix + "InvokerMBean", binding.getInvokerMBean());
+ assertEquals(prefix + "ProxyFactory", binding.getProxyFactory());
+ // TODO DOM invoker-proxy-config
+ }
+*/
+ private void assertInvokerBindings(String prefix, InvokerBindingsMetaData bindings)
+ {
+ assertId(prefix + "InvokerBindings", bindings);
+ assertDescriptions(prefix + "InvokerBindings", bindings.getDescriptions());
+ assertNotNull(bindings);
+ assertEquals(2, bindings.size());
+ int count = 1;
+ for (InvokerBindingMetaData binding : bindings)
+ {
+ assertInvokerBinding(prefix + "Invoker" + count, count, binding);
+ ++count;
+ }
+ }
+
+ private void assertInvokerBinding(String prefix, int count, InvokerBindingMetaData binding)
+ {
+ assertNotNull(binding);
+ assertId(prefix, binding);
+ assertDescriptions(prefix, binding.getDescriptions());
+ assertEquals(prefix + "Name", binding.getInvokerProxyBindingName());
+ assertEquals(prefix + "JndiName", binding.getJndiName());
+ // TODO LAST ejb-ref - needs a seperate test
+ }
+
+/* private void assertInvokerBindings(String prefix, BeanMetaData bean, Iterator<String> names)
+ {
+ assertNotNull(names);
+ int count = 1;
+ while (names.hasNext())
+ {
+ String name = names.next();
+ assertInvokerBinding(prefix + "Invoker" + count, count, bean, name);
+ ++count;
+ }
+ assertEquals(3, count);
+ }
+*/
+/* private void assertInvokerBinding(String prefix, int count, BeanMetaData bean, String name)
+ {
+ assertEquals(prefix + "Name", name);
+ assertEquals(prefix + "JndiName", bean.getInvokerBinding(name));
+ }
+*/
+/* private void assertDefaultInvoker(String name, BeanMetaData bean)
+ {
+ assertEquals(bean.getJndiName(), bean.getInvokerBinding(name));
+ }
+*/
+ private void assertResourceManagers(ResourceManagersMetaData resources)
+ {
+ assertNotNull(resources);
+ assertId("resource-managers", resources);
+ assertDescriptions("resource-managers", resources.getDescriptions());
+ assertEquals(2, resources.size());
+ int count = 1;
+ for (ResourceManagerMetaData resource : resources)
+ {
+ assertResourceManager("resourceManager" + count, count == 1, resource);
+ ++count;
+ }
+ }
+
+ private void assertResourceManager(String prefix, boolean jndi, ResourceManagerMetaData resource)
+ {
+ assertNotNull(resource);
+ assertId(prefix, resource);
+ assertDescriptions(prefix, resource.getDescriptions());
+ assertEquals(prefix + "Name", resource.getResName());
+ if (jndi)
+ {
+ assertEquals(prefix + "JndiName", resource.getResJndiName());
+ assertNull(resource.getResUrl());
+ assertEquals(prefix + "JndiName", resource.getResource());
+ }
+ else
+ {
+ assertNull(resource.getResJndiName());
+ assertEquals(prefix + "URL", resource.getResUrl());
+ assertEquals(prefix + "URL", resource.getResource());
+ }
+ }
+
+ protected void assertAssemblyDescriptor(JBossMetaData jbossMetaData)
+ {
+ JBossAssemblyDescriptorMetaData assemblyDescriptorMetaData = jbossMetaData.getAssemblyDescriptor();
+ assertNotNull(assemblyDescriptorMetaData);
+ assertId("assembly-descriptor", assemblyDescriptorMetaData);
+ assertSecurityRoles(2, assemblyDescriptorMetaData.getSecurityRoles());
+ assertMessageDestinations(2, assemblyDescriptorMetaData.getMessageDestinations());
+ }
+
+ protected void fixUpAssemblyDescriptor(JBossMetaData jbossMetaData)
+ {
+ EjbJarMetaData ejbJarMetaData = jbossMetaData.getOverridenMetaData();
+ assertNotNull(ejbJarMetaData);
+ AssemblyDescriptorMetaData assemblyDescriptorMetaData = ejbJarMetaData.getAssemblyDescriptor();
+ if (assemblyDescriptorMetaData == null)
+ {
+ assemblyDescriptorMetaData = new AssemblyDescriptorMetaData();
+ ejbJarMetaData.setAssemblyDescriptor(assemblyDescriptorMetaData);
+ }
+ fixUpMessageDestinations(2, assemblyDescriptorMetaData);
+ }
+
+ protected void fixUpMessageDestinations(int size, AssemblyDescriptorMetaData assemblyDescriptorMetaData)
+ {
+ MessageDestinationsMetaData messageDestinationsMetaData = assemblyDescriptorMetaData.getMessageDestinations();
+ if (messageDestinationsMetaData == null)
+ {
+ messageDestinationsMetaData = new MessageDestinationsMetaData();
+ assemblyDescriptorMetaData.setMessageDestinations(messageDestinationsMetaData);
+ }
+ fixUpMessageDestinations(size, messageDestinationsMetaData);
+ }
+
+/* protected void assertAssemblyDescriptor(ApplicationMetaData applicationMetaData)
+ {
+ org.jboss.metadata.AssemblyDescriptorMetaData assemblyDescriptorMetaData = applicationMetaData.getAssemblyDescriptor();
+ assertNotNull(assemblyDescriptorMetaData);
+ assertSecurityRoles(2, assemblyDescriptorMetaData.getSecurityRoles());
+ assertMessageDestination("messageDestination1", assemblyDescriptorMetaData.getMessageDestinationMetaData("messageDestination1Name"));
+ assertMessageDestination("messageDestination2", assemblyDescriptorMetaData.getMessageDestinationMetaData("messageDestination2Name"));
+ }
+*/
+ @Override
+ protected void assertSecurityRole(String prefix, SecurityRoleMetaData securityRoleMetaData)
+ {
+ super.assertSecurityRole(prefix, securityRoleMetaData);
+ assertPrincipals(prefix, 2, securityRoleMetaData.getPrincipals());
+ }
+
+/* @Override
+ protected void assertSecurityRole(String prefix, org.jboss.security.SecurityRoleMetaData securityRoleMetaData)
+ {
+ super.assertSecurityRole(prefix, securityRoleMetaData);
+ assertPrincipals(prefix, 2, securityRoleMetaData.getPrincipals());
+ }
+*/
+ protected void assertMessageDestination(String prefix, MessageDestinationMetaData messageDestinationMetaData)
+ {
+ assertMessageDestination14(prefix, messageDestinationMetaData);
+ assertEquals(prefix + "JndiName", messageDestinationMetaData.getMappedName());
+ }
+
+ protected void fixUpEnvironment(EnterpriseBeanMetaData ejb, JBossEnterpriseBeanMetaData jbossEjb)
+ {
+ EnvironmentRefsGroupMetaData jbossEjbEnvironment = jbossEjb.getJbossJndiEnvironmentRefsGroup();
+ if (jbossEjbEnvironment == null)
+ return;
+
+ EnvironmentRefsGroupMetaData ejbEnvironment = ejb.getJndiEnvironmentRefsGroup();
+ if (ejbEnvironment == null)
+ {
+ ejbEnvironment = new EnvironmentRefsGroupMetaData();
+ ejb.setJndiEnvironmentRefsGroup(ejbEnvironment);
+ }
+
+ EJBReferencesMetaData ejbReferences = fixUpEjbRefs(ejbEnvironment.getEjbReferences(), jbossEjbEnvironment.getEjbReferences());
+ if (ejbReferences != null)
+ ejbEnvironment.setEjbReferences(ejbReferences);
+ EJBLocalReferencesMetaData ejbLocalReferences = fixUpEjbLocalRefs(ejbEnvironment.getEjbLocalReferences(), jbossEjbEnvironment.getEjbLocalReferences());
+ if (ejbLocalReferences != null)
+ ejbEnvironment.setEjbLocalReferences(ejbLocalReferences);
+ // TODO webservice service ref
+ ResourceReferencesMetaData resourceReferences = fixUpResourceRefs(ejbEnvironment.getResourceReferences(), jbossEjbEnvironment.getResourceReferences());
+ if (resourceReferences != null)
+ ejbEnvironment.setResourceReferences(resourceReferences);
+ ResourceEnvironmentReferencesMetaData resourceEnvironmentReferences = fixUpResourceEnvRefs(ejbEnvironment.getResourceEnvironmentReferences(), jbossEjbEnvironment.getResourceEnvironmentReferences());
+ if (resourceEnvironmentReferences != null)
+ ejbEnvironment.setResourceEnvironmentReferences(resourceEnvironmentReferences);
+ MessageDestinationReferencesMetaData messageDestinationReferences = fixUpMessageDestinationRefs(ejbEnvironment.getMessageDestinationReferences(), jbossEjbEnvironment.getMessageDestinationReferences());
+ if (messageDestinationReferences != null)
+ ejbEnvironment.setMessageDestinationReferences(messageDestinationReferences);
+ }
+
+ @Override
+ protected void assertResourceGroup(String prefix, ResourceInjectionMetaData resourceInjectionMetaData, boolean full, boolean first)
+ {
+ super.assertResourceGroupNoJndiName(prefix, resourceInjectionMetaData, true, first);
+ assertEquals(prefix + "JndiName", resourceInjectionMetaData.getMappedName());
+ if (first)
+ assertTrue(resourceInjectionMetaData.isDependencyIgnored());
+ else
+ assertFalse(resourceInjectionMetaData.isDependencyIgnored());
+ }
+
+ @Override
+ protected void assertSecurityIdentity(String ejbName, String type, SecurityIdentityMetaData securityIdentity, boolean full)
+ {
+ super.assertSecurityIdentity(ejbName, type, securityIdentity, full);
+ assertEquals(ejbName + type + "RunAsPrincipal", securityIdentity.getRunAsPrincipal());
+ }
+
+/* @Override
+ protected void assertSecurityIdentity(String ejbName, String type, org.jboss.metadata.SecurityIdentityMetaData securityIdentity, boolean full)
+ {
+ super.assertSecurityIdentity(ejbName, type, securityIdentity, full);
+ assertEquals(ejbName + type + "RunAsPrincipal", securityIdentity.getRunAsPrincipalName());
+ }
+*/
+/* @Override
+ protected void assertMethodAttributes(String ejbName, BeanMetaData bean)
+ {
+ assertTrue(bean.isMethodReadOnly("getSomething"));
+ assertEquals(5000, bean.getTransactionTimeout("getSomething"));
+ assertFalse(bean.isMethodReadOnly("setSomething"));
+ assertEquals(0, bean.getTransactionTimeout("setSomething"));
+ }
+*/}
Added: jbossxb-builder/trunk/src/test/resources/org/jboss/test/ejb/metadata/test/EjbJar21Everything_testEverything.xml
===================================================================
--- jbossxb-builder/trunk/src/test/resources/org/jboss/test/ejb/metadata/test/EjbJar21Everything_testEverything.xml (rev 0)
+++ jbossxb-builder/trunk/src/test/resources/org/jboss/test/ejb/metadata/test/EjbJar21Everything_testEverything.xml 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,3313 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<ejb-jar xmlns="http://java.sun.com/xml/ns/j2ee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/javaee/ejb-jar_2_1.xsd"
+ version="2.1"
+ id="ejb-jar-id">
+
+ <description>en-ejb-jar-desc</description>
+ <description xml:lang="fr">fr-ejb-jar-desc</description>
+ <description xml:lang="de">de-ejb-jar-desc</description>
+ <display-name>en-ejb-jar-disp</display-name>
+ <display-name xml:lang="fr">fr-ejb-jar-disp</display-name>
+ <display-name xml:lang="de">de-ejb-jar-disp</display-name>
+ <icon id="en-ejb-jar-icon-id">
+ <small-icon>en-ejb-jar-small-icon</small-icon>
+ <large-icon>en-ejb-jar-large-icon</large-icon>
+ </icon>
+ <icon xml:lang="fr" id="fr-ejb-jar-icon-id">
+ <small-icon>fr-ejb-jar-small-icon</small-icon>
+ <large-icon>fr-ejb-jar-large-icon</large-icon>
+ </icon>
+ <icon xml:lang="de" id="de-ejb-jar-icon-id">
+ <small-icon>de-ejb-jar-small-icon</small-icon>
+ <large-icon>de-ejb-jar-large-icon</large-icon>
+ </icon>
+
+ <enterprise-beans id="enterprise-beans-id">
+
+ <session>
+ <ejb-name>session0</ejb-name>
+ </session>
+
+ <session id="session1-id">
+
+ <description>en-session1-desc</description>
+ <description xml:lang="fr">fr-session1-desc</description>
+ <description xml:lang="de">de-session1-desc</description>
+ <display-name>en-session1-disp</display-name>
+ <display-name xml:lang="fr">fr-session1-disp</display-name>
+ <display-name xml:lang="de">de-session1-disp</display-name>
+ <icon id="en-session1-icon-id">
+ <small-icon>en-session1-small-icon</small-icon>
+ <large-icon>en-session1-large-icon</large-icon>
+ </icon>
+ <icon xml:lang="fr" id="fr-session1-icon-id">
+ <small-icon>fr-session1-small-icon</small-icon>
+ <large-icon>fr-session1-large-icon</large-icon>
+ </icon>
+ <icon xml:lang="de" id="de-session1-icon-id">
+ <small-icon>de-session1-small-icon</small-icon>
+ <large-icon>de-session1-large-icon</large-icon>
+ </icon>
+
+ <ejb-name>session1</ejb-name>
+
+ <home>session1Home</home>
+ <remote>session1Remote</remote>
+ <local-home>session1LocalHome</local-home>
+ <local>session1Local</local>
+ <service-endpoint>session1ServiceEndpoint</service-endpoint>
+ <ejb-class>session1EjbClass</ejb-class>
+ <session-type>Stateless</session-type>
+ <transaction-type>Container</transaction-type>
+
+ <env-entry id="session1EnvEntry1-id">
+ <description>en-session1EnvEntry1-desc</description>
+ <description xml:lang="fr">fr-session1EnvEntry1-desc</description>
+ <description xml:lang="de">de-session1EnvEntry1-desc</description>
+ <env-entry-name>session1EnvEntry1Name</env-entry-name>
+ <env-entry-type>session1EnvEntry1Type</env-entry-type>
+ <env-entry-value>session1EnvEntry1Value</env-entry-value>
+ </env-entry>
+ <env-entry id="session1EnvEntry2-id">
+ <description>en-session1EnvEntry2-desc</description>
+ <description xml:lang="fr">fr-session1EnvEntry2-desc</description>
+ <description xml:lang="de">de-session1EnvEntry2-desc</description>
+ <env-entry-name>session1EnvEntry2Name</env-entry-name>
+ <env-entry-type>session1EnvEntry2Type</env-entry-type>
+ <env-entry-value>session1EnvEntry2Value</env-entry-value>
+ </env-entry>
+ <ejb-ref id="session1EjbRef1-id">
+ <description>en-session1EjbRef1-desc</description>
+ <description xml:lang="fr">fr-session1EjbRef1-desc</description>
+ <description xml:lang="de">de-session1EjbRef1-desc</description>
+ <ejb-ref-name>session1EjbRef1Name</ejb-ref-name>
+ <ejb-ref-type>Session</ejb-ref-type>
+ <home>session1EjbRef1Home</home>
+ <remote>session1EjbRef1Remote</remote>
+ <ejb-link>session1EjbRef1EjbLink</ejb-link>
+ </ejb-ref>
+ <ejb-ref id="session1EjbRef2-id">
+ <description>en-session1EjbRef2-desc</description>
+ <description xml:lang="fr">fr-session1EjbRef2-desc</description>
+ <description xml:lang="de">de-session1EjbRef2-desc</description>
+ <ejb-ref-name>session1EjbRef2Name</ejb-ref-name>
+ <ejb-ref-type>Entity</ejb-ref-type>
+ <home>session1EjbRef2Home</home>
+ <remote>session1EjbRef2Remote</remote>
+ <ejb-link>session1EjbRef2EjbLink</ejb-link>
+ </ejb-ref>
+ <ejb-local-ref id="session1EjbLocalRef1-id">
+ <description>en-session1EjbLocalRef1-desc</description>
+ <description xml:lang="fr">fr-session1EjbLocalRef1-desc</description>
+ <description xml:lang="de">de-session1EjbLocalRef1-desc</description>
+ <ejb-ref-name>session1EjbLocalRef1Name</ejb-ref-name>
+ <ejb-ref-type>Session</ejb-ref-type>
+ <local-home>session1EjbLocalRef1LocalHome</local-home>
+ <local>session1EjbLocalRef1Local</local>
+ <ejb-link>session1EjbLocalRef1EjbLink</ejb-link>
+ </ejb-local-ref>
+ <ejb-local-ref id="session1EjbLocalRef2-id">
+ <description>en-session1EjbLocalRef2-desc</description>
+ <description xml:lang="fr">fr-session1EjbLocalRef2-desc</description>
+ <description xml:lang="de">de-session1EjbLocalRef2-desc</description>
+ <ejb-ref-name>session1EjbLocalRef2Name</ejb-ref-name>
+ <ejb-ref-type>Entity</ejb-ref-type>
+ <local-home>session1EjbLocalRef2LocalHome</local-home>
+ <local>session1EjbLocalRef2Local</local>
+ <ejb-link>session1EjbLocalRef2EjbLink</ejb-link>
+ </ejb-local-ref>
+
+ <!-- TODO service-refGroup -->
+
+ <resource-ref id="session1ResourceRef1-id">
+ <description>en-session1ResourceRef1-desc</description>
+ <description xml:lang="fr">fr-session1ResourceRef1-desc</description>
+ <description xml:lang="de">de-session1ResourceRef1-desc</description>
+ <res-ref-name>session1ResourceRef1Name</res-ref-name>
+ <res-type>session1ResourceRef1Type</res-type>
+ <res-auth>Application</res-auth>
+ <res-sharing-scope>Shareable</res-sharing-scope>
+ </resource-ref>
+ <resource-ref id="session1ResourceRef2-id">
+ <description>en-session1ResourceRef2-desc</description>
+ <description xml:lang="fr">fr-session1ResourceRef2-desc</description>
+ <description xml:lang="de">de-session1ResourceRef2-desc</description>
+ <res-ref-name>session1ResourceRef2Name</res-ref-name>
+ <res-type>session1ResourceRef2Type</res-type>
+ <res-auth>Container</res-auth>
+ <res-sharing-scope>Unshareable</res-sharing-scope>
+ </resource-ref>
+ <resource-env-ref id="session1ResourceEnvRef1-id">
+ <description>en-session1ResourceEnvRef1-desc</description>
+ <description xml:lang="fr">fr-session1ResourceEnvRef1-desc</description>
+ <description xml:lang="de">de-session1ResourceEnvRef1-desc</description>
+ <resource-env-ref-name>session1ResourceEnvRef1Name</resource-env-ref-name>
+ <resource-env-ref-type>session1ResourceEnvRef1Type</resource-env-ref-type>
+ </resource-env-ref>
+ <resource-env-ref id="session1ResourceEnvRef2-id">
+ <description>en-session1ResourceEnvRef2-desc</description>
+ <description xml:lang="fr">fr-session1ResourceEnvRef2-desc</description>
+ <description xml:lang="de">de-session1ResourceEnvRef2-desc</description>
+ <resource-env-ref-name>session1ResourceEnvRef2Name</resource-env-ref-name>
+ <resource-env-ref-type>session1ResourceEnvRef2Type</resource-env-ref-type>
+ </resource-env-ref>
+ <message-destination-ref id="session1MessageDestinationRef1-id">
+ <description>en-session1MessageDestinationRef1-desc</description>
+ <description xml:lang="fr">fr-session1MessageDestinationRef1-desc</description>
+ <description xml:lang="de">de-session1MessageDestinationRef1-desc</description>
+ <message-destination-ref-name>session1MessageDestinationRef1Name</message-destination-ref-name>
+ <message-destination-type>session1MessageDestinationRef1Type</message-destination-type>
+ <message-destination-usage>Consumes</message-destination-usage>
+ <message-destination-link>session1MessageDestinationRef1Link</message-destination-link>
+ </message-destination-ref>
+ <message-destination-ref id="session1MessageDestinationRef2-id">
+ <description>en-session1MessageDestinationRef2-desc</description>
+ <description xml:lang="fr">fr-session1MessageDestinationRef2-desc</description>
+ <description xml:lang="de">de-session1MessageDestinationRef2-desc</description>
+ <message-destination-ref-name>session1MessageDestinationRef2Name</message-destination-ref-name>
+ <message-destination-type>session1MessageDestinationRef2Type</message-destination-type>
+ <message-destination-usage>Produces</message-destination-usage>
+ <message-destination-link>session1MessageDestinationRef2Link</message-destination-link>
+ </message-destination-ref>
+ <message-destination-ref id="session1MessageDestinationRef3-id">
+ <description>en-session1MessageDestinationRef3-desc</description>
+ <description xml:lang="fr">fr-session1MessageDestinationRef3-desc</description>
+ <description xml:lang="de">de-session1MessageDestinationRef3-desc</description>
+ <message-destination-ref-name>session1MessageDestinationRef3Name</message-destination-ref-name>
+ <message-destination-type>session1MessageDestinationRef3Type</message-destination-type>
+ <message-destination-usage>ConsumesProduces</message-destination-usage>
+ <message-destination-link>session1MessageDestinationRef3Link</message-destination-link>
+ </message-destination-ref>
+ <security-role-ref id="session1SecurityRoleRef1-id">
+ <description>en-session1SecurityRoleRef1-desc</description>
+ <description xml:lang="fr">fr-session1SecurityRoleRef1-desc</description>
+ <description xml:lang="de">de-session1SecurityRoleRef1-desc</description>
+ <role-name>session1SecurityRoleRef1RoleName</role-name>
+ <role-link>session1SecurityRoleRef1RoleLink</role-link>
+ </security-role-ref>
+ <security-role-ref id="session1SecurityRoleRef2-id">
+ <description>en-session1SecurityRoleRef2-desc</description>
+ <description xml:lang="fr">fr-session1SecurityRoleRef2-desc</description>
+ <description xml:lang="de">de-session1SecurityRoleRef2-desc</description>
+ <role-name>session1SecurityRoleRef2RoleName</role-name>
+ <role-link>session1SecurityRoleRef2RoleLink</role-link>
+ </security-role-ref>
+ <security-identity id="session1SecurityIdentity-id">
+ <description>en-session1SecurityIdentity-desc</description>
+ <description xml:lang="fr">fr-session1SecurityIdentity-desc</description>
+ <description xml:lang="de">de-session1SecurityIdentity-desc</description>
+ <use-caller-identity id="session1SecurityIdentityUseCallerIdentity-id"/>
+ <run-as id="session1SecurityIdentityRunAs-id">
+ <description>en-session1SecurityIdentityRunAs-desc</description>
+ <description xml:lang="fr">fr-session1SecurityIdentityRunAs-desc</description>
+ <description xml:lang="de">de-session1SecurityIdentityRunAs-desc</description>
+ <role-name>session1SecurityIdentityRunAsRoleName</role-name>
+ </run-as>
+ </security-identity>
+
+ </session>
+
+ <session id="session2-id">
+
+ <description>en-session2-desc</description>
+ <description xml:lang="fr">fr-session2-desc</description>
+ <description xml:lang="de">de-session2-desc</description>
+ <display-name>en-session2-disp</display-name>
+ <display-name xml:lang="fr">fr-session2-disp</display-name>
+ <display-name xml:lang="de">de-session2-disp</display-name>
+ <icon id="en-session2-icon-id">
+ <small-icon>en-session2-small-icon</small-icon>
+ <large-icon>en-session2-large-icon</large-icon>
+ </icon>
+ <icon xml:lang="fr" id="fr-session2-icon-id">
+ <small-icon>fr-session2-small-icon</small-icon>
+ <large-icon>fr-session2-large-icon</large-icon>
+ </icon>
+ <icon xml:lang="de" id="de-session2-icon-id">
+ <small-icon>de-session2-small-icon</small-icon>
+ <large-icon>de-session2-large-icon</large-icon>
+ </icon>
+
+ <ejb-name>session2</ejb-name>
+
+ <home>session2Home</home>
+ <remote>session2Remote</remote>
+ <local-home>session2LocalHome</local-home>
+ <local>session2Local</local>
+ <service-endpoint>session2ServiceEndpoint</service-endpoint>
+ <ejb-class>session2EjbClass</ejb-class>
+ <session-type>Stateless</session-type>
+ <transaction-type>Container</transaction-type>
+
+ <env-entry id="session2EnvEntry1-id">
+ <description>en-session2EnvEntry1-desc</description>
+ <description xml:lang="fr">fr-session2EnvEntry1-desc</description>
+ <description xml:lang="de">de-session2EnvEntry1-desc</description>
+ <env-entry-name>session2EnvEntry1Name</env-entry-name>
+ <env-entry-type>session2EnvEntry1Type</env-entry-type>
+ <env-entry-value>session2EnvEntry1Value</env-entry-value>
+ </env-entry>
+ <env-entry id="session2EnvEntry2-id">
+ <description>en-session2EnvEntry2-desc</description>
+ <description xml:lang="fr">fr-session2EnvEntry2-desc</description>
+ <description xml:lang="de">de-session2EnvEntry2-desc</description>
+ <env-entry-name>session2EnvEntry2Name</env-entry-name>
+ <env-entry-type>session2EnvEntry2Type</env-entry-type>
+ <env-entry-value>session2EnvEntry2Value</env-entry-value>
+ </env-entry>
+ <ejb-ref id="session2EjbRef1-id">
+ <description>en-session2EjbRef1-desc</description>
+ <description xml:lang="fr">fr-session2EjbRef1-desc</description>
+ <description xml:lang="de">de-session2EjbRef1-desc</description>
+ <ejb-ref-name>session2EjbRef1Name</ejb-ref-name>
+ <ejb-ref-type>Session</ejb-ref-type>
+ <home>session2EjbRef1Home</home>
+ <remote>session2EjbRef1Remote</remote>
+ <ejb-link>session2EjbRef1EjbLink</ejb-link>
+ </ejb-ref>
+ <ejb-ref id="session2EjbRef2-id">
+ <description>en-session2EjbRef2-desc</description>
+ <description xml:lang="fr">fr-session2EjbRef2-desc</description>
+ <description xml:lang="de">de-session2EjbRef2-desc</description>
+ <ejb-ref-name>session2EjbRef2Name</ejb-ref-name>
+ <ejb-ref-type>Entity</ejb-ref-type>
+ <home>session2EjbRef2Home</home>
+ <remote>session2EjbRef2Remote</remote>
+ <ejb-link>session2EjbRef2EjbLink</ejb-link>
+ </ejb-ref>
+ <ejb-local-ref id="session2EjbLocalRef1-id">
+ <description>en-session2EjbLocalRef1-desc</description>
+ <description xml:lang="fr">fr-session2EjbLocalRef1-desc</description>
+ <description xml:lang="de">de-session2EjbLocalRef1-desc</description>
+ <ejb-ref-name>session2EjbLocalRef1Name</ejb-ref-name>
+ <ejb-ref-type>Session</ejb-ref-type>
+ <local-home>session2EjbLocalRef1LocalHome</local-home>
+ <local>session2EjbLocalRef1Local</local>
+ <ejb-link>session2EjbLocalRef1EjbLink</ejb-link>
+ </ejb-local-ref>
+ <ejb-local-ref id="session2EjbLocalRef2-id">
+ <description>en-session2EjbLocalRef2-desc</description>
+ <description xml:lang="fr">fr-session2EjbLocalRef2-desc</description>
+ <description xml:lang="de">de-session2EjbLocalRef2-desc</description>
+ <ejb-ref-name>session2EjbLocalRef2Name</ejb-ref-name>
+ <ejb-ref-type>Entity</ejb-ref-type>
+ <local-home>session2EjbLocalRef2LocalHome</local-home>
+ <local>session2EjbLocalRef2Local</local>
+ <ejb-link>session2EjbLocalRef2EjbLink</ejb-link>
+ </ejb-local-ref>
+
+ <!-- TODO service-refGroup -->
+
+ <resource-ref id="session2ResourceRef1-id">
+ <description>en-session2ResourceRef1-desc</description>
+ <description xml:lang="fr">fr-session2ResourceRef1-desc</description>
+ <description xml:lang="de">de-session2ResourceRef1-desc</description>
+ <res-ref-name>session2ResourceRef1Name</res-ref-name>
+ <res-type>session2ResourceRef1Type</res-type>
+ <res-auth>Application</res-auth>
+ <res-sharing-scope>Shareable</res-sharing-scope>
+ </resource-ref>
+ <resource-ref id="session2ResourceRef2-id">
+ <description>en-session2ResourceRef2-desc</description>
+ <description xml:lang="fr">fr-session2ResourceRef2-desc</description>
+ <description xml:lang="de">de-session2ResourceRef2-desc</description>
+ <res-ref-name>session2ResourceRef2Name</res-ref-name>
+ <res-type>session2ResourceRef2Type</res-type>
+ <res-auth>Container</res-auth>
+ <res-sharing-scope>Unshareable</res-sharing-scope>
+ </resource-ref>
+ <resource-env-ref id="session2ResourceEnvRef1-id">
+ <description>en-session2ResourceEnvRef1-desc</description>
+ <description xml:lang="fr">fr-session2ResourceEnvRef1-desc</description>
+ <description xml:lang="de">de-session2ResourceEnvRef1-desc</description>
+ <resource-env-ref-name>session2ResourceEnvRef1Name</resource-env-ref-name>
+ <resource-env-ref-type>session2ResourceEnvRef1Type</resource-env-ref-type>
+ </resource-env-ref>
+ <resource-env-ref id="session2ResourceEnvRef2-id">
+ <description>en-session2ResourceEnvRef2-desc</description>
+ <description xml:lang="fr">fr-session2ResourceEnvRef2-desc</description>
+ <description xml:lang="de">de-session2ResourceEnvRef2-desc</description>
+ <resource-env-ref-name>session2ResourceEnvRef2Name</resource-env-ref-name>
+ <resource-env-ref-type>session2ResourceEnvRef2Type</resource-env-ref-type>
+ </resource-env-ref>
+ <message-destination-ref id="session2MessageDestinationRef1-id">
+ <description>en-session2MessageDestinationRef1-desc</description>
+ <description xml:lang="fr">fr-session2MessageDestinationRef1-desc</description>
+ <description xml:lang="de">de-session2MessageDestinationRef1-desc</description>
+ <message-destination-ref-name>session2MessageDestinationRef1Name</message-destination-ref-name>
+ <message-destination-type>session2MessageDestinationRef1Type</message-destination-type>
+ <message-destination-usage>Consumes</message-destination-usage>
+ <message-destination-link>session2MessageDestinationRef1Link</message-destination-link>
+ </message-destination-ref>
+ <message-destination-ref id="session2MessageDestinationRef2-id">
+ <description>en-session2MessageDestinationRef2-desc</description>
+ <description xml:lang="fr">fr-session2MessageDestinationRef2-desc</description>
+ <description xml:lang="de">de-session2MessageDestinationRef2-desc</description>
+ <message-destination-ref-name>session2MessageDestinationRef2Name</message-destination-ref-name>
+ <message-destination-type>session2MessageDestinationRef2Type</message-destination-type>
+ <message-destination-usage>Produces</message-destination-usage>
+ <message-destination-link>session2MessageDestinationRef2Link</message-destination-link>
+ </message-destination-ref>
+ <message-destination-ref id="session2MessageDestinationRef3-id">
+ <description>en-session2MessageDestinationRef3-desc</description>
+ <description xml:lang="fr">fr-session2MessageDestinationRef3-desc</description>
+ <description xml:lang="de">de-session2MessageDestinationRef3-desc</description>
+ <message-destination-ref-name>session2MessageDestinationRef3Name</message-destination-ref-name>
+ <message-destination-type>session2MessageDestinationRef3Type</message-destination-type>
+ <message-destination-usage>ConsumesProduces</message-destination-usage>
+ <message-destination-link>session2MessageDestinationRef3Link</message-destination-link>
+ </message-destination-ref>
+ <security-role-ref id="session2SecurityRoleRef1-id">
+ <description>en-session2SecurityRoleRef1-desc</description>
+ <description xml:lang="fr">fr-session2SecurityRoleRef1-desc</description>
+ <description xml:lang="de">de-session2SecurityRoleRef1-desc</description>
+ <role-name>session2SecurityRoleRef1RoleName</role-name>
+ <role-link>session2SecurityRoleRef1RoleLink</role-link>
+ </security-role-ref>
+ <security-role-ref id="session2SecurityRoleRef2-id">
+ <description>en-session2SecurityRoleRef2-desc</description>
+ <description xml:lang="fr">fr-session2SecurityRoleRef2-desc</description>
+ <description xml:lang="de">de-session2SecurityRoleRef2-desc</description>
+ <role-name>session2SecurityRoleRef2RoleName</role-name>
+ <role-link>session2SecurityRoleRef2RoleLink</role-link>
+ </security-role-ref>
+ <security-identity id="session2SecurityIdentity-id">
+ <description>en-session2SecurityIdentity-desc</description>
+ <description xml:lang="fr">fr-session2SecurityIdentity-desc</description>
+ <description xml:lang="de">de-session2SecurityIdentity-desc</description>
+ <use-caller-identity id="session2SecurityIdentityUseCallerIdentity-id"/>
+ <run-as id="session2SecurityIdentityRunAs-id">
+ <description>en-session2SecurityIdentityRunAs-desc</description>
+ <description xml:lang="fr">fr-session2SecurityIdentityRunAs-desc</description>
+ <description xml:lang="de">de-session2SecurityIdentityRunAs-desc</description>
+ <role-name>session2SecurityIdentityRunAsRoleName</role-name>
+ </run-as>
+ </security-identity>
+
+ </session>
+
+ <session>
+ <ejb-name>session3</ejb-name>
+ <ejb-class>session3EjbClass</ejb-class>
+ <session-type>Stateful</session-type>
+ </session>
+
+ <session>
+ <ejb-name>session4</ejb-name>
+ <ejb-class>session4EjbClass</ejb-class>
+ <session-type>Stateless</session-type>
+ <transaction-type>Bean</transaction-type>
+ </session>
+
+ <session>
+ <ejb-name>session5</ejb-name>
+ <ejb-class>session5EjbClass</ejb-class>
+ <session-type>Stateless</session-type>
+ <transaction-type>Container</transaction-type>
+ <security-identity/>
+ </session>
+
+ <entity>
+ <ejb-name>entity0</ejb-name>
+ </entity>
+
+ <entity id="entity1-id">
+
+ <description>en-entity1-desc</description>
+ <description xml:lang="fr">fr-entity1-desc</description>
+ <description xml:lang="de">de-entity1-desc</description>
+ <display-name>en-entity1-disp</display-name>
+ <display-name xml:lang="fr">fr-entity1-disp</display-name>
+ <display-name xml:lang="de">de-entity1-disp</display-name>
+ <icon id="en-entity1-icon-id">
+ <small-icon>en-entity1-small-icon</small-icon>
+ <large-icon>en-entity1-large-icon</large-icon>
+ </icon>
+ <icon xml:lang="fr" id="fr-entity1-icon-id">
+ <small-icon>fr-entity1-small-icon</small-icon>
+ <large-icon>fr-entity1-large-icon</large-icon>
+ </icon>
+ <icon xml:lang="de" id="de-entity1-icon-id">
+ <small-icon>de-entity1-small-icon</small-icon>
+ <large-icon>de-entity1-large-icon</large-icon>
+ </icon>
+
+ <ejb-name>entity1</ejb-name>
+
+ <home>entity1Home</home>
+ <remote>entity1Remote</remote>
+ <local-home>entity1LocalHome</local-home>
+ <local>entity1Local</local>
+ <ejb-class>entity1EjbClass</ejb-class>
+ <persistence-type>Container</persistence-type>
+ <prim-key-class>entity1PrimKeyClass</prim-key-class>
+ <reentrant>true</reentrant>
+ <cmp-version>2.x</cmp-version>
+ <abstract-schema-name>entity1AbstractSchemaName</abstract-schema-name>
+ <cmp-field id="entity1CmpField1-id">
+ <field-name>entity1CmpField1</field-name>
+ </cmp-field>
+ <cmp-field id="entity1CmpField2-id">
+ <field-name>entity1CmpField2</field-name>
+ </cmp-field>
+ <primkey-field>entity1PrimKeyField</primkey-field>
+
+ <env-entry id="entity1EnvEntry1-id">
+ <description>en-entity1EnvEntry1-desc</description>
+ <description xml:lang="fr">fr-entity1EnvEntry1-desc</description>
+ <description xml:lang="de">de-entity1EnvEntry1-desc</description>
+ <env-entry-name>entity1EnvEntry1Name</env-entry-name>
+ <env-entry-type>entity1EnvEntry1Type</env-entry-type>
+ <env-entry-value>entity1EnvEntry1Value</env-entry-value>
+ </env-entry>
+ <env-entry id="entity1EnvEntry2-id">
+ <description>en-entity1EnvEntry2-desc</description>
+ <description xml:lang="fr">fr-entity1EnvEntry2-desc</description>
+ <description xml:lang="de">de-entity1EnvEntry2-desc</description>
+ <env-entry-name>entity1EnvEntry2Name</env-entry-name>
+ <env-entry-type>entity1EnvEntry2Type</env-entry-type>
+ <env-entry-value>entity1EnvEntry2Value</env-entry-value>
+ </env-entry>
+ <ejb-ref id="entity1EjbRef1-id">
+ <description>en-entity1EjbRef1-desc</description>
+ <description xml:lang="fr">fr-entity1EjbRef1-desc</description>
+ <description xml:lang="de">de-entity1EjbRef1-desc</description>
+ <ejb-ref-name>entity1EjbRef1Name</ejb-ref-name>
+ <ejb-ref-type>Session</ejb-ref-type>
+ <home>entity1EjbRef1Home</home>
+ <remote>entity1EjbRef1Remote</remote>
+ <ejb-link>entity1EjbRef1EjbLink</ejb-link>
+ </ejb-ref>
+ <ejb-ref id="entity1EjbRef2-id">
+ <description>en-entity1EjbRef2-desc</description>
+ <description xml:lang="fr">fr-entity1EjbRef2-desc</description>
+ <description xml:lang="de">de-entity1EjbRef2-desc</description>
+ <ejb-ref-name>entity1EjbRef2Name</ejb-ref-name>
+ <ejb-ref-type>Entity</ejb-ref-type>
+ <home>entity1EjbRef2Home</home>
+ <remote>entity1EjbRef2Remote</remote>
+ <ejb-link>entity1EjbRef2EjbLink</ejb-link>
+ </ejb-ref>
+ <ejb-local-ref id="entity1EjbLocalRef1-id">
+ <description>en-entity1EjbLocalRef1-desc</description>
+ <description xml:lang="fr">fr-entity1EjbLocalRef1-desc</description>
+ <description xml:lang="de">de-entity1EjbLocalRef1-desc</description>
+ <ejb-ref-name>entity1EjbLocalRef1Name</ejb-ref-name>
+ <ejb-ref-type>Session</ejb-ref-type>
+ <local-home>entity1EjbLocalRef1LocalHome</local-home>
+ <local>entity1EjbLocalRef1Local</local>
+ <ejb-link>entity1EjbLocalRef1EjbLink</ejb-link>
+ </ejb-local-ref>
+ <ejb-local-ref id="entity1EjbLocalRef2-id">
+ <description>en-entity1EjbLocalRef2-desc</description>
+ <description xml:lang="fr">fr-entity1EjbLocalRef2-desc</description>
+ <description xml:lang="de">de-entity1EjbLocalRef2-desc</description>
+ <ejb-ref-name>entity1EjbLocalRef2Name</ejb-ref-name>
+ <ejb-ref-type>Entity</ejb-ref-type>
+ <local-home>entity1EjbLocalRef2LocalHome</local-home>
+ <local>entity1EjbLocalRef2Local</local>
+ <ejb-link>entity1EjbLocalRef2EjbLink</ejb-link>
+ </ejb-local-ref>
+
+ <!-- TODO service-refGroup -->
+
+ <resource-ref id="entity1ResourceRef1-id">
+ <description>en-entity1ResourceRef1-desc</description>
+ <description xml:lang="fr">fr-entity1ResourceRef1-desc</description>
+ <description xml:lang="de">de-entity1ResourceRef1-desc</description>
+ <res-ref-name>entity1ResourceRef1Name</res-ref-name>
+ <res-type>entity1ResourceRef1Type</res-type>
+ <res-auth>Application</res-auth>
+ <res-sharing-scope>Shareable</res-sharing-scope>
+ </resource-ref>
+ <resource-ref id="entity1ResourceRef2-id">
+ <description>en-entity1ResourceRef2-desc</description>
+ <description xml:lang="fr">fr-entity1ResourceRef2-desc</description>
+ <description xml:lang="de">de-entity1ResourceRef2-desc</description>
+ <res-ref-name>entity1ResourceRef2Name</res-ref-name>
+ <res-type>entity1ResourceRef2Type</res-type>
+ <res-auth>Container</res-auth>
+ <res-sharing-scope>Unshareable</res-sharing-scope>
+ </resource-ref>
+ <resource-env-ref id="entity1ResourceEnvRef1-id">
+ <description>en-entity1ResourceEnvRef1-desc</description>
+ <description xml:lang="fr">fr-entity1ResourceEnvRef1-desc</description>
+ <description xml:lang="de">de-entity1ResourceEnvRef1-desc</description>
+ <resource-env-ref-name>entity1ResourceEnvRef1Name</resource-env-ref-name>
+ <resource-env-ref-type>entity1ResourceEnvRef1Type</resource-env-ref-type>
+ </resource-env-ref>
+ <resource-env-ref id="entity1ResourceEnvRef2-id">
+ <description>en-entity1ResourceEnvRef2-desc</description>
+ <description xml:lang="fr">fr-entity1ResourceEnvRef2-desc</description>
+ <description xml:lang="de">de-entity1ResourceEnvRef2-desc</description>
+ <resource-env-ref-name>entity1ResourceEnvRef2Name</resource-env-ref-name>
+ <resource-env-ref-type>entity1ResourceEnvRef2Type</resource-env-ref-type>
+ </resource-env-ref>
+ <message-destination-ref id="entity1MessageDestinationRef1-id">
+ <description>en-entity1MessageDestinationRef1-desc</description>
+ <description xml:lang="fr">fr-entity1MessageDestinationRef1-desc</description>
+ <description xml:lang="de">de-entity1MessageDestinationRef1-desc</description>
+ <message-destination-ref-name>entity1MessageDestinationRef1Name</message-destination-ref-name>
+ <message-destination-type>entity1MessageDestinationRef1Type</message-destination-type>
+ <message-destination-usage>Consumes</message-destination-usage>
+ <message-destination-link>entity1MessageDestinationRef1Link</message-destination-link>
+ </message-destination-ref>
+ <message-destination-ref id="entity1MessageDestinationRef2-id">
+ <description>en-entity1MessageDestinationRef2-desc</description>
+ <description xml:lang="fr">fr-entity1MessageDestinationRef2-desc</description>
+ <description xml:lang="de">de-entity1MessageDestinationRef2-desc</description>
+ <message-destination-ref-name>entity1MessageDestinationRef2Name</message-destination-ref-name>
+ <message-destination-type>entity1MessageDestinationRef2Type</message-destination-type>
+ <message-destination-usage>Produces</message-destination-usage>
+ <message-destination-link>entity1MessageDestinationRef2Link</message-destination-link>
+ </message-destination-ref>
+ <message-destination-ref id="entity1MessageDestinationRef3-id">
+ <description>en-entity1MessageDestinationRef3-desc</description>
+ <description xml:lang="fr">fr-entity1MessageDestinationRef3-desc</description>
+ <description xml:lang="de">de-entity1MessageDestinationRef3-desc</description>
+ <message-destination-ref-name>entity1MessageDestinationRef3Name</message-destination-ref-name>
+ <message-destination-type>entity1MessageDestinationRef3Type</message-destination-type>
+ <message-destination-usage>ConsumesProduces</message-destination-usage>
+ <message-destination-link>entity1MessageDestinationRef3Link</message-destination-link>
+ </message-destination-ref>
+
+ <security-role-ref id="entity1SecurityRoleRef1-id">
+ <description>en-entity1SecurityRoleRef1-desc</description>
+ <description xml:lang="fr">fr-entity1SecurityRoleRef1-desc</description>
+ <description xml:lang="de">de-entity1SecurityRoleRef1-desc</description>
+ <role-name>entity1SecurityRoleRef1RoleName</role-name>
+ <role-link>entity1SecurityRoleRef1RoleLink</role-link>
+ </security-role-ref>
+ <security-role-ref id="entity1SecurityRoleRef2-id">
+ <description>en-entity1SecurityRoleRef2-desc</description>
+ <description xml:lang="fr">fr-entity1SecurityRoleRef2-desc</description>
+ <description xml:lang="de">de-entity1SecurityRoleRef2-desc</description>
+ <role-name>entity1SecurityRoleRef2RoleName</role-name>
+ <role-link>entity1SecurityRoleRef2RoleLink</role-link>
+ </security-role-ref>
+ <security-identity id="entity1SecurityIdentity-id">
+ <description>en-entity1SecurityIdentity-desc</description>
+ <description xml:lang="fr">fr-entity1SecurityIdentity-desc</description>
+ <description xml:lang="de">de-entity1SecurityIdentity-desc</description>
+ <use-caller-identity id="entity1SecurityIdentityUseCallerIdentity-id"/>
+ <run-as id="entity1SecurityIdentityRunAs-id">
+ <description>en-entity1SecurityIdentityRunAs-desc</description>
+ <description xml:lang="fr">fr-entity1SecurityIdentityRunAs-desc</description>
+ <description xml:lang="de">de-entity1SecurityIdentityRunAs-desc</description>
+ <role-name>entity1SecurityIdentityRunAsRoleName</role-name>
+ </run-as>
+ </security-identity>
+ <query id="entity1Query1-id">
+ <!-- TODO description>en-entity1Query1-desc</description -->
+ <query-method id="entity1Query1QueryMethod-id">
+ <method-name>entity1Query1QueryMethod</method-name>
+ <method-params>
+ <method-param>entity1Query1QueryMethodParam1</method-param>
+ <method-param>entity1Query1QueryMethodParam2</method-param>
+ </method-params>
+ </query-method>
+ <result-type-mapping>Local</result-type-mapping>
+ <ejb-ql>entity1Query1EjbQL</ejb-ql>
+ </query>
+ <query id="entity1Query2-id">
+ <!-- TODO description>en-entity1Query2-desc</description -->
+ <query-method id="entity1Query2QueryMethod-id">
+ <method-name>entity1Query2QueryMethod</method-name>
+ <method-params>
+ <method-param>entity1Query2QueryMethodParam1</method-param>
+ <method-param>entity1Query2QueryMethodParam2</method-param>
+ </method-params>
+ </query-method>
+ <result-type-mapping>Remote</result-type-mapping>
+ <ejb-ql>entity1Query2EjbQL</ejb-ql>
+ </query>
+
+ </entity>
+
+ <entity id="entity2-id">
+
+ <description>en-entity2-desc</description>
+ <description xml:lang="fr">fr-entity2-desc</description>
+ <description xml:lang="de">de-entity2-desc</description>
+ <display-name>en-entity2-disp</display-name>
+ <display-name xml:lang="fr">fr-entity2-disp</display-name>
+ <display-name xml:lang="de">de-entity2-disp</display-name>
+ <icon id="en-entity2-icon-id">
+ <small-icon>en-entity2-small-icon</small-icon>
+ <large-icon>en-entity2-large-icon</large-icon>
+ </icon>
+ <icon xml:lang="fr" id="fr-entity2-icon-id">
+ <small-icon>fr-entity2-small-icon</small-icon>
+ <large-icon>fr-entity2-large-icon</large-icon>
+ </icon>
+ <icon xml:lang="de" id="de-entity2-icon-id">
+ <small-icon>de-entity2-small-icon</small-icon>
+ <large-icon>de-entity2-large-icon</large-icon>
+ </icon>
+
+ <ejb-name>entity2</ejb-name>
+
+ <home>entity2Home</home>
+ <remote>entity2Remote</remote>
+ <local-home>entity2LocalHome</local-home>
+ <local>entity2Local</local>
+ <ejb-class>entity2EjbClass</ejb-class>
+ <persistence-type>Container</persistence-type>
+ <prim-key-class>entity2PrimKeyClass</prim-key-class>
+ <reentrant>true</reentrant>
+ <cmp-version>2.x</cmp-version>
+ <abstract-schema-name>entity2AbstractSchemaName</abstract-schema-name>
+ <cmp-field id="entity2CmpField1-id">
+ <field-name>entity2CmpField1</field-name>
+ </cmp-field>
+ <cmp-field id="entity2CmpField2-id">
+ <field-name>entity2CmpField2</field-name>
+ </cmp-field>
+ <primkey-field>entity2PrimKeyField</primkey-field>
+
+ <env-entry id="entity2EnvEntry1-id">
+ <description>en-entity2EnvEntry1-desc</description>
+ <description xml:lang="fr">fr-entity2EnvEntry1-desc</description>
+ <description xml:lang="de">de-entity2EnvEntry1-desc</description>
+ <env-entry-name>entity2EnvEntry1Name</env-entry-name>
+ <env-entry-type>entity2EnvEntry1Type</env-entry-type>
+ <env-entry-value>entity2EnvEntry1Value</env-entry-value>
+ </env-entry>
+ <env-entry id="entity2EnvEntry2-id">
+ <description>en-entity2EnvEntry2-desc</description>
+ <description xml:lang="fr">fr-entity2EnvEntry2-desc</description>
+ <description xml:lang="de">de-entity2EnvEntry2-desc</description>
+ <env-entry-name>entity2EnvEntry2Name</env-entry-name>
+ <env-entry-type>entity2EnvEntry2Type</env-entry-type>
+ <env-entry-value>entity2EnvEntry2Value</env-entry-value>
+ </env-entry>
+ <ejb-ref id="entity2EjbRef1-id">
+ <description>en-entity2EjbRef1-desc</description>
+ <description xml:lang="fr">fr-entity2EjbRef1-desc</description>
+ <description xml:lang="de">de-entity2EjbRef1-desc</description>
+ <ejb-ref-name>entity2EjbRef1Name</ejb-ref-name>
+ <ejb-ref-type>Session</ejb-ref-type>
+ <home>entity2EjbRef1Home</home>
+ <remote>entity2EjbRef1Remote</remote>
+ <ejb-link>entity2EjbRef1EjbLink</ejb-link>
+ </ejb-ref>
+ <ejb-ref id="entity2EjbRef2-id">
+ <description>en-entity2EjbRef2-desc</description>
+ <description xml:lang="fr">fr-entity2EjbRef2-desc</description>
+ <description xml:lang="de">de-entity2EjbRef2-desc</description>
+ <ejb-ref-name>entity2EjbRef2Name</ejb-ref-name>
+ <ejb-ref-type>Entity</ejb-ref-type>
+ <home>entity2EjbRef2Home</home>
+ <remote>entity2EjbRef2Remote</remote>
+ <ejb-link>entity2EjbRef2EjbLink</ejb-link>
+ </ejb-ref>
+ <ejb-local-ref id="entity2EjbLocalRef1-id">
+ <description>en-entity2EjbLocalRef1-desc</description>
+ <description xml:lang="fr">fr-entity2EjbLocalRef1-desc</description>
+ <description xml:lang="de">de-entity2EjbLocalRef1-desc</description>
+ <ejb-ref-name>entity2EjbLocalRef1Name</ejb-ref-name>
+ <ejb-ref-type>Session</ejb-ref-type>
+ <local-home>entity2EjbLocalRef1LocalHome</local-home>
+ <local>entity2EjbLocalRef1Local</local>
+ <ejb-link>entity2EjbLocalRef1EjbLink</ejb-link>
+ </ejb-local-ref>
+ <ejb-local-ref id="entity2EjbLocalRef2-id">
+ <description>en-entity2EjbLocalRef2-desc</description>
+ <description xml:lang="fr">fr-entity2EjbLocalRef2-desc</description>
+ <description xml:lang="de">de-entity2EjbLocalRef2-desc</description>
+ <ejb-ref-name>entity2EjbLocalRef2Name</ejb-ref-name>
+ <ejb-ref-type>Entity</ejb-ref-type>
+ <local-home>entity2EjbLocalRef2LocalHome</local-home>
+ <local>entity2EjbLocalRef2Local</local>
+ <ejb-link>entity2EjbLocalRef2EjbLink</ejb-link>
+ </ejb-local-ref>
+
+ <!-- TODO service-refGroup -->
+
+ <resource-ref id="entity2ResourceRef1-id">
+ <description>en-entity2ResourceRef1-desc</description>
+ <description xml:lang="fr">fr-entity2ResourceRef1-desc</description>
+ <description xml:lang="de">de-entity2ResourceRef1-desc</description>
+ <res-ref-name>entity2ResourceRef1Name</res-ref-name>
+ <res-type>entity2ResourceRef1Type</res-type>
+ <res-auth>Application</res-auth>
+ <res-sharing-scope>Shareable</res-sharing-scope>
+ </resource-ref>
+ <resource-ref id="entity2ResourceRef2-id">
+ <description>en-entity2ResourceRef2-desc</description>
+ <description xml:lang="fr">fr-entity2ResourceRef2-desc</description>
+ <description xml:lang="de">de-entity2ResourceRef2-desc</description>
+ <res-ref-name>entity2ResourceRef2Name</res-ref-name>
+ <res-type>entity2ResourceRef2Type</res-type>
+ <res-auth>Container</res-auth>
+ <res-sharing-scope>Unshareable</res-sharing-scope>
+ </resource-ref>
+ <resource-env-ref id="entity2ResourceEnvRef1-id">
+ <description>en-entity2ResourceEnvRef1-desc</description>
+ <description xml:lang="fr">fr-entity2ResourceEnvRef1-desc</description>
+ <description xml:lang="de">de-entity2ResourceEnvRef1-desc</description>
+ <resource-env-ref-name>entity2ResourceEnvRef1Name</resource-env-ref-name>
+ <resource-env-ref-type>entity2ResourceEnvRef1Type</resource-env-ref-type>
+ </resource-env-ref>
+ <resource-env-ref id="entity2ResourceEnvRef2-id">
+ <description>en-entity2ResourceEnvRef2-desc</description>
+ <description xml:lang="fr">fr-entity2ResourceEnvRef2-desc</description>
+ <description xml:lang="de">de-entity2ResourceEnvRef2-desc</description>
+ <resource-env-ref-name>entity2ResourceEnvRef2Name</resource-env-ref-name>
+ <resource-env-ref-type>entity2ResourceEnvRef2Type</resource-env-ref-type>
+ </resource-env-ref>
+ <message-destination-ref id="entity2MessageDestinationRef1-id">
+ <description>en-entity2MessageDestinationRef1-desc</description>
+ <description xml:lang="fr">fr-entity2MessageDestinationRef1-desc</description>
+ <description xml:lang="de">de-entity2MessageDestinationRef1-desc</description>
+ <message-destination-ref-name>entity2MessageDestinationRef1Name</message-destination-ref-name>
+ <message-destination-type>entity2MessageDestinationRef1Type</message-destination-type>
+ <message-destination-usage>Consumes</message-destination-usage>
+ <message-destination-link>entity2MessageDestinationRef1Link</message-destination-link>
+ </message-destination-ref>
+ <message-destination-ref id="entity2MessageDestinationRef2-id">
+ <description>en-entity2MessageDestinationRef2-desc</description>
+ <description xml:lang="fr">fr-entity2MessageDestinationRef2-desc</description>
+ <description xml:lang="de">de-entity2MessageDestinationRef2-desc</description>
+ <message-destination-ref-name>entity2MessageDestinationRef2Name</message-destination-ref-name>
+ <message-destination-type>entity2MessageDestinationRef2Type</message-destination-type>
+ <message-destination-usage>Produces</message-destination-usage>
+ <message-destination-link>entity2MessageDestinationRef2Link</message-destination-link>
+ </message-destination-ref>
+ <message-destination-ref id="entity2MessageDestinationRef3-id">
+ <description>en-entity2MessageDestinationRef3-desc</description>
+ <description xml:lang="fr">fr-entity2MessageDestinationRef3-desc</description>
+ <description xml:lang="de">de-entity2MessageDestinationRef3-desc</description>
+ <message-destination-ref-name>entity2MessageDestinationRef3Name</message-destination-ref-name>
+ <message-destination-type>entity2MessageDestinationRef3Type</message-destination-type>
+ <message-destination-usage>ConsumesProduces</message-destination-usage>
+ <message-destination-link>entity2MessageDestinationRef3Link</message-destination-link>
+ </message-destination-ref>
+
+ <security-role-ref id="entity2SecurityRoleRef1-id">
+ <description>en-entity2SecurityRoleRef1-desc</description>
+ <description xml:lang="fr">fr-entity2SecurityRoleRef1-desc</description>
+ <description xml:lang="de">de-entity2SecurityRoleRef1-desc</description>
+ <role-name>entity2SecurityRoleRef1RoleName</role-name>
+ <role-link>entity2SecurityRoleRef1RoleLink</role-link>
+ </security-role-ref>
+ <security-role-ref id="entity2SecurityRoleRef2-id">
+ <description>en-entity2SecurityRoleRef2-desc</description>
+ <description xml:lang="fr">fr-entity2SecurityRoleRef2-desc</description>
+ <description xml:lang="de">de-entity2SecurityRoleRef2-desc</description>
+ <role-name>entity2SecurityRoleRef2RoleName</role-name>
+ <role-link>entity2SecurityRoleRef2RoleLink</role-link>
+ </security-role-ref>
+ <security-identity id="entity2SecurityIdentity-id">
+ <description>en-entity2SecurityIdentity-desc</description>
+ <description xml:lang="fr">fr-entity2SecurityIdentity-desc</description>
+ <description xml:lang="de">de-entity2SecurityIdentity-desc</description>
+ <use-caller-identity id="entity2SecurityIdentityUseCallerIdentity-id"/>
+ <run-as id="entity2SecurityIdentityRunAs-id">
+ <description>en-entity2SecurityIdentityRunAs-desc</description>
+ <description xml:lang="fr">fr-entity2SecurityIdentityRunAs-desc</description>
+ <description xml:lang="de">de-entity2SecurityIdentityRunAs-desc</description>
+ <role-name>entity2SecurityIdentityRunAsRoleName</role-name>
+ </run-as>
+ </security-identity>
+ <query id="entity2Query1-id">
+ <!-- TODO description>en-entity2Query1-desc</description -->
+ <query-method id="entity2Query1QueryMethod-id">
+ <method-name>entity2Query1QueryMethod</method-name>
+ <method-params>
+ <method-param>entity2Query1QueryMethodParam1</method-param>
+ <method-param>entity2Query1QueryMethodParam2</method-param>
+ </method-params>
+ </query-method>
+ <result-type-mapping>Local</result-type-mapping>
+ <ejb-ql>entity2Query1EjbQL</ejb-ql>
+ </query>
+ <query id="entity2Query2-id">
+ <!-- TODO description>en-entity2Query2-desc</description -->
+ <query-method id="entity2Query2QueryMethod-id">
+ <method-name>entity2Query2QueryMethod</method-name>
+ <method-params>
+ <method-param>entity2Query2QueryMethodParam1</method-param>
+ <method-param>entity2Query2QueryMethodParam2</method-param>
+ </method-params>
+ </query-method>
+ <result-type-mapping>Remote</result-type-mapping>
+ <ejb-ql>entity2Query2EjbQL</ejb-ql>
+ </query>
+
+ </entity>
+
+ <entity>
+ <ejb-name>entity3</ejb-name>
+ <ejb-class>entity3Class</ejb-class>
+ <persistence-type>Bean</persistence-type>
+ </entity>
+
+ <entity>
+ <ejb-name>entity4</ejb-name>
+ <ejb-class>entity4Class</ejb-class>
+ <persistence-type>Container</persistence-type>
+ <prim-key-class>java.lang.Object</prim-key-class>
+ <reentrant>false</reentrant>
+ </entity>
+
+ <entity>
+ <ejb-name>entity5</ejb-name>
+ <ejb-class>entity5Class</ejb-class>
+ <persistence-type>Container</persistence-type>
+ <prim-key-class>java.lang.Object</prim-key-class>
+ <reentrant>false</reentrant>
+ <cmp-version>1.x</cmp-version>
+ </entity>
+
+ <message-driven>
+ <ejb-name>mdb0</ejb-name>
+ </message-driven>
+
+ <message-driven id="mdb1-id">
+
+ <description>en-mdb1-desc</description>
+ <description xml:lang="fr">fr-mdb1-desc</description>
+ <description xml:lang="de">de-mdb1-desc</description>
+ <display-name>en-mdb1-disp</display-name>
+ <display-name xml:lang="fr">fr-mdb1-disp</display-name>
+ <display-name xml:lang="de">de-mdb1-disp</display-name>
+ <icon id="en-mdb1-icon-id">
+ <small-icon>en-mdb1-small-icon</small-icon>
+ <large-icon>en-mdb1-large-icon</large-icon>
+ </icon>
+ <icon xml:lang="fr" id="fr-mdb1-icon-id">
+ <small-icon>fr-mdb1-small-icon</small-icon>
+ <large-icon>fr-mdb1-large-icon</large-icon>
+ </icon>
+ <icon xml:lang="de" id="de-mdb1-icon-id">
+ <small-icon>de-mdb1-small-icon</small-icon>
+ <large-icon>de-mdb1-large-icon</large-icon>
+ </icon>
+
+ <ejb-name>mdb1</ejb-name>
+
+ <ejb-class>mdb1EjbClass</ejb-class>
+ <messaging-type>mdb1MessagingType</messaging-type>
+ <transaction-type>Container</transaction-type>
+ <message-destination-type>mdb1MessageDestinationType</message-destination-type>
+ <message-destination-link>mdb1MessageDestinationLink</message-destination-link>
+ <activation-config id="mdb1ActivationConfig-id">
+ <activation-config-property id="mdb1ActivationConfigProperty1-id">
+ <activation-config-property-name>mdb1ActivationConfigProperty1Name</activation-config-property-name>
+ <activation-config-property-value>mdb1ActivationConfigProperty1Value</activation-config-property-value>
+ </activation-config-property>
+ <activation-config-property id="mdb1ActivationConfigProperty2-id">
+ <activation-config-property-name>mdb1ActivationConfigProperty2Name</activation-config-property-name>
+ <activation-config-property-value>mdb1ActivationConfigProperty2Value</activation-config-property-value>
+ </activation-config-property>
+ </activation-config>
+
+ <env-entry id="mdb1EnvEntry1-id">
+ <description>en-mdb1EnvEntry1-desc</description>
+ <description xml:lang="fr">fr-mdb1EnvEntry1-desc</description>
+ <description xml:lang="de">de-mdb1EnvEntry1-desc</description>
+ <env-entry-name>mdb1EnvEntry1Name</env-entry-name>
+ <env-entry-type>mdb1EnvEntry1Type</env-entry-type>
+ <env-entry-value>mdb1EnvEntry1Value</env-entry-value>
+ </env-entry>
+ <env-entry id="mdb1EnvEntry2-id">
+ <description>en-mdb1EnvEntry2-desc</description>
+ <description xml:lang="fr">fr-mdb1EnvEntry2-desc</description>
+ <description xml:lang="de">de-mdb1EnvEntry2-desc</description>
+ <env-entry-name>mdb1EnvEntry2Name</env-entry-name>
+ <env-entry-type>mdb1EnvEntry2Type</env-entry-type>
+ <env-entry-value>mdb1EnvEntry2Value</env-entry-value>
+ </env-entry>
+ <ejb-ref id="mdb1EjbRef1-id">
+ <description>en-mdb1EjbRef1-desc</description>
+ <description xml:lang="fr">fr-mdb1EjbRef1-desc</description>
+ <description xml:lang="de">de-mdb1EjbRef1-desc</description>
+ <ejb-ref-name>mdb1EjbRef1Name</ejb-ref-name>
+ <ejb-ref-type>Session</ejb-ref-type>
+ <home>mdb1EjbRef1Home</home>
+ <remote>mdb1EjbRef1Remote</remote>
+ <ejb-link>mdb1EjbRef1EjbLink</ejb-link>
+ </ejb-ref>
+ <ejb-ref id="mdb1EjbRef2-id">
+ <description>en-mdb1EjbRef2-desc</description>
+ <description xml:lang="fr">fr-mdb1EjbRef2-desc</description>
+ <description xml:lang="de">de-mdb1EjbRef2-desc</description>
+ <ejb-ref-name>mdb1EjbRef2Name</ejb-ref-name>
+ <ejb-ref-type>Entity</ejb-ref-type>
+ <home>mdb1EjbRef2Home</home>
+ <remote>mdb1EjbRef2Remote</remote>
+ <ejb-link>mdb1EjbRef2EjbLink</ejb-link>
+ </ejb-ref>
+ <ejb-local-ref id="mdb1EjbLocalRef1-id">
+ <description>en-mdb1EjbLocalRef1-desc</description>
+ <description xml:lang="fr">fr-mdb1EjbLocalRef1-desc</description>
+ <description xml:lang="de">de-mdb1EjbLocalRef1-desc</description>
+ <ejb-ref-name>mdb1EjbLocalRef1Name</ejb-ref-name>
+ <ejb-ref-type>Session</ejb-ref-type>
+ <local-home>mdb1EjbLocalRef1LocalHome</local-home>
+ <local>mdb1EjbLocalRef1Local</local>
+ <ejb-link>mdb1EjbLocalRef1EjbLink</ejb-link>
+ </ejb-local-ref>
+ <ejb-local-ref id="mdb1EjbLocalRef2-id">
+ <description>en-mdb1EjbLocalRef2-desc</description>
+ <description xml:lang="fr">fr-mdb1EjbLocalRef2-desc</description>
+ <description xml:lang="de">de-mdb1EjbLocalRef2-desc</description>
+ <ejb-ref-name>mdb1EjbLocalRef2Name</ejb-ref-name>
+ <ejb-ref-type>Entity</ejb-ref-type>
+ <local-home>mdb1EjbLocalRef2LocalHome</local-home>
+ <local>mdb1EjbLocalRef2Local</local>
+ <ejb-link>mdb1EjbLocalRef2EjbLink</ejb-link>
+ </ejb-local-ref>
+
+ <!-- TODO service-refGroup -->
+
+ <resource-ref id="mdb1ResourceRef1-id">
+ <description>en-mdb1ResourceRef1-desc</description>
+ <description xml:lang="fr">fr-mdb1ResourceRef1-desc</description>
+ <description xml:lang="de">de-mdb1ResourceRef1-desc</description>
+ <res-ref-name>mdb1ResourceRef1Name</res-ref-name>
+ <res-type>mdb1ResourceRef1Type</res-type>
+ <res-auth>Application</res-auth>
+ <res-sharing-scope>Shareable</res-sharing-scope>
+ </resource-ref>
+ <resource-ref id="mdb1ResourceRef2-id">
+ <description>en-mdb1ResourceRef2-desc</description>
+ <description xml:lang="fr">fr-mdb1ResourceRef2-desc</description>
+ <description xml:lang="de">de-mdb1ResourceRef2-desc</description>
+ <res-ref-name>mdb1ResourceRef2Name</res-ref-name>
+ <res-type>mdb1ResourceRef2Type</res-type>
+ <res-auth>Container</res-auth>
+ <res-sharing-scope>Unshareable</res-sharing-scope>
+ </resource-ref>
+ <resource-env-ref id="mdb1ResourceEnvRef1-id">
+ <description>en-mdb1ResourceEnvRef1-desc</description>
+ <description xml:lang="fr">fr-mdb1ResourceEnvRef1-desc</description>
+ <description xml:lang="de">de-mdb1ResourceEnvRef1-desc</description>
+ <resource-env-ref-name>mdb1ResourceEnvRef1Name</resource-env-ref-name>
+ <resource-env-ref-type>mdb1ResourceEnvRef1Type</resource-env-ref-type>
+ </resource-env-ref>
+ <resource-env-ref id="mdb1ResourceEnvRef2-id">
+ <description>en-mdb1ResourceEnvRef2-desc</description>
+ <description xml:lang="fr">fr-mdb1ResourceEnvRef2-desc</description>
+ <description xml:lang="de">de-mdb1ResourceEnvRef2-desc</description>
+ <resource-env-ref-name>mdb1ResourceEnvRef2Name</resource-env-ref-name>
+ <resource-env-ref-type>mdb1ResourceEnvRef2Type</resource-env-ref-type>
+ </resource-env-ref>
+ <message-destination-ref id="mdb1MessageDestinationRef1-id">
+ <description>en-mdb1MessageDestinationRef1-desc</description>
+ <description xml:lang="fr">fr-mdb1MessageDestinationRef1-desc</description>
+ <description xml:lang="de">de-mdb1MessageDestinationRef1-desc</description>
+ <message-destination-ref-name>mdb1MessageDestinationRef1Name</message-destination-ref-name>
+ <message-destination-type>mdb1MessageDestinationRef1Type</message-destination-type>
+ <message-destination-usage>Consumes</message-destination-usage>
+ <message-destination-link>mdb1MessageDestinationRef1Link</message-destination-link>
+ </message-destination-ref>
+ <message-destination-ref id="mdb1MessageDestinationRef2-id">
+ <description>en-mdb1MessageDestinationRef2-desc</description>
+ <description xml:lang="fr">fr-mdb1MessageDestinationRef2-desc</description>
+ <description xml:lang="de">de-mdb1MessageDestinationRef2-desc</description>
+ <message-destination-ref-name>mdb1MessageDestinationRef2Name</message-destination-ref-name>
+ <message-destination-type>mdb1MessageDestinationRef2Type</message-destination-type>
+ <message-destination-usage>Produces</message-destination-usage>
+ <message-destination-link>mdb1MessageDestinationRef2Link</message-destination-link>
+ </message-destination-ref>
+ <message-destination-ref id="mdb1MessageDestinationRef3-id">
+ <description>en-mdb1MessageDestinationRef3-desc</description>
+ <description xml:lang="fr">fr-mdb1MessageDestinationRef3-desc</description>
+ <description xml:lang="de">de-mdb1MessageDestinationRef3-desc</description>
+ <message-destination-ref-name>mdb1MessageDestinationRef3Name</message-destination-ref-name>
+ <message-destination-type>mdb1MessageDestinationRef3Type</message-destination-type>
+ <message-destination-usage>ConsumesProduces</message-destination-usage>
+ <message-destination-link>mdb1MessageDestinationRef3Link</message-destination-link>
+ </message-destination-ref>
+
+ <security-identity id="mdb1SecurityIdentity-id">
+ <description>en-mdb1SecurityIdentity-desc</description>
+ <description xml:lang="fr">fr-mdb1SecurityIdentity-desc</description>
+ <description xml:lang="de">de-mdb1SecurityIdentity-desc</description>
+ <use-caller-identity id="mdb1SecurityIdentityUseCallerIdentity-id"/>
+ <run-as id="mdb1SecurityIdentityRunAs-id">
+ <description>en-mdb1SecurityIdentityRunAs-desc</description>
+ <description xml:lang="fr">fr-mdb1SecurityIdentityRunAs-desc</description>
+ <description xml:lang="de">de-mdb1SecurityIdentityRunAs-desc</description>
+ <role-name>mdb1SecurityIdentityRunAsRoleName</role-name>
+ </run-as>
+ </security-identity>
+
+ </message-driven>
+
+ <message-driven id="mdb2-id">
+
+ <description>en-mdb2-desc</description>
+ <description xml:lang="fr">fr-mdb2-desc</description>
+ <description xml:lang="de">de-mdb2-desc</description>
+ <display-name>en-mdb2-disp</display-name>
+ <display-name xml:lang="fr">fr-mdb2-disp</display-name>
+ <display-name xml:lang="de">de-mdb2-disp</display-name>
+ <icon id="en-mdb2-icon-id">
+ <small-icon>en-mdb2-small-icon</small-icon>
+ <large-icon>en-mdb2-large-icon</large-icon>
+ </icon>
+ <icon xml:lang="fr" id="fr-mdb2-icon-id">
+ <small-icon>fr-mdb2-small-icon</small-icon>
+ <large-icon>fr-mdb2-large-icon</large-icon>
+ </icon>
+ <icon xml:lang="de" id="de-mdb2-icon-id">
+ <small-icon>de-mdb2-small-icon</small-icon>
+ <large-icon>de-mdb2-large-icon</large-icon>
+ </icon>
+
+ <ejb-name>mdb2</ejb-name>
+
+ <ejb-class>mdb2EjbClass</ejb-class>
+ <messaging-type>mdb2MessagingType</messaging-type>
+ <transaction-type>Container</transaction-type>
+ <message-destination-type>mdb2MessageDestinationType</message-destination-type>
+ <message-destination-link>mdb2MessageDestinationLink</message-destination-link>
+ <activation-config id="mdb2ActivationConfig-id">
+ <activation-config-property id="mdb2ActivationConfigProperty1-id">
+ <activation-config-property-name>mdb2ActivationConfigProperty1Name</activation-config-property-name>
+ <activation-config-property-value>mdb2ActivationConfigProperty1Value</activation-config-property-value>
+ </activation-config-property>
+ <activation-config-property id="mdb2ActivationConfigProperty2-id">
+ <activation-config-property-name>mdb2ActivationConfigProperty2Name</activation-config-property-name>
+ <activation-config-property-value>mdb2ActivationConfigProperty2Value</activation-config-property-value>
+ </activation-config-property>
+ </activation-config>
+
+ <env-entry id="mdb2EnvEntry1-id">
+ <description>en-mdb2EnvEntry1-desc</description>
+ <description xml:lang="fr">fr-mdb2EnvEntry1-desc</description>
+ <description xml:lang="de">de-mdb2EnvEntry1-desc</description>
+ <env-entry-name>mdb2EnvEntry1Name</env-entry-name>
+ <env-entry-type>mdb2EnvEntry1Type</env-entry-type>
+ <env-entry-value>mdb2EnvEntry1Value</env-entry-value>
+ </env-entry>
+ <env-entry id="mdb2EnvEntry2-id">
+ <description>en-mdb2EnvEntry2-desc</description>
+ <description xml:lang="fr">fr-mdb2EnvEntry2-desc</description>
+ <description xml:lang="de">de-mdb2EnvEntry2-desc</description>
+ <env-entry-name>mdb2EnvEntry2Name</env-entry-name>
+ <env-entry-type>mdb2EnvEntry2Type</env-entry-type>
+ <env-entry-value>mdb2EnvEntry2Value</env-entry-value>
+ </env-entry>
+ <ejb-ref id="mdb2EjbRef1-id">
+ <description>en-mdb2EjbRef1-desc</description>
+ <description xml:lang="fr">fr-mdb2EjbRef1-desc</description>
+ <description xml:lang="de">de-mdb2EjbRef1-desc</description>
+ <ejb-ref-name>mdb2EjbRef1Name</ejb-ref-name>
+ <ejb-ref-type>Session</ejb-ref-type>
+ <home>mdb2EjbRef1Home</home>
+ <remote>mdb2EjbRef1Remote</remote>
+ <ejb-link>mdb2EjbRef1EjbLink</ejb-link>
+ </ejb-ref>
+ <ejb-ref id="mdb2EjbRef2-id">
+ <description>en-mdb2EjbRef2-desc</description>
+ <description xml:lang="fr">fr-mdb2EjbRef2-desc</description>
+ <description xml:lang="de">de-mdb2EjbRef2-desc</description>
+ <ejb-ref-name>mdb2EjbRef2Name</ejb-ref-name>
+ <ejb-ref-type>Entity</ejb-ref-type>
+ <home>mdb2EjbRef2Home</home>
+ <remote>mdb2EjbRef2Remote</remote>
+ <ejb-link>mdb2EjbRef2EjbLink</ejb-link>
+ </ejb-ref>
+ <ejb-local-ref id="mdb2EjbLocalRef1-id">
+ <description>en-mdb2EjbLocalRef1-desc</description>
+ <description xml:lang="fr">fr-mdb2EjbLocalRef1-desc</description>
+ <description xml:lang="de">de-mdb2EjbLocalRef1-desc</description>
+ <ejb-ref-name>mdb2EjbLocalRef1Name</ejb-ref-name>
+ <ejb-ref-type>Session</ejb-ref-type>
+ <local-home>mdb2EjbLocalRef1LocalHome</local-home>
+ <local>mdb2EjbLocalRef1Local</local>
+ <ejb-link>mdb2EjbLocalRef1EjbLink</ejb-link>
+ </ejb-local-ref>
+ <ejb-local-ref id="mdb2EjbLocalRef2-id">
+ <description>en-mdb2EjbLocalRef2-desc</description>
+ <description xml:lang="fr">fr-mdb2EjbLocalRef2-desc</description>
+ <description xml:lang="de">de-mdb2EjbLocalRef2-desc</description>
+ <ejb-ref-name>mdb2EjbLocalRef2Name</ejb-ref-name>
+ <ejb-ref-type>Entity</ejb-ref-type>
+ <local-home>mdb2EjbLocalRef2LocalHome</local-home>
+ <local>mdb2EjbLocalRef2Local</local>
+ <ejb-link>mdb2EjbLocalRef2EjbLink</ejb-link>
+ </ejb-local-ref>
+
+ <!-- TODO service-refGroup -->
+
+ <resource-ref id="mdb2ResourceRef1-id">
+ <description>en-mdb2ResourceRef1-desc</description>
+ <description xml:lang="fr">fr-mdb2ResourceRef1-desc</description>
+ <description xml:lang="de">de-mdb2ResourceRef1-desc</description>
+ <res-ref-name>mdb2ResourceRef1Name</res-ref-name>
+ <res-type>mdb2ResourceRef1Type</res-type>
+ <res-auth>Application</res-auth>
+ <res-sharing-scope>Shareable</res-sharing-scope>
+ </resource-ref>
+ <resource-ref id="mdb2ResourceRef2-id">
+ <description>en-mdb2ResourceRef2-desc</description>
+ <description xml:lang="fr">fr-mdb2ResourceRef2-desc</description>
+ <description xml:lang="de">de-mdb2ResourceRef2-desc</description>
+ <res-ref-name>mdb2ResourceRef2Name</res-ref-name>
+ <res-type>mdb2ResourceRef2Type</res-type>
+ <res-auth>Container</res-auth>
+ <res-sharing-scope>Unshareable</res-sharing-scope>
+ </resource-ref>
+ <resource-env-ref id="mdb2ResourceEnvRef1-id">
+ <description>en-mdb2ResourceEnvRef1-desc</description>
+ <description xml:lang="fr">fr-mdb2ResourceEnvRef1-desc</description>
+ <description xml:lang="de">de-mdb2ResourceEnvRef1-desc</description>
+ <resource-env-ref-name>mdb2ResourceEnvRef1Name</resource-env-ref-name>
+ <resource-env-ref-type>mdb2ResourceEnvRef1Type</resource-env-ref-type>
+ </resource-env-ref>
+ <resource-env-ref id="mdb2ResourceEnvRef2-id">
+ <description>en-mdb2ResourceEnvRef2-desc</description>
+ <description xml:lang="fr">fr-mdb2ResourceEnvRef2-desc</description>
+ <description xml:lang="de">de-mdb2ResourceEnvRef2-desc</description>
+ <resource-env-ref-name>mdb2ResourceEnvRef2Name</resource-env-ref-name>
+ <resource-env-ref-type>mdb2ResourceEnvRef2Type</resource-env-ref-type>
+ </resource-env-ref>
+ <message-destination-ref id="mdb2MessageDestinationRef1-id">
+ <description>en-mdb2MessageDestinationRef1-desc</description>
+ <description xml:lang="fr">fr-mdb2MessageDestinationRef1-desc</description>
+ <description xml:lang="de">de-mdb2MessageDestinationRef1-desc</description>
+ <message-destination-ref-name>mdb2MessageDestinationRef1Name</message-destination-ref-name>
+ <message-destination-type>mdb2MessageDestinationRef1Type</message-destination-type>
+ <message-destination-usage>Consumes</message-destination-usage>
+ <message-destination-link>mdb2MessageDestinationRef1Link</message-destination-link>
+ </message-destination-ref>
+ <message-destination-ref id="mdb2MessageDestinationRef2-id">
+ <description>en-mdb2MessageDestinationRef2-desc</description>
+ <description xml:lang="fr">fr-mdb2MessageDestinationRef2-desc</description>
+ <description xml:lang="de">de-mdb2MessageDestinationRef2-desc</description>
+ <message-destination-ref-name>mdb2MessageDestinationRef2Name</message-destination-ref-name>
+ <message-destination-type>mdb2MessageDestinationRef2Type</message-destination-type>
+ <message-destination-usage>Produces</message-destination-usage>
+ <message-destination-link>mdb2MessageDestinationRef2Link</message-destination-link>
+ </message-destination-ref>
+ <message-destination-ref id="mdb2MessageDestinationRef3-id">
+ <description>en-mdb2MessageDestinationRef3-desc</description>
+ <description xml:lang="fr">fr-mdb2MessageDestinationRef3-desc</description>
+ <description xml:lang="de">de-mdb2MessageDestinationRef3-desc</description>
+ <message-destination-ref-name>mdb2MessageDestinationRef3Name</message-destination-ref-name>
+ <message-destination-type>mdb2MessageDestinationRef3Type</message-destination-type>
+ <message-destination-usage>ConsumesProduces</message-destination-usage>
+ <message-destination-link>mdb2MessageDestinationRef3Link</message-destination-link>
+ </message-destination-ref>
+
+ <security-identity id="mdb2SecurityIdentity-id">
+ <description>en-mdb2SecurityIdentity-desc</description>
+ <description xml:lang="fr">fr-mdb2SecurityIdentity-desc</description>
+ <description xml:lang="de">de-mdb2SecurityIdentity-desc</description>
+ <use-caller-identity id="mdb2SecurityIdentityUseCallerIdentity-id"/>
+ <run-as id="mdb2SecurityIdentityRunAs-id">
+ <description>en-mdb2SecurityIdentityRunAs-desc</description>
+ <description xml:lang="fr">fr-mdb2SecurityIdentityRunAs-desc</description>
+ <description xml:lang="de">de-mdb2SecurityIdentityRunAs-desc</description>
+ <role-name>mdb2SecurityIdentityRunAsRoleName</role-name>
+ </run-as>
+ </security-identity>
+
+ </message-driven>
+
+ </enterprise-beans>
+
+ <relationships id="relationships-id">
+ <description>en-relationships-desc</description>
+ <description xml:lang="fr">fr-relationships-desc</description>
+ <description xml:lang="de">de-relationships-desc</description>
+ <ejb-relation id="relation1-id">
+ <description>en-relation1-desc</description>
+ <description xml:lang="fr">fr-relation1-desc</description>
+ <description xml:lang="de">de-relation1-desc</description>
+ <ejb-relation-name>relation1Name</ejb-relation-name>
+ <ejb-relationship-role id="relation1Role1-id">
+ <description>en-relation1Role1-desc</description>
+ <description xml:lang="fr">fr-relation1Role1-desc</description>
+ <description xml:lang="de">de-relation1Role1-desc</description>
+ <ejb-relationship-role-name>relation1Role1Name</ejb-relationship-role-name>
+ <multiplicity>One</multiplicity>
+ <cascade-delete id="relation1Role1CascadeDelete-id"/>
+ <relationship-role-source id="relation1Role1RoleSource-id">
+ <description>en-relation1Role1RoleSource-desc</description>
+ <description xml:lang="fr">fr-relation1Role1RoleSource-desc</description>
+ <description xml:lang="de">de-relation1Role1RoleSource-desc</description>
+ <ejb-name>relation1Role1RoleSourceName</ejb-name>
+ </relationship-role-source>
+ <cmr-field id="relation1Role1CmrField-id">
+ <description>en-relation1Role1CmrField-desc</description>
+ <description xml:lang="fr">fr-relation1Role1CmrField-desc</description>
+ <description xml:lang="de">de-relation1Role1CmrField-desc</description>
+ <cmr-field-name>relation1Role1CmrFieldName</cmr-field-name>
+ <cmr-field-type>relation1Role1CmrFieldType</cmr-field-type>
+ </cmr-field>
+ </ejb-relationship-role>
+ <ejb-relationship-role id="relation1Role2-id">
+ <description>en-relation1Role2-desc</description>
+ <description xml:lang="fr">fr-relation1Role2-desc</description>
+ <description xml:lang="de">de-relation1Role2-desc</description>
+ <ejb-relationship-role-name>relation1Role2Name</ejb-relationship-role-name>
+ <multiplicity>Many</multiplicity>
+ <cascade-delete id="relation1Role2CascadeDelete-id"/>
+ <relationship-role-source id="relation1Role2RoleSource-id">
+ <description>en-relation1Role2RoleSource-desc</description>
+ <description xml:lang="fr">fr-relation1Role2RoleSource-desc</description>
+ <description xml:lang="de">de-relation1Role2RoleSource-desc</description>
+ <ejb-name>relation1Role2RoleSourceName</ejb-name>
+ </relationship-role-source>
+ <cmr-field id="relation1Role2CmrField-id">
+ <description>en-relation1Role2CmrField-desc</description>
+ <description xml:lang="fr">fr-relation1Role2CmrField-desc</description>
+ <description xml:lang="de">de-relation1Role2CmrField-desc</description>
+ <cmr-field-name>relation1Role2CmrFieldName</cmr-field-name>
+ <cmr-field-type>relation1Role2CmrFieldType</cmr-field-type>
+ </cmr-field>
+ </ejb-relationship-role>
+ </ejb-relation>
+ <ejb-relation id="relation2-id">
+ <description>en-relation2-desc</description>
+ <description xml:lang="fr">fr-relation2-desc</description>
+ <description xml:lang="de">de-relation2-desc</description>
+ <ejb-relation-name>relation2Name</ejb-relation-name>
+ <ejb-relationship-role id="relation2Role1-id">
+ <description>en-relation2Role1-desc</description>
+ <description xml:lang="fr">fr-relation2Role1-desc</description>
+ <description xml:lang="de">de-relation2Role1-desc</description>
+ <ejb-relationship-role-name>relation2Role1Name</ejb-relationship-role-name>
+ <multiplicity>One</multiplicity>
+ <cascade-delete id="relation2Role1CascadeDelete-id"/>
+ <relationship-role-source id="relation2Role1RoleSource-id">
+ <description>en-relation2Role1RoleSource-desc</description>
+ <description xml:lang="fr">fr-relation2Role1RoleSource-desc</description>
+ <description xml:lang="de">de-relation2Role1RoleSource-desc</description>
+ <ejb-name>relation2Role1RoleSourceName</ejb-name>
+ </relationship-role-source>
+ <cmr-field id="relation2Role1CmrField-id">
+ <description>en-relation2Role1CmrField-desc</description>
+ <description xml:lang="fr">fr-relation2Role1CmrField-desc</description>
+ <description xml:lang="de">de-relation2Role1CmrField-desc</description>
+ <cmr-field-name>relation2Role1CmrFieldName</cmr-field-name>
+ <cmr-field-type>relation2Role1CmrFieldType</cmr-field-type>
+ </cmr-field>
+ </ejb-relationship-role>
+ <ejb-relationship-role id="relation2Role2-id">
+ <description>en-relation2Role2-desc</description>
+ <description xml:lang="fr">fr-relation2Role2-desc</description>
+ <description xml:lang="de">de-relation2Role2-desc</description>
+ <ejb-relationship-role-name>relation2Role2Name</ejb-relationship-role-name>
+ <multiplicity>Many</multiplicity>
+ <cascade-delete id="relation2Role2CascadeDelete-id"/>
+ <relationship-role-source id="relation2Role2RoleSource-id">
+ <description>en-relation2Role2RoleSource-desc</description>
+ <description xml:lang="fr">fr-relation2Role2RoleSource-desc</description>
+ <description xml:lang="de">de-relation2Role2RoleSource-desc</description>
+ <ejb-name>relation2Role2RoleSourceName</ejb-name>
+ </relationship-role-source>
+ <cmr-field id="relation2Role2CmrField-id">
+ <description>en-relation2Role2CmrField-desc</description>
+ <description xml:lang="fr">fr-relation2Role2CmrField-desc</description>
+ <description xml:lang="de">de-relation2Role2CmrField-desc</description>
+ <cmr-field-name>relation2Role2CmrFieldName</cmr-field-name>
+ <cmr-field-type>relation2Role2CmrFieldType</cmr-field-type>
+ </cmr-field>
+ </ejb-relationship-role>
+ </ejb-relation>
+ </relationships>
+
+ <assembly-descriptor id="assembly-descriptor-id">
+
+ <security-role id="securityRole1-id">
+ <description>en-securityRole1-desc</description>
+ <description xml:lang="fr">fr-securityRole1-desc</description>
+ <description xml:lang="de">de-securityRole1-desc</description>
+ <role-name>securityRole1RoleName</role-name>
+ </security-role>
+ <security-role id="securityRole2-id">
+ <description>en-securityRole2-desc</description>
+ <description xml:lang="fr">fr-securityRole2-desc</description>
+ <description xml:lang="de">de-securityRole2-desc</description>
+ <role-name>securityRole2RoleName</role-name>
+ </security-role>
+
+ <method-permission id="methodPermission1-id">
+ <description>en-methodPermission1-desc</description>
+ <description xml:lang="fr">fr-methodPermission1-desc</description>
+ <description xml:lang="de">de-methodPermission1-desc</description>
+ <unchecked id="methodPermission1Unchecked-id"/>
+ <method id="methodPermission1Method1-id">
+ <description>en-methodPermission1Method1-desc</description>
+ <description xml:lang="fr">fr-methodPermission1Method1-desc</description>
+ <description xml:lang="de">de-methodPermission1Method1-desc</description>
+ <ejb-name>methodPermission1Method1EjbName</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>methodPermission1Method1MethodName</method-name>
+ <method-params>
+ <method-param>methodPermission1Method1Param1</method-param>
+ <method-param>methodPermission1Method1Param2</method-param>
+ </method-params>
+ </method>
+ <method id="methodPermission1Method2-id">
+ <description>en-methodPermission1Method2-desc</description>
+ <description xml:lang="fr">fr-methodPermission1Method2-desc</description>
+ <description xml:lang="de">de-methodPermission1Method2-desc</description>
+ <ejb-name>methodPermission1Method2EjbName</ejb-name>
+ <method-intf>Remote</method-intf>
+ <method-name>methodPermission1Method2MethodName</method-name>
+ </method>
+ <method id="methodPermission1Method3-id">
+ <description>en-methodPermission1Method3-desc</description>
+ <description xml:lang="fr">fr-methodPermission1Method3-desc</description>
+ <description xml:lang="de">de-methodPermission1Method3-desc</description>
+ <ejb-name>methodPermission1Method3EjbName</ejb-name>
+ <method-intf>LocalHome</method-intf>
+ <method-name>methodPermission1Method3MethodName</method-name>
+ </method>
+ <method id="methodPermission1Method4-id">
+ <description>en-methodPermission1Method4-desc</description>
+ <description xml:lang="fr">fr-methodPermission1Method4-desc</description>
+ <description xml:lang="de">de-methodPermission1Method4-desc</description>
+ <ejb-name>methodPermission1Method4EjbName</ejb-name>
+ <method-intf>Local</method-intf>
+ <method-name>methodPermission1Method4MethodName</method-name>
+ </method>
+ <method id="methodPermission1Method5-id">
+ <description>en-methodPermission1Method5-desc</description>
+ <description xml:lang="fr">fr-methodPermission1Method5-desc</description>
+ <description xml:lang="de">de-methodPermission1Method5-desc</description>
+ <ejb-name>methodPermission1Method5EjbName</ejb-name>
+ <method-intf>ServiceEndpoint</method-intf>
+ <method-name>methodPermission1Method5MethodName</method-name>
+ </method>
+ </method-permission>
+ <method-permission id="methodPermission2-id">
+ <description>en-methodPermission2-desc</description>
+ <description xml:lang="fr">fr-methodPermission2-desc</description>
+ <description xml:lang="de">de-methodPermission2-desc</description>
+ <role-name>methodPermission2RoleName1</role-name>
+ <role-name>methodPermission2RoleName2</role-name>
+ <method id="methodPermission2Method1-id">
+ <description>en-methodPermission2Method1-desc</description>
+ <description xml:lang="fr">fr-methodPermission2Method1-desc</description>
+ <description xml:lang="de">de-methodPermission2Method1-desc</description>
+ <ejb-name>methodPermission2Method1EjbName</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>methodPermission2Method1MethodName</method-name>
+ <method-params>
+ <method-param>methodPermission2Method1Param1</method-param>
+ <method-param>methodPermission2Method1Param2</method-param>
+ </method-params>
+ </method>
+ </method-permission>
+ <method-permission id="methodPermission3-id">
+ <description>en-methodPermission3-desc</description>
+ <description xml:lang="fr">fr-methodPermission3-desc</description>
+ <description xml:lang="de">de-methodPermission3-desc</description>
+ <role-name>methodPermission3RoleName1</role-name>
+ <role-name>methodPermission3RoleName2</role-name>
+ <method id="methodPermission3Method1-id">
+ <description>en-methodPermission3Method1-desc</description>
+ <description xml:lang="fr">fr-methodPermission3Method1-desc</description>
+ <description xml:lang="de">de-methodPermission3Method1-desc</description>
+ <ejb-name>methodPermission3Method1EjbName</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>methodPermission3Method1MethodName</method-name>
+ <method-params>
+ <method-param>methodPermission3Method1Param1</method-param>
+ <method-param>methodPermission3Method1Param2</method-param>
+ </method-params>
+ </method>
+ </method-permission>
+
+ <method-permission id="session1MethodPermission1-id">
+ <description>en-session1MethodPermission1-desc</description>
+ <description xml:lang="fr">fr-session1MethodPermission1-desc</description>
+ <description xml:lang="de">de-session1MethodPermission1-desc</description>
+ <unchecked id="session1MethodPermission1Unchecked-id"/>
+ <method id="session1MethodPermission1Method1-id">
+ <description>en-session1MethodPermission1Method1-desc</description>
+ <description xml:lang="fr">fr-session1MethodPermission1Method1-desc</description>
+ <description xml:lang="de">de-session1MethodPermission1Method1-desc</description>
+ <ejb-name>session1</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>session1MethodPermission1Method1MethodName</method-name>
+ <method-params>
+ <method-param>session1MethodPermission1Method1Param1</method-param>
+ <method-param>session1MethodPermission1Method1Param2</method-param>
+ </method-params>
+ </method>
+ <method id="session1MethodPermission1Method2-id">
+ <description>en-session1MethodPermission1Method2-desc</description>
+ <description xml:lang="fr">fr-session1MethodPermission1Method2-desc</description>
+ <description xml:lang="de">de-session1MethodPermission1Method2-desc</description>
+ <ejb-name>session1</ejb-name>
+ <method-intf>Remote</method-intf>
+ <method-name>session1MethodPermission1Method2MethodName</method-name>
+ </method>
+ <method id="session1MethodPermission1Method3-id">
+ <description>en-session1MethodPermission1Method3-desc</description>
+ <description xml:lang="fr">fr-session1MethodPermission1Method3-desc</description>
+ <description xml:lang="de">de-session1MethodPermission1Method3-desc</description>
+ <ejb-name>session1</ejb-name>
+ <method-intf>LocalHome</method-intf>
+ <method-name>session1MethodPermission1Method3MethodName</method-name>
+ </method>
+ <method id="session1MethodPermission1Method4-id">
+ <description>en-session1MethodPermission1Method4-desc</description>
+ <description xml:lang="fr">fr-session1MethodPermission1Method4-desc</description>
+ <description xml:lang="de">de-session1MethodPermission1Method4-desc</description>
+ <ejb-name>session1</ejb-name>
+ <method-intf>Local</method-intf>
+ <method-name>session1MethodPermission1Method4MethodName</method-name>
+ </method>
+ <method id="session1MethodPermission1Method5-id">
+ <description>en-session1MethodPermission1Method5-desc</description>
+ <description xml:lang="fr">fr-session1MethodPermission1Method5-desc</description>
+ <description xml:lang="de">de-session1MethodPermission1Method5-desc</description>
+ <ejb-name>session1</ejb-name>
+ <method-intf>ServiceEndpoint</method-intf>
+ <method-name>session1MethodPermission1Method5MethodName</method-name>
+ </method>
+ </method-permission>
+ <method-permission id="session1MethodPermission2-id">
+ <description>en-session1MethodPermission2-desc</description>
+ <description xml:lang="fr">fr-session1MethodPermission2-desc</description>
+ <description xml:lang="de">de-session1MethodPermission2-desc</description>
+ <role-name>session1MethodPermission2RoleName1</role-name>
+ <role-name>session1MethodPermission2RoleName2</role-name>
+ <method id="session1MethodPermission2Method1-id">
+ <description>en-session1MethodPermission2Method1-desc</description>
+ <description xml:lang="fr">fr-session1MethodPermission2Method1-desc</description>
+ <description xml:lang="de">de-session1MethodPermission2Method1-desc</description>
+ <ejb-name>session1</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>session1MethodPermission2Method1MethodName</method-name>
+ <method-params>
+ <method-param>session1MethodPermission2Method1Param1</method-param>
+ <method-param>session1MethodPermission2Method1Param2</method-param>
+ </method-params>
+ </method>
+ </method-permission>
+ <method-permission id="session1MethodPermission3-id">
+ <description>en-session1MethodPermission3-desc</description>
+ <description xml:lang="fr">fr-session1MethodPermission3-desc</description>
+ <description xml:lang="de">de-session1MethodPermission3-desc</description>
+ <role-name>session1MethodPermission3RoleName1</role-name>
+ <role-name>session1MethodPermission3RoleName2</role-name>
+ <method id="session1MethodPermission3Method1-id">
+ <description>en-session1MethodPermission3Method1-desc</description>
+ <description xml:lang="fr">fr-session1MethodPermission3Method1-desc</description>
+ <description xml:lang="de">de-session1MethodPermission3Method1-desc</description>
+ <ejb-name>session1</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>session1MethodPermission3Method1MethodName</method-name>
+ <method-params>
+ <method-param>session1MethodPermission3Method1Param1</method-param>
+ <method-param>session1MethodPermission3Method1Param2</method-param>
+ </method-params>
+ </method>
+ </method-permission>
+
+ <method-permission id="session2MethodPermission1-id">
+ <description>en-session2MethodPermission1-desc</description>
+ <description xml:lang="fr">fr-session2MethodPermission1-desc</description>
+ <description xml:lang="de">de-session2MethodPermission1-desc</description>
+ <unchecked id="session2MethodPermission1Unchecked-id"/>
+ <method id="session2MethodPermission1Method1-id">
+ <description>en-session2MethodPermission1Method1-desc</description>
+ <description xml:lang="fr">fr-session2MethodPermission1Method1-desc</description>
+ <description xml:lang="de">de-session2MethodPermission1Method1-desc</description>
+ <ejb-name>session2</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>session2MethodPermission1Method1MethodName</method-name>
+ <method-params>
+ <method-param>session2MethodPermission1Method1Param1</method-param>
+ <method-param>session2MethodPermission1Method1Param2</method-param>
+ </method-params>
+ </method>
+ <method id="session2MethodPermission1Method2-id">
+ <description>en-session2MethodPermission1Method2-desc</description>
+ <description xml:lang="fr">fr-session2MethodPermission1Method2-desc</description>
+ <description xml:lang="de">de-session2MethodPermission1Method2-desc</description>
+ <ejb-name>session2</ejb-name>
+ <method-intf>Remote</method-intf>
+ <method-name>session2MethodPermission1Method2MethodName</method-name>
+ </method>
+ <method id="session2MethodPermission1Method3-id">
+ <description>en-session2MethodPermission1Method3-desc</description>
+ <description xml:lang="fr">fr-session2MethodPermission1Method3-desc</description>
+ <description xml:lang="de">de-session2MethodPermission1Method3-desc</description>
+ <ejb-name>session2</ejb-name>
+ <method-intf>LocalHome</method-intf>
+ <method-name>session2MethodPermission1Method3MethodName</method-name>
+ </method>
+ <method id="session2MethodPermission1Method4-id">
+ <description>en-session2MethodPermission1Method4-desc</description>
+ <description xml:lang="fr">fr-session2MethodPermission1Method4-desc</description>
+ <description xml:lang="de">de-session2MethodPermission1Method4-desc</description>
+ <ejb-name>session2</ejb-name>
+ <method-intf>Local</method-intf>
+ <method-name>session2MethodPermission1Method4MethodName</method-name>
+ </method>
+ <method id="session2MethodPermission1Method5-id">
+ <description>en-session2MethodPermission1Method5-desc</description>
+ <description xml:lang="fr">fr-session2MethodPermission1Method5-desc</description>
+ <description xml:lang="de">de-session2MethodPermission1Method5-desc</description>
+ <ejb-name>session2</ejb-name>
+ <method-intf>ServiceEndpoint</method-intf>
+ <method-name>session2MethodPermission1Method5MethodName</method-name>
+ </method>
+ </method-permission>
+ <method-permission id="session2MethodPermission2-id">
+ <description>en-session2MethodPermission2-desc</description>
+ <description xml:lang="fr">fr-session2MethodPermission2-desc</description>
+ <description xml:lang="de">de-session2MethodPermission2-desc</description>
+ <role-name>session2MethodPermission2RoleName1</role-name>
+ <role-name>session2MethodPermission2RoleName2</role-name>
+ <method id="session2MethodPermission2Method1-id">
+ <description>en-session2MethodPermission2Method1-desc</description>
+ <description xml:lang="fr">fr-session2MethodPermission2Method1-desc</description>
+ <description xml:lang="de">de-session2MethodPermission2Method1-desc</description>
+ <ejb-name>session2</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>session2MethodPermission2Method1MethodName</method-name>
+ <method-params>
+ <method-param>session2MethodPermission2Method1Param1</method-param>
+ <method-param>session2MethodPermission2Method1Param2</method-param>
+ </method-params>
+ </method>
+ </method-permission>
+ <method-permission id="session2MethodPermission3-id">
+ <description>en-session2MethodPermission3-desc</description>
+ <description xml:lang="fr">fr-session2MethodPermission3-desc</description>
+ <description xml:lang="de">de-session2MethodPermission3-desc</description>
+ <role-name>session2MethodPermission3RoleName1</role-name>
+ <role-name>session2MethodPermission3RoleName2</role-name>
+ <method id="session2MethodPermission3Method1-id">
+ <description>en-session2MethodPermission3Method1-desc</description>
+ <description xml:lang="fr">fr-session2MethodPermission3Method1-desc</description>
+ <description xml:lang="de">de-session2MethodPermission3Method1-desc</description>
+ <ejb-name>session2</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>session2MethodPermission3Method1MethodName</method-name>
+ <method-params>
+ <method-param>session2MethodPermission3Method1Param1</method-param>
+ <method-param>session2MethodPermission3Method1Param2</method-param>
+ </method-params>
+ </method>
+ </method-permission>
+
+ <method-permission id="entity1MethodPermission1-id">
+ <description>en-entity1MethodPermission1-desc</description>
+ <description xml:lang="fr">fr-entity1MethodPermission1-desc</description>
+ <description xml:lang="de">de-entity1MethodPermission1-desc</description>
+ <unchecked id="entity1MethodPermission1Unchecked-id"/>
+ <method id="entity1MethodPermission1Method1-id">
+ <description>en-entity1MethodPermission1Method1-desc</description>
+ <description xml:lang="fr">fr-entity1MethodPermission1Method1-desc</description>
+ <description xml:lang="de">de-entity1MethodPermission1Method1-desc</description>
+ <ejb-name>entity1</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>entity1MethodPermission1Method1MethodName</method-name>
+ <method-params>
+ <method-param>entity1MethodPermission1Method1Param1</method-param>
+ <method-param>entity1MethodPermission1Method1Param2</method-param>
+ </method-params>
+ </method>
+ <method id="entity1MethodPermission1Method2-id">
+ <description>en-entity1MethodPermission1Method2-desc</description>
+ <description xml:lang="fr">fr-entity1MethodPermission1Method2-desc</description>
+ <description xml:lang="de">de-entity1MethodPermission1Method2-desc</description>
+ <ejb-name>entity1</ejb-name>
+ <method-intf>Remote</method-intf>
+ <method-name>entity1MethodPermission1Method2MethodName</method-name>
+ </method>
+ <method id="entity1MethodPermission1Method3-id">
+ <description>en-entity1MethodPermission1Method3-desc</description>
+ <description xml:lang="fr">fr-entity1MethodPermission1Method3-desc</description>
+ <description xml:lang="de">de-entity1MethodPermission1Method3-desc</description>
+ <ejb-name>entity1</ejb-name>
+ <method-intf>LocalHome</method-intf>
+ <method-name>entity1MethodPermission1Method3MethodName</method-name>
+ </method>
+ <method id="entity1MethodPermission1Method4-id">
+ <description>en-entity1MethodPermission1Method4-desc</description>
+ <description xml:lang="fr">fr-entity1MethodPermission1Method4-desc</description>
+ <description xml:lang="de">de-entity1MethodPermission1Method4-desc</description>
+ <ejb-name>entity1</ejb-name>
+ <method-intf>Local</method-intf>
+ <method-name>entity1MethodPermission1Method4MethodName</method-name>
+ </method>
+ <method id="entity1MethodPermission1Method5-id">
+ <description>en-entity1MethodPermission1Method5-desc</description>
+ <description xml:lang="fr">fr-entity1MethodPermission1Method5-desc</description>
+ <description xml:lang="de">de-entity1MethodPermission1Method5-desc</description>
+ <ejb-name>entity1</ejb-name>
+ <method-intf>ServiceEndpoint</method-intf>
+ <method-name>entity1MethodPermission1Method5MethodName</method-name>
+ </method>
+ </method-permission>
+ <method-permission id="entity1MethodPermission2-id">
+ <description>en-entity1MethodPermission2-desc</description>
+ <description xml:lang="fr">fr-entity1MethodPermission2-desc</description>
+ <description xml:lang="de">de-entity1MethodPermission2-desc</description>
+ <role-name>entity1MethodPermission2RoleName1</role-name>
+ <role-name>entity1MethodPermission2RoleName2</role-name>
+ <method id="entity1MethodPermission2Method1-id">
+ <description>en-entity1MethodPermission2Method1-desc</description>
+ <description xml:lang="fr">fr-entity1MethodPermission2Method1-desc</description>
+ <description xml:lang="de">de-entity1MethodPermission2Method1-desc</description>
+ <ejb-name>entity1</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>entity1MethodPermission2Method1MethodName</method-name>
+ <method-params>
+ <method-param>entity1MethodPermission2Method1Param1</method-param>
+ <method-param>entity1MethodPermission2Method1Param2</method-param>
+ </method-params>
+ </method>
+ </method-permission>
+ <method-permission id="entity1MethodPermission3-id">
+ <description>en-entity1MethodPermission3-desc</description>
+ <description xml:lang="fr">fr-entity1MethodPermission3-desc</description>
+ <description xml:lang="de">de-entity1MethodPermission3-desc</description>
+ <role-name>entity1MethodPermission3RoleName1</role-name>
+ <role-name>entity1MethodPermission3RoleName2</role-name>
+ <method id="entity1MethodPermission3Method1-id">
+ <description>en-entity1MethodPermission3Method1-desc</description>
+ <description xml:lang="fr">fr-entity1MethodPermission3Method1-desc</description>
+ <description xml:lang="de">de-entity1MethodPermission3Method1-desc</description>
+ <ejb-name>entity1</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>entity1MethodPermission3Method1MethodName</method-name>
+ <method-params>
+ <method-param>entity1MethodPermission3Method1Param1</method-param>
+ <method-param>entity1MethodPermission3Method1Param2</method-param>
+ </method-params>
+ </method>
+ </method-permission>
+
+ <method-permission id="entity2MethodPermission1-id">
+ <description>en-entity2MethodPermission1-desc</description>
+ <description xml:lang="fr">fr-entity2MethodPermission1-desc</description>
+ <description xml:lang="de">de-entity2MethodPermission1-desc</description>
+ <unchecked id="entity2MethodPermission1Unchecked-id"/>
+ <method id="entity2MethodPermission1Method1-id">
+ <description>en-entity2MethodPermission1Method1-desc</description>
+ <description xml:lang="fr">fr-entity2MethodPermission1Method1-desc</description>
+ <description xml:lang="de">de-entity2MethodPermission1Method1-desc</description>
+ <ejb-name>entity2</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>entity2MethodPermission1Method1MethodName</method-name>
+ <method-params>
+ <method-param>entity2MethodPermission1Method1Param1</method-param>
+ <method-param>entity2MethodPermission1Method1Param2</method-param>
+ </method-params>
+ </method>
+ <method id="entity2MethodPermission1Method2-id">
+ <description>en-entity2MethodPermission1Method2-desc</description>
+ <description xml:lang="fr">fr-entity2MethodPermission1Method2-desc</description>
+ <description xml:lang="de">de-entity2MethodPermission1Method2-desc</description>
+ <ejb-name>entity2</ejb-name>
+ <method-intf>Remote</method-intf>
+ <method-name>entity2MethodPermission1Method2MethodName</method-name>
+ </method>
+ <method id="entity2MethodPermission1Method3-id">
+ <description>en-entity2MethodPermission1Method3-desc</description>
+ <description xml:lang="fr">fr-entity2MethodPermission1Method3-desc</description>
+ <description xml:lang="de">de-entity2MethodPermission1Method3-desc</description>
+ <ejb-name>entity2</ejb-name>
+ <method-intf>LocalHome</method-intf>
+ <method-name>entity2MethodPermission1Method3MethodName</method-name>
+ </method>
+ <method id="entity2MethodPermission1Method4-id">
+ <description>en-entity2MethodPermission1Method4-desc</description>
+ <description xml:lang="fr">fr-entity2MethodPermission1Method4-desc</description>
+ <description xml:lang="de">de-entity2MethodPermission1Method4-desc</description>
+ <ejb-name>entity2</ejb-name>
+ <method-intf>Local</method-intf>
+ <method-name>entity2MethodPermission1Method4MethodName</method-name>
+ </method>
+ <method id="entity2MethodPermission1Method5-id">
+ <description>en-entity2MethodPermission1Method5-desc</description>
+ <description xml:lang="fr">fr-entity2MethodPermission1Method5-desc</description>
+ <description xml:lang="de">de-entity2MethodPermission1Method5-desc</description>
+ <ejb-name>entity2</ejb-name>
+ <method-intf>ServiceEndpoint</method-intf>
+ <method-name>entity2MethodPermission1Method5MethodName</method-name>
+ </method>
+ </method-permission>
+ <method-permission id="entity2MethodPermission2-id">
+ <description>en-entity2MethodPermission2-desc</description>
+ <description xml:lang="fr">fr-entity2MethodPermission2-desc</description>
+ <description xml:lang="de">de-entity2MethodPermission2-desc</description>
+ <role-name>entity2MethodPermission2RoleName1</role-name>
+ <role-name>entity2MethodPermission2RoleName2</role-name>
+ <method id="entity2MethodPermission2Method1-id">
+ <description>en-entity2MethodPermission2Method1-desc</description>
+ <description xml:lang="fr">fr-entity2MethodPermission2Method1-desc</description>
+ <description xml:lang="de">de-entity2MethodPermission2Method1-desc</description>
+ <ejb-name>entity2</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>entity2MethodPermission2Method1MethodName</method-name>
+ <method-params>
+ <method-param>entity2MethodPermission2Method1Param1</method-param>
+ <method-param>entity2MethodPermission2Method1Param2</method-param>
+ </method-params>
+ </method>
+ </method-permission>
+ <method-permission id="entity2MethodPermission3-id">
+ <description>en-entity2MethodPermission3-desc</description>
+ <description xml:lang="fr">fr-entity2MethodPermission3-desc</description>
+ <description xml:lang="de">de-entity2MethodPermission3-desc</description>
+ <role-name>entity2MethodPermission3RoleName1</role-name>
+ <role-name>entity2MethodPermission3RoleName2</role-name>
+ <method id="entity2MethodPermission3Method1-id">
+ <description>en-entity2MethodPermission3Method1-desc</description>
+ <description xml:lang="fr">fr-entity2MethodPermission3Method1-desc</description>
+ <description xml:lang="de">de-entity2MethodPermission3Method1-desc</description>
+ <ejb-name>entity2</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>entity2MethodPermission3Method1MethodName</method-name>
+ <method-params>
+ <method-param>entity2MethodPermission3Method1Param1</method-param>
+ <method-param>entity2MethodPermission3Method1Param2</method-param>
+ </method-params>
+ </method>
+ </method-permission>
+
+ <method-permission id="mdb1MethodPermission1-id">
+ <description>en-mdb1MethodPermission1-desc</description>
+ <description xml:lang="fr">fr-mdb1MethodPermission1-desc</description>
+ <description xml:lang="de">de-mdb1MethodPermission1-desc</description>
+ <unchecked id="mdb1MethodPermission1Unchecked-id"/>
+ <method id="mdb1MethodPermission1Method1-id">
+ <description>en-mdb1MethodPermission1Method1-desc</description>
+ <description xml:lang="fr">fr-mdb1MethodPermission1Method1-desc</description>
+ <description xml:lang="de">de-mdb1MethodPermission1Method1-desc</description>
+ <ejb-name>mdb1</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>mdb1MethodPermission1Method1MethodName</method-name>
+ <method-params>
+ <method-param>mdb1MethodPermission1Method1Param1</method-param>
+ <method-param>mdb1MethodPermission1Method1Param2</method-param>
+ </method-params>
+ </method>
+ <method id="mdb1MethodPermission1Method2-id">
+ <description>en-mdb1MethodPermission1Method2-desc</description>
+ <description xml:lang="fr">fr-mdb1MethodPermission1Method2-desc</description>
+ <description xml:lang="de">de-mdb1MethodPermission1Method2-desc</description>
+ <ejb-name>mdb1</ejb-name>
+ <method-intf>Remote</method-intf>
+ <method-name>mdb1MethodPermission1Method2MethodName</method-name>
+ </method>
+ <method id="mdb1MethodPermission1Method3-id">
+ <description>en-mdb1MethodPermission1Method3-desc</description>
+ <description xml:lang="fr">fr-mdb1MethodPermission1Method3-desc</description>
+ <description xml:lang="de">de-mdb1MethodPermission1Method3-desc</description>
+ <ejb-name>mdb1</ejb-name>
+ <method-intf>LocalHome</method-intf>
+ <method-name>mdb1MethodPermission1Method3MethodName</method-name>
+ </method>
+ <method id="mdb1MethodPermission1Method4-id">
+ <description>en-mdb1MethodPermission1Method4-desc</description>
+ <description xml:lang="fr">fr-mdb1MethodPermission1Method4-desc</description>
+ <description xml:lang="de">de-mdb1MethodPermission1Method4-desc</description>
+ <ejb-name>mdb1</ejb-name>
+ <method-intf>Local</method-intf>
+ <method-name>mdb1MethodPermission1Method4MethodName</method-name>
+ </method>
+ <method id="mdb1MethodPermission1Method5-id">
+ <description>en-mdb1MethodPermission1Method5-desc</description>
+ <description xml:lang="fr">fr-mdb1MethodPermission1Method5-desc</description>
+ <description xml:lang="de">de-mdb1MethodPermission1Method5-desc</description>
+ <ejb-name>mdb1</ejb-name>
+ <method-intf>ServiceEndpoint</method-intf>
+ <method-name>mdb1MethodPermission1Method5MethodName</method-name>
+ </method>
+ </method-permission>
+ <method-permission id="mdb1MethodPermission2-id">
+ <description>en-mdb1MethodPermission2-desc</description>
+ <description xml:lang="fr">fr-mdb1MethodPermission2-desc</description>
+ <description xml:lang="de">de-mdb1MethodPermission2-desc</description>
+ <role-name>mdb1MethodPermission2RoleName1</role-name>
+ <role-name>mdb1MethodPermission2RoleName2</role-name>
+ <method id="mdb1MethodPermission2Method1-id">
+ <description>en-mdb1MethodPermission2Method1-desc</description>
+ <description xml:lang="fr">fr-mdb1MethodPermission2Method1-desc</description>
+ <description xml:lang="de">de-mdb1MethodPermission2Method1-desc</description>
+ <ejb-name>mdb1</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>mdb1MethodPermission2Method1MethodName</method-name>
+ <method-params>
+ <method-param>mdb1MethodPermission2Method1Param1</method-param>
+ <method-param>mdb1MethodPermission2Method1Param2</method-param>
+ </method-params>
+ </method>
+ </method-permission>
+ <method-permission id="mdb1MethodPermission3-id">
+ <description>en-mdb1MethodPermission3-desc</description>
+ <description xml:lang="fr">fr-mdb1MethodPermission3-desc</description>
+ <description xml:lang="de">de-mdb1MethodPermission3-desc</description>
+ <role-name>mdb1MethodPermission3RoleName1</role-name>
+ <role-name>mdb1MethodPermission3RoleName2</role-name>
+ <method id="mdb1MethodPermission3Method1-id">
+ <description>en-mdb1MethodPermission3Method1-desc</description>
+ <description xml:lang="fr">fr-mdb1MethodPermission3Method1-desc</description>
+ <description xml:lang="de">de-mdb1MethodPermission3Method1-desc</description>
+ <ejb-name>mdb1</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>mdb1MethodPermission3Method1MethodName</method-name>
+ <method-params>
+ <method-param>mdb1MethodPermission3Method1Param1</method-param>
+ <method-param>mdb1MethodPermission3Method1Param2</method-param>
+ </method-params>
+ </method>
+ </method-permission>
+
+ <method-permission id="mdb2MethodPermission1-id">
+ <description>en-mdb2MethodPermission1-desc</description>
+ <description xml:lang="fr">fr-mdb2MethodPermission1-desc</description>
+ <description xml:lang="de">de-mdb2MethodPermission1-desc</description>
+ <unchecked id="mdb2MethodPermission1Unchecked-id"/>
+ <method id="mdb2MethodPermission1Method1-id">
+ <description>en-mdb2MethodPermission1Method1-desc</description>
+ <description xml:lang="fr">fr-mdb2MethodPermission1Method1-desc</description>
+ <description xml:lang="de">de-mdb2MethodPermission1Method1-desc</description>
+ <ejb-name>mdb2</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>mdb2MethodPermission1Method1MethodName</method-name>
+ <method-params>
+ <method-param>mdb2MethodPermission1Method1Param1</method-param>
+ <method-param>mdb2MethodPermission1Method1Param2</method-param>
+ </method-params>
+ </method>
+ <method id="mdb2MethodPermission1Method2-id">
+ <description>en-mdb2MethodPermission1Method2-desc</description>
+ <description xml:lang="fr">fr-mdb2MethodPermission1Method2-desc</description>
+ <description xml:lang="de">de-mdb2MethodPermission1Method2-desc</description>
+ <ejb-name>mdb2</ejb-name>
+ <method-intf>Remote</method-intf>
+ <method-name>mdb2MethodPermission1Method2MethodName</method-name>
+ </method>
+ <method id="mdb2MethodPermission1Method3-id">
+ <description>en-mdb2MethodPermission1Method3-desc</description>
+ <description xml:lang="fr">fr-mdb2MethodPermission1Method3-desc</description>
+ <description xml:lang="de">de-mdb2MethodPermission1Method3-desc</description>
+ <ejb-name>mdb2</ejb-name>
+ <method-intf>LocalHome</method-intf>
+ <method-name>mdb2MethodPermission1Method3MethodName</method-name>
+ </method>
+ <method id="mdb2MethodPermission1Method4-id">
+ <description>en-mdb2MethodPermission1Method4-desc</description>
+ <description xml:lang="fr">fr-mdb2MethodPermission1Method4-desc</description>
+ <description xml:lang="de">de-mdb2MethodPermission1Method4-desc</description>
+ <ejb-name>mdb2</ejb-name>
+ <method-intf>Local</method-intf>
+ <method-name>mdb2MethodPermission1Method4MethodName</method-name>
+ </method>
+ <method id="mdb2MethodPermission1Method5-id">
+ <description>en-mdb2MethodPermission1Method5-desc</description>
+ <description xml:lang="fr">fr-mdb2MethodPermission1Method5-desc</description>
+ <description xml:lang="de">de-mdb2MethodPermission1Method5-desc</description>
+ <ejb-name>mdb2</ejb-name>
+ <method-intf>ServiceEndpoint</method-intf>
+ <method-name>mdb2MethodPermission1Method5MethodName</method-name>
+ </method>
+ </method-permission>
+ <method-permission id="mdb2MethodPermission2-id">
+ <description>en-mdb2MethodPermission2-desc</description>
+ <description xml:lang="fr">fr-mdb2MethodPermission2-desc</description>
+ <description xml:lang="de">de-mdb2MethodPermission2-desc</description>
+ <role-name>mdb2MethodPermission2RoleName1</role-name>
+ <role-name>mdb2MethodPermission2RoleName2</role-name>
+ <method id="mdb2MethodPermission2Method1-id">
+ <description>en-mdb2MethodPermission2Method1-desc</description>
+ <description xml:lang="fr">fr-mdb2MethodPermission2Method1-desc</description>
+ <description xml:lang="de">de-mdb2MethodPermission2Method1-desc</description>
+ <ejb-name>mdb2</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>mdb2MethodPermission2Method1MethodName</method-name>
+ <method-params>
+ <method-param>mdb2MethodPermission2Method1Param1</method-param>
+ <method-param>mdb2MethodPermission2Method1Param2</method-param>
+ </method-params>
+ </method>
+ </method-permission>
+ <method-permission id="mdb2MethodPermission3-id">
+ <description>en-mdb2MethodPermission3-desc</description>
+ <description xml:lang="fr">fr-mdb2MethodPermission3-desc</description>
+ <description xml:lang="de">de-mdb2MethodPermission3-desc</description>
+ <role-name>mdb2MethodPermission3RoleName1</role-name>
+ <role-name>mdb2MethodPermission3RoleName2</role-name>
+ <method id="mdb2MethodPermission3Method1-id">
+ <description>en-mdb2MethodPermission3Method1-desc</description>
+ <description xml:lang="fr">fr-mdb2MethodPermission3Method1-desc</description>
+ <description xml:lang="de">de-mdb2MethodPermission3Method1-desc</description>
+ <ejb-name>mdb2</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>mdb2MethodPermission3Method1MethodName</method-name>
+ <method-params>
+ <method-param>mdb2MethodPermission3Method1Param1</method-param>
+ <method-param>mdb2MethodPermission3Method1Param2</method-param>
+ </method-params>
+ </method>
+ </method-permission>
+
+ <container-transaction id="containerTransaction1-id">
+ <description>en-containerTransaction1-desc</description>
+ <description xml:lang="fr">fr-containerTransaction1-desc</description>
+ <description xml:lang="de">de-containerTransaction1-desc</description>
+ <method id="containerTransaction1Method1-id">
+ <description>en-containerTransaction1Method1-desc</description>
+ <description xml:lang="fr">fr-containerTransaction1Method1-desc</description>
+ <description xml:lang="de">de-containerTransaction1Method1-desc</description>
+ <ejb-name>containerTransaction1Method1EjbName</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>containerTransaction1Method1MethodName</method-name>
+ <method-params>
+ <method-param>containerTransaction1Method1Param1</method-param>
+ <method-param>containerTransaction1Method1Param2</method-param>
+ </method-params>
+ </method>
+ <method id="containerTransaction1Method2-id">
+ <description>en-containerTransaction1Method2-desc</description>
+ <description xml:lang="fr">fr-containerTransaction1Method2-desc</description>
+ <description xml:lang="de">de-containerTransaction1Method2-desc</description>
+ <ejb-name>containerTransaction1Method2EjbName</ejb-name>
+ <method-intf>Remote</method-intf>
+ <method-name>containerTransaction1Method2MethodName</method-name>
+ </method>
+ <method id="containerTransaction1Method3-id">
+ <description>en-containerTransaction1Method3-desc</description>
+ <description xml:lang="fr">fr-containerTransaction1Method3-desc</description>
+ <description xml:lang="de">de-containerTransaction1Method3-desc</description>
+ <ejb-name>containerTransaction1Method3EjbName</ejb-name>
+ <method-intf>LocalHome</method-intf>
+ <method-name>containerTransaction1Method3MethodName</method-name>
+ </method>
+ <method id="containerTransaction1Method4-id">
+ <description>en-containerTransaction1Method4-desc</description>
+ <description xml:lang="fr">fr-containerTransaction1Method4-desc</description>
+ <description xml:lang="de">de-containerTransaction1Method4-desc</description>
+ <ejb-name>containerTransaction1Method4EjbName</ejb-name>
+ <method-intf>Local</method-intf>
+ <method-name>containerTransaction1Method4MethodName</method-name>
+ </method>
+ <method id="containerTransaction1Method5-id">
+ <description>en-containerTransaction1Method5-desc</description>
+ <description xml:lang="fr">fr-containerTransaction1Method5-desc</description>
+ <description xml:lang="de">de-containerTransaction1Method5-desc</description>
+ <ejb-name>containerTransaction1Method5EjbName</ejb-name>
+ <method-intf>ServiceEndpoint</method-intf>
+ <method-name>containerTransaction1Method5MethodName</method-name>
+ </method>
+ <trans-attribute>NotSupported</trans-attribute>
+ </container-transaction>
+ <container-transaction id="containerTransaction2-id">
+ <description>en-containerTransaction2-desc</description>
+ <description xml:lang="fr">fr-containerTransaction2-desc</description>
+ <description xml:lang="de">de-containerTransaction2-desc</description>
+ <method id="containerTransaction2Method1-id">
+ <description>en-containerTransaction2Method1-desc</description>
+ <description xml:lang="fr">fr-containerTransaction2Method1-desc</description>
+ <description xml:lang="de">de-containerTransaction2Method1-desc</description>
+ <ejb-name>containerTransaction2Method1EjbName</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>containerTransaction2Method1MethodName</method-name>
+ <method-params>
+ <method-param>containerTransaction2Method1Param1</method-param>
+ <method-param>containerTransaction2Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>Supports</trans-attribute>
+ </container-transaction>
+ <container-transaction id="containerTransaction3-id">
+ <description>en-containerTransaction3-desc</description>
+ <description xml:lang="fr">fr-containerTransaction3-desc</description>
+ <description xml:lang="de">de-containerTransaction3-desc</description>
+ <method id="containerTransaction3Method1-id">
+ <description>en-containerTransaction3Method1-desc</description>
+ <description xml:lang="fr">fr-containerTransaction3Method1-desc</description>
+ <description xml:lang="de">de-containerTransaction3Method1-desc</description>
+ <ejb-name>containerTransaction3Method1EjbName</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>containerTransaction3Method1MethodName</method-name>
+ <method-params>
+ <method-param>containerTransaction3Method1Param1</method-param>
+ <method-param>containerTransaction3Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>Required</trans-attribute>
+ </container-transaction>
+ <container-transaction id="containerTransaction4-id">
+ <description>en-containerTransaction4-desc</description>
+ <description xml:lang="fr">fr-containerTransaction4-desc</description>
+ <description xml:lang="de">de-containerTransaction4-desc</description>
+ <method id="containerTransaction4Method1-id">
+ <description>en-containerTransaction4Method1-desc</description>
+ <description xml:lang="fr">fr-containerTransaction4Method1-desc</description>
+ <description xml:lang="de">de-containerTransaction4Method1-desc</description>
+ <ejb-name>containerTransaction4Method1EjbName</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>containerTransaction4Method1MethodName</method-name>
+ <method-params>
+ <method-param>containerTransaction4Method1Param1</method-param>
+ <method-param>containerTransaction4Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>RequiresNew</trans-attribute>
+ </container-transaction>
+ <container-transaction id="containerTransaction5-id">
+ <description>en-containerTransaction5-desc</description>
+ <description xml:lang="fr">fr-containerTransaction5-desc</description>
+ <description xml:lang="de">de-containerTransaction5-desc</description>
+ <method id="containerTransaction5Method1-id">
+ <description>en-containerTransaction5Method1-desc</description>
+ <description xml:lang="fr">fr-containerTransaction5Method1-desc</description>
+ <description xml:lang="de">de-containerTransaction5Method1-desc</description>
+ <ejb-name>containerTransaction5Method1EjbName</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>containerTransaction5Method1MethodName</method-name>
+ <method-params>
+ <method-param>containerTransaction5Method1Param1</method-param>
+ <method-param>containerTransaction5Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>Mandatory</trans-attribute>
+ </container-transaction>
+ <container-transaction id="containerTransaction6-id">
+ <description>en-containerTransaction6-desc</description>
+ <description xml:lang="fr">fr-containerTransaction6-desc</description>
+ <description xml:lang="de">de-containerTransaction6-desc</description>
+ <method id="containerTransaction6Method1-id">
+ <description>en-containerTransaction6Method1-desc</description>
+ <description xml:lang="fr">fr-containerTransaction6Method1-desc</description>
+ <description xml:lang="de">de-containerTransaction6Method1-desc</description>
+ <ejb-name>containerTransaction6Method1EjbName</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>containerTransaction6Method1MethodName</method-name>
+ <method-params>
+ <method-param>containerTransaction6Method1Param1</method-param>
+ <method-param>containerTransaction6Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>Never</trans-attribute>
+ </container-transaction>
+
+ <container-transaction id="session1ContainerTransaction1-id">
+ <description>en-session1ContainerTransaction1-desc</description>
+ <description xml:lang="fr">fr-session1ContainerTransaction1-desc</description>
+ <description xml:lang="de">de-session1ContainerTransaction1-desc</description>
+ <method id="session1ContainerTransaction1Method1-id">
+ <description>en-session1ContainerTransaction1Method1-desc</description>
+ <description xml:lang="fr">fr-session1ContainerTransaction1Method1-desc</description>
+ <description xml:lang="de">de-session1ContainerTransaction1Method1-desc</description>
+ <ejb-name>session1</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>session1ContainerTransaction1Method1MethodName</method-name>
+ <method-params>
+ <method-param>session1ContainerTransaction1Method1Param1</method-param>
+ <method-param>session1ContainerTransaction1Method1Param2</method-param>
+ </method-params>
+ </method>
+ <method id="session1ContainerTransaction1Method2-id">
+ <description>en-session1ContainerTransaction1Method2-desc</description>
+ <description xml:lang="fr">fr-session1ContainerTransaction1Method2-desc</description>
+ <description xml:lang="de">de-session1ContainerTransaction1Method2-desc</description>
+ <ejb-name>session1</ejb-name>
+ <method-intf>Remote</method-intf>
+ <method-name>session1ContainerTransaction1Method2MethodName</method-name>
+ </method>
+ <method id="session1ContainerTransaction1Method3-id">
+ <description>en-session1ContainerTransaction1Method3-desc</description>
+ <description xml:lang="fr">fr-session1ContainerTransaction1Method3-desc</description>
+ <description xml:lang="de">de-session1ContainerTransaction1Method3-desc</description>
+ <ejb-name>session1</ejb-name>
+ <method-intf>LocalHome</method-intf>
+ <method-name>session1ContainerTransaction1Method3MethodName</method-name>
+ </method>
+ <method id="session1ContainerTransaction1Method4-id">
+ <description>en-session1ContainerTransaction1Method4-desc</description>
+ <description xml:lang="fr">fr-session1ContainerTransaction1Method4-desc</description>
+ <description xml:lang="de">de-session1ContainerTransaction1Method4-desc</description>
+ <ejb-name>session1</ejb-name>
+ <method-intf>Local</method-intf>
+ <method-name>session1ContainerTransaction1Method4MethodName</method-name>
+ </method>
+ <method id="session1ContainerTransaction1Method5-id">
+ <description>en-session1ContainerTransaction1Method5-desc</description>
+ <description xml:lang="fr">fr-session1ContainerTransaction1Method5-desc</description>
+ <description xml:lang="de">de-session1ContainerTransaction1Method5-desc</description>
+ <ejb-name>session1</ejb-name>
+ <method-intf>ServiceEndpoint</method-intf>
+ <method-name>session1ContainerTransaction1Method5MethodName</method-name>
+ </method>
+ <trans-attribute>NotSupported</trans-attribute>
+ </container-transaction>
+ <container-transaction id="session1ContainerTransaction2-id">
+ <description>en-session1ContainerTransaction2-desc</description>
+ <description xml:lang="fr">fr-session1ContainerTransaction2-desc</description>
+ <description xml:lang="de">de-session1ContainerTransaction2-desc</description>
+ <method id="session1ContainerTransaction2Method1-id">
+ <description>en-session1ContainerTransaction2Method1-desc</description>
+ <description xml:lang="fr">fr-session1ContainerTransaction2Method1-desc</description>
+ <description xml:lang="de">de-session1ContainerTransaction2Method1-desc</description>
+ <ejb-name>session1</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>session1ContainerTransaction2Method1MethodName</method-name>
+ <method-params>
+ <method-param>session1ContainerTransaction2Method1Param1</method-param>
+ <method-param>session1ContainerTransaction2Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>Supports</trans-attribute>
+ </container-transaction>
+ <container-transaction id="session1ContainerTransaction3-id">
+ <description>en-session1ContainerTransaction3-desc</description>
+ <description xml:lang="fr">fr-session1ContainerTransaction3-desc</description>
+ <description xml:lang="de">de-session1ContainerTransaction3-desc</description>
+ <method id="session1ContainerTransaction3Method1-id">
+ <description>en-session1ContainerTransaction3Method1-desc</description>
+ <description xml:lang="fr">fr-session1ContainerTransaction3Method1-desc</description>
+ <description xml:lang="de">de-session1ContainerTransaction3Method1-desc</description>
+ <ejb-name>session1</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>session1ContainerTransaction3Method1MethodName</method-name>
+ <method-params>
+ <method-param>session1ContainerTransaction3Method1Param1</method-param>
+ <method-param>session1ContainerTransaction3Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>Required</trans-attribute>
+ </container-transaction>
+ <container-transaction id="session1ContainerTransaction4-id">
+ <description>en-session1ContainerTransaction4-desc</description>
+ <description xml:lang="fr">fr-session1ContainerTransaction4-desc</description>
+ <description xml:lang="de">de-session1ContainerTransaction4-desc</description>
+ <method id="session1ContainerTransaction4Method1-id">
+ <description>en-session1ContainerTransaction4Method1-desc</description>
+ <description xml:lang="fr">fr-session1ContainerTransaction4Method1-desc</description>
+ <description xml:lang="de">de-session1ContainerTransaction4Method1-desc</description>
+ <ejb-name>session1</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>session1ContainerTransaction4Method1MethodName</method-name>
+ <method-params>
+ <method-param>session1ContainerTransaction4Method1Param1</method-param>
+ <method-param>session1ContainerTransaction4Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>RequiresNew</trans-attribute>
+ </container-transaction>
+ <container-transaction id="session1ContainerTransaction5-id">
+ <description>en-session1ContainerTransaction5-desc</description>
+ <description xml:lang="fr">fr-session1ContainerTransaction5-desc</description>
+ <description xml:lang="de">de-session1ContainerTransaction5-desc</description>
+ <method id="session1ContainerTransaction5Method1-id">
+ <description>en-session1ContainerTransaction5Method1-desc</description>
+ <description xml:lang="fr">fr-session1ContainerTransaction5Method1-desc</description>
+ <description xml:lang="de">de-session1ContainerTransaction5Method1-desc</description>
+ <ejb-name>session1</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>session1ContainerTransaction5Method1MethodName</method-name>
+ <method-params>
+ <method-param>session1ContainerTransaction5Method1Param1</method-param>
+ <method-param>session1ContainerTransaction5Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>Mandatory</trans-attribute>
+ </container-transaction>
+ <container-transaction id="session1ContainerTransaction6-id">
+ <description>en-session1ContainerTransaction6-desc</description>
+ <description xml:lang="fr">fr-session1ContainerTransaction6-desc</description>
+ <description xml:lang="de">de-session1ContainerTransaction6-desc</description>
+ <method id="session1ContainerTransaction6Method1-id">
+ <description>en-session1ContainerTransaction6Method1-desc</description>
+ <description xml:lang="fr">fr-session1ContainerTransaction6Method1-desc</description>
+ <description xml:lang="de">de-session1ContainerTransaction6Method1-desc</description>
+ <ejb-name>session1</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>session1ContainerTransaction6Method1MethodName</method-name>
+ <method-params>
+ <method-param>session1ContainerTransaction6Method1Param1</method-param>
+ <method-param>session1ContainerTransaction6Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>Never</trans-attribute>
+ </container-transaction>
+
+ <container-transaction id="session2ContainerTransaction1-id">
+ <description>en-session2ContainerTransaction1-desc</description>
+ <description xml:lang="fr">fr-session2ContainerTransaction1-desc</description>
+ <description xml:lang="de">de-session2ContainerTransaction1-desc</description>
+ <method id="session2ContainerTransaction1Method1-id">
+ <description>en-session2ContainerTransaction1Method1-desc</description>
+ <description xml:lang="fr">fr-session2ContainerTransaction1Method1-desc</description>
+ <description xml:lang="de">de-session2ContainerTransaction1Method1-desc</description>
+ <ejb-name>session2</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>session2ContainerTransaction1Method1MethodName</method-name>
+ <method-params>
+ <method-param>session2ContainerTransaction1Method1Param1</method-param>
+ <method-param>session2ContainerTransaction1Method1Param2</method-param>
+ </method-params>
+ </method>
+ <method id="session2ContainerTransaction1Method2-id">
+ <description>en-session2ContainerTransaction1Method2-desc</description>
+ <description xml:lang="fr">fr-session2ContainerTransaction1Method2-desc</description>
+ <description xml:lang="de">de-session2ContainerTransaction1Method2-desc</description>
+ <ejb-name>session2</ejb-name>
+ <method-intf>Remote</method-intf>
+ <method-name>session2ContainerTransaction1Method2MethodName</method-name>
+ </method>
+ <method id="session2ContainerTransaction1Method3-id">
+ <description>en-session2ContainerTransaction1Method3-desc</description>
+ <description xml:lang="fr">fr-session2ContainerTransaction1Method3-desc</description>
+ <description xml:lang="de">de-session2ContainerTransaction1Method3-desc</description>
+ <ejb-name>session2</ejb-name>
+ <method-intf>LocalHome</method-intf>
+ <method-name>session2ContainerTransaction1Method3MethodName</method-name>
+ </method>
+ <method id="session2ContainerTransaction1Method4-id">
+ <description>en-session2ContainerTransaction1Method4-desc</description>
+ <description xml:lang="fr">fr-session2ContainerTransaction1Method4-desc</description>
+ <description xml:lang="de">de-session2ContainerTransaction1Method4-desc</description>
+ <ejb-name>session2</ejb-name>
+ <method-intf>Local</method-intf>
+ <method-name>session2ContainerTransaction1Method4MethodName</method-name>
+ </method>
+ <method id="session2ContainerTransaction1Method5-id">
+ <description>en-session2ContainerTransaction1Method5-desc</description>
+ <description xml:lang="fr">fr-session2ContainerTransaction1Method5-desc</description>
+ <description xml:lang="de">de-session2ContainerTransaction1Method5-desc</description>
+ <ejb-name>session2</ejb-name>
+ <method-intf>ServiceEndpoint</method-intf>
+ <method-name>session2ContainerTransaction1Method5MethodName</method-name>
+ </method>
+ <trans-attribute>NotSupported</trans-attribute>
+ </container-transaction>
+ <container-transaction id="session2ContainerTransaction2-id">
+ <description>en-session2ContainerTransaction2-desc</description>
+ <description xml:lang="fr">fr-session2ContainerTransaction2-desc</description>
+ <description xml:lang="de">de-session2ContainerTransaction2-desc</description>
+ <method id="session2ContainerTransaction2Method1-id">
+ <description>en-session2ContainerTransaction2Method1-desc</description>
+ <description xml:lang="fr">fr-session2ContainerTransaction2Method1-desc</description>
+ <description xml:lang="de">de-session2ContainerTransaction2Method1-desc</description>
+ <ejb-name>session2</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>session2ContainerTransaction2Method1MethodName</method-name>
+ <method-params>
+ <method-param>session2ContainerTransaction2Method1Param1</method-param>
+ <method-param>session2ContainerTransaction2Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>Supports</trans-attribute>
+ </container-transaction>
+ <container-transaction id="session2ContainerTransaction3-id">
+ <description>en-session2ContainerTransaction3-desc</description>
+ <description xml:lang="fr">fr-session2ContainerTransaction3-desc</description>
+ <description xml:lang="de">de-session2ContainerTransaction3-desc</description>
+ <method id="session2ContainerTransaction3Method1-id">
+ <description>en-session2ContainerTransaction3Method1-desc</description>
+ <description xml:lang="fr">fr-session2ContainerTransaction3Method1-desc</description>
+ <description xml:lang="de">de-session2ContainerTransaction3Method1-desc</description>
+ <ejb-name>session2</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>session2ContainerTransaction3Method1MethodName</method-name>
+ <method-params>
+ <method-param>session2ContainerTransaction3Method1Param1</method-param>
+ <method-param>session2ContainerTransaction3Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>Required</trans-attribute>
+ </container-transaction>
+ <container-transaction id="session2ContainerTransaction4-id">
+ <description>en-session2ContainerTransaction4-desc</description>
+ <description xml:lang="fr">fr-session2ContainerTransaction4-desc</description>
+ <description xml:lang="de">de-session2ContainerTransaction4-desc</description>
+ <method id="session2ContainerTransaction4Method1-id">
+ <description>en-session2ContainerTransaction4Method1-desc</description>
+ <description xml:lang="fr">fr-session2ContainerTransaction4Method1-desc</description>
+ <description xml:lang="de">de-session2ContainerTransaction4Method1-desc</description>
+ <ejb-name>session2</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>session2ContainerTransaction4Method1MethodName</method-name>
+ <method-params>
+ <method-param>session2ContainerTransaction4Method1Param1</method-param>
+ <method-param>session2ContainerTransaction4Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>RequiresNew</trans-attribute>
+ </container-transaction>
+ <container-transaction id="session2ContainerTransaction5-id">
+ <description>en-session2ContainerTransaction5-desc</description>
+ <description xml:lang="fr">fr-session2ContainerTransaction5-desc</description>
+ <description xml:lang="de">de-session2ContainerTransaction5-desc</description>
+ <method id="session2ContainerTransaction5Method1-id">
+ <description>en-session2ContainerTransaction5Method1-desc</description>
+ <description xml:lang="fr">fr-session2ContainerTransaction5Method1-desc</description>
+ <description xml:lang="de">de-session2ContainerTransaction5Method1-desc</description>
+ <ejb-name>session2</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>session2ContainerTransaction5Method1MethodName</method-name>
+ <method-params>
+ <method-param>session2ContainerTransaction5Method1Param1</method-param>
+ <method-param>session2ContainerTransaction5Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>Mandatory</trans-attribute>
+ </container-transaction>
+ <container-transaction id="session2ContainerTransaction6-id">
+ <description>en-session2ContainerTransaction6-desc</description>
+ <description xml:lang="fr">fr-session2ContainerTransaction6-desc</description>
+ <description xml:lang="de">de-session2ContainerTransaction6-desc</description>
+ <method id="session2ContainerTransaction6Method1-id">
+ <description>en-session2ContainerTransaction6Method1-desc</description>
+ <description xml:lang="fr">fr-session2ContainerTransaction6Method1-desc</description>
+ <description xml:lang="de">de-session2ContainerTransaction6Method1-desc</description>
+ <ejb-name>session2</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>session2ContainerTransaction6Method1MethodName</method-name>
+ <method-params>
+ <method-param>session2ContainerTransaction6Method1Param1</method-param>
+ <method-param>session2ContainerTransaction6Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>Never</trans-attribute>
+ </container-transaction>
+
+ <container-transaction id="entity1ContainerTransaction1-id">
+ <description>en-entity1ContainerTransaction1-desc</description>
+ <description xml:lang="fr">fr-entity1ContainerTransaction1-desc</description>
+ <description xml:lang="de">de-entity1ContainerTransaction1-desc</description>
+ <method id="entity1ContainerTransaction1Method1-id">
+ <description>en-entity1ContainerTransaction1Method1-desc</description>
+ <description xml:lang="fr">fr-entity1ContainerTransaction1Method1-desc</description>
+ <description xml:lang="de">de-entity1ContainerTransaction1Method1-desc</description>
+ <ejb-name>entity1</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>entity1ContainerTransaction1Method1MethodName</method-name>
+ <method-params>
+ <method-param>entity1ContainerTransaction1Method1Param1</method-param>
+ <method-param>entity1ContainerTransaction1Method1Param2</method-param>
+ </method-params>
+ </method>
+ <method id="entity1ContainerTransaction1Method2-id">
+ <description>en-entity1ContainerTransaction1Method2-desc</description>
+ <description xml:lang="fr">fr-entity1ContainerTransaction1Method2-desc</description>
+ <description xml:lang="de">de-entity1ContainerTransaction1Method2-desc</description>
+ <ejb-name>entity1</ejb-name>
+ <method-intf>Remote</method-intf>
+ <method-name>entity1ContainerTransaction1Method2MethodName</method-name>
+ </method>
+ <method id="entity1ContainerTransaction1Method3-id">
+ <description>en-entity1ContainerTransaction1Method3-desc</description>
+ <description xml:lang="fr">fr-entity1ContainerTransaction1Method3-desc</description>
+ <description xml:lang="de">de-entity1ContainerTransaction1Method3-desc</description>
+ <ejb-name>entity1</ejb-name>
+ <method-intf>LocalHome</method-intf>
+ <method-name>entity1ContainerTransaction1Method3MethodName</method-name>
+ </method>
+ <method id="entity1ContainerTransaction1Method4-id">
+ <description>en-entity1ContainerTransaction1Method4-desc</description>
+ <description xml:lang="fr">fr-entity1ContainerTransaction1Method4-desc</description>
+ <description xml:lang="de">de-entity1ContainerTransaction1Method4-desc</description>
+ <ejb-name>entity1</ejb-name>
+ <method-intf>Local</method-intf>
+ <method-name>entity1ContainerTransaction1Method4MethodName</method-name>
+ </method>
+ <method id="entity1ContainerTransaction1Method5-id">
+ <description>en-entity1ContainerTransaction1Method5-desc</description>
+ <description xml:lang="fr">fr-entity1ContainerTransaction1Method5-desc</description>
+ <description xml:lang="de">de-entity1ContainerTransaction1Method5-desc</description>
+ <ejb-name>entity1</ejb-name>
+ <method-intf>ServiceEndpoint</method-intf>
+ <method-name>entity1ContainerTransaction1Method5MethodName</method-name>
+ </method>
+ <trans-attribute>NotSupported</trans-attribute>
+ </container-transaction>
+ <container-transaction id="entity1ContainerTransaction2-id">
+ <description>en-entity1ContainerTransaction2-desc</description>
+ <description xml:lang="fr">fr-entity1ContainerTransaction2-desc</description>
+ <description xml:lang="de">de-entity1ContainerTransaction2-desc</description>
+ <method id="entity1ContainerTransaction2Method1-id">
+ <description>en-entity1ContainerTransaction2Method1-desc</description>
+ <description xml:lang="fr">fr-entity1ContainerTransaction2Method1-desc</description>
+ <description xml:lang="de">de-entity1ContainerTransaction2Method1-desc</description>
+ <ejb-name>entity1</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>entity1ContainerTransaction2Method1MethodName</method-name>
+ <method-params>
+ <method-param>entity1ContainerTransaction2Method1Param1</method-param>
+ <method-param>entity1ContainerTransaction2Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>Supports</trans-attribute>
+ </container-transaction>
+ <container-transaction id="entity1ContainerTransaction3-id">
+ <description>en-entity1ContainerTransaction3-desc</description>
+ <description xml:lang="fr">fr-entity1ContainerTransaction3-desc</description>
+ <description xml:lang="de">de-entity1ContainerTransaction3-desc</description>
+ <method id="entity1ContainerTransaction3Method1-id">
+ <description>en-entity1ContainerTransaction3Method1-desc</description>
+ <description xml:lang="fr">fr-entity1ContainerTransaction3Method1-desc</description>
+ <description xml:lang="de">de-entity1ContainerTransaction3Method1-desc</description>
+ <ejb-name>entity1</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>entity1ContainerTransaction3Method1MethodName</method-name>
+ <method-params>
+ <method-param>entity1ContainerTransaction3Method1Param1</method-param>
+ <method-param>entity1ContainerTransaction3Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>Required</trans-attribute>
+ </container-transaction>
+ <container-transaction id="entity1ContainerTransaction4-id">
+ <description>en-entity1ContainerTransaction4-desc</description>
+ <description xml:lang="fr">fr-entity1ContainerTransaction4-desc</description>
+ <description xml:lang="de">de-entity1ContainerTransaction4-desc</description>
+ <method id="entity1ContainerTransaction4Method1-id">
+ <description>en-entity1ContainerTransaction4Method1-desc</description>
+ <description xml:lang="fr">fr-entity1ContainerTransaction4Method1-desc</description>
+ <description xml:lang="de">de-entity1ContainerTransaction4Method1-desc</description>
+ <ejb-name>entity1</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>entity1ContainerTransaction4Method1MethodName</method-name>
+ <method-params>
+ <method-param>entity1ContainerTransaction4Method1Param1</method-param>
+ <method-param>entity1ContainerTransaction4Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>RequiresNew</trans-attribute>
+ </container-transaction>
+ <container-transaction id="entity1ContainerTransaction5-id">
+ <description>en-entity1ContainerTransaction5-desc</description>
+ <description xml:lang="fr">fr-entity1ContainerTransaction5-desc</description>
+ <description xml:lang="de">de-entity1ContainerTransaction5-desc</description>
+ <method id="entity1ContainerTransaction5Method1-id">
+ <description>en-entity1ContainerTransaction5Method1-desc</description>
+ <description xml:lang="fr">fr-entity1ContainerTransaction5Method1-desc</description>
+ <description xml:lang="de">de-entity1ContainerTransaction5Method1-desc</description>
+ <ejb-name>entity1</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>entity1ContainerTransaction5Method1MethodName</method-name>
+ <method-params>
+ <method-param>entity1ContainerTransaction5Method1Param1</method-param>
+ <method-param>entity1ContainerTransaction5Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>Mandatory</trans-attribute>
+ </container-transaction>
+ <container-transaction id="entity1ContainerTransaction6-id">
+ <description>en-entity1ContainerTransaction6-desc</description>
+ <description xml:lang="fr">fr-entity1ContainerTransaction6-desc</description>
+ <description xml:lang="de">de-entity1ContainerTransaction6-desc</description>
+ <method id="entity1ContainerTransaction6Method1-id">
+ <description>en-entity1ContainerTransaction6Method1-desc</description>
+ <description xml:lang="fr">fr-entity1ContainerTransaction6Method1-desc</description>
+ <description xml:lang="de">de-entity1ContainerTransaction6Method1-desc</description>
+ <ejb-name>entity1</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>entity1ContainerTransaction6Method1MethodName</method-name>
+ <method-params>
+ <method-param>entity1ContainerTransaction6Method1Param1</method-param>
+ <method-param>entity1ContainerTransaction6Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>Never</trans-attribute>
+ </container-transaction>
+
+ <container-transaction id="entity2ContainerTransaction1-id">
+ <description>en-entity2ContainerTransaction1-desc</description>
+ <description xml:lang="fr">fr-entity2ContainerTransaction1-desc</description>
+ <description xml:lang="de">de-entity2ContainerTransaction1-desc</description>
+ <method id="entity2ContainerTransaction1Method1-id">
+ <description>en-entity2ContainerTransaction1Method1-desc</description>
+ <description xml:lang="fr">fr-entity2ContainerTransaction1Method1-desc</description>
+ <description xml:lang="de">de-entity2ContainerTransaction1Method1-desc</description>
+ <ejb-name>entity2</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>entity2ContainerTransaction1Method1MethodName</method-name>
+ <method-params>
+ <method-param>entity2ContainerTransaction1Method1Param1</method-param>
+ <method-param>entity2ContainerTransaction1Method1Param2</method-param>
+ </method-params>
+ </method>
+ <method id="entity2ContainerTransaction1Method2-id">
+ <description>en-entity2ContainerTransaction1Method2-desc</description>
+ <description xml:lang="fr">fr-entity2ContainerTransaction1Method2-desc</description>
+ <description xml:lang="de">de-entity2ContainerTransaction1Method2-desc</description>
+ <ejb-name>entity2</ejb-name>
+ <method-intf>Remote</method-intf>
+ <method-name>entity2ContainerTransaction1Method2MethodName</method-name>
+ </method>
+ <method id="entity2ContainerTransaction1Method3-id">
+ <description>en-entity2ContainerTransaction1Method3-desc</description>
+ <description xml:lang="fr">fr-entity2ContainerTransaction1Method3-desc</description>
+ <description xml:lang="de">de-entity2ContainerTransaction1Method3-desc</description>
+ <ejb-name>entity2</ejb-name>
+ <method-intf>LocalHome</method-intf>
+ <method-name>entity2ContainerTransaction1Method3MethodName</method-name>
+ </method>
+ <method id="entity2ContainerTransaction1Method4-id">
+ <description>en-entity2ContainerTransaction1Method4-desc</description>
+ <description xml:lang="fr">fr-entity2ContainerTransaction1Method4-desc</description>
+ <description xml:lang="de">de-entity2ContainerTransaction1Method4-desc</description>
+ <ejb-name>entity2</ejb-name>
+ <method-intf>Local</method-intf>
+ <method-name>entity2ContainerTransaction1Method4MethodName</method-name>
+ </method>
+ <method id="entity2ContainerTransaction1Method5-id">
+ <description>en-entity2ContainerTransaction1Method5-desc</description>
+ <description xml:lang="fr">fr-entity2ContainerTransaction1Method5-desc</description>
+ <description xml:lang="de">de-entity2ContainerTransaction1Method5-desc</description>
+ <ejb-name>entity2</ejb-name>
+ <method-intf>ServiceEndpoint</method-intf>
+ <method-name>entity2ContainerTransaction1Method5MethodName</method-name>
+ </method>
+ <trans-attribute>NotSupported</trans-attribute>
+ </container-transaction>
+ <container-transaction id="entity2ContainerTransaction2-id">
+ <description>en-entity2ContainerTransaction2-desc</description>
+ <description xml:lang="fr">fr-entity2ContainerTransaction2-desc</description>
+ <description xml:lang="de">de-entity2ContainerTransaction2-desc</description>
+ <method id="entity2ContainerTransaction2Method1-id">
+ <description>en-entity2ContainerTransaction2Method1-desc</description>
+ <description xml:lang="fr">fr-entity2ContainerTransaction2Method1-desc</description>
+ <description xml:lang="de">de-entity2ContainerTransaction2Method1-desc</description>
+ <ejb-name>entity2</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>entity2ContainerTransaction2Method1MethodName</method-name>
+ <method-params>
+ <method-param>entity2ContainerTransaction2Method1Param1</method-param>
+ <method-param>entity2ContainerTransaction2Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>Supports</trans-attribute>
+ </container-transaction>
+ <container-transaction id="entity2ContainerTransaction3-id">
+ <description>en-entity2ContainerTransaction3-desc</description>
+ <description xml:lang="fr">fr-entity2ContainerTransaction3-desc</description>
+ <description xml:lang="de">de-entity2ContainerTransaction3-desc</description>
+ <method id="entity2ContainerTransaction3Method1-id">
+ <description>en-entity2ContainerTransaction3Method1-desc</description>
+ <description xml:lang="fr">fr-entity2ContainerTransaction3Method1-desc</description>
+ <description xml:lang="de">de-entity2ContainerTransaction3Method1-desc</description>
+ <ejb-name>entity2</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>entity2ContainerTransaction3Method1MethodName</method-name>
+ <method-params>
+ <method-param>entity2ContainerTransaction3Method1Param1</method-param>
+ <method-param>entity2ContainerTransaction3Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>Required</trans-attribute>
+ </container-transaction>
+ <container-transaction id="entity2ContainerTransaction4-id">
+ <description>en-entity2ContainerTransaction4-desc</description>
+ <description xml:lang="fr">fr-entity2ContainerTransaction4-desc</description>
+ <description xml:lang="de">de-entity2ContainerTransaction4-desc</description>
+ <method id="entity2ContainerTransaction4Method1-id">
+ <description>en-entity2ContainerTransaction4Method1-desc</description>
+ <description xml:lang="fr">fr-entity2ContainerTransaction4Method1-desc</description>
+ <description xml:lang="de">de-entity2ContainerTransaction4Method1-desc</description>
+ <ejb-name>entity2</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>entity2ContainerTransaction4Method1MethodName</method-name>
+ <method-params>
+ <method-param>entity2ContainerTransaction4Method1Param1</method-param>
+ <method-param>entity2ContainerTransaction4Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>RequiresNew</trans-attribute>
+ </container-transaction>
+ <container-transaction id="entity2ContainerTransaction5-id">
+ <description>en-entity2ContainerTransaction5-desc</description>
+ <description xml:lang="fr">fr-entity2ContainerTransaction5-desc</description>
+ <description xml:lang="de">de-entity2ContainerTransaction5-desc</description>
+ <method id="entity2ContainerTransaction5Method1-id">
+ <description>en-entity2ContainerTransaction5Method1-desc</description>
+ <description xml:lang="fr">fr-entity2ContainerTransaction5Method1-desc</description>
+ <description xml:lang="de">de-entity2ContainerTransaction5Method1-desc</description>
+ <ejb-name>entity2</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>entity2ContainerTransaction5Method1MethodName</method-name>
+ <method-params>
+ <method-param>entity2ContainerTransaction5Method1Param1</method-param>
+ <method-param>entity2ContainerTransaction5Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>Mandatory</trans-attribute>
+ </container-transaction>
+ <container-transaction id="entity2ContainerTransaction6-id">
+ <description>en-entity2ContainerTransaction6-desc</description>
+ <description xml:lang="fr">fr-entity2ContainerTransaction6-desc</description>
+ <description xml:lang="de">de-entity2ContainerTransaction6-desc</description>
+ <method id="entity2ContainerTransaction6Method1-id">
+ <description>en-entity2ContainerTransaction6Method1-desc</description>
+ <description xml:lang="fr">fr-entity2ContainerTransaction6Method1-desc</description>
+ <description xml:lang="de">de-entity2ContainerTransaction6Method1-desc</description>
+ <ejb-name>entity2</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>entity2ContainerTransaction6Method1MethodName</method-name>
+ <method-params>
+ <method-param>entity2ContainerTransaction6Method1Param1</method-param>
+ <method-param>entity2ContainerTransaction6Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>Never</trans-attribute>
+ </container-transaction>
+
+ <container-transaction id="mdb1ContainerTransaction1-id">
+ <description>en-mdb1ContainerTransaction1-desc</description>
+ <description xml:lang="fr">fr-mdb1ContainerTransaction1-desc</description>
+ <description xml:lang="de">de-mdb1ContainerTransaction1-desc</description>
+ <method id="mdb1ContainerTransaction1Method1-id">
+ <description>en-mdb1ContainerTransaction1Method1-desc</description>
+ <description xml:lang="fr">fr-mdb1ContainerTransaction1Method1-desc</description>
+ <description xml:lang="de">de-mdb1ContainerTransaction1Method1-desc</description>
+ <ejb-name>mdb1</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>mdb1ContainerTransaction1Method1MethodName</method-name>
+ <method-params>
+ <method-param>mdb1ContainerTransaction1Method1Param1</method-param>
+ <method-param>mdb1ContainerTransaction1Method1Param2</method-param>
+ </method-params>
+ </method>
+ <method id="mdb1ContainerTransaction1Method2-id">
+ <description>en-mdb1ContainerTransaction1Method2-desc</description>
+ <description xml:lang="fr">fr-mdb1ContainerTransaction1Method2-desc</description>
+ <description xml:lang="de">de-mdb1ContainerTransaction1Method2-desc</description>
+ <ejb-name>mdb1</ejb-name>
+ <method-intf>Remote</method-intf>
+ <method-name>mdb1ContainerTransaction1Method2MethodName</method-name>
+ </method>
+ <method id="mdb1ContainerTransaction1Method3-id">
+ <description>en-mdb1ContainerTransaction1Method3-desc</description>
+ <description xml:lang="fr">fr-mdb1ContainerTransaction1Method3-desc</description>
+ <description xml:lang="de">de-mdb1ContainerTransaction1Method3-desc</description>
+ <ejb-name>mdb1</ejb-name>
+ <method-intf>LocalHome</method-intf>
+ <method-name>mdb1ContainerTransaction1Method3MethodName</method-name>
+ </method>
+ <method id="mdb1ContainerTransaction1Method4-id">
+ <description>en-mdb1ContainerTransaction1Method4-desc</description>
+ <description xml:lang="fr">fr-mdb1ContainerTransaction1Method4-desc</description>
+ <description xml:lang="de">de-mdb1ContainerTransaction1Method4-desc</description>
+ <ejb-name>mdb1</ejb-name>
+ <method-intf>Local</method-intf>
+ <method-name>mdb1ContainerTransaction1Method4MethodName</method-name>
+ </method>
+ <method id="mdb1ContainerTransaction1Method5-id">
+ <description>en-mdb1ContainerTransaction1Method5-desc</description>
+ <description xml:lang="fr">fr-mdb1ContainerTransaction1Method5-desc</description>
+ <description xml:lang="de">de-mdb1ContainerTransaction1Method5-desc</description>
+ <ejb-name>mdb1</ejb-name>
+ <method-intf>ServiceEndpoint</method-intf>
+ <method-name>mdb1ContainerTransaction1Method5MethodName</method-name>
+ </method>
+ <trans-attribute>NotSupported</trans-attribute>
+ </container-transaction>
+ <container-transaction id="mdb1ContainerTransaction2-id">
+ <description>en-mdb1ContainerTransaction2-desc</description>
+ <description xml:lang="fr">fr-mdb1ContainerTransaction2-desc</description>
+ <description xml:lang="de">de-mdb1ContainerTransaction2-desc</description>
+ <method id="mdb1ContainerTransaction2Method1-id">
+ <description>en-mdb1ContainerTransaction2Method1-desc</description>
+ <description xml:lang="fr">fr-mdb1ContainerTransaction2Method1-desc</description>
+ <description xml:lang="de">de-mdb1ContainerTransaction2Method1-desc</description>
+ <ejb-name>mdb1</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>mdb1ContainerTransaction2Method1MethodName</method-name>
+ <method-params>
+ <method-param>mdb1ContainerTransaction2Method1Param1</method-param>
+ <method-param>mdb1ContainerTransaction2Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>Supports</trans-attribute>
+ </container-transaction>
+ <container-transaction id="mdb1ContainerTransaction3-id">
+ <description>en-mdb1ContainerTransaction3-desc</description>
+ <description xml:lang="fr">fr-mdb1ContainerTransaction3-desc</description>
+ <description xml:lang="de">de-mdb1ContainerTransaction3-desc</description>
+ <method id="mdb1ContainerTransaction3Method1-id">
+ <description>en-mdb1ContainerTransaction3Method1-desc</description>
+ <description xml:lang="fr">fr-mdb1ContainerTransaction3Method1-desc</description>
+ <description xml:lang="de">de-mdb1ContainerTransaction3Method1-desc</description>
+ <ejb-name>mdb1</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>mdb1ContainerTransaction3Method1MethodName</method-name>
+ <method-params>
+ <method-param>mdb1ContainerTransaction3Method1Param1</method-param>
+ <method-param>mdb1ContainerTransaction3Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>Required</trans-attribute>
+ </container-transaction>
+ <container-transaction id="mdb1ContainerTransaction4-id">
+ <description>en-mdb1ContainerTransaction4-desc</description>
+ <description xml:lang="fr">fr-mdb1ContainerTransaction4-desc</description>
+ <description xml:lang="de">de-mdb1ContainerTransaction4-desc</description>
+ <method id="mdb1ContainerTransaction4Method1-id">
+ <description>en-mdb1ContainerTransaction4Method1-desc</description>
+ <description xml:lang="fr">fr-mdb1ContainerTransaction4Method1-desc</description>
+ <description xml:lang="de">de-mdb1ContainerTransaction4Method1-desc</description>
+ <ejb-name>mdb1</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>mdb1ContainerTransaction4Method1MethodName</method-name>
+ <method-params>
+ <method-param>mdb1ContainerTransaction4Method1Param1</method-param>
+ <method-param>mdb1ContainerTransaction4Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>RequiresNew</trans-attribute>
+ </container-transaction>
+ <container-transaction id="mdb1ContainerTransaction5-id">
+ <description>en-mdb1ContainerTransaction5-desc</description>
+ <description xml:lang="fr">fr-mdb1ContainerTransaction5-desc</description>
+ <description xml:lang="de">de-mdb1ContainerTransaction5-desc</description>
+ <method id="mdb1ContainerTransaction5Method1-id">
+ <description>en-mdb1ContainerTransaction5Method1-desc</description>
+ <description xml:lang="fr">fr-mdb1ContainerTransaction5Method1-desc</description>
+ <description xml:lang="de">de-mdb1ContainerTransaction5Method1-desc</description>
+ <ejb-name>mdb1</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>mdb1ContainerTransaction5Method1MethodName</method-name>
+ <method-params>
+ <method-param>mdb1ContainerTransaction5Method1Param1</method-param>
+ <method-param>mdb1ContainerTransaction5Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>Mandatory</trans-attribute>
+ </container-transaction>
+ <container-transaction id="mdb1ContainerTransaction6-id">
+ <description>en-mdb1ContainerTransaction6-desc</description>
+ <description xml:lang="fr">fr-mdb1ContainerTransaction6-desc</description>
+ <description xml:lang="de">de-mdb1ContainerTransaction6-desc</description>
+ <method id="mdb1ContainerTransaction6Method1-id">
+ <description>en-mdb1ContainerTransaction6Method1-desc</description>
+ <description xml:lang="fr">fr-mdb1ContainerTransaction6Method1-desc</description>
+ <description xml:lang="de">de-mdb1ContainerTransaction6Method1-desc</description>
+ <ejb-name>mdb1</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>mdb1ContainerTransaction6Method1MethodName</method-name>
+ <method-params>
+ <method-param>mdb1ContainerTransaction6Method1Param1</method-param>
+ <method-param>mdb1ContainerTransaction6Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>Never</trans-attribute>
+ </container-transaction>
+
+ <container-transaction id="mdb2ContainerTransaction1-id">
+ <description>en-mdb2ContainerTransaction1-desc</description>
+ <description xml:lang="fr">fr-mdb2ContainerTransaction1-desc</description>
+ <description xml:lang="de">de-mdb2ContainerTransaction1-desc</description>
+ <method id="mdb2ContainerTransaction1Method1-id">
+ <description>en-mdb2ContainerTransaction1Method1-desc</description>
+ <description xml:lang="fr">fr-mdb2ContainerTransaction1Method1-desc</description>
+ <description xml:lang="de">de-mdb2ContainerTransaction1Method1-desc</description>
+ <ejb-name>mdb2</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>mdb2ContainerTransaction1Method1MethodName</method-name>
+ <method-params>
+ <method-param>mdb2ContainerTransaction1Method1Param1</method-param>
+ <method-param>mdb2ContainerTransaction1Method1Param2</method-param>
+ </method-params>
+ </method>
+ <method id="mdb2ContainerTransaction1Method2-id">
+ <description>en-mdb2ContainerTransaction1Method2-desc</description>
+ <description xml:lang="fr">fr-mdb2ContainerTransaction1Method2-desc</description>
+ <description xml:lang="de">de-mdb2ContainerTransaction1Method2-desc</description>
+ <ejb-name>mdb2</ejb-name>
+ <method-intf>Remote</method-intf>
+ <method-name>mdb2ContainerTransaction1Method2MethodName</method-name>
+ </method>
+ <method id="mdb2ContainerTransaction1Method3-id">
+ <description>en-mdb2ContainerTransaction1Method3-desc</description>
+ <description xml:lang="fr">fr-mdb2ContainerTransaction1Method3-desc</description>
+ <description xml:lang="de">de-mdb2ContainerTransaction1Method3-desc</description>
+ <ejb-name>mdb2</ejb-name>
+ <method-intf>LocalHome</method-intf>
+ <method-name>mdb2ContainerTransaction1Method3MethodName</method-name>
+ </method>
+ <method id="mdb2ContainerTransaction1Method4-id">
+ <description>en-mdb2ContainerTransaction1Method4-desc</description>
+ <description xml:lang="fr">fr-mdb2ContainerTransaction1Method4-desc</description>
+ <description xml:lang="de">de-mdb2ContainerTransaction1Method4-desc</description>
+ <ejb-name>mdb2</ejb-name>
+ <method-intf>Local</method-intf>
+ <method-name>mdb2ContainerTransaction1Method4MethodName</method-name>
+ </method>
+ <method id="mdb2ContainerTransaction1Method5-id">
+ <description>en-mdb2ContainerTransaction1Method5-desc</description>
+ <description xml:lang="fr">fr-mdb2ContainerTransaction1Method5-desc</description>
+ <description xml:lang="de">de-mdb2ContainerTransaction1Method5-desc</description>
+ <ejb-name>mdb2</ejb-name>
+ <method-intf>ServiceEndpoint</method-intf>
+ <method-name>mdb2ContainerTransaction1Method5MethodName</method-name>
+ </method>
+ <trans-attribute>NotSupported</trans-attribute>
+ </container-transaction>
+ <container-transaction id="mdb2ContainerTransaction2-id">
+ <description>en-mdb2ContainerTransaction2-desc</description>
+ <description xml:lang="fr">fr-mdb2ContainerTransaction2-desc</description>
+ <description xml:lang="de">de-mdb2ContainerTransaction2-desc</description>
+ <method id="mdb2ContainerTransaction2Method1-id">
+ <description>en-mdb2ContainerTransaction2Method1-desc</description>
+ <description xml:lang="fr">fr-mdb2ContainerTransaction2Method1-desc</description>
+ <description xml:lang="de">de-mdb2ContainerTransaction2Method1-desc</description>
+ <ejb-name>mdb2</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>mdb2ContainerTransaction2Method1MethodName</method-name>
+ <method-params>
+ <method-param>mdb2ContainerTransaction2Method1Param1</method-param>
+ <method-param>mdb2ContainerTransaction2Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>Supports</trans-attribute>
+ </container-transaction>
+ <container-transaction id="mdb2ContainerTransaction3-id">
+ <description>en-mdb2ContainerTransaction3-desc</description>
+ <description xml:lang="fr">fr-mdb2ContainerTransaction3-desc</description>
+ <description xml:lang="de">de-mdb2ContainerTransaction3-desc</description>
+ <method id="mdb2ContainerTransaction3Method1-id">
+ <description>en-mdb2ContainerTransaction3Method1-desc</description>
+ <description xml:lang="fr">fr-mdb2ContainerTransaction3Method1-desc</description>
+ <description xml:lang="de">de-mdb2ContainerTransaction3Method1-desc</description>
+ <ejb-name>mdb2</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>mdb2ContainerTransaction3Method1MethodName</method-name>
+ <method-params>
+ <method-param>mdb2ContainerTransaction3Method1Param1</method-param>
+ <method-param>mdb2ContainerTransaction3Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>Required</trans-attribute>
+ </container-transaction>
+ <container-transaction id="mdb2ContainerTransaction4-id">
+ <description>en-mdb2ContainerTransaction4-desc</description>
+ <description xml:lang="fr">fr-mdb2ContainerTransaction4-desc</description>
+ <description xml:lang="de">de-mdb2ContainerTransaction4-desc</description>
+ <method id="mdb2ContainerTransaction4Method1-id">
+ <description>en-mdb2ContainerTransaction4Method1-desc</description>
+ <description xml:lang="fr">fr-mdb2ContainerTransaction4Method1-desc</description>
+ <description xml:lang="de">de-mdb2ContainerTransaction4Method1-desc</description>
+ <ejb-name>mdb2</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>mdb2ContainerTransaction4Method1MethodName</method-name>
+ <method-params>
+ <method-param>mdb2ContainerTransaction4Method1Param1</method-param>
+ <method-param>mdb2ContainerTransaction4Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>RequiresNew</trans-attribute>
+ </container-transaction>
+ <container-transaction id="mdb2ContainerTransaction5-id">
+ <description>en-mdb2ContainerTransaction5-desc</description>
+ <description xml:lang="fr">fr-mdb2ContainerTransaction5-desc</description>
+ <description xml:lang="de">de-mdb2ContainerTransaction5-desc</description>
+ <method id="mdb2ContainerTransaction5Method1-id">
+ <description>en-mdb2ContainerTransaction5Method1-desc</description>
+ <description xml:lang="fr">fr-mdb2ContainerTransaction5Method1-desc</description>
+ <description xml:lang="de">de-mdb2ContainerTransaction5Method1-desc</description>
+ <ejb-name>mdb2</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>mdb2ContainerTransaction5Method1MethodName</method-name>
+ <method-params>
+ <method-param>mdb2ContainerTransaction5Method1Param1</method-param>
+ <method-param>mdb2ContainerTransaction5Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>Mandatory</trans-attribute>
+ </container-transaction>
+ <container-transaction id="mdb2ContainerTransaction6-id">
+ <description>en-mdb2ContainerTransaction6-desc</description>
+ <description xml:lang="fr">fr-mdb2ContainerTransaction6-desc</description>
+ <description xml:lang="de">de-mdb2ContainerTransaction6-desc</description>
+ <method id="mdb2ContainerTransaction6Method1-id">
+ <description>en-mdb2ContainerTransaction6Method1-desc</description>
+ <description xml:lang="fr">fr-mdb2ContainerTransaction6Method1-desc</description>
+ <description xml:lang="de">de-mdb2ContainerTransaction6Method1-desc</description>
+ <ejb-name>mdb2</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>mdb2ContainerTransaction6Method1MethodName</method-name>
+ <method-params>
+ <method-param>mdb2ContainerTransaction6Method1Param1</method-param>
+ <method-param>mdb2ContainerTransaction6Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>Never</trans-attribute>
+ </container-transaction>
+
+ <message-destination id="messageDestination1-id">
+ <description>en-messageDestination1-desc</description>
+ <description xml:lang="fr">fr-messageDestination1-desc</description>
+ <description xml:lang="de">de-messageDestination1-desc</description>
+ <display-name>en-messageDestination1-disp</display-name>
+ <display-name xml:lang="fr">fr-messageDestination1-disp</display-name>
+ <display-name xml:lang="de">de-messageDestination1-disp</display-name>
+ <icon id="en-messageDestination1-icon-id">
+ <small-icon>en-messageDestination1-small-icon</small-icon>
+ <large-icon>en-messageDestination1-large-icon</large-icon>
+ </icon>
+ <icon xml:lang="fr" id="fr-messageDestination1-icon-id">
+ <small-icon>fr-messageDestination1-small-icon</small-icon>
+ <large-icon>fr-messageDestination1-large-icon</large-icon>
+ </icon>
+ <icon xml:lang="de" id="de-messageDestination1-icon-id">
+ <small-icon>de-messageDestination1-small-icon</small-icon>
+ <large-icon>de-messageDestination1-large-icon</large-icon>
+ </icon>
+ <message-destination-name>messageDestination1Name</message-destination-name>
+ </message-destination>
+ <message-destination id="messageDestination2-id">
+ <description>en-messageDestination2-desc</description>
+ <description xml:lang="fr">fr-messageDestination2-desc</description>
+ <description xml:lang="de">de-messageDestination2-desc</description>
+ <display-name>en-messageDestination2-disp</display-name>
+ <display-name xml:lang="fr">fr-messageDestination2-disp</display-name>
+ <display-name xml:lang="de">de-messageDestination2-disp</display-name>
+ <icon id="en-messageDestination2-icon-id">
+ <small-icon>en-messageDestination2-small-icon</small-icon>
+ <large-icon>en-messageDestination2-large-icon</large-icon>
+ </icon>
+ <icon xml:lang="fr" id="fr-messageDestination2-icon-id">
+ <small-icon>fr-messageDestination2-small-icon</small-icon>
+ <large-icon>fr-messageDestination2-large-icon</large-icon>
+ </icon>
+ <icon xml:lang="de" id="de-messageDestination2-icon-id">
+ <small-icon>de-messageDestination2-small-icon</small-icon>
+ <large-icon>de-messageDestination2-large-icon</large-icon>
+ </icon>
+ <message-destination-name>messageDestination2Name</message-destination-name>
+ </message-destination>
+
+ <exclude-list id="excludeList-id">
+ <description>en-excludeList-desc</description>
+ <description xml:lang="fr">fr-excludeList-desc</description>
+ <description xml:lang="de">de-excludeList-desc</description>
+ <method id="excludeListMethod1-id">
+ <description>en-excludeListMethod1-desc</description>
+ <description xml:lang="fr">fr-excludeListMethod1-desc</description>
+ <description xml:lang="de">de-excludeListMethod1-desc</description>
+ <ejb-name>excludeListMethod1EjbName</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>excludeListMethod1MethodName</method-name>
+ <method-params>
+ <method-param>excludeListMethod1Param1</method-param>
+ <method-param>excludeListMethod1Param2</method-param>
+ </method-params>
+ </method>
+ <method id="excludeListMethod2-id">
+ <description>en-excludeListMethod2-desc</description>
+ <description xml:lang="fr">fr-excludeListMethod2-desc</description>
+ <description xml:lang="de">de-excludeListMethod2-desc</description>
+ <ejb-name>excludeListMethod2EjbName</ejb-name>
+ <method-intf>Remote</method-intf>
+ <method-name>excludeListMethod2MethodName</method-name>
+ </method>
+ <method id="excludeListMethod3-id">
+ <description>en-excludeListMethod3-desc</description>
+ <description xml:lang="fr">fr-excludeListMethod3-desc</description>
+ <description xml:lang="de">de-excludeListMethod3-desc</description>
+ <ejb-name>excludeListMethod3EjbName</ejb-name>
+ <method-intf>LocalHome</method-intf>
+ <method-name>excludeListMethod3MethodName</method-name>
+ </method>
+ <method id="excludeListMethod4-id">
+ <description>en-excludeListMethod4-desc</description>
+ <description xml:lang="fr">fr-excludeListMethod4-desc</description>
+ <description xml:lang="de">de-excludeListMethod4-desc</description>
+ <ejb-name>excludeListMethod4EjbName</ejb-name>
+ <method-intf>Local</method-intf>
+ <method-name>excludeListMethod4MethodName</method-name>
+ </method>
+ <method id="excludeListMethod5-id">
+ <description>en-excludeListMethod5-desc</description>
+ <description xml:lang="fr">fr-excludeListMethod5-desc</description>
+ <description xml:lang="de">de-excludeListMethod5-desc</description>
+ <ejb-name>excludeListMethod5EjbName</ejb-name>
+ <method-intf>ServiceEndpoint</method-intf>
+ <method-name>excludeListMethod5MethodName</method-name>
+ </method>
+
+ <method id="session1ExcludeListMethod1-id">
+ <description>en-session1ExcludeListMethod1-desc</description>
+ <description xml:lang="fr">fr-session1ExcludeListMethod1-desc</description>
+ <description xml:lang="de">de-session1ExcludeListMethod1-desc</description>
+ <ejb-name>session1</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>session1ExcludeListMethod1MethodName</method-name>
+ <method-params>
+ <method-param>session1ExcludeListMethod1Param1</method-param>
+ <method-param>session1ExcludeListMethod1Param2</method-param>
+ </method-params>
+ </method>
+ <method id="session1ExcludeListMethod2-id">
+ <description>en-session1ExcludeListMethod2-desc</description>
+ <description xml:lang="fr">fr-session1ExcludeListMethod2-desc</description>
+ <description xml:lang="de">de-session1ExcludeListMethod2-desc</description>
+ <ejb-name>session1</ejb-name>
+ <method-intf>Remote</method-intf>
+ <method-name>session1ExcludeListMethod2MethodName</method-name>
+ </method>
+ <method id="session1ExcludeListMethod3-id">
+ <description>en-session1ExcludeListMethod3-desc</description>
+ <description xml:lang="fr">fr-session1ExcludeListMethod3-desc</description>
+ <description xml:lang="de">de-session1ExcludeListMethod3-desc</description>
+ <ejb-name>session1</ejb-name>
+ <method-intf>LocalHome</method-intf>
+ <method-name>session1ExcludeListMethod3MethodName</method-name>
+ </method>
+ <method id="session1ExcludeListMethod4-id">
+ <description>en-session1ExcludeListMethod4-desc</description>
+ <description xml:lang="fr">fr-session1ExcludeListMethod4-desc</description>
+ <description xml:lang="de">de-session1ExcludeListMethod4-desc</description>
+ <ejb-name>session1</ejb-name>
+ <method-intf>Local</method-intf>
+ <method-name>session1ExcludeListMethod4MethodName</method-name>
+ </method>
+ <method id="session1ExcludeListMethod5-id">
+ <description>en-session1ExcludeListMethod5-desc</description>
+ <description xml:lang="fr">fr-session1ExcludeListMethod5-desc</description>
+ <description xml:lang="de">de-session1ExcludeListMethod5-desc</description>
+ <ejb-name>session1</ejb-name>
+ <method-intf>ServiceEndpoint</method-intf>
+ <method-name>session1ExcludeListMethod5MethodName</method-name>
+ </method>
+
+ <method id="session2ExcludeListMethod1-id">
+ <description>en-session2ExcludeListMethod1-desc</description>
+ <description xml:lang="fr">fr-session2ExcludeListMethod1-desc</description>
+ <description xml:lang="de">de-session2ExcludeListMethod1-desc</description>
+ <ejb-name>session2</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>session2ExcludeListMethod1MethodName</method-name>
+ <method-params>
+ <method-param>session2ExcludeListMethod1Param1</method-param>
+ <method-param>session2ExcludeListMethod1Param2</method-param>
+ </method-params>
+ </method>
+ <method id="session2ExcludeListMethod2-id">
+ <description>en-session2ExcludeListMethod2-desc</description>
+ <description xml:lang="fr">fr-session2ExcludeListMethod2-desc</description>
+ <description xml:lang="de">de-session2ExcludeListMethod2-desc</description>
+ <ejb-name>session2</ejb-name>
+ <method-intf>Remote</method-intf>
+ <method-name>session2ExcludeListMethod2MethodName</method-name>
+ </method>
+ <method id="session2ExcludeListMethod3-id">
+ <description>en-session2ExcludeListMethod3-desc</description>
+ <description xml:lang="fr">fr-session2ExcludeListMethod3-desc</description>
+ <description xml:lang="de">de-session2ExcludeListMethod3-desc</description>
+ <ejb-name>session2</ejb-name>
+ <method-intf>LocalHome</method-intf>
+ <method-name>session2ExcludeListMethod3MethodName</method-name>
+ </method>
+ <method id="session2ExcludeListMethod4-id">
+ <description>en-session2ExcludeListMethod4-desc</description>
+ <description xml:lang="fr">fr-session2ExcludeListMethod4-desc</description>
+ <description xml:lang="de">de-session2ExcludeListMethod4-desc</description>
+ <ejb-name>session2</ejb-name>
+ <method-intf>Local</method-intf>
+ <method-name>session2ExcludeListMethod4MethodName</method-name>
+ </method>
+ <method id="session2ExcludeListMethod5-id">
+ <description>en-session2ExcludeListMethod5-desc</description>
+ <description xml:lang="fr">fr-session2ExcludeListMethod5-desc</description>
+ <description xml:lang="de">de-session2ExcludeListMethod5-desc</description>
+ <ejb-name>session2</ejb-name>
+ <method-intf>ServiceEndpoint</method-intf>
+ <method-name>session2ExcludeListMethod5MethodName</method-name>
+ </method>
+
+ <method id="entity1ExcludeListMethod1-id">
+ <description>en-entity1ExcludeListMethod1-desc</description>
+ <description xml:lang="fr">fr-entity1ExcludeListMethod1-desc</description>
+ <description xml:lang="de">de-entity1ExcludeListMethod1-desc</description>
+ <ejb-name>entity1</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>entity1ExcludeListMethod1MethodName</method-name>
+ <method-params>
+ <method-param>entity1ExcludeListMethod1Param1</method-param>
+ <method-param>entity1ExcludeListMethod1Param2</method-param>
+ </method-params>
+ </method>
+ <method id="entity1ExcludeListMethod2-id">
+ <description>en-entity1ExcludeListMethod2-desc</description>
+ <description xml:lang="fr">fr-entity1ExcludeListMethod2-desc</description>
+ <description xml:lang="de">de-entity1ExcludeListMethod2-desc</description>
+ <ejb-name>entity1</ejb-name>
+ <method-intf>Remote</method-intf>
+ <method-name>entity1ExcludeListMethod2MethodName</method-name>
+ </method>
+ <method id="entity1ExcludeListMethod3-id">
+ <description>en-entity1ExcludeListMethod3-desc</description>
+ <description xml:lang="fr">fr-entity1ExcludeListMethod3-desc</description>
+ <description xml:lang="de">de-entity1ExcludeListMethod3-desc</description>
+ <ejb-name>entity1</ejb-name>
+ <method-intf>LocalHome</method-intf>
+ <method-name>entity1ExcludeListMethod3MethodName</method-name>
+ </method>
+ <method id="entity1ExcludeListMethod4-id">
+ <description>en-entity1ExcludeListMethod4-desc</description>
+ <description xml:lang="fr">fr-entity1ExcludeListMethod4-desc</description>
+ <description xml:lang="de">de-entity1ExcludeListMethod4-desc</description>
+ <ejb-name>entity1</ejb-name>
+ <method-intf>Local</method-intf>
+ <method-name>entity1ExcludeListMethod4MethodName</method-name>
+ </method>
+ <method id="entity1ExcludeListMethod5-id">
+ <description>en-entity1ExcludeListMethod5-desc</description>
+ <description xml:lang="fr">fr-entity1ExcludeListMethod5-desc</description>
+ <description xml:lang="de">de-entity1ExcludeListMethod5-desc</description>
+ <ejb-name>entity1</ejb-name>
+ <method-intf>ServiceEndpoint</method-intf>
+ <method-name>entity1ExcludeListMethod5MethodName</method-name>
+ </method>
+
+ <method id="entity2ExcludeListMethod1-id">
+ <description>en-entity2ExcludeListMethod1-desc</description>
+ <description xml:lang="fr">fr-entity2ExcludeListMethod1-desc</description>
+ <description xml:lang="de">de-entity2ExcludeListMethod1-desc</description>
+ <ejb-name>entity2</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>entity2ExcludeListMethod1MethodName</method-name>
+ <method-params>
+ <method-param>entity2ExcludeListMethod1Param1</method-param>
+ <method-param>entity2ExcludeListMethod1Param2</method-param>
+ </method-params>
+ </method>
+ <method id="entity2ExcludeListMethod2-id">
+ <description>en-entity2ExcludeListMethod2-desc</description>
+ <description xml:lang="fr">fr-entity2ExcludeListMethod2-desc</description>
+ <description xml:lang="de">de-entity2ExcludeListMethod2-desc</description>
+ <ejb-name>entity2</ejb-name>
+ <method-intf>Remote</method-intf>
+ <method-name>entity2ExcludeListMethod2MethodName</method-name>
+ </method>
+ <method id="entity2ExcludeListMethod3-id">
+ <description>en-entity2ExcludeListMethod3-desc</description>
+ <description xml:lang="fr">fr-entity2ExcludeListMethod3-desc</description>
+ <description xml:lang="de">de-entity2ExcludeListMethod3-desc</description>
+ <ejb-name>entity2</ejb-name>
+ <method-intf>LocalHome</method-intf>
+ <method-name>entity2ExcludeListMethod3MethodName</method-name>
+ </method>
+ <method id="entity2ExcludeListMethod4-id">
+ <description>en-entity2ExcludeListMethod4-desc</description>
+ <description xml:lang="fr">fr-entity2ExcludeListMethod4-desc</description>
+ <description xml:lang="de">de-entity2ExcludeListMethod4-desc</description>
+ <ejb-name>entity2</ejb-name>
+ <method-intf>Local</method-intf>
+ <method-name>entity2ExcludeListMethod4MethodName</method-name>
+ </method>
+ <method id="entity2ExcludeListMethod5-id">
+ <description>en-entity2ExcludeListMethod5-desc</description>
+ <description xml:lang="fr">fr-entity2ExcludeListMethod5-desc</description>
+ <description xml:lang="de">de-entity2ExcludeListMethod5-desc</description>
+ <ejb-name>entity2</ejb-name>
+ <method-intf>ServiceEndpoint</method-intf>
+ <method-name>entity2ExcludeListMethod5MethodName</method-name>
+ </method>
+
+ <method id="mdb1ExcludeListMethod1-id">
+ <description>en-mdb1ExcludeListMethod1-desc</description>
+ <description xml:lang="fr">fr-mdb1ExcludeListMethod1-desc</description>
+ <description xml:lang="de">de-mdb1ExcludeListMethod1-desc</description>
+ <ejb-name>mdb1</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>mdb1ExcludeListMethod1MethodName</method-name>
+ <method-params>
+ <method-param>mdb1ExcludeListMethod1Param1</method-param>
+ <method-param>mdb1ExcludeListMethod1Param2</method-param>
+ </method-params>
+ </method>
+ <method id="mdb1ExcludeListMethod2-id">
+ <description>en-mdb1ExcludeListMethod2-desc</description>
+ <description xml:lang="fr">fr-mdb1ExcludeListMethod2-desc</description>
+ <description xml:lang="de">de-mdb1ExcludeListMethod2-desc</description>
+ <ejb-name>mdb1</ejb-name>
+ <method-intf>Remote</method-intf>
+ <method-name>mdb1ExcludeListMethod2MethodName</method-name>
+ </method>
+ <method id="mdb1ExcludeListMethod3-id">
+ <description>en-mdb1ExcludeListMethod3-desc</description>
+ <description xml:lang="fr">fr-mdb1ExcludeListMethod3-desc</description>
+ <description xml:lang="de">de-mdb1ExcludeListMethod3-desc</description>
+ <ejb-name>mdb1</ejb-name>
+ <method-intf>LocalHome</method-intf>
+ <method-name>mdb1ExcludeListMethod3MethodName</method-name>
+ </method>
+ <method id="mdb1ExcludeListMethod4-id">
+ <description>en-mdb1ExcludeListMethod4-desc</description>
+ <description xml:lang="fr">fr-mdb1ExcludeListMethod4-desc</description>
+ <description xml:lang="de">de-mdb1ExcludeListMethod4-desc</description>
+ <ejb-name>mdb1</ejb-name>
+ <method-intf>Local</method-intf>
+ <method-name>mdb1ExcludeListMethod4MethodName</method-name>
+ </method>
+ <method id="mdb1ExcludeListMethod5-id">
+ <description>en-mdb1ExcludeListMethod5-desc</description>
+ <description xml:lang="fr">fr-mdb1ExcludeListMethod5-desc</description>
+ <description xml:lang="de">de-mdb1ExcludeListMethod5-desc</description>
+ <ejb-name>mdb1</ejb-name>
+ <method-intf>ServiceEndpoint</method-intf>
+ <method-name>mdb1ExcludeListMethod5MethodName</method-name>
+ </method>
+
+ <method id="mdb2ExcludeListMethod1-id">
+ <description>en-mdb2ExcludeListMethod1-desc</description>
+ <description xml:lang="fr">fr-mdb2ExcludeListMethod1-desc</description>
+ <description xml:lang="de">de-mdb2ExcludeListMethod1-desc</description>
+ <ejb-name>mdb2</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>mdb2ExcludeListMethod1MethodName</method-name>
+ <method-params>
+ <method-param>mdb2ExcludeListMethod1Param1</method-param>
+ <method-param>mdb2ExcludeListMethod1Param2</method-param>
+ </method-params>
+ </method>
+ <method id="mdb2ExcludeListMethod2-id">
+ <description>en-mdb2ExcludeListMethod2-desc</description>
+ <description xml:lang="fr">fr-mdb2ExcludeListMethod2-desc</description>
+ <description xml:lang="de">de-mdb2ExcludeListMethod2-desc</description>
+ <ejb-name>mdb2</ejb-name>
+ <method-intf>Remote</method-intf>
+ <method-name>mdb2ExcludeListMethod2MethodName</method-name>
+ </method>
+ <method id="mdb2ExcludeListMethod3-id">
+ <description>en-mdb2ExcludeListMethod3-desc</description>
+ <description xml:lang="fr">fr-mdb2ExcludeListMethod3-desc</description>
+ <description xml:lang="de">de-mdb2ExcludeListMethod3-desc</description>
+ <ejb-name>mdb2</ejb-name>
+ <method-intf>LocalHome</method-intf>
+ <method-name>mdb2ExcludeListMethod3MethodName</method-name>
+ </method>
+ <method id="mdb2ExcludeListMethod4-id">
+ <description>en-mdb2ExcludeListMethod4-desc</description>
+ <description xml:lang="fr">fr-mdb2ExcludeListMethod4-desc</description>
+ <description xml:lang="de">de-mdb2ExcludeListMethod4-desc</description>
+ <ejb-name>mdb2</ejb-name>
+ <method-intf>Local</method-intf>
+ <method-name>mdb2ExcludeListMethod4MethodName</method-name>
+ </method>
+ <method id="mdb2ExcludeListMethod5-id">
+ <description>en-mdb2ExcludeListMethod5-desc</description>
+ <description xml:lang="fr">fr-mdb2ExcludeListMethod5-desc</description>
+ <description xml:lang="de">de-mdb2ExcludeListMethod5-desc</description>
+ <ejb-name>mdb2</ejb-name>
+ <method-intf>ServiceEndpoint</method-intf>
+ <method-name>mdb2ExcludeListMethod5MethodName</method-name>
+ </method>
+
+ </exclude-list>
+
+ </assembly-descriptor>
+
+ <ejb-client-jar>some/path/client.jar</ejb-client-jar>
+
+</ejb-jar>
\ No newline at end of file
Added: jbossxb-builder/trunk/src/test/resources/org/jboss/test/ejb/metadata/test/EjbJar21_testVersion.xml
===================================================================
--- jbossxb-builder/trunk/src/test/resources/org/jboss/test/ejb/metadata/test/EjbJar21_testVersion.xml (rev 0)
+++ jbossxb-builder/trunk/src/test/resources/org/jboss/test/ejb/metadata/test/EjbJar21_testVersion.xml 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<ejb-jar xmlns="http://java.sun.com/xml/ns/j2ee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/javaee/ejb-jar_2_1.xsd"
+ version="2.1">
+</ejb-jar>
\ No newline at end of file
Added: jbossxb-builder/trunk/src/test/resources/org/jboss/test/ejb/metadata/test/EjbJar3xEverything_testEverything.xml
===================================================================
--- jbossxb-builder/trunk/src/test/resources/org/jboss/test/ejb/metadata/test/EjbJar3xEverything_testEverything.xml (rev 0)
+++ jbossxb-builder/trunk/src/test/resources/org/jboss/test/ejb/metadata/test/EjbJar3xEverything_testEverything.xml 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,5558 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<ejb-jar 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/ejb-jar_3_0.xsd"
+ version="3.0"
+ metadata-complete="true"
+ id="ejb-jar-id">
+
+ <description>en-ejb-jar-desc</description>
+ <description xml:lang="fr">fr-ejb-jar-desc</description>
+ <description xml:lang="de">de-ejb-jar-desc</description>
+ <display-name>en-ejb-jar-disp</display-name>
+ <display-name xml:lang="fr">fr-ejb-jar-disp</display-name>
+ <display-name xml:lang="de">de-ejb-jar-disp</display-name>
+ <icon id="en-ejb-jar-icon-id">
+ <small-icon>en-ejb-jar-small-icon</small-icon>
+ <large-icon>en-ejb-jar-large-icon</large-icon>
+ </icon>
+ <icon xml:lang="fr" id="fr-ejb-jar-icon-id">
+ <small-icon>fr-ejb-jar-small-icon</small-icon>
+ <large-icon>fr-ejb-jar-large-icon</large-icon>
+ </icon>
+ <icon xml:lang="de" id="de-ejb-jar-icon-id">
+ <small-icon>de-ejb-jar-small-icon</small-icon>
+ <large-icon>de-ejb-jar-large-icon</large-icon>
+ </icon>
+
+ <enterprise-beans id="enterprise-beans-id">
+
+ <session>
+ <ejb-name>session0</ejb-name>
+ </session>
+
+ <session id="session1-id">
+
+ <description>en-session1-desc</description>
+ <description xml:lang="fr">fr-session1-desc</description>
+ <description xml:lang="de">de-session1-desc</description>
+ <display-name>en-session1-disp</display-name>
+ <display-name xml:lang="fr">fr-session1-disp</display-name>
+ <display-name xml:lang="de">de-session1-disp</display-name>
+ <icon id="en-session1-icon-id">
+ <small-icon>en-session1-small-icon</small-icon>
+ <large-icon>en-session1-large-icon</large-icon>
+ </icon>
+ <icon xml:lang="fr" id="fr-session1-icon-id">
+ <small-icon>fr-session1-small-icon</small-icon>
+ <large-icon>fr-session1-large-icon</large-icon>
+ </icon>
+ <icon xml:lang="de" id="de-session1-icon-id">
+ <small-icon>de-session1-small-icon</small-icon>
+ <large-icon>de-session1-large-icon</large-icon>
+ </icon>
+
+ <ejb-name>session1</ejb-name>
+
+ <mapped-name>session1-mapped-name</mapped-name>
+ <home>session1Home</home>
+ <remote>session1Remote</remote>
+ <local-home>session1LocalHome</local-home>
+ <local>session1Local</local>
+ <business-local>session1BusinessLocal1</business-local>
+ <business-local>session1BusinessLocal2</business-local>
+ <business-remote>session1BusinessRemote1</business-remote>
+ <business-remote>session1BusinessRemote2</business-remote>
+ <service-endpoint>session1ServiceEndpoint</service-endpoint>
+ <ejb-class>session1EjbClass</ejb-class>
+ <session-type>Stateless</session-type>
+ <timeout-method id="session1TimeoutMethod-id">
+ <method-name>session1TimeoutMethod</method-name>
+ <method-params>
+ <method-param>session1TimeoutMethodParam1</method-param>
+ <method-param>session1TimeoutMethodParam2</method-param>
+ </method-params>
+ </timeout-method>
+ <init-method id="session1InitMethod1-id">
+ <create-method id="session1InitCreateMethod1-id">
+ <method-name>session1InitCreateMethod1</method-name>
+ </create-method>
+ <bean-method id="session1InitBeanMethod1-id">
+ <method-name>session1InitBeanMethod1</method-name>
+ </bean-method>
+ </init-method>
+ <init-method id="session1InitMethod2-id">
+ <create-method id="session1InitCreateMethod2-id">
+ <method-name>session1InitCreateMethod2</method-name>
+ </create-method>
+ <bean-method id="session1InitBeanMethod2-id">
+ <method-name>session1InitBeanMethod2</method-name>
+ </bean-method>
+ </init-method>
+ <remove-method id="session1RemoveMethod1-id">
+ <bean-method id="session1RemoveBeanMethod1-id">
+ <method-name>session1RemoveBeanMethod1</method-name>
+ </bean-method>
+ <retain-if-exception>true</retain-if-exception>
+ </remove-method>
+ <remove-method id="session1RemoveMethod2-id">
+ <bean-method id="session1RemoveBeanMethod2-id">
+ <method-name>session1RemoveBeanMethod2</method-name>
+ </bean-method>
+ <retain-if-exception>false</retain-if-exception>
+ </remove-method>
+ <remove-method id="session1RemoveMethod3-id">
+ <bean-method id="session1RemoveBeanMethod3-id">
+ <method-name>session1RemoveBeanMethod3</method-name>
+ </bean-method>
+ </remove-method>
+ <transaction-type>Container</transaction-type>
+ <around-invoke>
+ <class>session1AroundInvoke1Class</class>
+ <method-name>session1AroundInvoke1Method</method-name>
+ </around-invoke>
+ <around-invoke>
+ <class>session1AroundInvoke2Class</class>
+ <method-name>session1AroundInvoke2Method</method-name>
+ </around-invoke>
+
+ <env-entry id="session1EnvEntry1-id">
+ <description>en-session1EnvEntry1-desc</description>
+ <description xml:lang="fr">fr-session1EnvEntry1-desc</description>
+ <description xml:lang="de">de-session1EnvEntry1-desc</description>
+ <env-entry-name>session1EnvEntry1Name</env-entry-name>
+ <env-entry-type>session1EnvEntry1Type</env-entry-type>
+ <env-entry-value>session1EnvEntry1Value</env-entry-value>
+ <mapped-name>session1EnvEntry1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>session1EnvEntry1Injection1Class</injection-target-class>
+ <injection-target-name>session1EnvEntry1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>session1EnvEntry1Injection2Class</injection-target-class>
+ <injection-target-name>session1EnvEntry1Injection2Name</injection-target-name>
+ </injection-target>
+ </env-entry>
+ <env-entry id="session1EnvEntry2-id">
+ <description>en-session1EnvEntry2-desc</description>
+ <description xml:lang="fr">fr-session1EnvEntry2-desc</description>
+ <description xml:lang="de">de-session1EnvEntry2-desc</description>
+ <env-entry-name>session1EnvEntry2Name</env-entry-name>
+ <env-entry-type>session1EnvEntry2Type</env-entry-type>
+ <env-entry-value>session1EnvEntry2Value</env-entry-value>
+ <mapped-name>session1EnvEntry2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>session1EnvEntry2Injection1Class</injection-target-class>
+ <injection-target-name>session1EnvEntry2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>session1EnvEntry2Injection2Class</injection-target-class>
+ <injection-target-name>session1EnvEntry2Injection2Name</injection-target-name>
+ </injection-target>
+ </env-entry>
+ <ejb-ref id="session1EjbRef1-id">
+ <description>en-session1EjbRef1-desc</description>
+ <description xml:lang="fr">fr-session1EjbRef1-desc</description>
+ <description xml:lang="de">de-session1EjbRef1-desc</description>
+ <ejb-ref-name>session1EjbRef1Name</ejb-ref-name>
+ <ejb-ref-type>Session</ejb-ref-type>
+ <home>session1EjbRef1Home</home>
+ <remote>session1EjbRef1Remote</remote>
+ <ejb-link>session1EjbRef1EjbLink</ejb-link>
+ <mapped-name>session1EjbRef1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>session1EjbRef1Injection1Class</injection-target-class>
+ <injection-target-name>session1EjbRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>session1EjbRef1Injection2Class</injection-target-class>
+ <injection-target-name>session1EjbRef1Injection2Name</injection-target-name>
+ </injection-target>
+ </ejb-ref>
+ <ejb-ref id="session1EjbRef2-id">
+ <description>en-session1EjbRef2-desc</description>
+ <description xml:lang="fr">fr-session1EjbRef2-desc</description>
+ <description xml:lang="de">de-session1EjbRef2-desc</description>
+ <ejb-ref-name>session1EjbRef2Name</ejb-ref-name>
+ <ejb-ref-type>Entity</ejb-ref-type>
+ <home>session1EjbRef2Home</home>
+ <remote>session1EjbRef2Remote</remote>
+ <ejb-link>session1EjbRef2EjbLink</ejb-link>
+ <mapped-name>session1EjbRef2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>session1EjbRef2Injection1Class</injection-target-class>
+ <injection-target-name>session1EjbRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>session1EjbRef2Injection2Class</injection-target-class>
+ <injection-target-name>session1EjbRef2Injection2Name</injection-target-name>
+ </injection-target>
+ </ejb-ref>
+ <ejb-local-ref id="session1EjbLocalRef1-id">
+ <description>en-session1EjbLocalRef1-desc</description>
+ <description xml:lang="fr">fr-session1EjbLocalRef1-desc</description>
+ <description xml:lang="de">de-session1EjbLocalRef1-desc</description>
+ <ejb-ref-name>session1EjbLocalRef1Name</ejb-ref-name>
+ <ejb-ref-type>Session</ejb-ref-type>
+ <local-home>session1EjbLocalRef1LocalHome</local-home>
+ <local>session1EjbLocalRef1Local</local>
+ <ejb-link>session1EjbLocalRef1EjbLink</ejb-link>
+ <mapped-name>session1EjbLocalRef1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>session1EjbLocalRef1Injection1Class</injection-target-class>
+ <injection-target-name>session1EjbLocalRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>session1EjbLocalRef1Injection2Class</injection-target-class>
+ <injection-target-name>session1EjbLocalRef1Injection2Name</injection-target-name>
+ </injection-target>
+ </ejb-local-ref>
+ <ejb-local-ref id="session1EjbLocalRef2-id">
+ <description>en-session1EjbLocalRef2-desc</description>
+ <description xml:lang="fr">fr-session1EjbLocalRef2-desc</description>
+ <description xml:lang="de">de-session1EjbLocalRef2-desc</description>
+ <ejb-ref-name>session1EjbLocalRef2Name</ejb-ref-name>
+ <ejb-ref-type>Entity</ejb-ref-type>
+ <local-home>session1EjbLocalRef2LocalHome</local-home>
+ <local>session1EjbLocalRef2Local</local>
+ <ejb-link>session1EjbLocalRef2EjbLink</ejb-link>
+ <mapped-name>session1EjbLocalRef2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>session1EjbLocalRef2Injection1Class</injection-target-class>
+ <injection-target-name>session1EjbLocalRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>session1EjbLocalRef2Injection2Class</injection-target-class>
+ <injection-target-name>session1EjbLocalRef2Injection2Name</injection-target-name>
+ </injection-target>
+ </ejb-local-ref>
+
+ <!-- TODO service-refGroup -->
+
+ <resource-ref id="session1ResourceRef1-id">
+ <description>en-session1ResourceRef1-desc</description>
+ <description xml:lang="fr">fr-session1ResourceRef1-desc</description>
+ <description xml:lang="de">de-session1ResourceRef1-desc</description>
+ <res-ref-name>session1ResourceRef1Name</res-ref-name>
+ <res-type>session1ResourceRef1Type</res-type>
+ <res-auth>Application</res-auth>
+ <res-sharing-scope>Shareable</res-sharing-scope>
+ <mapped-name>session1ResourceRef1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>session1ResourceRef1Injection1Class</injection-target-class>
+ <injection-target-name>session1ResourceRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>session1ResourceRef1Injection2Class</injection-target-class>
+ <injection-target-name>session1ResourceRef1Injection2Name</injection-target-name>
+ </injection-target>
+ </resource-ref>
+ <resource-ref id="session1ResourceRef2-id">
+ <description>en-session1ResourceRef2-desc</description>
+ <description xml:lang="fr">fr-session1ResourceRef2-desc</description>
+ <description xml:lang="de">de-session1ResourceRef2-desc</description>
+ <res-ref-name>session1ResourceRef2Name</res-ref-name>
+ <res-type>session1ResourceRef2Type</res-type>
+ <res-auth>Container</res-auth>
+ <res-sharing-scope>Unshareable</res-sharing-scope>
+ <mapped-name>session1ResourceRef2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>session1ResourceRef2Injection1Class</injection-target-class>
+ <injection-target-name>session1ResourceRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>session1ResourceRef2Injection2Class</injection-target-class>
+ <injection-target-name>session1ResourceRef2Injection2Name</injection-target-name>
+ </injection-target>
+ </resource-ref>
+ <resource-env-ref id="session1ResourceEnvRef1-id">
+ <description>en-session1ResourceEnvRef1-desc</description>
+ <description xml:lang="fr">fr-session1ResourceEnvRef1-desc</description>
+ <description xml:lang="de">de-session1ResourceEnvRef1-desc</description>
+ <resource-env-ref-name>session1ResourceEnvRef1Name</resource-env-ref-name>
+ <resource-env-ref-type>session1ResourceEnvRef1Type</resource-env-ref-type>
+ <mapped-name>session1ResourceEnvRef1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>session1ResourceEnvRef1Injection1Class</injection-target-class>
+ <injection-target-name>session1ResourceEnvRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>session1ResourceEnvRef1Injection2Class</injection-target-class>
+ <injection-target-name>session1ResourceEnvRef1Injection2Name</injection-target-name>
+ </injection-target>
+ </resource-env-ref>
+ <resource-env-ref id="session1ResourceEnvRef2-id">
+ <description>en-session1ResourceEnvRef2-desc</description>
+ <description xml:lang="fr">fr-session1ResourceEnvRef2-desc</description>
+ <description xml:lang="de">de-session1ResourceEnvRef2-desc</description>
+ <resource-env-ref-name>session1ResourceEnvRef2Name</resource-env-ref-name>
+ <resource-env-ref-type>session1ResourceEnvRef2Type</resource-env-ref-type>
+ <mapped-name>session1ResourceEnvRef2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>session1ResourceEnvRef2Injection1Class</injection-target-class>
+ <injection-target-name>session1ResourceEnvRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>session1ResourceEnvRef2Injection2Class</injection-target-class>
+ <injection-target-name>session1ResourceEnvRef2Injection2Name</injection-target-name>
+ </injection-target>
+ </resource-env-ref>
+ <message-destination-ref id="session1MessageDestinationRef1-id">
+ <description>en-session1MessageDestinationRef1-desc</description>
+ <description xml:lang="fr">fr-session1MessageDestinationRef1-desc</description>
+ <description xml:lang="de">de-session1MessageDestinationRef1-desc</description>
+ <message-destination-ref-name>session1MessageDestinationRef1Name</message-destination-ref-name>
+ <message-destination-type>session1MessageDestinationRef1Type</message-destination-type>
+ <message-destination-usage>Consumes</message-destination-usage>
+ <message-destination-link>session1MessageDestinationRef1Link</message-destination-link>
+ <mapped-name>session1MessageDestinationRef1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>session1MessageDestinationRef1Injection1Class</injection-target-class>
+ <injection-target-name>session1MessageDestinationRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>session1MessageDestinationRef1Injection2Class</injection-target-class>
+ <injection-target-name>session1MessageDestinationRef1Injection2Name</injection-target-name>
+ </injection-target>
+ </message-destination-ref>
+ <message-destination-ref id="session1MessageDestinationRef2-id">
+ <description>en-session1MessageDestinationRef2-desc</description>
+ <description xml:lang="fr">fr-session1MessageDestinationRef2-desc</description>
+ <description xml:lang="de">de-session1MessageDestinationRef2-desc</description>
+ <message-destination-ref-name>session1MessageDestinationRef2Name</message-destination-ref-name>
+ <message-destination-type>session1MessageDestinationRef2Type</message-destination-type>
+ <message-destination-usage>Produces</message-destination-usage>
+ <message-destination-link>session1MessageDestinationRef2Link</message-destination-link>
+ <mapped-name>session1MessageDestinationRef2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>session1MessageDestinationRef2Injection1Class</injection-target-class>
+ <injection-target-name>session1MessageDestinationRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>session1MessageDestinationRef2Injection2Class</injection-target-class>
+ <injection-target-name>session1MessageDestinationRef2Injection2Name</injection-target-name>
+ </injection-target>
+ </message-destination-ref>
+ <message-destination-ref id="session1MessageDestinationRef3-id">
+ <description>en-session1MessageDestinationRef3-desc</description>
+ <description xml:lang="fr">fr-session1MessageDestinationRef3-desc</description>
+ <description xml:lang="de">de-session1MessageDestinationRef3-desc</description>
+ <message-destination-ref-name>session1MessageDestinationRef3Name</message-destination-ref-name>
+ <message-destination-type>session1MessageDestinationRef3Type</message-destination-type>
+ <message-destination-usage>ConsumesProduces</message-destination-usage>
+ <message-destination-link>session1MessageDestinationRef3Link</message-destination-link>
+ <mapped-name>session1MessageDestinationRef3MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>session1MessageDestinationRef3Injection1Class</injection-target-class>
+ <injection-target-name>session1MessageDestinationRef3Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>session1MessageDestinationRef3Injection2Class</injection-target-class>
+ <injection-target-name>session1MessageDestinationRef3Injection2Name</injection-target-name>
+ </injection-target>
+ </message-destination-ref>
+ <persistence-context-ref id="session1PersistenceContextRef1-id">
+ <description>en-session1PersistenceContextRef1-desc</description>
+ <description xml:lang="fr">fr-session1PersistenceContextRef1-desc</description>
+ <description xml:lang="de">de-session1PersistenceContextRef1-desc</description>
+ <persistence-context-ref-name>session1PersistenceContextRef1Name</persistence-context-ref-name>
+ <persistence-unit-name>session1PersistenceContextRef1Unit</persistence-unit-name>
+ <persistence-context-type>Transaction</persistence-context-type>
+ <persistence-property id="session1PersistenceContextRef1Property1-id">
+ <name>session1PersistenceContextRef1Property1Name</name>
+ <value>session1PersistenceContextRef1Property1Value</value>
+ </persistence-property>
+ <persistence-property id="session1PersistenceContextRef1Property2-id">
+ <name>session1PersistenceContextRef1Property2Name</name>
+ <value>session1PersistenceContextRef1Property2Value</value>
+ </persistence-property>
+ <mapped-name>session1PersistenceContextRef1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>session1PersistenceContextRef1Injection1Class</injection-target-class>
+ <injection-target-name>session1PersistenceContextRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>session1PersistenceContextRef1Injection2Class</injection-target-class>
+ <injection-target-name>session1PersistenceContextRef1Injection2Name</injection-target-name>
+ </injection-target>
+ </persistence-context-ref>
+ <persistence-context-ref id="session1PersistenceContextRef2-id">
+ <description>en-session1PersistenceContextRef2-desc</description>
+ <description xml:lang="fr">fr-session1PersistenceContextRef2-desc</description>
+ <description xml:lang="de">de-session1PersistenceContextRef2-desc</description>
+ <persistence-context-ref-name>session1PersistenceContextRef2Name</persistence-context-ref-name>
+ <persistence-unit-name>session1PersistenceContextRef2Unit</persistence-unit-name>
+ <persistence-context-type>Extended</persistence-context-type>
+ <persistence-property id="session1PersistenceContextRef2Property1-id">
+ <name>session1PersistenceContextRef2Property1Name</name>
+ <value>session1PersistenceContextRef2Property1Value</value>
+ </persistence-property>
+ <persistence-property id="session1PersistenceContextRef2Property2-id">
+ <name>session1PersistenceContextRef2Property2Name</name>
+ <value>session1PersistenceContextRef2Property2Value</value>
+ </persistence-property>
+ <mapped-name>session1PersistenceContextRef2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>session1PersistenceContextRef2Injection1Class</injection-target-class>
+ <injection-target-name>session1PersistenceContextRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>session1PersistenceContextRef2Injection2Class</injection-target-class>
+ <injection-target-name>session1PersistenceContextRef2Injection2Name</injection-target-name>
+ </injection-target>
+ </persistence-context-ref>
+ <persistence-unit-ref id="session1PersistenceUnitRef1-id">
+ <description>en-session1PersistenceUnitRef1-desc</description>
+ <description xml:lang="fr">fr-session1PersistenceUnitRef1-desc</description>
+ <description xml:lang="de">de-session1PersistenceUnitRef1-desc</description>
+ <persistence-unit-ref-name>session1PersistenceUnitRef1Name</persistence-unit-ref-name>
+ <persistence-unit-name>session1PersistenceUnitRef1Unit</persistence-unit-name>
+ <mapped-name>session1PersistenceUnitRef1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>session1PersistenceUnitRef1Injection1Class</injection-target-class>
+ <injection-target-name>session1PersistenceUnitRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>session1PersistenceUnitRef1Injection2Class</injection-target-class>
+ <injection-target-name>session1PersistenceUnitRef1Injection2Name</injection-target-name>
+ </injection-target>
+ </persistence-unit-ref>
+ <persistence-unit-ref id="session1PersistenceUnitRef2-id">
+ <description>en-session1PersistenceUnitRef2-desc</description>
+ <description xml:lang="fr">fr-session1PersistenceUnitRef2-desc</description>
+ <description xml:lang="de">de-session1PersistenceUnitRef2-desc</description>
+ <persistence-unit-ref-name>session1PersistenceUnitRef2Name</persistence-unit-ref-name>
+ <persistence-unit-name>session1PersistenceUnitRef2Unit</persistence-unit-name>
+ <mapped-name>session1PersistenceUnitRef2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>session1PersistenceUnitRef2Injection1Class</injection-target-class>
+ <injection-target-name>session1PersistenceUnitRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>session1PersistenceUnitRef2Injection2Class</injection-target-class>
+ <injection-target-name>session1PersistenceUnitRef2Injection2Name</injection-target-name>
+ </injection-target>
+ </persistence-unit-ref>
+ <post-construct>
+ <lifecycle-callback-class>session1PostConstruct1Class</lifecycle-callback-class>
+ <lifecycle-callback-method>session1PostConstruct1Method</lifecycle-callback-method>
+ </post-construct>
+ <post-construct>
+ <lifecycle-callback-class>session1PostConstruct2Class</lifecycle-callback-class>
+ <lifecycle-callback-method>session1PostConstruct2Method</lifecycle-callback-method>
+ </post-construct>
+ <pre-destroy>
+ <lifecycle-callback-class>session1PreDestroy1Class</lifecycle-callback-class>
+ <lifecycle-callback-method>session1PreDestroy1Method</lifecycle-callback-method>
+ </pre-destroy>
+ <pre-destroy>
+ <lifecycle-callback-class>session1PreDestroy2Class</lifecycle-callback-class>
+ <lifecycle-callback-method>session1PreDestroy2Method</lifecycle-callback-method>
+ </pre-destroy>
+
+ <post-activate>
+ <lifecycle-callback-class>session1PostActivate1Class</lifecycle-callback-class>
+ <lifecycle-callback-method>session1PostActivate1Method</lifecycle-callback-method>
+ </post-activate>
+ <post-activate>
+ <lifecycle-callback-class>session1PostActivate2Class</lifecycle-callback-class>
+ <lifecycle-callback-method>session1PostActivate2Method</lifecycle-callback-method>
+ </post-activate>
+ <pre-passivate>
+ <lifecycle-callback-class>session1PrePassivate1Class</lifecycle-callback-class>
+ <lifecycle-callback-method>session1PrePassivate1Method</lifecycle-callback-method>
+ </pre-passivate>
+ <pre-passivate>
+ <lifecycle-callback-class>session1PrePassivate2Class</lifecycle-callback-class>
+ <lifecycle-callback-method>session1PrePassivate2Method</lifecycle-callback-method>
+ </pre-passivate>
+ <security-role-ref id="session1SecurityRoleRef1-id">
+ <description>en-session1SecurityRoleRef1-desc</description>
+ <description xml:lang="fr">fr-session1SecurityRoleRef1-desc</description>
+ <description xml:lang="de">de-session1SecurityRoleRef1-desc</description>
+ <role-name>session1SecurityRoleRef1RoleName</role-name>
+ <role-link>session1SecurityRoleRef1RoleLink</role-link>
+ </security-role-ref>
+ <security-role-ref id="session1SecurityRoleRef2-id">
+ <description>en-session1SecurityRoleRef2-desc</description>
+ <description xml:lang="fr">fr-session1SecurityRoleRef2-desc</description>
+ <description xml:lang="de">de-session1SecurityRoleRef2-desc</description>
+ <role-name>session1SecurityRoleRef2RoleName</role-name>
+ <role-link>session1SecurityRoleRef2RoleLink</role-link>
+ </security-role-ref>
+ <security-identity id="session1SecurityIdentity-id">
+ <description>en-session1SecurityIdentity-desc</description>
+ <description xml:lang="fr">fr-session1SecurityIdentity-desc</description>
+ <description xml:lang="de">de-session1SecurityIdentity-desc</description>
+ <use-caller-identity id="session1SecurityIdentityUseCallerIdentity-id"/>
+ <run-as id="session1SecurityIdentityRunAs-id">
+ <description>en-session1SecurityIdentityRunAs-desc</description>
+ <description xml:lang="fr">fr-session1SecurityIdentityRunAs-desc</description>
+ <description xml:lang="de">de-session1SecurityIdentityRunAs-desc</description>
+ <role-name>session1SecurityIdentityRunAsRoleName</role-name>
+ </run-as>
+ </security-identity>
+
+ </session>
+
+ <session id="session2-id">
+
+ <description>en-session2-desc</description>
+ <description xml:lang="fr">fr-session2-desc</description>
+ <description xml:lang="de">de-session2-desc</description>
+ <display-name>en-session2-disp</display-name>
+ <display-name xml:lang="fr">fr-session2-disp</display-name>
+ <display-name xml:lang="de">de-session2-disp</display-name>
+ <icon id="en-session2-icon-id">
+ <small-icon>en-session2-small-icon</small-icon>
+ <large-icon>en-session2-large-icon</large-icon>
+ </icon>
+ <icon xml:lang="fr" id="fr-session2-icon-id">
+ <small-icon>fr-session2-small-icon</small-icon>
+ <large-icon>fr-session2-large-icon</large-icon>
+ </icon>
+ <icon xml:lang="de" id="de-session2-icon-id">
+ <small-icon>de-session2-small-icon</small-icon>
+ <large-icon>de-session2-large-icon</large-icon>
+ </icon>
+
+ <ejb-name>session2</ejb-name>
+
+ <mapped-name>session2-mapped-name</mapped-name>
+ <home>session2Home</home>
+ <remote>session2Remote</remote>
+ <local-home>session2LocalHome</local-home>
+ <local>session2Local</local>
+ <business-local>session2BusinessLocal1</business-local>
+ <business-local>session2BusinessLocal2</business-local>
+ <business-remote>session2BusinessRemote1</business-remote>
+ <business-remote>session2BusinessRemote2</business-remote>
+ <service-endpoint>session2ServiceEndpoint</service-endpoint>
+ <ejb-class>session2EjbClass</ejb-class>
+ <session-type>Stateless</session-type>
+ <timeout-method id="session2TimeoutMethod-id">
+ <method-name>session2TimeoutMethod</method-name>
+ <method-params>
+ <method-param>session2TimeoutMethodParam1</method-param>
+ <method-param>session2TimeoutMethodParam2</method-param>
+ </method-params>
+ </timeout-method>
+ <init-method id="session2InitMethod1-id">
+ <create-method id="session2InitCreateMethod1-id">
+ <method-name>session2InitCreateMethod1</method-name>
+ </create-method>
+ <bean-method id="session2InitBeanMethod1-id">
+ <method-name>session2InitBeanMethod1</method-name>
+ </bean-method>
+ </init-method>
+ <init-method id="session2InitMethod2-id">
+ <create-method id="session2InitCreateMethod2-id">
+ <method-name>session2InitCreateMethod2</method-name>
+ </create-method>
+ <bean-method id="session2InitBeanMethod2-id">
+ <method-name>session2InitBeanMethod2</method-name>
+ </bean-method>
+ </init-method>
+ <remove-method id="session2RemoveMethod1-id">
+ <bean-method id="session2RemoveBeanMethod1-id">
+ <method-name>session2RemoveBeanMethod1</method-name>
+ </bean-method>
+ <retain-if-exception>true</retain-if-exception>
+ </remove-method>
+ <remove-method id="session2RemoveMethod2-id">
+ <bean-method id="session2RemoveBeanMethod2-id">
+ <method-name>session2RemoveBeanMethod2</method-name>
+ </bean-method>
+ <retain-if-exception>false</retain-if-exception>
+ </remove-method>
+ <remove-method id="session2RemoveMethod3-id">
+ <bean-method id="session2RemoveBeanMethod3-id">
+ <method-name>session2RemoveBeanMethod3</method-name>
+ </bean-method>
+ </remove-method>
+ <transaction-type>Container</transaction-type>
+ <around-invoke>
+ <class>session2AroundInvoke1Class</class>
+ <method-name>session2AroundInvoke1Method</method-name>
+ </around-invoke>
+ <around-invoke>
+ <class>session2AroundInvoke2Class</class>
+ <method-name>session2AroundInvoke2Method</method-name>
+ </around-invoke>
+
+ <env-entry id="session2EnvEntry1-id">
+ <description>en-session2EnvEntry1-desc</description>
+ <description xml:lang="fr">fr-session2EnvEntry1-desc</description>
+ <description xml:lang="de">de-session2EnvEntry1-desc</description>
+ <env-entry-name>session2EnvEntry1Name</env-entry-name>
+ <env-entry-type>session2EnvEntry1Type</env-entry-type>
+ <env-entry-value>session2EnvEntry1Value</env-entry-value>
+ <mapped-name>session2EnvEntry1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>session2EnvEntry1Injection1Class</injection-target-class>
+ <injection-target-name>session2EnvEntry1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>session2EnvEntry1Injection2Class</injection-target-class>
+ <injection-target-name>session2EnvEntry1Injection2Name</injection-target-name>
+ </injection-target>
+ </env-entry>
+ <env-entry id="session2EnvEntry2-id">
+ <description>en-session2EnvEntry2-desc</description>
+ <description xml:lang="fr">fr-session2EnvEntry2-desc</description>
+ <description xml:lang="de">de-session2EnvEntry2-desc</description>
+ <env-entry-name>session2EnvEntry2Name</env-entry-name>
+ <env-entry-type>session2EnvEntry2Type</env-entry-type>
+ <env-entry-value>session2EnvEntry2Value</env-entry-value>
+ <mapped-name>session2EnvEntry2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>session2EnvEntry2Injection1Class</injection-target-class>
+ <injection-target-name>session2EnvEntry2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>session2EnvEntry2Injection2Class</injection-target-class>
+ <injection-target-name>session2EnvEntry2Injection2Name</injection-target-name>
+ </injection-target>
+ </env-entry>
+ <ejb-ref id="session2EjbRef1-id">
+ <description>en-session2EjbRef1-desc</description>
+ <description xml:lang="fr">fr-session2EjbRef1-desc</description>
+ <description xml:lang="de">de-session2EjbRef1-desc</description>
+ <ejb-ref-name>session2EjbRef1Name</ejb-ref-name>
+ <ejb-ref-type>Session</ejb-ref-type>
+ <home>session2EjbRef1Home</home>
+ <remote>session2EjbRef1Remote</remote>
+ <ejb-link>session2EjbRef1EjbLink</ejb-link>
+ <mapped-name>session2EjbRef1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>session2EjbRef1Injection1Class</injection-target-class>
+ <injection-target-name>session2EjbRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>session2EjbRef1Injection2Class</injection-target-class>
+ <injection-target-name>session2EjbRef1Injection2Name</injection-target-name>
+ </injection-target>
+ </ejb-ref>
+ <ejb-ref id="session2EjbRef2-id">
+ <description>en-session2EjbRef2-desc</description>
+ <description xml:lang="fr">fr-session2EjbRef2-desc</description>
+ <description xml:lang="de">de-session2EjbRef2-desc</description>
+ <ejb-ref-name>session2EjbRef2Name</ejb-ref-name>
+ <ejb-ref-type>Entity</ejb-ref-type>
+ <home>session2EjbRef2Home</home>
+ <remote>session2EjbRef2Remote</remote>
+ <ejb-link>session2EjbRef2EjbLink</ejb-link>
+ <mapped-name>session2EjbRef2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>session2EjbRef2Injection1Class</injection-target-class>
+ <injection-target-name>session2EjbRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>session2EjbRef2Injection2Class</injection-target-class>
+ <injection-target-name>session2EjbRef2Injection2Name</injection-target-name>
+ </injection-target>
+ </ejb-ref>
+ <ejb-local-ref id="session2EjbLocalRef1-id">
+ <description>en-session2EjbLocalRef1-desc</description>
+ <description xml:lang="fr">fr-session2EjbLocalRef1-desc</description>
+ <description xml:lang="de">de-session2EjbLocalRef1-desc</description>
+ <ejb-ref-name>session2EjbLocalRef1Name</ejb-ref-name>
+ <ejb-ref-type>Session</ejb-ref-type>
+ <local-home>session2EjbLocalRef1LocalHome</local-home>
+ <local>session2EjbLocalRef1Local</local>
+ <ejb-link>session2EjbLocalRef1EjbLink</ejb-link>
+ <mapped-name>session2EjbLocalRef1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>session2EjbLocalRef1Injection1Class</injection-target-class>
+ <injection-target-name>session2EjbLocalRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>session2EjbLocalRef1Injection2Class</injection-target-class>
+ <injection-target-name>session2EjbLocalRef1Injection2Name</injection-target-name>
+ </injection-target>
+ </ejb-local-ref>
+ <ejb-local-ref id="session2EjbLocalRef2-id">
+ <description>en-session2EjbLocalRef2-desc</description>
+ <description xml:lang="fr">fr-session2EjbLocalRef2-desc</description>
+ <description xml:lang="de">de-session2EjbLocalRef2-desc</description>
+ <ejb-ref-name>session2EjbLocalRef2Name</ejb-ref-name>
+ <ejb-ref-type>Entity</ejb-ref-type>
+ <local-home>session2EjbLocalRef2LocalHome</local-home>
+ <local>session2EjbLocalRef2Local</local>
+ <ejb-link>session2EjbLocalRef2EjbLink</ejb-link>
+ <mapped-name>session2EjbLocalRef2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>session2EjbLocalRef2Injection1Class</injection-target-class>
+ <injection-target-name>session2EjbLocalRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>session2EjbLocalRef2Injection2Class</injection-target-class>
+ <injection-target-name>session2EjbLocalRef2Injection2Name</injection-target-name>
+ </injection-target>
+ </ejb-local-ref>
+
+ <!-- TODO service-refGroup -->
+
+ <resource-ref id="session2ResourceRef1-id">
+ <description>en-session2ResourceRef1-desc</description>
+ <description xml:lang="fr">fr-session2ResourceRef1-desc</description>
+ <description xml:lang="de">de-session2ResourceRef1-desc</description>
+ <res-ref-name>session2ResourceRef1Name</res-ref-name>
+ <res-type>session2ResourceRef1Type</res-type>
+ <res-auth>Application</res-auth>
+ <res-sharing-scope>Shareable</res-sharing-scope>
+ <mapped-name>session2ResourceRef1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>session2ResourceRef1Injection1Class</injection-target-class>
+ <injection-target-name>session2ResourceRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>session2ResourceRef1Injection2Class</injection-target-class>
+ <injection-target-name>session2ResourceRef1Injection2Name</injection-target-name>
+ </injection-target>
+ </resource-ref>
+ <resource-ref id="session2ResourceRef2-id">
+ <description>en-session2ResourceRef2-desc</description>
+ <description xml:lang="fr">fr-session2ResourceRef2-desc</description>
+ <description xml:lang="de">de-session2ResourceRef2-desc</description>
+ <res-ref-name>session2ResourceRef2Name</res-ref-name>
+ <res-type>session2ResourceRef2Type</res-type>
+ <res-auth>Container</res-auth>
+ <res-sharing-scope>Unshareable</res-sharing-scope>
+ <mapped-name>session2ResourceRef2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>session2ResourceRef2Injection1Class</injection-target-class>
+ <injection-target-name>session2ResourceRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>session2ResourceRef2Injection2Class</injection-target-class>
+ <injection-target-name>session2ResourceRef2Injection2Name</injection-target-name>
+ </injection-target>
+ </resource-ref>
+ <resource-env-ref id="session2ResourceEnvRef1-id">
+ <description>en-session2ResourceEnvRef1-desc</description>
+ <description xml:lang="fr">fr-session2ResourceEnvRef1-desc</description>
+ <description xml:lang="de">de-session2ResourceEnvRef1-desc</description>
+ <resource-env-ref-name>session2ResourceEnvRef1Name</resource-env-ref-name>
+ <resource-env-ref-type>session2ResourceEnvRef1Type</resource-env-ref-type>
+ <mapped-name>session2ResourceEnvRef1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>session2ResourceEnvRef1Injection1Class</injection-target-class>
+ <injection-target-name>session2ResourceEnvRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>session2ResourceEnvRef1Injection2Class</injection-target-class>
+ <injection-target-name>session2ResourceEnvRef1Injection2Name</injection-target-name>
+ </injection-target>
+ </resource-env-ref>
+ <resource-env-ref id="session2ResourceEnvRef2-id">
+ <description>en-session2ResourceEnvRef2-desc</description>
+ <description xml:lang="fr">fr-session2ResourceEnvRef2-desc</description>
+ <description xml:lang="de">de-session2ResourceEnvRef2-desc</description>
+ <resource-env-ref-name>session2ResourceEnvRef2Name</resource-env-ref-name>
+ <resource-env-ref-type>session2ResourceEnvRef2Type</resource-env-ref-type>
+ <mapped-name>session2ResourceEnvRef2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>session2ResourceEnvRef2Injection1Class</injection-target-class>
+ <injection-target-name>session2ResourceEnvRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>session2ResourceEnvRef2Injection2Class</injection-target-class>
+ <injection-target-name>session2ResourceEnvRef2Injection2Name</injection-target-name>
+ </injection-target>
+ </resource-env-ref>
+ <message-destination-ref id="session2MessageDestinationRef1-id">
+ <description>en-session2MessageDestinationRef1-desc</description>
+ <description xml:lang="fr">fr-session2MessageDestinationRef1-desc</description>
+ <description xml:lang="de">de-session2MessageDestinationRef1-desc</description>
+ <message-destination-ref-name>session2MessageDestinationRef1Name</message-destination-ref-name>
+ <message-destination-type>session2MessageDestinationRef1Type</message-destination-type>
+ <message-destination-usage>Consumes</message-destination-usage>
+ <message-destination-link>session2MessageDestinationRef1Link</message-destination-link>
+ <mapped-name>session2MessageDestinationRef1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>session2MessageDestinationRef1Injection1Class</injection-target-class>
+ <injection-target-name>session2MessageDestinationRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>session2MessageDestinationRef1Injection2Class</injection-target-class>
+ <injection-target-name>session2MessageDestinationRef1Injection2Name</injection-target-name>
+ </injection-target>
+ </message-destination-ref>
+ <message-destination-ref id="session2MessageDestinationRef2-id">
+ <description>en-session2MessageDestinationRef2-desc</description>
+ <description xml:lang="fr">fr-session2MessageDestinationRef2-desc</description>
+ <description xml:lang="de">de-session2MessageDestinationRef2-desc</description>
+ <message-destination-ref-name>session2MessageDestinationRef2Name</message-destination-ref-name>
+ <message-destination-type>session2MessageDestinationRef2Type</message-destination-type>
+ <message-destination-usage>Produces</message-destination-usage>
+ <message-destination-link>session2MessageDestinationRef2Link</message-destination-link>
+ <mapped-name>session2MessageDestinationRef2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>session2MessageDestinationRef2Injection1Class</injection-target-class>
+ <injection-target-name>session2MessageDestinationRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>session2MessageDestinationRef2Injection2Class</injection-target-class>
+ <injection-target-name>session2MessageDestinationRef2Injection2Name</injection-target-name>
+ </injection-target>
+ </message-destination-ref>
+ <message-destination-ref id="session2MessageDestinationRef3-id">
+ <description>en-session2MessageDestinationRef3-desc</description>
+ <description xml:lang="fr">fr-session2MessageDestinationRef3-desc</description>
+ <description xml:lang="de">de-session2MessageDestinationRef3-desc</description>
+ <message-destination-ref-name>session2MessageDestinationRef3Name</message-destination-ref-name>
+ <message-destination-type>session2MessageDestinationRef3Type</message-destination-type>
+ <message-destination-usage>ConsumesProduces</message-destination-usage>
+ <message-destination-link>session2MessageDestinationRef3Link</message-destination-link>
+ <mapped-name>session2MessageDestinationRef3MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>session2MessageDestinationRef3Injection1Class</injection-target-class>
+ <injection-target-name>session2MessageDestinationRef3Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>session2MessageDestinationRef3Injection2Class</injection-target-class>
+ <injection-target-name>session2MessageDestinationRef3Injection2Name</injection-target-name>
+ </injection-target>
+ </message-destination-ref>
+ <persistence-context-ref id="session2PersistenceContextRef1-id">
+ <description>en-session2PersistenceContextRef1-desc</description>
+ <description xml:lang="fr">fr-session2PersistenceContextRef1-desc</description>
+ <description xml:lang="de">de-session2PersistenceContextRef1-desc</description>
+ <persistence-context-ref-name>session2PersistenceContextRef1Name</persistence-context-ref-name>
+ <persistence-unit-name>session2PersistenceContextRef1Unit</persistence-unit-name>
+ <persistence-context-type>Transaction</persistence-context-type>
+ <persistence-property id="session2PersistenceContextRef1Property1-id">
+ <name>session2PersistenceContextRef1Property1Name</name>
+ <value>session2PersistenceContextRef1Property1Value</value>
+ </persistence-property>
+ <persistence-property id="session2PersistenceContextRef1Property2-id">
+ <name>session2PersistenceContextRef1Property2Name</name>
+ <value>session2PersistenceContextRef1Property2Value</value>
+ </persistence-property>
+ <mapped-name>session2PersistenceContextRef1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>session2PersistenceContextRef1Injection1Class</injection-target-class>
+ <injection-target-name>session2PersistenceContextRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>session2PersistenceContextRef1Injection2Class</injection-target-class>
+ <injection-target-name>session2PersistenceContextRef1Injection2Name</injection-target-name>
+ </injection-target>
+ </persistence-context-ref>
+ <persistence-context-ref id="session2PersistenceContextRef2-id">
+ <description>en-session2PersistenceContextRef2-desc</description>
+ <description xml:lang="fr">fr-session2PersistenceContextRef2-desc</description>
+ <description xml:lang="de">de-session2PersistenceContextRef2-desc</description>
+ <persistence-context-ref-name>session2PersistenceContextRef2Name</persistence-context-ref-name>
+ <persistence-unit-name>session2PersistenceContextRef2Unit</persistence-unit-name>
+ <persistence-context-type>Extended</persistence-context-type>
+ <persistence-property id="session2PersistenceContextRef2Property1-id">
+ <name>session2PersistenceContextRef2Property1Name</name>
+ <value>session2PersistenceContextRef2Property1Value</value>
+ </persistence-property>
+ <persistence-property id="session2PersistenceContextRef2Property2-id">
+ <name>session2PersistenceContextRef2Property2Name</name>
+ <value>session2PersistenceContextRef2Property2Value</value>
+ </persistence-property>
+ <mapped-name>session2PersistenceContextRef2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>session2PersistenceContextRef2Injection1Class</injection-target-class>
+ <injection-target-name>session2PersistenceContextRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>session2PersistenceContextRef2Injection2Class</injection-target-class>
+ <injection-target-name>session2PersistenceContextRef2Injection2Name</injection-target-name>
+ </injection-target>
+ </persistence-context-ref>
+ <persistence-unit-ref id="session2PersistenceUnitRef1-id">
+ <description>en-session2PersistenceUnitRef1-desc</description>
+ <description xml:lang="fr">fr-session2PersistenceUnitRef1-desc</description>
+ <description xml:lang="de">de-session2PersistenceUnitRef1-desc</description>
+ <persistence-unit-ref-name>session2PersistenceUnitRef1Name</persistence-unit-ref-name>
+ <persistence-unit-name>session2PersistenceUnitRef1Unit</persistence-unit-name>
+ <mapped-name>session2PersistenceUnitRef1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>session2PersistenceUnitRef1Injection1Class</injection-target-class>
+ <injection-target-name>session2PersistenceUnitRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>session2PersistenceUnitRef1Injection2Class</injection-target-class>
+ <injection-target-name>session2PersistenceUnitRef1Injection2Name</injection-target-name>
+ </injection-target>
+ </persistence-unit-ref>
+ <persistence-unit-ref id="session2PersistenceUnitRef2-id">
+ <description>en-session2PersistenceUnitRef2-desc</description>
+ <description xml:lang="fr">fr-session2PersistenceUnitRef2-desc</description>
+ <description xml:lang="de">de-session2PersistenceUnitRef2-desc</description>
+ <persistence-unit-ref-name>session2PersistenceUnitRef2Name</persistence-unit-ref-name>
+ <persistence-unit-name>session2PersistenceUnitRef2Unit</persistence-unit-name>
+ <mapped-name>session2PersistenceUnitRef2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>session2PersistenceUnitRef2Injection1Class</injection-target-class>
+ <injection-target-name>session2PersistenceUnitRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>session2PersistenceUnitRef2Injection2Class</injection-target-class>
+ <injection-target-name>session2PersistenceUnitRef2Injection2Name</injection-target-name>
+ </injection-target>
+ </persistence-unit-ref>
+ <post-construct>
+ <lifecycle-callback-class>session2PostConstruct1Class</lifecycle-callback-class>
+ <lifecycle-callback-method>session2PostConstruct1Method</lifecycle-callback-method>
+ </post-construct>
+ <post-construct>
+ <lifecycle-callback-class>session2PostConstruct2Class</lifecycle-callback-class>
+ <lifecycle-callback-method>session2PostConstruct2Method</lifecycle-callback-method>
+ </post-construct>
+ <pre-destroy>
+ <lifecycle-callback-class>session2PreDestroy1Class</lifecycle-callback-class>
+ <lifecycle-callback-method>session2PreDestroy1Method</lifecycle-callback-method>
+ </pre-destroy>
+ <pre-destroy>
+ <lifecycle-callback-class>session2PreDestroy2Class</lifecycle-callback-class>
+ <lifecycle-callback-method>session2PreDestroy2Method</lifecycle-callback-method>
+ </pre-destroy>
+
+ <post-activate>
+ <lifecycle-callback-class>session2PostActivate1Class</lifecycle-callback-class>
+ <lifecycle-callback-method>session2PostActivate1Method</lifecycle-callback-method>
+ </post-activate>
+ <post-activate>
+ <lifecycle-callback-class>session2PostActivate2Class</lifecycle-callback-class>
+ <lifecycle-callback-method>session2PostActivate2Method</lifecycle-callback-method>
+ </post-activate>
+ <pre-passivate>
+ <lifecycle-callback-class>session2PrePassivate1Class</lifecycle-callback-class>
+ <lifecycle-callback-method>session2PrePassivate1Method</lifecycle-callback-method>
+ </pre-passivate>
+ <pre-passivate>
+ <lifecycle-callback-class>session2PrePassivate2Class</lifecycle-callback-class>
+ <lifecycle-callback-method>session2PrePassivate2Method</lifecycle-callback-method>
+ </pre-passivate>
+ <security-role-ref id="session2SecurityRoleRef1-id">
+ <description>en-session2SecurityRoleRef1-desc</description>
+ <description xml:lang="fr">fr-session2SecurityRoleRef1-desc</description>
+ <description xml:lang="de">de-session2SecurityRoleRef1-desc</description>
+ <role-name>session2SecurityRoleRef1RoleName</role-name>
+ <role-link>session2SecurityRoleRef1RoleLink</role-link>
+ </security-role-ref>
+ <security-role-ref id="session2SecurityRoleRef2-id">
+ <description>en-session2SecurityRoleRef2-desc</description>
+ <description xml:lang="fr">fr-session2SecurityRoleRef2-desc</description>
+ <description xml:lang="de">de-session2SecurityRoleRef2-desc</description>
+ <role-name>session2SecurityRoleRef2RoleName</role-name>
+ <role-link>session2SecurityRoleRef2RoleLink</role-link>
+ </security-role-ref>
+ <security-identity id="session2SecurityIdentity-id">
+ <description>en-session2SecurityIdentity-desc</description>
+ <description xml:lang="fr">fr-session2SecurityIdentity-desc</description>
+ <description xml:lang="de">de-session2SecurityIdentity-desc</description>
+ <use-caller-identity id="session2SecurityIdentityUseCallerIdentity-id"/>
+ <run-as id="session2SecurityIdentityRunAs-id">
+ <description>en-session2SecurityIdentityRunAs-desc</description>
+ <description xml:lang="fr">fr-session2SecurityIdentityRunAs-desc</description>
+ <description xml:lang="de">de-session2SecurityIdentityRunAs-desc</description>
+ <role-name>session2SecurityIdentityRunAsRoleName</role-name>
+ </run-as>
+ </security-identity>
+
+ </session>
+
+ <session>
+ <ejb-name>session3</ejb-name>
+ <session-type>Stateful</session-type>
+ </session>
+
+ <session>
+ <ejb-name>session4</ejb-name>
+ <transaction-type>Bean</transaction-type>
+ </session>
+
+ <session>
+ <ejb-name>session5</ejb-name>
+ <security-identity/>
+ </session>
+
+ <entity>
+ <ejb-name>entity0</ejb-name>
+ </entity>
+
+ <entity id="entity1-id">
+
+ <description>en-entity1-desc</description>
+ <description xml:lang="fr">fr-entity1-desc</description>
+ <description xml:lang="de">de-entity1-desc</description>
+ <display-name>en-entity1-disp</display-name>
+ <display-name xml:lang="fr">fr-entity1-disp</display-name>
+ <display-name xml:lang="de">de-entity1-disp</display-name>
+ <icon id="en-entity1-icon-id">
+ <small-icon>en-entity1-small-icon</small-icon>
+ <large-icon>en-entity1-large-icon</large-icon>
+ </icon>
+ <icon xml:lang="fr" id="fr-entity1-icon-id">
+ <small-icon>fr-entity1-small-icon</small-icon>
+ <large-icon>fr-entity1-large-icon</large-icon>
+ </icon>
+ <icon xml:lang="de" id="de-entity1-icon-id">
+ <small-icon>de-entity1-small-icon</small-icon>
+ <large-icon>de-entity1-large-icon</large-icon>
+ </icon>
+
+ <ejb-name>entity1</ejb-name>
+
+ <mapped-name>entity1-mapped-name</mapped-name>
+ <home>entity1Home</home>
+ <remote>entity1Remote</remote>
+ <local-home>entity1LocalHome</local-home>
+ <local>entity1Local</local>
+ <ejb-class>entity1EjbClass</ejb-class>
+ <persistence-type>Container</persistence-type>
+ <prim-key-class>entity1PrimKeyClass</prim-key-class>
+ <reentrant>true</reentrant>
+ <cmp-version>2.x</cmp-version>
+ <abstract-schema-name>entity1AbstractSchemaName</abstract-schema-name>
+ <cmp-field id="entity1CmpField1-id">
+ <field-name>entity1CmpField1</field-name>
+ </cmp-field>
+ <cmp-field id="entity1CmpField2-id">
+ <field-name>entity1CmpField2</field-name>
+ </cmp-field>
+ <primkey-field>entity1PrimKeyField</primkey-field>
+
+ <env-entry id="entity1EnvEntry1-id">
+ <description>en-entity1EnvEntry1-desc</description>
+ <description xml:lang="fr">fr-entity1EnvEntry1-desc</description>
+ <description xml:lang="de">de-entity1EnvEntry1-desc</description>
+ <env-entry-name>entity1EnvEntry1Name</env-entry-name>
+ <env-entry-type>entity1EnvEntry1Type</env-entry-type>
+ <env-entry-value>entity1EnvEntry1Value</env-entry-value>
+ <mapped-name>entity1EnvEntry1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>entity1EnvEntry1Injection1Class</injection-target-class>
+ <injection-target-name>entity1EnvEntry1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>entity1EnvEntry1Injection2Class</injection-target-class>
+ <injection-target-name>entity1EnvEntry1Injection2Name</injection-target-name>
+ </injection-target>
+ </env-entry>
+ <env-entry id="entity1EnvEntry2-id">
+ <description>en-entity1EnvEntry2-desc</description>
+ <description xml:lang="fr">fr-entity1EnvEntry2-desc</description>
+ <description xml:lang="de">de-entity1EnvEntry2-desc</description>
+ <env-entry-name>entity1EnvEntry2Name</env-entry-name>
+ <env-entry-type>entity1EnvEntry2Type</env-entry-type>
+ <env-entry-value>entity1EnvEntry2Value</env-entry-value>
+ <mapped-name>entity1EnvEntry2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>entity1EnvEntry2Injection1Class</injection-target-class>
+ <injection-target-name>entity1EnvEntry2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>entity1EnvEntry2Injection2Class</injection-target-class>
+ <injection-target-name>entity1EnvEntry2Injection2Name</injection-target-name>
+ </injection-target>
+ </env-entry>
+ <ejb-ref id="entity1EjbRef1-id">
+ <description>en-entity1EjbRef1-desc</description>
+ <description xml:lang="fr">fr-entity1EjbRef1-desc</description>
+ <description xml:lang="de">de-entity1EjbRef1-desc</description>
+ <ejb-ref-name>entity1EjbRef1Name</ejb-ref-name>
+ <ejb-ref-type>Session</ejb-ref-type>
+ <home>entity1EjbRef1Home</home>
+ <remote>entity1EjbRef1Remote</remote>
+ <ejb-link>entity1EjbRef1EjbLink</ejb-link>
+ <mapped-name>entity1EjbRef1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>entity1EjbRef1Injection1Class</injection-target-class>
+ <injection-target-name>entity1EjbRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>entity1EjbRef1Injection2Class</injection-target-class>
+ <injection-target-name>entity1EjbRef1Injection2Name</injection-target-name>
+ </injection-target>
+ </ejb-ref>
+ <ejb-ref id="entity1EjbRef2-id">
+ <description>en-entity1EjbRef2-desc</description>
+ <description xml:lang="fr">fr-entity1EjbRef2-desc</description>
+ <description xml:lang="de">de-entity1EjbRef2-desc</description>
+ <ejb-ref-name>entity1EjbRef2Name</ejb-ref-name>
+ <ejb-ref-type>Entity</ejb-ref-type>
+ <home>entity1EjbRef2Home</home>
+ <remote>entity1EjbRef2Remote</remote>
+ <ejb-link>entity1EjbRef2EjbLink</ejb-link>
+ <mapped-name>entity1EjbRef2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>entity1EjbRef2Injection1Class</injection-target-class>
+ <injection-target-name>entity1EjbRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>entity1EjbRef2Injection2Class</injection-target-class>
+ <injection-target-name>entity1EjbRef2Injection2Name</injection-target-name>
+ </injection-target>
+ </ejb-ref>
+ <ejb-local-ref id="entity1EjbLocalRef1-id">
+ <description>en-entity1EjbLocalRef1-desc</description>
+ <description xml:lang="fr">fr-entity1EjbLocalRef1-desc</description>
+ <description xml:lang="de">de-entity1EjbLocalRef1-desc</description>
+ <ejb-ref-name>entity1EjbLocalRef1Name</ejb-ref-name>
+ <ejb-ref-type>Session</ejb-ref-type>
+ <local-home>entity1EjbLocalRef1LocalHome</local-home>
+ <local>entity1EjbLocalRef1Local</local>
+ <ejb-link>entity1EjbLocalRef1EjbLink</ejb-link>
+ <mapped-name>entity1EjbLocalRef1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>entity1EjbLocalRef1Injection1Class</injection-target-class>
+ <injection-target-name>entity1EjbLocalRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>entity1EjbLocalRef1Injection2Class</injection-target-class>
+ <injection-target-name>entity1EjbLocalRef1Injection2Name</injection-target-name>
+ </injection-target>
+ </ejb-local-ref>
+ <ejb-local-ref id="entity1EjbLocalRef2-id">
+ <description>en-entity1EjbLocalRef2-desc</description>
+ <description xml:lang="fr">fr-entity1EjbLocalRef2-desc</description>
+ <description xml:lang="de">de-entity1EjbLocalRef2-desc</description>
+ <ejb-ref-name>entity1EjbLocalRef2Name</ejb-ref-name>
+ <ejb-ref-type>Entity</ejb-ref-type>
+ <local-home>entity1EjbLocalRef2LocalHome</local-home>
+ <local>entity1EjbLocalRef2Local</local>
+ <ejb-link>entity1EjbLocalRef2EjbLink</ejb-link>
+ <mapped-name>entity1EjbLocalRef2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>entity1EjbLocalRef2Injection1Class</injection-target-class>
+ <injection-target-name>entity1EjbLocalRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>entity1EjbLocalRef2Injection2Class</injection-target-class>
+ <injection-target-name>entity1EjbLocalRef2Injection2Name</injection-target-name>
+ </injection-target>
+ </ejb-local-ref>
+
+ <!-- TODO service-refGroup -->
+
+ <resource-ref id="entity1ResourceRef1-id">
+ <description>en-entity1ResourceRef1-desc</description>
+ <description xml:lang="fr">fr-entity1ResourceRef1-desc</description>
+ <description xml:lang="de">de-entity1ResourceRef1-desc</description>
+ <res-ref-name>entity1ResourceRef1Name</res-ref-name>
+ <res-type>entity1ResourceRef1Type</res-type>
+ <res-auth>Application</res-auth>
+ <res-sharing-scope>Shareable</res-sharing-scope>
+ <mapped-name>entity1ResourceRef1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>entity1ResourceRef1Injection1Class</injection-target-class>
+ <injection-target-name>entity1ResourceRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>entity1ResourceRef1Injection2Class</injection-target-class>
+ <injection-target-name>entity1ResourceRef1Injection2Name</injection-target-name>
+ </injection-target>
+ </resource-ref>
+ <resource-ref id="entity1ResourceRef2-id">
+ <description>en-entity1ResourceRef2-desc</description>
+ <description xml:lang="fr">fr-entity1ResourceRef2-desc</description>
+ <description xml:lang="de">de-entity1ResourceRef2-desc</description>
+ <res-ref-name>entity1ResourceRef2Name</res-ref-name>
+ <res-type>entity1ResourceRef2Type</res-type>
+ <res-auth>Container</res-auth>
+ <res-sharing-scope>Unshareable</res-sharing-scope>
+ <mapped-name>entity1ResourceRef2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>entity1ResourceRef2Injection1Class</injection-target-class>
+ <injection-target-name>entity1ResourceRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>entity1ResourceRef2Injection2Class</injection-target-class>
+ <injection-target-name>entity1ResourceRef2Injection2Name</injection-target-name>
+ </injection-target>
+ </resource-ref>
+ <resource-env-ref id="entity1ResourceEnvRef1-id">
+ <description>en-entity1ResourceEnvRef1-desc</description>
+ <description xml:lang="fr">fr-entity1ResourceEnvRef1-desc</description>
+ <description xml:lang="de">de-entity1ResourceEnvRef1-desc</description>
+ <resource-env-ref-name>entity1ResourceEnvRef1Name</resource-env-ref-name>
+ <resource-env-ref-type>entity1ResourceEnvRef1Type</resource-env-ref-type>
+ <mapped-name>entity1ResourceEnvRef1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>entity1ResourceEnvRef1Injection1Class</injection-target-class>
+ <injection-target-name>entity1ResourceEnvRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>entity1ResourceEnvRef1Injection2Class</injection-target-class>
+ <injection-target-name>entity1ResourceEnvRef1Injection2Name</injection-target-name>
+ </injection-target>
+ </resource-env-ref>
+ <resource-env-ref id="entity1ResourceEnvRef2-id">
+ <description>en-entity1ResourceEnvRef2-desc</description>
+ <description xml:lang="fr">fr-entity1ResourceEnvRef2-desc</description>
+ <description xml:lang="de">de-entity1ResourceEnvRef2-desc</description>
+ <resource-env-ref-name>entity1ResourceEnvRef2Name</resource-env-ref-name>
+ <resource-env-ref-type>entity1ResourceEnvRef2Type</resource-env-ref-type>
+ <mapped-name>entity1ResourceEnvRef2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>entity1ResourceEnvRef2Injection1Class</injection-target-class>
+ <injection-target-name>entity1ResourceEnvRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>entity1ResourceEnvRef2Injection2Class</injection-target-class>
+ <injection-target-name>entity1ResourceEnvRef2Injection2Name</injection-target-name>
+ </injection-target>
+ </resource-env-ref>
+ <message-destination-ref id="entity1MessageDestinationRef1-id">
+ <description>en-entity1MessageDestinationRef1-desc</description>
+ <description xml:lang="fr">fr-entity1MessageDestinationRef1-desc</description>
+ <description xml:lang="de">de-entity1MessageDestinationRef1-desc</description>
+ <message-destination-ref-name>entity1MessageDestinationRef1Name</message-destination-ref-name>
+ <message-destination-type>entity1MessageDestinationRef1Type</message-destination-type>
+ <message-destination-usage>Consumes</message-destination-usage>
+ <message-destination-link>entity1MessageDestinationRef1Link</message-destination-link>
+ <mapped-name>entity1MessageDestinationRef1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>entity1MessageDestinationRef1Injection1Class</injection-target-class>
+ <injection-target-name>entity1MessageDestinationRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>entity1MessageDestinationRef1Injection2Class</injection-target-class>
+ <injection-target-name>entity1MessageDestinationRef1Injection2Name</injection-target-name>
+ </injection-target>
+ </message-destination-ref>
+ <message-destination-ref id="entity1MessageDestinationRef2-id">
+ <description>en-entity1MessageDestinationRef2-desc</description>
+ <description xml:lang="fr">fr-entity1MessageDestinationRef2-desc</description>
+ <description xml:lang="de">de-entity1MessageDestinationRef2-desc</description>
+ <message-destination-ref-name>entity1MessageDestinationRef2Name</message-destination-ref-name>
+ <message-destination-type>entity1MessageDestinationRef2Type</message-destination-type>
+ <message-destination-usage>Produces</message-destination-usage>
+ <message-destination-link>entity1MessageDestinationRef2Link</message-destination-link>
+ <mapped-name>entity1MessageDestinationRef2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>entity1MessageDestinationRef2Injection1Class</injection-target-class>
+ <injection-target-name>entity1MessageDestinationRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>entity1MessageDestinationRef2Injection2Class</injection-target-class>
+ <injection-target-name>entity1MessageDestinationRef2Injection2Name</injection-target-name>
+ </injection-target>
+ </message-destination-ref>
+ <message-destination-ref id="entity1MessageDestinationRef3-id">
+ <description>en-entity1MessageDestinationRef3-desc</description>
+ <description xml:lang="fr">fr-entity1MessageDestinationRef3-desc</description>
+ <description xml:lang="de">de-entity1MessageDestinationRef3-desc</description>
+ <message-destination-ref-name>entity1MessageDestinationRef3Name</message-destination-ref-name>
+ <message-destination-type>entity1MessageDestinationRef3Type</message-destination-type>
+ <message-destination-usage>ConsumesProduces</message-destination-usage>
+ <message-destination-link>entity1MessageDestinationRef3Link</message-destination-link>
+ <mapped-name>entity1MessageDestinationRef3MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>entity1MessageDestinationRef3Injection1Class</injection-target-class>
+ <injection-target-name>entity1MessageDestinationRef3Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>entity1MessageDestinationRef3Injection2Class</injection-target-class>
+ <injection-target-name>entity1MessageDestinationRef3Injection2Name</injection-target-name>
+ </injection-target>
+ </message-destination-ref>
+ <persistence-context-ref id="entity1PersistenceContextRef1-id">
+ <description>en-entity1PersistenceContextRef1-desc</description>
+ <description xml:lang="fr">fr-entity1PersistenceContextRef1-desc</description>
+ <description xml:lang="de">de-entity1PersistenceContextRef1-desc</description>
+ <persistence-context-ref-name>entity1PersistenceContextRef1Name</persistence-context-ref-name>
+ <persistence-unit-name>entity1PersistenceContextRef1Unit</persistence-unit-name>
+ <persistence-context-type>Transaction</persistence-context-type>
+ <persistence-property id="entity1PersistenceContextRef1Property1-id">
+ <name>entity1PersistenceContextRef1Property1Name</name>
+ <value>entity1PersistenceContextRef1Property1Value</value>
+ </persistence-property>
+ <persistence-property id="entity1PersistenceContextRef1Property2-id">
+ <name>entity1PersistenceContextRef1Property2Name</name>
+ <value>entity1PersistenceContextRef1Property2Value</value>
+ </persistence-property>
+ <mapped-name>entity1PersistenceContextRef1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>entity1PersistenceContextRef1Injection1Class</injection-target-class>
+ <injection-target-name>entity1PersistenceContextRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>entity1PersistenceContextRef1Injection2Class</injection-target-class>
+ <injection-target-name>entity1PersistenceContextRef1Injection2Name</injection-target-name>
+ </injection-target>
+ </persistence-context-ref>
+ <persistence-context-ref id="entity1PersistenceContextRef2-id">
+ <description>en-entity1PersistenceContextRef2-desc</description>
+ <description xml:lang="fr">fr-entity1PersistenceContextRef2-desc</description>
+ <description xml:lang="de">de-entity1PersistenceContextRef2-desc</description>
+ <persistence-context-ref-name>entity1PersistenceContextRef2Name</persistence-context-ref-name>
+ <persistence-unit-name>entity1PersistenceContextRef2Unit</persistence-unit-name>
+ <persistence-context-type>Extended</persistence-context-type>
+ <persistence-property id="entity1PersistenceContextRef2Property1-id">
+ <name>entity1PersistenceContextRef2Property1Name</name>
+ <value>entity1PersistenceContextRef2Property1Value</value>
+ </persistence-property>
+ <persistence-property id="entity1PersistenceContextRef2Property2-id">
+ <name>entity1PersistenceContextRef2Property2Name</name>
+ <value>entity1PersistenceContextRef2Property2Value</value>
+ </persistence-property>
+ <mapped-name>entity1PersistenceContextRef2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>entity1PersistenceContextRef2Injection1Class</injection-target-class>
+ <injection-target-name>entity1PersistenceContextRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>entity1PersistenceContextRef2Injection2Class</injection-target-class>
+ <injection-target-name>entity1PersistenceContextRef2Injection2Name</injection-target-name>
+ </injection-target>
+ </persistence-context-ref>
+ <persistence-unit-ref id="entity1PersistenceUnitRef1-id">
+ <description>en-entity1PersistenceUnitRef1-desc</description>
+ <description xml:lang="fr">fr-entity1PersistenceUnitRef1-desc</description>
+ <description xml:lang="de">de-entity1PersistenceUnitRef1-desc</description>
+ <persistence-unit-ref-name>entity1PersistenceUnitRef1Name</persistence-unit-ref-name>
+ <persistence-unit-name>entity1PersistenceUnitRef1Unit</persistence-unit-name>
+ <mapped-name>entity1PersistenceUnitRef1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>entity1PersistenceUnitRef1Injection1Class</injection-target-class>
+ <injection-target-name>entity1PersistenceUnitRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>entity1PersistenceUnitRef1Injection2Class</injection-target-class>
+ <injection-target-name>entity1PersistenceUnitRef1Injection2Name</injection-target-name>
+ </injection-target>
+ </persistence-unit-ref>
+ <persistence-unit-ref id="entity1PersistenceUnitRef2-id">
+ <description>en-entity1PersistenceUnitRef2-desc</description>
+ <description xml:lang="fr">fr-entity1PersistenceUnitRef2-desc</description>
+ <description xml:lang="de">de-entity1PersistenceUnitRef2-desc</description>
+ <persistence-unit-ref-name>entity1PersistenceUnitRef2Name</persistence-unit-ref-name>
+ <persistence-unit-name>entity1PersistenceUnitRef2Unit</persistence-unit-name>
+ <mapped-name>entity1PersistenceUnitRef2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>entity1PersistenceUnitRef2Injection1Class</injection-target-class>
+ <injection-target-name>entity1PersistenceUnitRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>entity1PersistenceUnitRef2Injection2Class</injection-target-class>
+ <injection-target-name>entity1PersistenceUnitRef2Injection2Name</injection-target-name>
+ </injection-target>
+ </persistence-unit-ref>
+ <post-construct>
+ <lifecycle-callback-class>entity1PostConstruct1Class</lifecycle-callback-class>
+ <lifecycle-callback-method>entity1PostConstruct1Method</lifecycle-callback-method>
+ </post-construct>
+ <post-construct>
+ <lifecycle-callback-class>entity1PostConstruct2Class</lifecycle-callback-class>
+ <lifecycle-callback-method>entity1PostConstruct2Method</lifecycle-callback-method>
+ </post-construct>
+ <pre-destroy>
+ <lifecycle-callback-class>entity1PreDestroy1Class</lifecycle-callback-class>
+ <lifecycle-callback-method>entity1PreDestroy1Method</lifecycle-callback-method>
+ </pre-destroy>
+ <pre-destroy>
+ <lifecycle-callback-class>entity1PreDestroy2Class</lifecycle-callback-class>
+ <lifecycle-callback-method>entity1PreDestroy2Method</lifecycle-callback-method>
+ </pre-destroy>
+
+ <security-role-ref id="entity1SecurityRoleRef1-id">
+ <description>en-entity1SecurityRoleRef1-desc</description>
+ <description xml:lang="fr">fr-entity1SecurityRoleRef1-desc</description>
+ <description xml:lang="de">de-entity1SecurityRoleRef1-desc</description>
+ <role-name>entity1SecurityRoleRef1RoleName</role-name>
+ <role-link>entity1SecurityRoleRef1RoleLink</role-link>
+ </security-role-ref>
+ <security-role-ref id="entity1SecurityRoleRef2-id">
+ <description>en-entity1SecurityRoleRef2-desc</description>
+ <description xml:lang="fr">fr-entity1SecurityRoleRef2-desc</description>
+ <description xml:lang="de">de-entity1SecurityRoleRef2-desc</description>
+ <role-name>entity1SecurityRoleRef2RoleName</role-name>
+ <role-link>entity1SecurityRoleRef2RoleLink</role-link>
+ </security-role-ref>
+ <security-identity id="entity1SecurityIdentity-id">
+ <description>en-entity1SecurityIdentity-desc</description>
+ <description xml:lang="fr">fr-entity1SecurityIdentity-desc</description>
+ <description xml:lang="de">de-entity1SecurityIdentity-desc</description>
+ <use-caller-identity id="entity1SecurityIdentityUseCallerIdentity-id"/>
+ <run-as id="entity1SecurityIdentityRunAs-id">
+ <description>en-entity1SecurityIdentityRunAs-desc</description>
+ <description xml:lang="fr">fr-entity1SecurityIdentityRunAs-desc</description>
+ <description xml:lang="de">de-entity1SecurityIdentityRunAs-desc</description>
+ <role-name>entity1SecurityIdentityRunAsRoleName</role-name>
+ </run-as>
+ </security-identity>
+ <query id="entity1Query1-id">
+ <!-- TODO description>en-entity1Query1-desc</description -->
+ <query-method id="entity1Query1QueryMethod-id">
+ <method-name>entity1Query1QueryMethod</method-name>
+ <method-params>
+ <method-param>entity1Query1QueryMethodParam1</method-param>
+ <method-param>entity1Query1QueryMethodParam2</method-param>
+ </method-params>
+ </query-method>
+ <result-type-mapping>Local</result-type-mapping>
+ <ejb-ql>entity1Query1EjbQL</ejb-ql>
+ </query>
+ <query id="entity1Query2-id">
+ <!-- TODO description>en-entity1Query2-desc</description -->
+ <query-method id="entity1Query2QueryMethod-id">
+ <method-name>entity1Query2QueryMethod</method-name>
+ <method-params>
+ <method-param>entity1Query2QueryMethodParam1</method-param>
+ <method-param>entity1Query2QueryMethodParam2</method-param>
+ </method-params>
+ </query-method>
+ <result-type-mapping>Remote</result-type-mapping>
+ <ejb-ql>entity1Query2EjbQL</ejb-ql>
+ </query>
+
+ </entity>
+
+ <entity id="entity2-id">
+
+ <description>en-entity2-desc</description>
+ <description xml:lang="fr">fr-entity2-desc</description>
+ <description xml:lang="de">de-entity2-desc</description>
+ <display-name>en-entity2-disp</display-name>
+ <display-name xml:lang="fr">fr-entity2-disp</display-name>
+ <display-name xml:lang="de">de-entity2-disp</display-name>
+ <icon id="en-entity2-icon-id">
+ <small-icon>en-entity2-small-icon</small-icon>
+ <large-icon>en-entity2-large-icon</large-icon>
+ </icon>
+ <icon xml:lang="fr" id="fr-entity2-icon-id">
+ <small-icon>fr-entity2-small-icon</small-icon>
+ <large-icon>fr-entity2-large-icon</large-icon>
+ </icon>
+ <icon xml:lang="de" id="de-entity2-icon-id">
+ <small-icon>de-entity2-small-icon</small-icon>
+ <large-icon>de-entity2-large-icon</large-icon>
+ </icon>
+
+ <ejb-name>entity2</ejb-name>
+
+ <mapped-name>entity2-mapped-name</mapped-name>
+ <home>entity2Home</home>
+ <remote>entity2Remote</remote>
+ <local-home>entity2LocalHome</local-home>
+ <local>entity2Local</local>
+ <ejb-class>entity2EjbClass</ejb-class>
+ <persistence-type>Container</persistence-type>
+ <prim-key-class>entity2PrimKeyClass</prim-key-class>
+ <reentrant>true</reentrant>
+ <cmp-version>2.x</cmp-version>
+ <abstract-schema-name>entity2AbstractSchemaName</abstract-schema-name>
+ <cmp-field id="entity2CmpField1-id">
+ <field-name>entity2CmpField1</field-name>
+ </cmp-field>
+ <cmp-field id="entity2CmpField2-id">
+ <field-name>entity2CmpField2</field-name>
+ </cmp-field>
+ <primkey-field>entity2PrimKeyField</primkey-field>
+
+ <env-entry id="entity2EnvEntry1-id">
+ <description>en-entity2EnvEntry1-desc</description>
+ <description xml:lang="fr">fr-entity2EnvEntry1-desc</description>
+ <description xml:lang="de">de-entity2EnvEntry1-desc</description>
+ <env-entry-name>entity2EnvEntry1Name</env-entry-name>
+ <env-entry-type>entity2EnvEntry1Type</env-entry-type>
+ <env-entry-value>entity2EnvEntry1Value</env-entry-value>
+ <mapped-name>entity2EnvEntry1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>entity2EnvEntry1Injection1Class</injection-target-class>
+ <injection-target-name>entity2EnvEntry1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>entity2EnvEntry1Injection2Class</injection-target-class>
+ <injection-target-name>entity2EnvEntry1Injection2Name</injection-target-name>
+ </injection-target>
+ </env-entry>
+ <env-entry id="entity2EnvEntry2-id">
+ <description>en-entity2EnvEntry2-desc</description>
+ <description xml:lang="fr">fr-entity2EnvEntry2-desc</description>
+ <description xml:lang="de">de-entity2EnvEntry2-desc</description>
+ <env-entry-name>entity2EnvEntry2Name</env-entry-name>
+ <env-entry-type>entity2EnvEntry2Type</env-entry-type>
+ <env-entry-value>entity2EnvEntry2Value</env-entry-value>
+ <mapped-name>entity2EnvEntry2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>entity2EnvEntry2Injection1Class</injection-target-class>
+ <injection-target-name>entity2EnvEntry2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>entity2EnvEntry2Injection2Class</injection-target-class>
+ <injection-target-name>entity2EnvEntry2Injection2Name</injection-target-name>
+ </injection-target>
+ </env-entry>
+ <ejb-ref id="entity2EjbRef1-id">
+ <description>en-entity2EjbRef1-desc</description>
+ <description xml:lang="fr">fr-entity2EjbRef1-desc</description>
+ <description xml:lang="de">de-entity2EjbRef1-desc</description>
+ <ejb-ref-name>entity2EjbRef1Name</ejb-ref-name>
+ <ejb-ref-type>Session</ejb-ref-type>
+ <home>entity2EjbRef1Home</home>
+ <remote>entity2EjbRef1Remote</remote>
+ <ejb-link>entity2EjbRef1EjbLink</ejb-link>
+ <mapped-name>entity2EjbRef1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>entity2EjbRef1Injection1Class</injection-target-class>
+ <injection-target-name>entity2EjbRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>entity2EjbRef1Injection2Class</injection-target-class>
+ <injection-target-name>entity2EjbRef1Injection2Name</injection-target-name>
+ </injection-target>
+ </ejb-ref>
+ <ejb-ref id="entity2EjbRef2-id">
+ <description>en-entity2EjbRef2-desc</description>
+ <description xml:lang="fr">fr-entity2EjbRef2-desc</description>
+ <description xml:lang="de">de-entity2EjbRef2-desc</description>
+ <ejb-ref-name>entity2EjbRef2Name</ejb-ref-name>
+ <ejb-ref-type>Entity</ejb-ref-type>
+ <home>entity2EjbRef2Home</home>
+ <remote>entity2EjbRef2Remote</remote>
+ <ejb-link>entity2EjbRef2EjbLink</ejb-link>
+ <mapped-name>entity2EjbRef2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>entity2EjbRef2Injection1Class</injection-target-class>
+ <injection-target-name>entity2EjbRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>entity2EjbRef2Injection2Class</injection-target-class>
+ <injection-target-name>entity2EjbRef2Injection2Name</injection-target-name>
+ </injection-target>
+ </ejb-ref>
+ <ejb-local-ref id="entity2EjbLocalRef1-id">
+ <description>en-entity2EjbLocalRef1-desc</description>
+ <description xml:lang="fr">fr-entity2EjbLocalRef1-desc</description>
+ <description xml:lang="de">de-entity2EjbLocalRef1-desc</description>
+ <ejb-ref-name>entity2EjbLocalRef1Name</ejb-ref-name>
+ <ejb-ref-type>Session</ejb-ref-type>
+ <local-home>entity2EjbLocalRef1LocalHome</local-home>
+ <local>entity2EjbLocalRef1Local</local>
+ <ejb-link>entity2EjbLocalRef1EjbLink</ejb-link>
+ <mapped-name>entity2EjbLocalRef1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>entity2EjbLocalRef1Injection1Class</injection-target-class>
+ <injection-target-name>entity2EjbLocalRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>entity2EjbLocalRef1Injection2Class</injection-target-class>
+ <injection-target-name>entity2EjbLocalRef1Injection2Name</injection-target-name>
+ </injection-target>
+ </ejb-local-ref>
+ <ejb-local-ref id="entity2EjbLocalRef2-id">
+ <description>en-entity2EjbLocalRef2-desc</description>
+ <description xml:lang="fr">fr-entity2EjbLocalRef2-desc</description>
+ <description xml:lang="de">de-entity2EjbLocalRef2-desc</description>
+ <ejb-ref-name>entity2EjbLocalRef2Name</ejb-ref-name>
+ <ejb-ref-type>Entity</ejb-ref-type>
+ <local-home>entity2EjbLocalRef2LocalHome</local-home>
+ <local>entity2EjbLocalRef2Local</local>
+ <ejb-link>entity2EjbLocalRef2EjbLink</ejb-link>
+ <mapped-name>entity2EjbLocalRef2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>entity2EjbLocalRef2Injection1Class</injection-target-class>
+ <injection-target-name>entity2EjbLocalRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>entity2EjbLocalRef2Injection2Class</injection-target-class>
+ <injection-target-name>entity2EjbLocalRef2Injection2Name</injection-target-name>
+ </injection-target>
+ </ejb-local-ref>
+
+ <!-- TODO service-refGroup -->
+
+ <resource-ref id="entity2ResourceRef1-id">
+ <description>en-entity2ResourceRef1-desc</description>
+ <description xml:lang="fr">fr-entity2ResourceRef1-desc</description>
+ <description xml:lang="de">de-entity2ResourceRef1-desc</description>
+ <res-ref-name>entity2ResourceRef1Name</res-ref-name>
+ <res-type>entity2ResourceRef1Type</res-type>
+ <res-auth>Application</res-auth>
+ <res-sharing-scope>Shareable</res-sharing-scope>
+ <mapped-name>entity2ResourceRef1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>entity2ResourceRef1Injection1Class</injection-target-class>
+ <injection-target-name>entity2ResourceRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>entity2ResourceRef1Injection2Class</injection-target-class>
+ <injection-target-name>entity2ResourceRef1Injection2Name</injection-target-name>
+ </injection-target>
+ </resource-ref>
+ <resource-ref id="entity2ResourceRef2-id">
+ <description>en-entity2ResourceRef2-desc</description>
+ <description xml:lang="fr">fr-entity2ResourceRef2-desc</description>
+ <description xml:lang="de">de-entity2ResourceRef2-desc</description>
+ <res-ref-name>entity2ResourceRef2Name</res-ref-name>
+ <res-type>entity2ResourceRef2Type</res-type>
+ <res-auth>Container</res-auth>
+ <res-sharing-scope>Unshareable</res-sharing-scope>
+ <mapped-name>entity2ResourceRef2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>entity2ResourceRef2Injection1Class</injection-target-class>
+ <injection-target-name>entity2ResourceRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>entity2ResourceRef2Injection2Class</injection-target-class>
+ <injection-target-name>entity2ResourceRef2Injection2Name</injection-target-name>
+ </injection-target>
+ </resource-ref>
+ <resource-env-ref id="entity2ResourceEnvRef1-id">
+ <description>en-entity2ResourceEnvRef1-desc</description>
+ <description xml:lang="fr">fr-entity2ResourceEnvRef1-desc</description>
+ <description xml:lang="de">de-entity2ResourceEnvRef1-desc</description>
+ <resource-env-ref-name>entity2ResourceEnvRef1Name</resource-env-ref-name>
+ <resource-env-ref-type>entity2ResourceEnvRef1Type</resource-env-ref-type>
+ <mapped-name>entity2ResourceEnvRef1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>entity2ResourceEnvRef1Injection1Class</injection-target-class>
+ <injection-target-name>entity2ResourceEnvRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>entity2ResourceEnvRef1Injection2Class</injection-target-class>
+ <injection-target-name>entity2ResourceEnvRef1Injection2Name</injection-target-name>
+ </injection-target>
+ </resource-env-ref>
+ <resource-env-ref id="entity2ResourceEnvRef2-id">
+ <description>en-entity2ResourceEnvRef2-desc</description>
+ <description xml:lang="fr">fr-entity2ResourceEnvRef2-desc</description>
+ <description xml:lang="de">de-entity2ResourceEnvRef2-desc</description>
+ <resource-env-ref-name>entity2ResourceEnvRef2Name</resource-env-ref-name>
+ <resource-env-ref-type>entity2ResourceEnvRef2Type</resource-env-ref-type>
+ <mapped-name>entity2ResourceEnvRef2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>entity2ResourceEnvRef2Injection1Class</injection-target-class>
+ <injection-target-name>entity2ResourceEnvRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>entity2ResourceEnvRef2Injection2Class</injection-target-class>
+ <injection-target-name>entity2ResourceEnvRef2Injection2Name</injection-target-name>
+ </injection-target>
+ </resource-env-ref>
+ <message-destination-ref id="entity2MessageDestinationRef1-id">
+ <description>en-entity2MessageDestinationRef1-desc</description>
+ <description xml:lang="fr">fr-entity2MessageDestinationRef1-desc</description>
+ <description xml:lang="de">de-entity2MessageDestinationRef1-desc</description>
+ <message-destination-ref-name>entity2MessageDestinationRef1Name</message-destination-ref-name>
+ <message-destination-type>entity2MessageDestinationRef1Type</message-destination-type>
+ <message-destination-usage>Consumes</message-destination-usage>
+ <message-destination-link>entity2MessageDestinationRef1Link</message-destination-link>
+ <mapped-name>entity2MessageDestinationRef1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>entity2MessageDestinationRef1Injection1Class</injection-target-class>
+ <injection-target-name>entity2MessageDestinationRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>entity2MessageDestinationRef1Injection2Class</injection-target-class>
+ <injection-target-name>entity2MessageDestinationRef1Injection2Name</injection-target-name>
+ </injection-target>
+ </message-destination-ref>
+ <message-destination-ref id="entity2MessageDestinationRef2-id">
+ <description>en-entity2MessageDestinationRef2-desc</description>
+ <description xml:lang="fr">fr-entity2MessageDestinationRef2-desc</description>
+ <description xml:lang="de">de-entity2MessageDestinationRef2-desc</description>
+ <message-destination-ref-name>entity2MessageDestinationRef2Name</message-destination-ref-name>
+ <message-destination-type>entity2MessageDestinationRef2Type</message-destination-type>
+ <message-destination-usage>Produces</message-destination-usage>
+ <message-destination-link>entity2MessageDestinationRef2Link</message-destination-link>
+ <mapped-name>entity2MessageDestinationRef2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>entity2MessageDestinationRef2Injection1Class</injection-target-class>
+ <injection-target-name>entity2MessageDestinationRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>entity2MessageDestinationRef2Injection2Class</injection-target-class>
+ <injection-target-name>entity2MessageDestinationRef2Injection2Name</injection-target-name>
+ </injection-target>
+ </message-destination-ref>
+ <message-destination-ref id="entity2MessageDestinationRef3-id">
+ <description>en-entity2MessageDestinationRef3-desc</description>
+ <description xml:lang="fr">fr-entity2MessageDestinationRef3-desc</description>
+ <description xml:lang="de">de-entity2MessageDestinationRef3-desc</description>
+ <message-destination-ref-name>entity2MessageDestinationRef3Name</message-destination-ref-name>
+ <message-destination-type>entity2MessageDestinationRef3Type</message-destination-type>
+ <message-destination-usage>ConsumesProduces</message-destination-usage>
+ <message-destination-link>entity2MessageDestinationRef3Link</message-destination-link>
+ <mapped-name>entity2MessageDestinationRef3MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>entity2MessageDestinationRef3Injection1Class</injection-target-class>
+ <injection-target-name>entity2MessageDestinationRef3Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>entity2MessageDestinationRef3Injection2Class</injection-target-class>
+ <injection-target-name>entity2MessageDestinationRef3Injection2Name</injection-target-name>
+ </injection-target>
+ </message-destination-ref>
+ <persistence-context-ref id="entity2PersistenceContextRef1-id">
+ <description>en-entity2PersistenceContextRef1-desc</description>
+ <description xml:lang="fr">fr-entity2PersistenceContextRef1-desc</description>
+ <description xml:lang="de">de-entity2PersistenceContextRef1-desc</description>
+ <persistence-context-ref-name>entity2PersistenceContextRef1Name</persistence-context-ref-name>
+ <persistence-unit-name>entity2PersistenceContextRef1Unit</persistence-unit-name>
+ <persistence-context-type>Transaction</persistence-context-type>
+ <persistence-property id="entity2PersistenceContextRef1Property1-id">
+ <name>entity2PersistenceContextRef1Property1Name</name>
+ <value>entity2PersistenceContextRef1Property1Value</value>
+ </persistence-property>
+ <persistence-property id="entity2PersistenceContextRef1Property2-id">
+ <name>entity2PersistenceContextRef1Property2Name</name>
+ <value>entity2PersistenceContextRef1Property2Value</value>
+ </persistence-property>
+ <mapped-name>entity2PersistenceContextRef1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>entity2PersistenceContextRef1Injection1Class</injection-target-class>
+ <injection-target-name>entity2PersistenceContextRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>entity2PersistenceContextRef1Injection2Class</injection-target-class>
+ <injection-target-name>entity2PersistenceContextRef1Injection2Name</injection-target-name>
+ </injection-target>
+ </persistence-context-ref>
+ <persistence-context-ref id="entity2PersistenceContextRef2-id">
+ <description>en-entity2PersistenceContextRef2-desc</description>
+ <description xml:lang="fr">fr-entity2PersistenceContextRef2-desc</description>
+ <description xml:lang="de">de-entity2PersistenceContextRef2-desc</description>
+ <persistence-context-ref-name>entity2PersistenceContextRef2Name</persistence-context-ref-name>
+ <persistence-unit-name>entity2PersistenceContextRef2Unit</persistence-unit-name>
+ <persistence-context-type>Extended</persistence-context-type>
+ <persistence-property id="entity2PersistenceContextRef2Property1-id">
+ <name>entity2PersistenceContextRef2Property1Name</name>
+ <value>entity2PersistenceContextRef2Property1Value</value>
+ </persistence-property>
+ <persistence-property id="entity2PersistenceContextRef2Property2-id">
+ <name>entity2PersistenceContextRef2Property2Name</name>
+ <value>entity2PersistenceContextRef2Property2Value</value>
+ </persistence-property>
+ <mapped-name>entity2PersistenceContextRef2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>entity2PersistenceContextRef2Injection1Class</injection-target-class>
+ <injection-target-name>entity2PersistenceContextRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>entity2PersistenceContextRef2Injection2Class</injection-target-class>
+ <injection-target-name>entity2PersistenceContextRef2Injection2Name</injection-target-name>
+ </injection-target>
+ </persistence-context-ref>
+ <persistence-unit-ref id="entity2PersistenceUnitRef1-id">
+ <description>en-entity2PersistenceUnitRef1-desc</description>
+ <description xml:lang="fr">fr-entity2PersistenceUnitRef1-desc</description>
+ <description xml:lang="de">de-entity2PersistenceUnitRef1-desc</description>
+ <persistence-unit-ref-name>entity2PersistenceUnitRef1Name</persistence-unit-ref-name>
+ <persistence-unit-name>entity2PersistenceUnitRef1Unit</persistence-unit-name>
+ <mapped-name>entity2PersistenceUnitRef1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>entity2PersistenceUnitRef1Injection1Class</injection-target-class>
+ <injection-target-name>entity2PersistenceUnitRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>entity2PersistenceUnitRef1Injection2Class</injection-target-class>
+ <injection-target-name>entity2PersistenceUnitRef1Injection2Name</injection-target-name>
+ </injection-target>
+ </persistence-unit-ref>
+ <persistence-unit-ref id="entity2PersistenceUnitRef2-id">
+ <description>en-entity2PersistenceUnitRef2-desc</description>
+ <description xml:lang="fr">fr-entity2PersistenceUnitRef2-desc</description>
+ <description xml:lang="de">de-entity2PersistenceUnitRef2-desc</description>
+ <persistence-unit-ref-name>entity2PersistenceUnitRef2Name</persistence-unit-ref-name>
+ <persistence-unit-name>entity2PersistenceUnitRef2Unit</persistence-unit-name>
+ <mapped-name>entity2PersistenceUnitRef2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>entity2PersistenceUnitRef2Injection1Class</injection-target-class>
+ <injection-target-name>entity2PersistenceUnitRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>entity2PersistenceUnitRef2Injection2Class</injection-target-class>
+ <injection-target-name>entity2PersistenceUnitRef2Injection2Name</injection-target-name>
+ </injection-target>
+ </persistence-unit-ref>
+ <post-construct>
+ <lifecycle-callback-class>entity2PostConstruct1Class</lifecycle-callback-class>
+ <lifecycle-callback-method>entity2PostConstruct1Method</lifecycle-callback-method>
+ </post-construct>
+ <post-construct>
+ <lifecycle-callback-class>entity2PostConstruct2Class</lifecycle-callback-class>
+ <lifecycle-callback-method>entity2PostConstruct2Method</lifecycle-callback-method>
+ </post-construct>
+ <pre-destroy>
+ <lifecycle-callback-class>entity2PreDestroy1Class</lifecycle-callback-class>
+ <lifecycle-callback-method>entity2PreDestroy1Method</lifecycle-callback-method>
+ </pre-destroy>
+ <pre-destroy>
+ <lifecycle-callback-class>entity2PreDestroy2Class</lifecycle-callback-class>
+ <lifecycle-callback-method>entity2PreDestroy2Method</lifecycle-callback-method>
+ </pre-destroy>
+
+ <security-role-ref id="entity2SecurityRoleRef1-id">
+ <description>en-entity2SecurityRoleRef1-desc</description>
+ <description xml:lang="fr">fr-entity2SecurityRoleRef1-desc</description>
+ <description xml:lang="de">de-entity2SecurityRoleRef1-desc</description>
+ <role-name>entity2SecurityRoleRef1RoleName</role-name>
+ <role-link>entity2SecurityRoleRef1RoleLink</role-link>
+ </security-role-ref>
+ <security-role-ref id="entity2SecurityRoleRef2-id">
+ <description>en-entity2SecurityRoleRef2-desc</description>
+ <description xml:lang="fr">fr-entity2SecurityRoleRef2-desc</description>
+ <description xml:lang="de">de-entity2SecurityRoleRef2-desc</description>
+ <role-name>entity2SecurityRoleRef2RoleName</role-name>
+ <role-link>entity2SecurityRoleRef2RoleLink</role-link>
+ </security-role-ref>
+ <security-identity id="entity2SecurityIdentity-id">
+ <description>en-entity2SecurityIdentity-desc</description>
+ <description xml:lang="fr">fr-entity2SecurityIdentity-desc</description>
+ <description xml:lang="de">de-entity2SecurityIdentity-desc</description>
+ <use-caller-identity id="entity2SecurityIdentityUseCallerIdentity-id"/>
+ <run-as id="entity2SecurityIdentityRunAs-id">
+ <description>en-entity2SecurityIdentityRunAs-desc</description>
+ <description xml:lang="fr">fr-entity2SecurityIdentityRunAs-desc</description>
+ <description xml:lang="de">de-entity2SecurityIdentityRunAs-desc</description>
+ <role-name>entity2SecurityIdentityRunAsRoleName</role-name>
+ </run-as>
+ </security-identity>
+ <query id="entity2Query1-id">
+ <!-- TODO description>en-entity2Query1-desc</description -->
+ <query-method id="entity2Query1QueryMethod-id">
+ <method-name>entity2Query1QueryMethod</method-name>
+ <method-params>
+ <method-param>entity2Query1QueryMethodParam1</method-param>
+ <method-param>entity2Query1QueryMethodParam2</method-param>
+ </method-params>
+ </query-method>
+ <result-type-mapping>Local</result-type-mapping>
+ <ejb-ql>entity2Query1EjbQL</ejb-ql>
+ </query>
+ <query id="entity2Query2-id">
+ <!-- TODO description>en-entity2Query2-desc</description -->
+ <query-method id="entity2Query2QueryMethod-id">
+ <method-name>entity2Query2QueryMethod</method-name>
+ <method-params>
+ <method-param>entity2Query2QueryMethodParam1</method-param>
+ <method-param>entity2Query2QueryMethodParam2</method-param>
+ </method-params>
+ </query-method>
+ <result-type-mapping>Remote</result-type-mapping>
+ <ejb-ql>entity2Query2EjbQL</ejb-ql>
+ </query>
+
+ </entity>
+
+ <entity>
+ <ejb-name>entity3</ejb-name>
+ <ejb-class>entity3Class</ejb-class>
+ <persistence-type>Bean</persistence-type>
+ </entity>
+
+ <entity>
+ <ejb-name>entity4</ejb-name>
+ <ejb-class>entity4Class</ejb-class>
+ <persistence-type>Container</persistence-type>
+ <prim-key-class>java.lang.Object</prim-key-class>
+ <reentrant>false</reentrant>
+ </entity>
+
+ <entity>
+ <ejb-name>entity5</ejb-name>
+ <ejb-class>entity5Class</ejb-class>
+ <persistence-type>Container</persistence-type>
+ <prim-key-class>java.lang.Object</prim-key-class>
+ <reentrant>false</reentrant>
+ <cmp-version>1.x</cmp-version>
+ </entity>
+
+ <message-driven>
+ <ejb-name>mdb0</ejb-name>
+ </message-driven>
+
+ <message-driven id="mdb1-id">
+
+ <description>en-mdb1-desc</description>
+ <description xml:lang="fr">fr-mdb1-desc</description>
+ <description xml:lang="de">de-mdb1-desc</description>
+ <display-name>en-mdb1-disp</display-name>
+ <display-name xml:lang="fr">fr-mdb1-disp</display-name>
+ <display-name xml:lang="de">de-mdb1-disp</display-name>
+ <icon id="en-mdb1-icon-id">
+ <small-icon>en-mdb1-small-icon</small-icon>
+ <large-icon>en-mdb1-large-icon</large-icon>
+ </icon>
+ <icon xml:lang="fr" id="fr-mdb1-icon-id">
+ <small-icon>fr-mdb1-small-icon</small-icon>
+ <large-icon>fr-mdb1-large-icon</large-icon>
+ </icon>
+ <icon xml:lang="de" id="de-mdb1-icon-id">
+ <small-icon>de-mdb1-small-icon</small-icon>
+ <large-icon>de-mdb1-large-icon</large-icon>
+ </icon>
+
+ <ejb-name>mdb1</ejb-name>
+
+ <mapped-name>mdb1-mapped-name</mapped-name>
+ <ejb-class>mdb1EjbClass</ejb-class>
+ <messaging-type>mdb1MessagingType</messaging-type>
+ <timeout-method id="mdb1TimeoutMethod-id">
+ <method-name>mdb1TimeoutMethod</method-name>
+ <method-params>
+ <method-param>mdb1TimeoutMethodParam1</method-param>
+ <method-param>mdb1TimeoutMethodParam2</method-param>
+ </method-params>
+ </timeout-method>
+ <transaction-type>Container</transaction-type>
+ <message-destination-type>mdb1MessageDestinationType</message-destination-type>
+ <message-destination-link>mdb1MessageDestinationLink</message-destination-link>
+ <activation-config id="mdb1ActivationConfig-id">
+ <activation-config-property id="mdb1ActivationConfigProperty1-id">
+ <activation-config-property-name>mdb1ActivationConfigProperty1Name</activation-config-property-name>
+ <activation-config-property-value>mdb1ActivationConfigProperty1Value</activation-config-property-value>
+ </activation-config-property>
+ <activation-config-property id="mdb1ActivationConfigProperty2-id">
+ <activation-config-property-name>mdb1ActivationConfigProperty2Name</activation-config-property-name>
+ <activation-config-property-value>mdb1ActivationConfigProperty2Value</activation-config-property-value>
+ </activation-config-property>
+ </activation-config>
+
+ <around-invoke>
+ <class>mdb1AroundInvoke1Class</class>
+ <method-name>mdb1AroundInvoke1Method</method-name>
+ </around-invoke>
+ <around-invoke>
+ <class>mdb1AroundInvoke2Class</class>
+ <method-name>mdb1AroundInvoke2Method</method-name>
+ </around-invoke>
+
+ <env-entry id="mdb1EnvEntry1-id">
+ <description>en-mdb1EnvEntry1-desc</description>
+ <description xml:lang="fr">fr-mdb1EnvEntry1-desc</description>
+ <description xml:lang="de">de-mdb1EnvEntry1-desc</description>
+ <env-entry-name>mdb1EnvEntry1Name</env-entry-name>
+ <env-entry-type>mdb1EnvEntry1Type</env-entry-type>
+ <env-entry-value>mdb1EnvEntry1Value</env-entry-value>
+ <mapped-name>mdb1EnvEntry1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>mdb1EnvEntry1Injection1Class</injection-target-class>
+ <injection-target-name>mdb1EnvEntry1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>mdb1EnvEntry1Injection2Class</injection-target-class>
+ <injection-target-name>mdb1EnvEntry1Injection2Name</injection-target-name>
+ </injection-target>
+ </env-entry>
+ <env-entry id="mdb1EnvEntry2-id">
+ <description>en-mdb1EnvEntry2-desc</description>
+ <description xml:lang="fr">fr-mdb1EnvEntry2-desc</description>
+ <description xml:lang="de">de-mdb1EnvEntry2-desc</description>
+ <env-entry-name>mdb1EnvEntry2Name</env-entry-name>
+ <env-entry-type>mdb1EnvEntry2Type</env-entry-type>
+ <env-entry-value>mdb1EnvEntry2Value</env-entry-value>
+ <mapped-name>mdb1EnvEntry2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>mdb1EnvEntry2Injection1Class</injection-target-class>
+ <injection-target-name>mdb1EnvEntry2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>mdb1EnvEntry2Injection2Class</injection-target-class>
+ <injection-target-name>mdb1EnvEntry2Injection2Name</injection-target-name>
+ </injection-target>
+ </env-entry>
+ <ejb-ref id="mdb1EjbRef1-id">
+ <description>en-mdb1EjbRef1-desc</description>
+ <description xml:lang="fr">fr-mdb1EjbRef1-desc</description>
+ <description xml:lang="de">de-mdb1EjbRef1-desc</description>
+ <ejb-ref-name>mdb1EjbRef1Name</ejb-ref-name>
+ <ejb-ref-type>Session</ejb-ref-type>
+ <home>mdb1EjbRef1Home</home>
+ <remote>mdb1EjbRef1Remote</remote>
+ <ejb-link>mdb1EjbRef1EjbLink</ejb-link>
+ <mapped-name>mdb1EjbRef1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>mdb1EjbRef1Injection1Class</injection-target-class>
+ <injection-target-name>mdb1EjbRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>mdb1EjbRef1Injection2Class</injection-target-class>
+ <injection-target-name>mdb1EjbRef1Injection2Name</injection-target-name>
+ </injection-target>
+ </ejb-ref>
+ <ejb-ref id="mdb1EjbRef2-id">
+ <description>en-mdb1EjbRef2-desc</description>
+ <description xml:lang="fr">fr-mdb1EjbRef2-desc</description>
+ <description xml:lang="de">de-mdb1EjbRef2-desc</description>
+ <ejb-ref-name>mdb1EjbRef2Name</ejb-ref-name>
+ <ejb-ref-type>Entity</ejb-ref-type>
+ <home>mdb1EjbRef2Home</home>
+ <remote>mdb1EjbRef2Remote</remote>
+ <ejb-link>mdb1EjbRef2EjbLink</ejb-link>
+ <mapped-name>mdb1EjbRef2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>mdb1EjbRef2Injection1Class</injection-target-class>
+ <injection-target-name>mdb1EjbRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>mdb1EjbRef2Injection2Class</injection-target-class>
+ <injection-target-name>mdb1EjbRef2Injection2Name</injection-target-name>
+ </injection-target>
+ </ejb-ref>
+ <ejb-local-ref id="mdb1EjbLocalRef1-id">
+ <description>en-mdb1EjbLocalRef1-desc</description>
+ <description xml:lang="fr">fr-mdb1EjbLocalRef1-desc</description>
+ <description xml:lang="de">de-mdb1EjbLocalRef1-desc</description>
+ <ejb-ref-name>mdb1EjbLocalRef1Name</ejb-ref-name>
+ <ejb-ref-type>Session</ejb-ref-type>
+ <local-home>mdb1EjbLocalRef1LocalHome</local-home>
+ <local>mdb1EjbLocalRef1Local</local>
+ <ejb-link>mdb1EjbLocalRef1EjbLink</ejb-link>
+ <mapped-name>mdb1EjbLocalRef1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>mdb1EjbLocalRef1Injection1Class</injection-target-class>
+ <injection-target-name>mdb1EjbLocalRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>mdb1EjbLocalRef1Injection2Class</injection-target-class>
+ <injection-target-name>mdb1EjbLocalRef1Injection2Name</injection-target-name>
+ </injection-target>
+ </ejb-local-ref>
+ <ejb-local-ref id="mdb1EjbLocalRef2-id">
+ <description>en-mdb1EjbLocalRef2-desc</description>
+ <description xml:lang="fr">fr-mdb1EjbLocalRef2-desc</description>
+ <description xml:lang="de">de-mdb1EjbLocalRef2-desc</description>
+ <ejb-ref-name>mdb1EjbLocalRef2Name</ejb-ref-name>
+ <ejb-ref-type>Entity</ejb-ref-type>
+ <local-home>mdb1EjbLocalRef2LocalHome</local-home>
+ <local>mdb1EjbLocalRef2Local</local>
+ <ejb-link>mdb1EjbLocalRef2EjbLink</ejb-link>
+ <mapped-name>mdb1EjbLocalRef2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>mdb1EjbLocalRef2Injection1Class</injection-target-class>
+ <injection-target-name>mdb1EjbLocalRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>mdb1EjbLocalRef2Injection2Class</injection-target-class>
+ <injection-target-name>mdb1EjbLocalRef2Injection2Name</injection-target-name>
+ </injection-target>
+ </ejb-local-ref>
+
+ <!-- TODO service-refGroup -->
+
+ <resource-ref id="mdb1ResourceRef1-id">
+ <description>en-mdb1ResourceRef1-desc</description>
+ <description xml:lang="fr">fr-mdb1ResourceRef1-desc</description>
+ <description xml:lang="de">de-mdb1ResourceRef1-desc</description>
+ <res-ref-name>mdb1ResourceRef1Name</res-ref-name>
+ <res-type>mdb1ResourceRef1Type</res-type>
+ <res-auth>Application</res-auth>
+ <res-sharing-scope>Shareable</res-sharing-scope>
+ <mapped-name>mdb1ResourceRef1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>mdb1ResourceRef1Injection1Class</injection-target-class>
+ <injection-target-name>mdb1ResourceRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>mdb1ResourceRef1Injection2Class</injection-target-class>
+ <injection-target-name>mdb1ResourceRef1Injection2Name</injection-target-name>
+ </injection-target>
+ </resource-ref>
+ <resource-ref id="mdb1ResourceRef2-id">
+ <description>en-mdb1ResourceRef2-desc</description>
+ <description xml:lang="fr">fr-mdb1ResourceRef2-desc</description>
+ <description xml:lang="de">de-mdb1ResourceRef2-desc</description>
+ <res-ref-name>mdb1ResourceRef2Name</res-ref-name>
+ <res-type>mdb1ResourceRef2Type</res-type>
+ <res-auth>Container</res-auth>
+ <res-sharing-scope>Unshareable</res-sharing-scope>
+ <mapped-name>mdb1ResourceRef2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>mdb1ResourceRef2Injection1Class</injection-target-class>
+ <injection-target-name>mdb1ResourceRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>mdb1ResourceRef2Injection2Class</injection-target-class>
+ <injection-target-name>mdb1ResourceRef2Injection2Name</injection-target-name>
+ </injection-target>
+ </resource-ref>
+ <resource-env-ref id="mdb1ResourceEnvRef1-id">
+ <description>en-mdb1ResourceEnvRef1-desc</description>
+ <description xml:lang="fr">fr-mdb1ResourceEnvRef1-desc</description>
+ <description xml:lang="de">de-mdb1ResourceEnvRef1-desc</description>
+ <resource-env-ref-name>mdb1ResourceEnvRef1Name</resource-env-ref-name>
+ <resource-env-ref-type>mdb1ResourceEnvRef1Type</resource-env-ref-type>
+ <mapped-name>mdb1ResourceEnvRef1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>mdb1ResourceEnvRef1Injection1Class</injection-target-class>
+ <injection-target-name>mdb1ResourceEnvRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>mdb1ResourceEnvRef1Injection2Class</injection-target-class>
+ <injection-target-name>mdb1ResourceEnvRef1Injection2Name</injection-target-name>
+ </injection-target>
+ </resource-env-ref>
+ <resource-env-ref id="mdb1ResourceEnvRef2-id">
+ <description>en-mdb1ResourceEnvRef2-desc</description>
+ <description xml:lang="fr">fr-mdb1ResourceEnvRef2-desc</description>
+ <description xml:lang="de">de-mdb1ResourceEnvRef2-desc</description>
+ <resource-env-ref-name>mdb1ResourceEnvRef2Name</resource-env-ref-name>
+ <resource-env-ref-type>mdb1ResourceEnvRef2Type</resource-env-ref-type>
+ <mapped-name>mdb1ResourceEnvRef2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>mdb1ResourceEnvRef2Injection1Class</injection-target-class>
+ <injection-target-name>mdb1ResourceEnvRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>mdb1ResourceEnvRef2Injection2Class</injection-target-class>
+ <injection-target-name>mdb1ResourceEnvRef2Injection2Name</injection-target-name>
+ </injection-target>
+ </resource-env-ref>
+ <message-destination-ref id="mdb1MessageDestinationRef1-id">
+ <description>en-mdb1MessageDestinationRef1-desc</description>
+ <description xml:lang="fr">fr-mdb1MessageDestinationRef1-desc</description>
+ <description xml:lang="de">de-mdb1MessageDestinationRef1-desc</description>
+ <message-destination-ref-name>mdb1MessageDestinationRef1Name</message-destination-ref-name>
+ <message-destination-type>mdb1MessageDestinationRef1Type</message-destination-type>
+ <message-destination-usage>Consumes</message-destination-usage>
+ <message-destination-link>mdb1MessageDestinationRef1Link</message-destination-link>
+ <mapped-name>mdb1MessageDestinationRef1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>mdb1MessageDestinationRef1Injection1Class</injection-target-class>
+ <injection-target-name>mdb1MessageDestinationRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>mdb1MessageDestinationRef1Injection2Class</injection-target-class>
+ <injection-target-name>mdb1MessageDestinationRef1Injection2Name</injection-target-name>
+ </injection-target>
+ </message-destination-ref>
+ <message-destination-ref id="mdb1MessageDestinationRef2-id">
+ <description>en-mdb1MessageDestinationRef2-desc</description>
+ <description xml:lang="fr">fr-mdb1MessageDestinationRef2-desc</description>
+ <description xml:lang="de">de-mdb1MessageDestinationRef2-desc</description>
+ <message-destination-ref-name>mdb1MessageDestinationRef2Name</message-destination-ref-name>
+ <message-destination-type>mdb1MessageDestinationRef2Type</message-destination-type>
+ <message-destination-usage>Produces</message-destination-usage>
+ <message-destination-link>mdb1MessageDestinationRef2Link</message-destination-link>
+ <mapped-name>mdb1MessageDestinationRef2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>mdb1MessageDestinationRef2Injection1Class</injection-target-class>
+ <injection-target-name>mdb1MessageDestinationRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>mdb1MessageDestinationRef2Injection2Class</injection-target-class>
+ <injection-target-name>mdb1MessageDestinationRef2Injection2Name</injection-target-name>
+ </injection-target>
+ </message-destination-ref>
+ <message-destination-ref id="mdb1MessageDestinationRef3-id">
+ <description>en-mdb1MessageDestinationRef3-desc</description>
+ <description xml:lang="fr">fr-mdb1MessageDestinationRef3-desc</description>
+ <description xml:lang="de">de-mdb1MessageDestinationRef3-desc</description>
+ <message-destination-ref-name>mdb1MessageDestinationRef3Name</message-destination-ref-name>
+ <message-destination-type>mdb1MessageDestinationRef3Type</message-destination-type>
+ <message-destination-usage>ConsumesProduces</message-destination-usage>
+ <message-destination-link>mdb1MessageDestinationRef3Link</message-destination-link>
+ <mapped-name>mdb1MessageDestinationRef3MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>mdb1MessageDestinationRef3Injection1Class</injection-target-class>
+ <injection-target-name>mdb1MessageDestinationRef3Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>mdb1MessageDestinationRef3Injection2Class</injection-target-class>
+ <injection-target-name>mdb1MessageDestinationRef3Injection2Name</injection-target-name>
+ </injection-target>
+ </message-destination-ref>
+ <persistence-context-ref id="mdb1PersistenceContextRef1-id">
+ <description>en-mdb1PersistenceContextRef1-desc</description>
+ <description xml:lang="fr">fr-mdb1PersistenceContextRef1-desc</description>
+ <description xml:lang="de">de-mdb1PersistenceContextRef1-desc</description>
+ <persistence-context-ref-name>mdb1PersistenceContextRef1Name</persistence-context-ref-name>
+ <persistence-unit-name>mdb1PersistenceContextRef1Unit</persistence-unit-name>
+ <persistence-context-type>Transaction</persistence-context-type>
+ <persistence-property id="mdb1PersistenceContextRef1Property1-id">
+ <name>mdb1PersistenceContextRef1Property1Name</name>
+ <value>mdb1PersistenceContextRef1Property1Value</value>
+ </persistence-property>
+ <persistence-property id="mdb1PersistenceContextRef1Property2-id">
+ <name>mdb1PersistenceContextRef1Property2Name</name>
+ <value>mdb1PersistenceContextRef1Property2Value</value>
+ </persistence-property>
+ <mapped-name>mdb1PersistenceContextRef1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>mdb1PersistenceContextRef1Injection1Class</injection-target-class>
+ <injection-target-name>mdb1PersistenceContextRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>mdb1PersistenceContextRef1Injection2Class</injection-target-class>
+ <injection-target-name>mdb1PersistenceContextRef1Injection2Name</injection-target-name>
+ </injection-target>
+ </persistence-context-ref>
+ <persistence-context-ref id="mdb1PersistenceContextRef2-id">
+ <description>en-mdb1PersistenceContextRef2-desc</description>
+ <description xml:lang="fr">fr-mdb1PersistenceContextRef2-desc</description>
+ <description xml:lang="de">de-mdb1PersistenceContextRef2-desc</description>
+ <persistence-context-ref-name>mdb1PersistenceContextRef2Name</persistence-context-ref-name>
+ <persistence-unit-name>mdb1PersistenceContextRef2Unit</persistence-unit-name>
+ <persistence-context-type>Extended</persistence-context-type>
+ <persistence-property id="mdb1PersistenceContextRef2Property1-id">
+ <name>mdb1PersistenceContextRef2Property1Name</name>
+ <value>mdb1PersistenceContextRef2Property1Value</value>
+ </persistence-property>
+ <persistence-property id="mdb1PersistenceContextRef2Property2-id">
+ <name>mdb1PersistenceContextRef2Property2Name</name>
+ <value>mdb1PersistenceContextRef2Property2Value</value>
+ </persistence-property>
+ <mapped-name>mdb1PersistenceContextRef2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>mdb1PersistenceContextRef2Injection1Class</injection-target-class>
+ <injection-target-name>mdb1PersistenceContextRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>mdb1PersistenceContextRef2Injection2Class</injection-target-class>
+ <injection-target-name>mdb1PersistenceContextRef2Injection2Name</injection-target-name>
+ </injection-target>
+ </persistence-context-ref>
+ <persistence-unit-ref id="mdb1PersistenceUnitRef1-id">
+ <description>en-mdb1PersistenceUnitRef1-desc</description>
+ <description xml:lang="fr">fr-mdb1PersistenceUnitRef1-desc</description>
+ <description xml:lang="de">de-mdb1PersistenceUnitRef1-desc</description>
+ <persistence-unit-ref-name>mdb1PersistenceUnitRef1Name</persistence-unit-ref-name>
+ <persistence-unit-name>mdb1PersistenceUnitRef1Unit</persistence-unit-name>
+ <mapped-name>mdb1PersistenceUnitRef1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>mdb1PersistenceUnitRef1Injection1Class</injection-target-class>
+ <injection-target-name>mdb1PersistenceUnitRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>mdb1PersistenceUnitRef1Injection2Class</injection-target-class>
+ <injection-target-name>mdb1PersistenceUnitRef1Injection2Name</injection-target-name>
+ </injection-target>
+ </persistence-unit-ref>
+ <persistence-unit-ref id="mdb1PersistenceUnitRef2-id">
+ <description>en-mdb1PersistenceUnitRef2-desc</description>
+ <description xml:lang="fr">fr-mdb1PersistenceUnitRef2-desc</description>
+ <description xml:lang="de">de-mdb1PersistenceUnitRef2-desc</description>
+ <persistence-unit-ref-name>mdb1PersistenceUnitRef2Name</persistence-unit-ref-name>
+ <persistence-unit-name>mdb1PersistenceUnitRef2Unit</persistence-unit-name>
+ <mapped-name>mdb1PersistenceUnitRef2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>mdb1PersistenceUnitRef2Injection1Class</injection-target-class>
+ <injection-target-name>mdb1PersistenceUnitRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>mdb1PersistenceUnitRef2Injection2Class</injection-target-class>
+ <injection-target-name>mdb1PersistenceUnitRef2Injection2Name</injection-target-name>
+ </injection-target>
+ </persistence-unit-ref>
+ <post-construct>
+ <lifecycle-callback-class>mdb1PostConstruct1Class</lifecycle-callback-class>
+ <lifecycle-callback-method>mdb1PostConstruct1Method</lifecycle-callback-method>
+ </post-construct>
+ <post-construct>
+ <lifecycle-callback-class>mdb1PostConstruct2Class</lifecycle-callback-class>
+ <lifecycle-callback-method>mdb1PostConstruct2Method</lifecycle-callback-method>
+ </post-construct>
+ <pre-destroy>
+ <lifecycle-callback-class>mdb1PreDestroy1Class</lifecycle-callback-class>
+ <lifecycle-callback-method>mdb1PreDestroy1Method</lifecycle-callback-method>
+ </pre-destroy>
+ <pre-destroy>
+ <lifecycle-callback-class>mdb1PreDestroy2Class</lifecycle-callback-class>
+ <lifecycle-callback-method>mdb1PreDestroy2Method</lifecycle-callback-method>
+ </pre-destroy>
+
+ <security-identity id="mdb1SecurityIdentity-id">
+ <description>en-mdb1SecurityIdentity-desc</description>
+ <description xml:lang="fr">fr-mdb1SecurityIdentity-desc</description>
+ <description xml:lang="de">de-mdb1SecurityIdentity-desc</description>
+ <use-caller-identity id="mdb1SecurityIdentityUseCallerIdentity-id"/>
+ <run-as id="mdb1SecurityIdentityRunAs-id">
+ <description>en-mdb1SecurityIdentityRunAs-desc</description>
+ <description xml:lang="fr">fr-mdb1SecurityIdentityRunAs-desc</description>
+ <description xml:lang="de">de-mdb1SecurityIdentityRunAs-desc</description>
+ <role-name>mdb1SecurityIdentityRunAsRoleName</role-name>
+ </run-as>
+ </security-identity>
+
+ </message-driven>
+
+ <message-driven id="mdb2-id">
+
+ <description>en-mdb2-desc</description>
+ <description xml:lang="fr">fr-mdb2-desc</description>
+ <description xml:lang="de">de-mdb2-desc</description>
+ <display-name>en-mdb2-disp</display-name>
+ <display-name xml:lang="fr">fr-mdb2-disp</display-name>
+ <display-name xml:lang="de">de-mdb2-disp</display-name>
+ <icon id="en-mdb2-icon-id">
+ <small-icon>en-mdb2-small-icon</small-icon>
+ <large-icon>en-mdb2-large-icon</large-icon>
+ </icon>
+ <icon xml:lang="fr" id="fr-mdb2-icon-id">
+ <small-icon>fr-mdb2-small-icon</small-icon>
+ <large-icon>fr-mdb2-large-icon</large-icon>
+ </icon>
+ <icon xml:lang="de" id="de-mdb2-icon-id">
+ <small-icon>de-mdb2-small-icon</small-icon>
+ <large-icon>de-mdb2-large-icon</large-icon>
+ </icon>
+
+ <ejb-name>mdb2</ejb-name>
+
+ <mapped-name>mdb2-mapped-name</mapped-name>
+ <ejb-class>mdb2EjbClass</ejb-class>
+ <messaging-type>mdb2MessagingType</messaging-type>
+ <timeout-method id="mdb2TimeoutMethod-id">
+ <method-name>mdb2TimeoutMethod</method-name>
+ <method-params>
+ <method-param>mdb2TimeoutMethodParam1</method-param>
+ <method-param>mdb2TimeoutMethodParam2</method-param>
+ </method-params>
+ </timeout-method>
+ <transaction-type>Container</transaction-type>
+ <message-destination-type>mdb2MessageDestinationType</message-destination-type>
+ <message-destination-link>mdb2MessageDestinationLink</message-destination-link>
+ <activation-config id="mdb2ActivationConfig-id">
+ <activation-config-property id="mdb2ActivationConfigProperty1-id">
+ <activation-config-property-name>mdb2ActivationConfigProperty1Name</activation-config-property-name>
+ <activation-config-property-value>mdb2ActivationConfigProperty1Value</activation-config-property-value>
+ </activation-config-property>
+ <activation-config-property id="mdb2ActivationConfigProperty2-id">
+ <activation-config-property-name>mdb2ActivationConfigProperty2Name</activation-config-property-name>
+ <activation-config-property-value>mdb2ActivationConfigProperty2Value</activation-config-property-value>
+ </activation-config-property>
+ </activation-config>
+
+ <around-invoke>
+ <class>mdb2AroundInvoke1Class</class>
+ <method-name>mdb2AroundInvoke1Method</method-name>
+ </around-invoke>
+ <around-invoke>
+ <class>mdb2AroundInvoke2Class</class>
+ <method-name>mdb2AroundInvoke2Method</method-name>
+ </around-invoke>
+
+ <env-entry id="mdb2EnvEntry1-id">
+ <description>en-mdb2EnvEntry1-desc</description>
+ <description xml:lang="fr">fr-mdb2EnvEntry1-desc</description>
+ <description xml:lang="de">de-mdb2EnvEntry1-desc</description>
+ <env-entry-name>mdb2EnvEntry1Name</env-entry-name>
+ <env-entry-type>mdb2EnvEntry1Type</env-entry-type>
+ <env-entry-value>mdb2EnvEntry1Value</env-entry-value>
+ <mapped-name>mdb2EnvEntry1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>mdb2EnvEntry1Injection1Class</injection-target-class>
+ <injection-target-name>mdb2EnvEntry1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>mdb2EnvEntry1Injection2Class</injection-target-class>
+ <injection-target-name>mdb2EnvEntry1Injection2Name</injection-target-name>
+ </injection-target>
+ </env-entry>
+ <env-entry id="mdb2EnvEntry2-id">
+ <description>en-mdb2EnvEntry2-desc</description>
+ <description xml:lang="fr">fr-mdb2EnvEntry2-desc</description>
+ <description xml:lang="de">de-mdb2EnvEntry2-desc</description>
+ <env-entry-name>mdb2EnvEntry2Name</env-entry-name>
+ <env-entry-type>mdb2EnvEntry2Type</env-entry-type>
+ <env-entry-value>mdb2EnvEntry2Value</env-entry-value>
+ <mapped-name>mdb2EnvEntry2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>mdb2EnvEntry2Injection1Class</injection-target-class>
+ <injection-target-name>mdb2EnvEntry2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>mdb2EnvEntry2Injection2Class</injection-target-class>
+ <injection-target-name>mdb2EnvEntry2Injection2Name</injection-target-name>
+ </injection-target>
+ </env-entry>
+ <ejb-ref id="mdb2EjbRef1-id">
+ <description>en-mdb2EjbRef1-desc</description>
+ <description xml:lang="fr">fr-mdb2EjbRef1-desc</description>
+ <description xml:lang="de">de-mdb2EjbRef1-desc</description>
+ <ejb-ref-name>mdb2EjbRef1Name</ejb-ref-name>
+ <ejb-ref-type>Session</ejb-ref-type>
+ <home>mdb2EjbRef1Home</home>
+ <remote>mdb2EjbRef1Remote</remote>
+ <ejb-link>mdb2EjbRef1EjbLink</ejb-link>
+ <mapped-name>mdb2EjbRef1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>mdb2EjbRef1Injection1Class</injection-target-class>
+ <injection-target-name>mdb2EjbRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>mdb2EjbRef1Injection2Class</injection-target-class>
+ <injection-target-name>mdb2EjbRef1Injection2Name</injection-target-name>
+ </injection-target>
+ </ejb-ref>
+ <ejb-ref id="mdb2EjbRef2-id">
+ <description>en-mdb2EjbRef2-desc</description>
+ <description xml:lang="fr">fr-mdb2EjbRef2-desc</description>
+ <description xml:lang="de">de-mdb2EjbRef2-desc</description>
+ <ejb-ref-name>mdb2EjbRef2Name</ejb-ref-name>
+ <ejb-ref-type>Entity</ejb-ref-type>
+ <home>mdb2EjbRef2Home</home>
+ <remote>mdb2EjbRef2Remote</remote>
+ <ejb-link>mdb2EjbRef2EjbLink</ejb-link>
+ <mapped-name>mdb2EjbRef2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>mdb2EjbRef2Injection1Class</injection-target-class>
+ <injection-target-name>mdb2EjbRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>mdb2EjbRef2Injection2Class</injection-target-class>
+ <injection-target-name>mdb2EjbRef2Injection2Name</injection-target-name>
+ </injection-target>
+ </ejb-ref>
+ <ejb-local-ref id="mdb2EjbLocalRef1-id">
+ <description>en-mdb2EjbLocalRef1-desc</description>
+ <description xml:lang="fr">fr-mdb2EjbLocalRef1-desc</description>
+ <description xml:lang="de">de-mdb2EjbLocalRef1-desc</description>
+ <ejb-ref-name>mdb2EjbLocalRef1Name</ejb-ref-name>
+ <ejb-ref-type>Session</ejb-ref-type>
+ <local-home>mdb2EjbLocalRef1LocalHome</local-home>
+ <local>mdb2EjbLocalRef1Local</local>
+ <ejb-link>mdb2EjbLocalRef1EjbLink</ejb-link>
+ <mapped-name>mdb2EjbLocalRef1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>mdb2EjbLocalRef1Injection1Class</injection-target-class>
+ <injection-target-name>mdb2EjbLocalRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>mdb2EjbLocalRef1Injection2Class</injection-target-class>
+ <injection-target-name>mdb2EjbLocalRef1Injection2Name</injection-target-name>
+ </injection-target>
+ </ejb-local-ref>
+ <ejb-local-ref id="mdb2EjbLocalRef2-id">
+ <description>en-mdb2EjbLocalRef2-desc</description>
+ <description xml:lang="fr">fr-mdb2EjbLocalRef2-desc</description>
+ <description xml:lang="de">de-mdb2EjbLocalRef2-desc</description>
+ <ejb-ref-name>mdb2EjbLocalRef2Name</ejb-ref-name>
+ <ejb-ref-type>Entity</ejb-ref-type>
+ <local-home>mdb2EjbLocalRef2LocalHome</local-home>
+ <local>mdb2EjbLocalRef2Local</local>
+ <ejb-link>mdb2EjbLocalRef2EjbLink</ejb-link>
+ <mapped-name>mdb2EjbLocalRef2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>mdb2EjbLocalRef2Injection1Class</injection-target-class>
+ <injection-target-name>mdb2EjbLocalRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>mdb2EjbLocalRef2Injection2Class</injection-target-class>
+ <injection-target-name>mdb2EjbLocalRef2Injection2Name</injection-target-name>
+ </injection-target>
+ </ejb-local-ref>
+
+ <!-- TODO service-refGroup -->
+
+ <resource-ref id="mdb2ResourceRef1-id">
+ <description>en-mdb2ResourceRef1-desc</description>
+ <description xml:lang="fr">fr-mdb2ResourceRef1-desc</description>
+ <description xml:lang="de">de-mdb2ResourceRef1-desc</description>
+ <res-ref-name>mdb2ResourceRef1Name</res-ref-name>
+ <res-type>mdb2ResourceRef1Type</res-type>
+ <res-auth>Application</res-auth>
+ <res-sharing-scope>Shareable</res-sharing-scope>
+ <mapped-name>mdb2ResourceRef1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>mdb2ResourceRef1Injection1Class</injection-target-class>
+ <injection-target-name>mdb2ResourceRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>mdb2ResourceRef1Injection2Class</injection-target-class>
+ <injection-target-name>mdb2ResourceRef1Injection2Name</injection-target-name>
+ </injection-target>
+ </resource-ref>
+ <resource-ref id="mdb2ResourceRef2-id">
+ <description>en-mdb2ResourceRef2-desc</description>
+ <description xml:lang="fr">fr-mdb2ResourceRef2-desc</description>
+ <description xml:lang="de">de-mdb2ResourceRef2-desc</description>
+ <res-ref-name>mdb2ResourceRef2Name</res-ref-name>
+ <res-type>mdb2ResourceRef2Type</res-type>
+ <res-auth>Container</res-auth>
+ <res-sharing-scope>Unshareable</res-sharing-scope>
+ <mapped-name>mdb2ResourceRef2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>mdb2ResourceRef2Injection1Class</injection-target-class>
+ <injection-target-name>mdb2ResourceRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>mdb2ResourceRef2Injection2Class</injection-target-class>
+ <injection-target-name>mdb2ResourceRef2Injection2Name</injection-target-name>
+ </injection-target>
+ </resource-ref>
+ <resource-env-ref id="mdb2ResourceEnvRef1-id">
+ <description>en-mdb2ResourceEnvRef1-desc</description>
+ <description xml:lang="fr">fr-mdb2ResourceEnvRef1-desc</description>
+ <description xml:lang="de">de-mdb2ResourceEnvRef1-desc</description>
+ <resource-env-ref-name>mdb2ResourceEnvRef1Name</resource-env-ref-name>
+ <resource-env-ref-type>mdb2ResourceEnvRef1Type</resource-env-ref-type>
+ <mapped-name>mdb2ResourceEnvRef1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>mdb2ResourceEnvRef1Injection1Class</injection-target-class>
+ <injection-target-name>mdb2ResourceEnvRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>mdb2ResourceEnvRef1Injection2Class</injection-target-class>
+ <injection-target-name>mdb2ResourceEnvRef1Injection2Name</injection-target-name>
+ </injection-target>
+ </resource-env-ref>
+ <resource-env-ref id="mdb2ResourceEnvRef2-id">
+ <description>en-mdb2ResourceEnvRef2-desc</description>
+ <description xml:lang="fr">fr-mdb2ResourceEnvRef2-desc</description>
+ <description xml:lang="de">de-mdb2ResourceEnvRef2-desc</description>
+ <resource-env-ref-name>mdb2ResourceEnvRef2Name</resource-env-ref-name>
+ <resource-env-ref-type>mdb2ResourceEnvRef2Type</resource-env-ref-type>
+ <mapped-name>mdb2ResourceEnvRef2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>mdb2ResourceEnvRef2Injection1Class</injection-target-class>
+ <injection-target-name>mdb2ResourceEnvRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>mdb2ResourceEnvRef2Injection2Class</injection-target-class>
+ <injection-target-name>mdb2ResourceEnvRef2Injection2Name</injection-target-name>
+ </injection-target>
+ </resource-env-ref>
+ <message-destination-ref id="mdb2MessageDestinationRef1-id">
+ <description>en-mdb2MessageDestinationRef1-desc</description>
+ <description xml:lang="fr">fr-mdb2MessageDestinationRef1-desc</description>
+ <description xml:lang="de">de-mdb2MessageDestinationRef1-desc</description>
+ <message-destination-ref-name>mdb2MessageDestinationRef1Name</message-destination-ref-name>
+ <message-destination-type>mdb2MessageDestinationRef1Type</message-destination-type>
+ <message-destination-usage>Consumes</message-destination-usage>
+ <message-destination-link>mdb2MessageDestinationRef1Link</message-destination-link>
+ <mapped-name>mdb2MessageDestinationRef1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>mdb2MessageDestinationRef1Injection1Class</injection-target-class>
+ <injection-target-name>mdb2MessageDestinationRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>mdb2MessageDestinationRef1Injection2Class</injection-target-class>
+ <injection-target-name>mdb2MessageDestinationRef1Injection2Name</injection-target-name>
+ </injection-target>
+ </message-destination-ref>
+ <message-destination-ref id="mdb2MessageDestinationRef2-id">
+ <description>en-mdb2MessageDestinationRef2-desc</description>
+ <description xml:lang="fr">fr-mdb2MessageDestinationRef2-desc</description>
+ <description xml:lang="de">de-mdb2MessageDestinationRef2-desc</description>
+ <message-destination-ref-name>mdb2MessageDestinationRef2Name</message-destination-ref-name>
+ <message-destination-type>mdb2MessageDestinationRef2Type</message-destination-type>
+ <message-destination-usage>Produces</message-destination-usage>
+ <message-destination-link>mdb2MessageDestinationRef2Link</message-destination-link>
+ <mapped-name>mdb2MessageDestinationRef2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>mdb2MessageDestinationRef2Injection1Class</injection-target-class>
+ <injection-target-name>mdb2MessageDestinationRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>mdb2MessageDestinationRef2Injection2Class</injection-target-class>
+ <injection-target-name>mdb2MessageDestinationRef2Injection2Name</injection-target-name>
+ </injection-target>
+ </message-destination-ref>
+ <message-destination-ref id="mdb2MessageDestinationRef3-id">
+ <description>en-mdb2MessageDestinationRef3-desc</description>
+ <description xml:lang="fr">fr-mdb2MessageDestinationRef3-desc</description>
+ <description xml:lang="de">de-mdb2MessageDestinationRef3-desc</description>
+ <message-destination-ref-name>mdb2MessageDestinationRef3Name</message-destination-ref-name>
+ <message-destination-type>mdb2MessageDestinationRef3Type</message-destination-type>
+ <message-destination-usage>ConsumesProduces</message-destination-usage>
+ <message-destination-link>mdb2MessageDestinationRef3Link</message-destination-link>
+ <mapped-name>mdb2MessageDestinationRef3MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>mdb2MessageDestinationRef3Injection1Class</injection-target-class>
+ <injection-target-name>mdb2MessageDestinationRef3Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>mdb2MessageDestinationRef3Injection2Class</injection-target-class>
+ <injection-target-name>mdb2MessageDestinationRef3Injection2Name</injection-target-name>
+ </injection-target>
+ </message-destination-ref>
+ <persistence-context-ref id="mdb2PersistenceContextRef1-id">
+ <description>en-mdb2PersistenceContextRef1-desc</description>
+ <description xml:lang="fr">fr-mdb2PersistenceContextRef1-desc</description>
+ <description xml:lang="de">de-mdb2PersistenceContextRef1-desc</description>
+ <persistence-context-ref-name>mdb2PersistenceContextRef1Name</persistence-context-ref-name>
+ <persistence-unit-name>mdb2PersistenceContextRef1Unit</persistence-unit-name>
+ <persistence-context-type>Transaction</persistence-context-type>
+ <persistence-property id="mdb2PersistenceContextRef1Property1-id">
+ <name>mdb2PersistenceContextRef1Property1Name</name>
+ <value>mdb2PersistenceContextRef1Property1Value</value>
+ </persistence-property>
+ <persistence-property id="mdb2PersistenceContextRef1Property2-id">
+ <name>mdb2PersistenceContextRef1Property2Name</name>
+ <value>mdb2PersistenceContextRef1Property2Value</value>
+ </persistence-property>
+ <mapped-name>mdb2PersistenceContextRef1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>mdb2PersistenceContextRef1Injection1Class</injection-target-class>
+ <injection-target-name>mdb2PersistenceContextRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>mdb2PersistenceContextRef1Injection2Class</injection-target-class>
+ <injection-target-name>mdb2PersistenceContextRef1Injection2Name</injection-target-name>
+ </injection-target>
+ </persistence-context-ref>
+ <persistence-context-ref id="mdb2PersistenceContextRef2-id">
+ <description>en-mdb2PersistenceContextRef2-desc</description>
+ <description xml:lang="fr">fr-mdb2PersistenceContextRef2-desc</description>
+ <description xml:lang="de">de-mdb2PersistenceContextRef2-desc</description>
+ <persistence-context-ref-name>mdb2PersistenceContextRef2Name</persistence-context-ref-name>
+ <persistence-unit-name>mdb2PersistenceContextRef2Unit</persistence-unit-name>
+ <persistence-context-type>Extended</persistence-context-type>
+ <persistence-property id="mdb2PersistenceContextRef2Property1-id">
+ <name>mdb2PersistenceContextRef2Property1Name</name>
+ <value>mdb2PersistenceContextRef2Property1Value</value>
+ </persistence-property>
+ <persistence-property id="mdb2PersistenceContextRef2Property2-id">
+ <name>mdb2PersistenceContextRef2Property2Name</name>
+ <value>mdb2PersistenceContextRef2Property2Value</value>
+ </persistence-property>
+ <mapped-name>mdb2PersistenceContextRef2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>mdb2PersistenceContextRef2Injection1Class</injection-target-class>
+ <injection-target-name>mdb2PersistenceContextRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>mdb2PersistenceContextRef2Injection2Class</injection-target-class>
+ <injection-target-name>mdb2PersistenceContextRef2Injection2Name</injection-target-name>
+ </injection-target>
+ </persistence-context-ref>
+ <persistence-unit-ref id="mdb2PersistenceUnitRef1-id">
+ <description>en-mdb2PersistenceUnitRef1-desc</description>
+ <description xml:lang="fr">fr-mdb2PersistenceUnitRef1-desc</description>
+ <description xml:lang="de">de-mdb2PersistenceUnitRef1-desc</description>
+ <persistence-unit-ref-name>mdb2PersistenceUnitRef1Name</persistence-unit-ref-name>
+ <persistence-unit-name>mdb2PersistenceUnitRef1Unit</persistence-unit-name>
+ <mapped-name>mdb2PersistenceUnitRef1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>mdb2PersistenceUnitRef1Injection1Class</injection-target-class>
+ <injection-target-name>mdb2PersistenceUnitRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>mdb2PersistenceUnitRef1Injection2Class</injection-target-class>
+ <injection-target-name>mdb2PersistenceUnitRef1Injection2Name</injection-target-name>
+ </injection-target>
+ </persistence-unit-ref>
+ <persistence-unit-ref id="mdb2PersistenceUnitRef2-id">
+ <description>en-mdb2PersistenceUnitRef2-desc</description>
+ <description xml:lang="fr">fr-mdb2PersistenceUnitRef2-desc</description>
+ <description xml:lang="de">de-mdb2PersistenceUnitRef2-desc</description>
+ <persistence-unit-ref-name>mdb2PersistenceUnitRef2Name</persistence-unit-ref-name>
+ <persistence-unit-name>mdb2PersistenceUnitRef2Unit</persistence-unit-name>
+ <mapped-name>mdb2PersistenceUnitRef2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>mdb2PersistenceUnitRef2Injection1Class</injection-target-class>
+ <injection-target-name>mdb2PersistenceUnitRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>mdb2PersistenceUnitRef2Injection2Class</injection-target-class>
+ <injection-target-name>mdb2PersistenceUnitRef2Injection2Name</injection-target-name>
+ </injection-target>
+ </persistence-unit-ref>
+ <post-construct>
+ <lifecycle-callback-class>mdb2PostConstruct1Class</lifecycle-callback-class>
+ <lifecycle-callback-method>mdb2PostConstruct1Method</lifecycle-callback-method>
+ </post-construct>
+ <post-construct>
+ <lifecycle-callback-class>mdb2PostConstruct2Class</lifecycle-callback-class>
+ <lifecycle-callback-method>mdb2PostConstruct2Method</lifecycle-callback-method>
+ </post-construct>
+ <pre-destroy>
+ <lifecycle-callback-class>mdb2PreDestroy1Class</lifecycle-callback-class>
+ <lifecycle-callback-method>mdb2PreDestroy1Method</lifecycle-callback-method>
+ </pre-destroy>
+ <pre-destroy>
+ <lifecycle-callback-class>mdb2PreDestroy2Class</lifecycle-callback-class>
+ <lifecycle-callback-method>mdb2PreDestroy2Method</lifecycle-callback-method>
+ </pre-destroy>
+
+ <security-identity id="mdb2SecurityIdentity-id">
+ <description>en-mdb2SecurityIdentity-desc</description>
+ <description xml:lang="fr">fr-mdb2SecurityIdentity-desc</description>
+ <description xml:lang="de">de-mdb2SecurityIdentity-desc</description>
+ <use-caller-identity id="mdb2SecurityIdentityUseCallerIdentity-id"/>
+ <run-as id="mdb2SecurityIdentityRunAs-id">
+ <description>en-mdb2SecurityIdentityRunAs-desc</description>
+ <description xml:lang="fr">fr-mdb2SecurityIdentityRunAs-desc</description>
+ <description xml:lang="de">de-mdb2SecurityIdentityRunAs-desc</description>
+ <role-name>mdb2SecurityIdentityRunAsRoleName</role-name>
+ </run-as>
+ </security-identity>
+
+ </message-driven>
+
+ </enterprise-beans>
+
+ <interceptors id="interceptors-id">
+ <description>en-interceptors-desc</description>
+ <description xml:lang="fr">fr-interceptors-desc</description>
+ <description xml:lang="de">de-interceptors-desc</description>
+ <interceptor id="interceptor1-id">
+ <description>en-interceptor1-desc</description>
+ <description xml:lang="fr">fr-interceptor1-desc</description>
+ <description xml:lang="de">de-interceptor1-desc</description>
+ <interceptor-class>interceptor1Class</interceptor-class>
+ <around-invoke>
+ <class>interceptor1AroundInvoke1Class</class>
+ <method-name>interceptor1AroundInvoke1Method</method-name>
+ </around-invoke>
+ <around-invoke>
+ <class>interceptor1AroundInvoke2Class</class>
+ <method-name>interceptor1AroundInvoke2Method</method-name>
+ </around-invoke>
+
+ <env-entry id="interceptor1EnvEntry1-id">
+ <description>en-interceptor1EnvEntry1-desc</description>
+ <description xml:lang="fr">fr-interceptor1EnvEntry1-desc</description>
+ <description xml:lang="de">de-interceptor1EnvEntry1-desc</description>
+ <env-entry-name>interceptor1EnvEntry1Name</env-entry-name>
+ <env-entry-type>interceptor1EnvEntry1Type</env-entry-type>
+ <env-entry-value>interceptor1EnvEntry1Value</env-entry-value>
+ <mapped-name>interceptor1EnvEntry1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>interceptor1EnvEntry1Injection1Class</injection-target-class>
+ <injection-target-name>interceptor1EnvEntry1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>interceptor1EnvEntry1Injection2Class</injection-target-class>
+ <injection-target-name>interceptor1EnvEntry1Injection2Name</injection-target-name>
+ </injection-target>
+ </env-entry>
+ <env-entry id="interceptor1EnvEntry2-id">
+ <description>en-interceptor1EnvEntry2-desc</description>
+ <description xml:lang="fr">fr-interceptor1EnvEntry2-desc</description>
+ <description xml:lang="de">de-interceptor1EnvEntry2-desc</description>
+ <env-entry-name>interceptor1EnvEntry2Name</env-entry-name>
+ <env-entry-type>interceptor1EnvEntry2Type</env-entry-type>
+ <env-entry-value>interceptor1EnvEntry2Value</env-entry-value>
+ <mapped-name>interceptor1EnvEntry2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>interceptor1EnvEntry2Injection1Class</injection-target-class>
+ <injection-target-name>interceptor1EnvEntry2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>interceptor1EnvEntry2Injection2Class</injection-target-class>
+ <injection-target-name>interceptor1EnvEntry2Injection2Name</injection-target-name>
+ </injection-target>
+ </env-entry>
+ <ejb-ref id="interceptor1EjbRef1-id">
+ <description>en-interceptor1EjbRef1-desc</description>
+ <description xml:lang="fr">fr-interceptor1EjbRef1-desc</description>
+ <description xml:lang="de">de-interceptor1EjbRef1-desc</description>
+ <ejb-ref-name>interceptor1EjbRef1Name</ejb-ref-name>
+ <ejb-ref-type>Session</ejb-ref-type>
+ <home>interceptor1EjbRef1Home</home>
+ <remote>interceptor1EjbRef1Remote</remote>
+ <ejb-link>interceptor1EjbRef1EjbLink</ejb-link>
+ <mapped-name>interceptor1EjbRef1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>interceptor1EjbRef1Injection1Class</injection-target-class>
+ <injection-target-name>interceptor1EjbRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>interceptor1EjbRef1Injection2Class</injection-target-class>
+ <injection-target-name>interceptor1EjbRef1Injection2Name</injection-target-name>
+ </injection-target>
+ </ejb-ref>
+ <ejb-ref id="interceptor1EjbRef2-id">
+ <description>en-interceptor1EjbRef2-desc</description>
+ <description xml:lang="fr">fr-interceptor1EjbRef2-desc</description>
+ <description xml:lang="de">de-interceptor1EjbRef2-desc</description>
+ <ejb-ref-name>interceptor1EjbRef2Name</ejb-ref-name>
+ <ejb-ref-type>Entity</ejb-ref-type>
+ <home>interceptor1EjbRef2Home</home>
+ <remote>interceptor1EjbRef2Remote</remote>
+ <ejb-link>interceptor1EjbRef2EjbLink</ejb-link>
+ <mapped-name>interceptor1EjbRef2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>interceptor1EjbRef2Injection1Class</injection-target-class>
+ <injection-target-name>interceptor1EjbRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>interceptor1EjbRef2Injection2Class</injection-target-class>
+ <injection-target-name>interceptor1EjbRef2Injection2Name</injection-target-name>
+ </injection-target>
+ </ejb-ref>
+ <ejb-local-ref id="interceptor1EjbLocalRef1-id">
+ <description>en-interceptor1EjbLocalRef1-desc</description>
+ <description xml:lang="fr">fr-interceptor1EjbLocalRef1-desc</description>
+ <description xml:lang="de">de-interceptor1EjbLocalRef1-desc</description>
+ <ejb-ref-name>interceptor1EjbLocalRef1Name</ejb-ref-name>
+ <ejb-ref-type>Session</ejb-ref-type>
+ <local-home>interceptor1EjbLocalRef1LocalHome</local-home>
+ <local>interceptor1EjbLocalRef1Local</local>
+ <ejb-link>interceptor1EjbLocalRef1EjbLink</ejb-link>
+ <mapped-name>interceptor1EjbLocalRef1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>interceptor1EjbLocalRef1Injection1Class</injection-target-class>
+ <injection-target-name>interceptor1EjbLocalRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>interceptor1EjbLocalRef1Injection2Class</injection-target-class>
+ <injection-target-name>interceptor1EjbLocalRef1Injection2Name</injection-target-name>
+ </injection-target>
+ </ejb-local-ref>
+ <ejb-local-ref id="interceptor1EjbLocalRef2-id">
+ <description>en-interceptor1EjbLocalRef2-desc</description>
+ <description xml:lang="fr">fr-interceptor1EjbLocalRef2-desc</description>
+ <description xml:lang="de">de-interceptor1EjbLocalRef2-desc</description>
+ <ejb-ref-name>interceptor1EjbLocalRef2Name</ejb-ref-name>
+ <ejb-ref-type>Entity</ejb-ref-type>
+ <local-home>interceptor1EjbLocalRef2LocalHome</local-home>
+ <local>interceptor1EjbLocalRef2Local</local>
+ <ejb-link>interceptor1EjbLocalRef2EjbLink</ejb-link>
+ <mapped-name>interceptor1EjbLocalRef2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>interceptor1EjbLocalRef2Injection1Class</injection-target-class>
+ <injection-target-name>interceptor1EjbLocalRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>interceptor1EjbLocalRef2Injection2Class</injection-target-class>
+ <injection-target-name>interceptor1EjbLocalRef2Injection2Name</injection-target-name>
+ </injection-target>
+ </ejb-local-ref>
+
+ <!-- TODO service-refGroup -->
+
+ <resource-ref id="interceptor1ResourceRef1-id">
+ <description>en-interceptor1ResourceRef1-desc</description>
+ <description xml:lang="fr">fr-interceptor1ResourceRef1-desc</description>
+ <description xml:lang="de">de-interceptor1ResourceRef1-desc</description>
+ <res-ref-name>interceptor1ResourceRef1Name</res-ref-name>
+ <res-type>interceptor1ResourceRef1Type</res-type>
+ <res-auth>Application</res-auth>
+ <res-sharing-scope>Shareable</res-sharing-scope>
+ <mapped-name>interceptor1ResourceRef1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>interceptor1ResourceRef1Injection1Class</injection-target-class>
+ <injection-target-name>interceptor1ResourceRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>interceptor1ResourceRef1Injection2Class</injection-target-class>
+ <injection-target-name>interceptor1ResourceRef1Injection2Name</injection-target-name>
+ </injection-target>
+ </resource-ref>
+ <resource-ref id="interceptor1ResourceRef2-id">
+ <description>en-interceptor1ResourceRef2-desc</description>
+ <description xml:lang="fr">fr-interceptor1ResourceRef2-desc</description>
+ <description xml:lang="de">de-interceptor1ResourceRef2-desc</description>
+ <res-ref-name>interceptor1ResourceRef2Name</res-ref-name>
+ <res-type>interceptor1ResourceRef2Type</res-type>
+ <res-auth>Container</res-auth>
+ <res-sharing-scope>Unshareable</res-sharing-scope>
+ <mapped-name>interceptor1ResourceRef2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>interceptor1ResourceRef2Injection1Class</injection-target-class>
+ <injection-target-name>interceptor1ResourceRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>interceptor1ResourceRef2Injection2Class</injection-target-class>
+ <injection-target-name>interceptor1ResourceRef2Injection2Name</injection-target-name>
+ </injection-target>
+ </resource-ref>
+ <resource-env-ref id="interceptor1ResourceEnvRef1-id">
+ <description>en-interceptor1ResourceEnvRef1-desc</description>
+ <description xml:lang="fr">fr-interceptor1ResourceEnvRef1-desc</description>
+ <description xml:lang="de">de-interceptor1ResourceEnvRef1-desc</description>
+ <resource-env-ref-name>interceptor1ResourceEnvRef1Name</resource-env-ref-name>
+ <resource-env-ref-type>interceptor1ResourceEnvRef1Type</resource-env-ref-type>
+ <mapped-name>interceptor1ResourceEnvRef1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>interceptor1ResourceEnvRef1Injection1Class</injection-target-class>
+ <injection-target-name>interceptor1ResourceEnvRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>interceptor1ResourceEnvRef1Injection2Class</injection-target-class>
+ <injection-target-name>interceptor1ResourceEnvRef1Injection2Name</injection-target-name>
+ </injection-target>
+ </resource-env-ref>
+ <resource-env-ref id="interceptor1ResourceEnvRef2-id">
+ <description>en-interceptor1ResourceEnvRef2-desc</description>
+ <description xml:lang="fr">fr-interceptor1ResourceEnvRef2-desc</description>
+ <description xml:lang="de">de-interceptor1ResourceEnvRef2-desc</description>
+ <resource-env-ref-name>interceptor1ResourceEnvRef2Name</resource-env-ref-name>
+ <resource-env-ref-type>interceptor1ResourceEnvRef2Type</resource-env-ref-type>
+ <mapped-name>interceptor1ResourceEnvRef2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>interceptor1ResourceEnvRef2Injection1Class</injection-target-class>
+ <injection-target-name>interceptor1ResourceEnvRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>interceptor1ResourceEnvRef2Injection2Class</injection-target-class>
+ <injection-target-name>interceptor1ResourceEnvRef2Injection2Name</injection-target-name>
+ </injection-target>
+ </resource-env-ref>
+ <message-destination-ref id="interceptor1MessageDestinationRef1-id">
+ <description>en-interceptor1MessageDestinationRef1-desc</description>
+ <description xml:lang="fr">fr-interceptor1MessageDestinationRef1-desc</description>
+ <description xml:lang="de">de-interceptor1MessageDestinationRef1-desc</description>
+ <message-destination-ref-name>interceptor1MessageDestinationRef1Name</message-destination-ref-name>
+ <message-destination-type>interceptor1MessageDestinationRef1Type</message-destination-type>
+ <message-destination-usage>Consumes</message-destination-usage>
+ <message-destination-link>interceptor1MessageDestinationRef1Link</message-destination-link>
+ <mapped-name>interceptor1MessageDestinationRef1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>interceptor1MessageDestinationRef1Injection1Class</injection-target-class>
+ <injection-target-name>interceptor1MessageDestinationRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>interceptor1MessageDestinationRef1Injection2Class</injection-target-class>
+ <injection-target-name>interceptor1MessageDestinationRef1Injection2Name</injection-target-name>
+ </injection-target>
+ </message-destination-ref>
+ <message-destination-ref id="interceptor1MessageDestinationRef2-id">
+ <description>en-interceptor1MessageDestinationRef2-desc</description>
+ <description xml:lang="fr">fr-interceptor1MessageDestinationRef2-desc</description>
+ <description xml:lang="de">de-interceptor1MessageDestinationRef2-desc</description>
+ <message-destination-ref-name>interceptor1MessageDestinationRef2Name</message-destination-ref-name>
+ <message-destination-type>interceptor1MessageDestinationRef2Type</message-destination-type>
+ <message-destination-usage>Produces</message-destination-usage>
+ <message-destination-link>interceptor1MessageDestinationRef2Link</message-destination-link>
+ <mapped-name>interceptor1MessageDestinationRef2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>interceptor1MessageDestinationRef2Injection1Class</injection-target-class>
+ <injection-target-name>interceptor1MessageDestinationRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>interceptor1MessageDestinationRef2Injection2Class</injection-target-class>
+ <injection-target-name>interceptor1MessageDestinationRef2Injection2Name</injection-target-name>
+ </injection-target>
+ </message-destination-ref>
+ <message-destination-ref id="interceptor1MessageDestinationRef3-id">
+ <description>en-interceptor1MessageDestinationRef3-desc</description>
+ <description xml:lang="fr">fr-interceptor1MessageDestinationRef3-desc</description>
+ <description xml:lang="de">de-interceptor1MessageDestinationRef3-desc</description>
+ <message-destination-ref-name>interceptor1MessageDestinationRef3Name</message-destination-ref-name>
+ <message-destination-type>interceptor1MessageDestinationRef3Type</message-destination-type>
+ <message-destination-usage>ConsumesProduces</message-destination-usage>
+ <message-destination-link>interceptor1MessageDestinationRef3Link</message-destination-link>
+ <mapped-name>interceptor1MessageDestinationRef3MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>interceptor1MessageDestinationRef3Injection1Class</injection-target-class>
+ <injection-target-name>interceptor1MessageDestinationRef3Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>interceptor1MessageDestinationRef3Injection2Class</injection-target-class>
+ <injection-target-name>interceptor1MessageDestinationRef3Injection2Name</injection-target-name>
+ </injection-target>
+ </message-destination-ref>
+ <persistence-context-ref id="interceptor1PersistenceContextRef1-id">
+ <description>en-interceptor1PersistenceContextRef1-desc</description>
+ <description xml:lang="fr">fr-interceptor1PersistenceContextRef1-desc</description>
+ <description xml:lang="de">de-interceptor1PersistenceContextRef1-desc</description>
+ <persistence-context-ref-name>interceptor1PersistenceContextRef1Name</persistence-context-ref-name>
+ <persistence-unit-name>interceptor1PersistenceContextRef1Unit</persistence-unit-name>
+ <persistence-context-type>Transaction</persistence-context-type>
+ <persistence-property id="interceptor1PersistenceContextRef1Property1-id">
+ <name>interceptor1PersistenceContextRef1Property1Name</name>
+ <value>interceptor1PersistenceContextRef1Property1Value</value>
+ </persistence-property>
+ <persistence-property id="interceptor1PersistenceContextRef1Property2-id">
+ <name>interceptor1PersistenceContextRef1Property2Name</name>
+ <value>interceptor1PersistenceContextRef1Property2Value</value>
+ </persistence-property>
+ <mapped-name>interceptor1PersistenceContextRef1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>interceptor1PersistenceContextRef1Injection1Class</injection-target-class>
+ <injection-target-name>interceptor1PersistenceContextRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>interceptor1PersistenceContextRef1Injection2Class</injection-target-class>
+ <injection-target-name>interceptor1PersistenceContextRef1Injection2Name</injection-target-name>
+ </injection-target>
+ </persistence-context-ref>
+ <persistence-context-ref id="interceptor1PersistenceContextRef2-id">
+ <description>en-interceptor1PersistenceContextRef2-desc</description>
+ <description xml:lang="fr">fr-interceptor1PersistenceContextRef2-desc</description>
+ <description xml:lang="de">de-interceptor1PersistenceContextRef2-desc</description>
+ <persistence-context-ref-name>interceptor1PersistenceContextRef2Name</persistence-context-ref-name>
+ <persistence-unit-name>interceptor1PersistenceContextRef2Unit</persistence-unit-name>
+ <persistence-context-type>Extended</persistence-context-type>
+ <persistence-property id="interceptor1PersistenceContextRef2Property1-id">
+ <name>interceptor1PersistenceContextRef2Property1Name</name>
+ <value>interceptor1PersistenceContextRef2Property1Value</value>
+ </persistence-property>
+ <persistence-property id="interceptor1PersistenceContextRef2Property2-id">
+ <name>interceptor1PersistenceContextRef2Property2Name</name>
+ <value>interceptor1PersistenceContextRef2Property2Value</value>
+ </persistence-property>
+ <mapped-name>interceptor1PersistenceContextRef2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>interceptor1PersistenceContextRef2Injection1Class</injection-target-class>
+ <injection-target-name>interceptor1PersistenceContextRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>interceptor1PersistenceContextRef2Injection2Class</injection-target-class>
+ <injection-target-name>interceptor1PersistenceContextRef2Injection2Name</injection-target-name>
+ </injection-target>
+ </persistence-context-ref>
+ <persistence-unit-ref id="interceptor1PersistenceUnitRef1-id">
+ <description>en-interceptor1PersistenceUnitRef1-desc</description>
+ <description xml:lang="fr">fr-interceptor1PersistenceUnitRef1-desc</description>
+ <description xml:lang="de">de-interceptor1PersistenceUnitRef1-desc</description>
+ <persistence-unit-ref-name>interceptor1PersistenceUnitRef1Name</persistence-unit-ref-name>
+ <persistence-unit-name>interceptor1PersistenceUnitRef1Unit</persistence-unit-name>
+ <mapped-name>interceptor1PersistenceUnitRef1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>interceptor1PersistenceUnitRef1Injection1Class</injection-target-class>
+ <injection-target-name>interceptor1PersistenceUnitRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>interceptor1PersistenceUnitRef1Injection2Class</injection-target-class>
+ <injection-target-name>interceptor1PersistenceUnitRef1Injection2Name</injection-target-name>
+ </injection-target>
+ </persistence-unit-ref>
+ <persistence-unit-ref id="interceptor1PersistenceUnitRef2-id">
+ <description>en-interceptor1PersistenceUnitRef2-desc</description>
+ <description xml:lang="fr">fr-interceptor1PersistenceUnitRef2-desc</description>
+ <description xml:lang="de">de-interceptor1PersistenceUnitRef2-desc</description>
+ <persistence-unit-ref-name>interceptor1PersistenceUnitRef2Name</persistence-unit-ref-name>
+ <persistence-unit-name>interceptor1PersistenceUnitRef2Unit</persistence-unit-name>
+ <mapped-name>interceptor1PersistenceUnitRef2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>interceptor1PersistenceUnitRef2Injection1Class</injection-target-class>
+ <injection-target-name>interceptor1PersistenceUnitRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>interceptor1PersistenceUnitRef2Injection2Class</injection-target-class>
+ <injection-target-name>interceptor1PersistenceUnitRef2Injection2Name</injection-target-name>
+ </injection-target>
+ </persistence-unit-ref>
+ <post-construct>
+ <lifecycle-callback-class>interceptor1PostConstruct1Class</lifecycle-callback-class>
+ <lifecycle-callback-method>interceptor1PostConstruct1Method</lifecycle-callback-method>
+ </post-construct>
+ <post-construct>
+ <lifecycle-callback-class>interceptor1PostConstruct2Class</lifecycle-callback-class>
+ <lifecycle-callback-method>interceptor1PostConstruct2Method</lifecycle-callback-method>
+ </post-construct>
+ <pre-destroy>
+ <lifecycle-callback-class>interceptor1PreDestroy1Class</lifecycle-callback-class>
+ <lifecycle-callback-method>interceptor1PreDestroy1Method</lifecycle-callback-method>
+ </pre-destroy>
+ <pre-destroy>
+ <lifecycle-callback-class>interceptor1PreDestroy2Class</lifecycle-callback-class>
+ <lifecycle-callback-method>interceptor1PreDestroy2Method</lifecycle-callback-method>
+ </pre-destroy>
+
+ <post-activate>
+ <lifecycle-callback-class>interceptor1PostActivate1Class</lifecycle-callback-class>
+ <lifecycle-callback-method>interceptor1PostActivate1Method</lifecycle-callback-method>
+ </post-activate>
+ <post-activate>
+ <lifecycle-callback-class>interceptor1PostActivate2Class</lifecycle-callback-class>
+ <lifecycle-callback-method>interceptor1PostActivate2Method</lifecycle-callback-method>
+ </post-activate>
+ <pre-passivate>
+ <lifecycle-callback-class>interceptor1PrePassivate1Class</lifecycle-callback-class>
+ <lifecycle-callback-method>interceptor1PrePassivate1Method</lifecycle-callback-method>
+ </pre-passivate>
+ <pre-passivate>
+ <lifecycle-callback-class>interceptor1PrePassivate2Class</lifecycle-callback-class>
+ <lifecycle-callback-method>interceptor1PrePassivate2Method</lifecycle-callback-method>
+ </pre-passivate>
+ </interceptor>
+ <interceptor id="interceptor2-id">
+ <description>en-interceptor2-desc</description>
+ <description xml:lang="fr">fr-interceptor2-desc</description>
+ <description xml:lang="de">de-interceptor2-desc</description>
+ <interceptor-class>interceptor2Class</interceptor-class>
+ <around-invoke>
+ <class>interceptor2AroundInvoke1Class</class>
+ <method-name>interceptor2AroundInvoke1Method</method-name>
+ </around-invoke>
+ <around-invoke>
+ <class>interceptor2AroundInvoke2Class</class>
+ <method-name>interceptor2AroundInvoke2Method</method-name>
+ </around-invoke>
+
+ <env-entry id="interceptor2EnvEntry1-id">
+ <description>en-interceptor2EnvEntry1-desc</description>
+ <description xml:lang="fr">fr-interceptor2EnvEntry1-desc</description>
+ <description xml:lang="de">de-interceptor2EnvEntry1-desc</description>
+ <env-entry-name>interceptor2EnvEntry1Name</env-entry-name>
+ <env-entry-type>interceptor2EnvEntry1Type</env-entry-type>
+ <env-entry-value>interceptor2EnvEntry1Value</env-entry-value>
+ <mapped-name>interceptor2EnvEntry1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>interceptor2EnvEntry1Injection1Class</injection-target-class>
+ <injection-target-name>interceptor2EnvEntry1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>interceptor2EnvEntry1Injection2Class</injection-target-class>
+ <injection-target-name>interceptor2EnvEntry1Injection2Name</injection-target-name>
+ </injection-target>
+ </env-entry>
+ <env-entry id="interceptor2EnvEntry2-id">
+ <description>en-interceptor2EnvEntry2-desc</description>
+ <description xml:lang="fr">fr-interceptor2EnvEntry2-desc</description>
+ <description xml:lang="de">de-interceptor2EnvEntry2-desc</description>
+ <env-entry-name>interceptor2EnvEntry2Name</env-entry-name>
+ <env-entry-type>interceptor2EnvEntry2Type</env-entry-type>
+ <env-entry-value>interceptor2EnvEntry2Value</env-entry-value>
+ <mapped-name>interceptor2EnvEntry2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>interceptor2EnvEntry2Injection1Class</injection-target-class>
+ <injection-target-name>interceptor2EnvEntry2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>interceptor2EnvEntry2Injection2Class</injection-target-class>
+ <injection-target-name>interceptor2EnvEntry2Injection2Name</injection-target-name>
+ </injection-target>
+ </env-entry>
+ <ejb-ref id="interceptor2EjbRef1-id">
+ <description>en-interceptor2EjbRef1-desc</description>
+ <description xml:lang="fr">fr-interceptor2EjbRef1-desc</description>
+ <description xml:lang="de">de-interceptor2EjbRef1-desc</description>
+ <ejb-ref-name>interceptor2EjbRef1Name</ejb-ref-name>
+ <ejb-ref-type>Session</ejb-ref-type>
+ <home>interceptor2EjbRef1Home</home>
+ <remote>interceptor2EjbRef1Remote</remote>
+ <ejb-link>interceptor2EjbRef1EjbLink</ejb-link>
+ <mapped-name>interceptor2EjbRef1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>interceptor2EjbRef1Injection1Class</injection-target-class>
+ <injection-target-name>interceptor2EjbRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>interceptor2EjbRef1Injection2Class</injection-target-class>
+ <injection-target-name>interceptor2EjbRef1Injection2Name</injection-target-name>
+ </injection-target>
+ </ejb-ref>
+ <ejb-ref id="interceptor2EjbRef2-id">
+ <description>en-interceptor2EjbRef2-desc</description>
+ <description xml:lang="fr">fr-interceptor2EjbRef2-desc</description>
+ <description xml:lang="de">de-interceptor2EjbRef2-desc</description>
+ <ejb-ref-name>interceptor2EjbRef2Name</ejb-ref-name>
+ <ejb-ref-type>Entity</ejb-ref-type>
+ <home>interceptor2EjbRef2Home</home>
+ <remote>interceptor2EjbRef2Remote</remote>
+ <ejb-link>interceptor2EjbRef2EjbLink</ejb-link>
+ <mapped-name>interceptor2EjbRef2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>interceptor2EjbRef2Injection1Class</injection-target-class>
+ <injection-target-name>interceptor2EjbRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>interceptor2EjbRef2Injection2Class</injection-target-class>
+ <injection-target-name>interceptor2EjbRef2Injection2Name</injection-target-name>
+ </injection-target>
+ </ejb-ref>
+ <ejb-local-ref id="interceptor2EjbLocalRef1-id">
+ <description>en-interceptor2EjbLocalRef1-desc</description>
+ <description xml:lang="fr">fr-interceptor2EjbLocalRef1-desc</description>
+ <description xml:lang="de">de-interceptor2EjbLocalRef1-desc</description>
+ <ejb-ref-name>interceptor2EjbLocalRef1Name</ejb-ref-name>
+ <ejb-ref-type>Session</ejb-ref-type>
+ <local-home>interceptor2EjbLocalRef1LocalHome</local-home>
+ <local>interceptor2EjbLocalRef1Local</local>
+ <ejb-link>interceptor2EjbLocalRef1EjbLink</ejb-link>
+ <mapped-name>interceptor2EjbLocalRef1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>interceptor2EjbLocalRef1Injection1Class</injection-target-class>
+ <injection-target-name>interceptor2EjbLocalRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>interceptor2EjbLocalRef1Injection2Class</injection-target-class>
+ <injection-target-name>interceptor2EjbLocalRef1Injection2Name</injection-target-name>
+ </injection-target>
+ </ejb-local-ref>
+ <ejb-local-ref id="interceptor2EjbLocalRef2-id">
+ <description>en-interceptor2EjbLocalRef2-desc</description>
+ <description xml:lang="fr">fr-interceptor2EjbLocalRef2-desc</description>
+ <description xml:lang="de">de-interceptor2EjbLocalRef2-desc</description>
+ <ejb-ref-name>interceptor2EjbLocalRef2Name</ejb-ref-name>
+ <ejb-ref-type>Entity</ejb-ref-type>
+ <local-home>interceptor2EjbLocalRef2LocalHome</local-home>
+ <local>interceptor2EjbLocalRef2Local</local>
+ <ejb-link>interceptor2EjbLocalRef2EjbLink</ejb-link>
+ <mapped-name>interceptor2EjbLocalRef2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>interceptor2EjbLocalRef2Injection1Class</injection-target-class>
+ <injection-target-name>interceptor2EjbLocalRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>interceptor2EjbLocalRef2Injection2Class</injection-target-class>
+ <injection-target-name>interceptor2EjbLocalRef2Injection2Name</injection-target-name>
+ </injection-target>
+ </ejb-local-ref>
+
+ <!-- TODO service-refGroup -->
+
+ <resource-ref id="interceptor2ResourceRef1-id">
+ <description>en-interceptor2ResourceRef1-desc</description>
+ <description xml:lang="fr">fr-interceptor2ResourceRef1-desc</description>
+ <description xml:lang="de">de-interceptor2ResourceRef1-desc</description>
+ <res-ref-name>interceptor2ResourceRef1Name</res-ref-name>
+ <res-type>interceptor2ResourceRef1Type</res-type>
+ <res-auth>Application</res-auth>
+ <res-sharing-scope>Shareable</res-sharing-scope>
+ <mapped-name>interceptor2ResourceRef1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>interceptor2ResourceRef1Injection1Class</injection-target-class>
+ <injection-target-name>interceptor2ResourceRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>interceptor2ResourceRef1Injection2Class</injection-target-class>
+ <injection-target-name>interceptor2ResourceRef1Injection2Name</injection-target-name>
+ </injection-target>
+ </resource-ref>
+ <resource-ref id="interceptor2ResourceRef2-id">
+ <description>en-interceptor2ResourceRef2-desc</description>
+ <description xml:lang="fr">fr-interceptor2ResourceRef2-desc</description>
+ <description xml:lang="de">de-interceptor2ResourceRef2-desc</description>
+ <res-ref-name>interceptor2ResourceRef2Name</res-ref-name>
+ <res-type>interceptor2ResourceRef2Type</res-type>
+ <res-auth>Container</res-auth>
+ <res-sharing-scope>Unshareable</res-sharing-scope>
+ <mapped-name>interceptor2ResourceRef2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>interceptor2ResourceRef2Injection1Class</injection-target-class>
+ <injection-target-name>interceptor2ResourceRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>interceptor2ResourceRef2Injection2Class</injection-target-class>
+ <injection-target-name>interceptor2ResourceRef2Injection2Name</injection-target-name>
+ </injection-target>
+ </resource-ref>
+ <resource-env-ref id="interceptor2ResourceEnvRef1-id">
+ <description>en-interceptor2ResourceEnvRef1-desc</description>
+ <description xml:lang="fr">fr-interceptor2ResourceEnvRef1-desc</description>
+ <description xml:lang="de">de-interceptor2ResourceEnvRef1-desc</description>
+ <resource-env-ref-name>interceptor2ResourceEnvRef1Name</resource-env-ref-name>
+ <resource-env-ref-type>interceptor2ResourceEnvRef1Type</resource-env-ref-type>
+ <mapped-name>interceptor2ResourceEnvRef1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>interceptor2ResourceEnvRef1Injection1Class</injection-target-class>
+ <injection-target-name>interceptor2ResourceEnvRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>interceptor2ResourceEnvRef1Injection2Class</injection-target-class>
+ <injection-target-name>interceptor2ResourceEnvRef1Injection2Name</injection-target-name>
+ </injection-target>
+ </resource-env-ref>
+ <resource-env-ref id="interceptor2ResourceEnvRef2-id">
+ <description>en-interceptor2ResourceEnvRef2-desc</description>
+ <description xml:lang="fr">fr-interceptor2ResourceEnvRef2-desc</description>
+ <description xml:lang="de">de-interceptor2ResourceEnvRef2-desc</description>
+ <resource-env-ref-name>interceptor2ResourceEnvRef2Name</resource-env-ref-name>
+ <resource-env-ref-type>interceptor2ResourceEnvRef2Type</resource-env-ref-type>
+ <mapped-name>interceptor2ResourceEnvRef2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>interceptor2ResourceEnvRef2Injection1Class</injection-target-class>
+ <injection-target-name>interceptor2ResourceEnvRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>interceptor2ResourceEnvRef2Injection2Class</injection-target-class>
+ <injection-target-name>interceptor2ResourceEnvRef2Injection2Name</injection-target-name>
+ </injection-target>
+ </resource-env-ref>
+ <message-destination-ref id="interceptor2MessageDestinationRef1-id">
+ <description>en-interceptor2MessageDestinationRef1-desc</description>
+ <description xml:lang="fr">fr-interceptor2MessageDestinationRef1-desc</description>
+ <description xml:lang="de">de-interceptor2MessageDestinationRef1-desc</description>
+ <message-destination-ref-name>interceptor2MessageDestinationRef1Name</message-destination-ref-name>
+ <message-destination-type>interceptor2MessageDestinationRef1Type</message-destination-type>
+ <message-destination-usage>Consumes</message-destination-usage>
+ <message-destination-link>interceptor2MessageDestinationRef1Link</message-destination-link>
+ <mapped-name>interceptor2MessageDestinationRef1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>interceptor2MessageDestinationRef1Injection1Class</injection-target-class>
+ <injection-target-name>interceptor2MessageDestinationRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>interceptor2MessageDestinationRef1Injection2Class</injection-target-class>
+ <injection-target-name>interceptor2MessageDestinationRef1Injection2Name</injection-target-name>
+ </injection-target>
+ </message-destination-ref>
+ <message-destination-ref id="interceptor2MessageDestinationRef2-id">
+ <description>en-interceptor2MessageDestinationRef2-desc</description>
+ <description xml:lang="fr">fr-interceptor2MessageDestinationRef2-desc</description>
+ <description xml:lang="de">de-interceptor2MessageDestinationRef2-desc</description>
+ <message-destination-ref-name>interceptor2MessageDestinationRef2Name</message-destination-ref-name>
+ <message-destination-type>interceptor2MessageDestinationRef2Type</message-destination-type>
+ <message-destination-usage>Produces</message-destination-usage>
+ <message-destination-link>interceptor2MessageDestinationRef2Link</message-destination-link>
+ <mapped-name>interceptor2MessageDestinationRef2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>interceptor2MessageDestinationRef2Injection1Class</injection-target-class>
+ <injection-target-name>interceptor2MessageDestinationRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>interceptor2MessageDestinationRef2Injection2Class</injection-target-class>
+ <injection-target-name>interceptor2MessageDestinationRef2Injection2Name</injection-target-name>
+ </injection-target>
+ </message-destination-ref>
+ <message-destination-ref id="interceptor2MessageDestinationRef3-id">
+ <description>en-interceptor2MessageDestinationRef3-desc</description>
+ <description xml:lang="fr">fr-interceptor2MessageDestinationRef3-desc</description>
+ <description xml:lang="de">de-interceptor2MessageDestinationRef3-desc</description>
+ <message-destination-ref-name>interceptor2MessageDestinationRef3Name</message-destination-ref-name>
+ <message-destination-type>interceptor2MessageDestinationRef3Type</message-destination-type>
+ <message-destination-usage>ConsumesProduces</message-destination-usage>
+ <message-destination-link>interceptor2MessageDestinationRef3Link</message-destination-link>
+ <mapped-name>interceptor2MessageDestinationRef3MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>interceptor2MessageDestinationRef3Injection1Class</injection-target-class>
+ <injection-target-name>interceptor2MessageDestinationRef3Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>interceptor2MessageDestinationRef3Injection2Class</injection-target-class>
+ <injection-target-name>interceptor2MessageDestinationRef3Injection2Name</injection-target-name>
+ </injection-target>
+ </message-destination-ref>
+ <persistence-context-ref id="interceptor2PersistenceContextRef1-id">
+ <description>en-interceptor2PersistenceContextRef1-desc</description>
+ <description xml:lang="fr">fr-interceptor2PersistenceContextRef1-desc</description>
+ <description xml:lang="de">de-interceptor2PersistenceContextRef1-desc</description>
+ <persistence-context-ref-name>interceptor2PersistenceContextRef1Name</persistence-context-ref-name>
+ <persistence-unit-name>interceptor2PersistenceContextRef1Unit</persistence-unit-name>
+ <persistence-context-type>Transaction</persistence-context-type>
+ <persistence-property id="interceptor2PersistenceContextRef1Property1-id">
+ <name>interceptor2PersistenceContextRef1Property1Name</name>
+ <value>interceptor2PersistenceContextRef1Property1Value</value>
+ </persistence-property>
+ <persistence-property id="interceptor2PersistenceContextRef1Property2-id">
+ <name>interceptor2PersistenceContextRef1Property2Name</name>
+ <value>interceptor2PersistenceContextRef1Property2Value</value>
+ </persistence-property>
+ <mapped-name>interceptor2PersistenceContextRef1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>interceptor2PersistenceContextRef1Injection1Class</injection-target-class>
+ <injection-target-name>interceptor2PersistenceContextRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>interceptor2PersistenceContextRef1Injection2Class</injection-target-class>
+ <injection-target-name>interceptor2PersistenceContextRef1Injection2Name</injection-target-name>
+ </injection-target>
+ </persistence-context-ref>
+ <persistence-context-ref id="interceptor2PersistenceContextRef2-id">
+ <description>en-interceptor2PersistenceContextRef2-desc</description>
+ <description xml:lang="fr">fr-interceptor2PersistenceContextRef2-desc</description>
+ <description xml:lang="de">de-interceptor2PersistenceContextRef2-desc</description>
+ <persistence-context-ref-name>interceptor2PersistenceContextRef2Name</persistence-context-ref-name>
+ <persistence-unit-name>interceptor2PersistenceContextRef2Unit</persistence-unit-name>
+ <persistence-context-type>Extended</persistence-context-type>
+ <persistence-property id="interceptor2PersistenceContextRef2Property1-id">
+ <name>interceptor2PersistenceContextRef2Property1Name</name>
+ <value>interceptor2PersistenceContextRef2Property1Value</value>
+ </persistence-property>
+ <persistence-property id="interceptor2PersistenceContextRef2Property2-id">
+ <name>interceptor2PersistenceContextRef2Property2Name</name>
+ <value>interceptor2PersistenceContextRef2Property2Value</value>
+ </persistence-property>
+ <mapped-name>interceptor2PersistenceContextRef2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>interceptor2PersistenceContextRef2Injection1Class</injection-target-class>
+ <injection-target-name>interceptor2PersistenceContextRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>interceptor2PersistenceContextRef2Injection2Class</injection-target-class>
+ <injection-target-name>interceptor2PersistenceContextRef2Injection2Name</injection-target-name>
+ </injection-target>
+ </persistence-context-ref>
+ <persistence-unit-ref id="interceptor2PersistenceUnitRef1-id">
+ <description>en-interceptor2PersistenceUnitRef1-desc</description>
+ <description xml:lang="fr">fr-interceptor2PersistenceUnitRef1-desc</description>
+ <description xml:lang="de">de-interceptor2PersistenceUnitRef1-desc</description>
+ <persistence-unit-ref-name>interceptor2PersistenceUnitRef1Name</persistence-unit-ref-name>
+ <persistence-unit-name>interceptor2PersistenceUnitRef1Unit</persistence-unit-name>
+ <mapped-name>interceptor2PersistenceUnitRef1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>interceptor2PersistenceUnitRef1Injection1Class</injection-target-class>
+ <injection-target-name>interceptor2PersistenceUnitRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>interceptor2PersistenceUnitRef1Injection2Class</injection-target-class>
+ <injection-target-name>interceptor2PersistenceUnitRef1Injection2Name</injection-target-name>
+ </injection-target>
+ </persistence-unit-ref>
+ <persistence-unit-ref id="interceptor2PersistenceUnitRef2-id">
+ <description>en-interceptor2PersistenceUnitRef2-desc</description>
+ <description xml:lang="fr">fr-interceptor2PersistenceUnitRef2-desc</description>
+ <description xml:lang="de">de-interceptor2PersistenceUnitRef2-desc</description>
+ <persistence-unit-ref-name>interceptor2PersistenceUnitRef2Name</persistence-unit-ref-name>
+ <persistence-unit-name>interceptor2PersistenceUnitRef2Unit</persistence-unit-name>
+ <mapped-name>interceptor2PersistenceUnitRef2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>interceptor2PersistenceUnitRef2Injection1Class</injection-target-class>
+ <injection-target-name>interceptor2PersistenceUnitRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>interceptor2PersistenceUnitRef2Injection2Class</injection-target-class>
+ <injection-target-name>interceptor2PersistenceUnitRef2Injection2Name</injection-target-name>
+ </injection-target>
+ </persistence-unit-ref>
+ <post-construct>
+ <lifecycle-callback-class>interceptor2PostConstruct1Class</lifecycle-callback-class>
+ <lifecycle-callback-method>interceptor2PostConstruct1Method</lifecycle-callback-method>
+ </post-construct>
+ <post-construct>
+ <lifecycle-callback-class>interceptor2PostConstruct2Class</lifecycle-callback-class>
+ <lifecycle-callback-method>interceptor2PostConstruct2Method</lifecycle-callback-method>
+ </post-construct>
+ <pre-destroy>
+ <lifecycle-callback-class>interceptor2PreDestroy1Class</lifecycle-callback-class>
+ <lifecycle-callback-method>interceptor2PreDestroy1Method</lifecycle-callback-method>
+ </pre-destroy>
+ <pre-destroy>
+ <lifecycle-callback-class>interceptor2PreDestroy2Class</lifecycle-callback-class>
+ <lifecycle-callback-method>interceptor2PreDestroy2Method</lifecycle-callback-method>
+ </pre-destroy>
+
+ <post-activate>
+ <lifecycle-callback-class>interceptor2PostActivate1Class</lifecycle-callback-class>
+ <lifecycle-callback-method>interceptor2PostActivate1Method</lifecycle-callback-method>
+ </post-activate>
+ <post-activate>
+ <lifecycle-callback-class>interceptor2PostActivate2Class</lifecycle-callback-class>
+ <lifecycle-callback-method>interceptor2PostActivate2Method</lifecycle-callback-method>
+ </post-activate>
+ <pre-passivate>
+ <lifecycle-callback-class>interceptor2PrePassivate1Class</lifecycle-callback-class>
+ <lifecycle-callback-method>interceptor2PrePassivate1Method</lifecycle-callback-method>
+ </pre-passivate>
+ <pre-passivate>
+ <lifecycle-callback-class>interceptor2PrePassivate2Class</lifecycle-callback-class>
+ <lifecycle-callback-method>interceptor2PrePassivate2Method</lifecycle-callback-method>
+ </pre-passivate>
+ </interceptor>
+ </interceptors>
+
+ <relationships id="relationships-id">
+ <description>en-relationships-desc</description>
+ <description xml:lang="fr">fr-relationships-desc</description>
+ <description xml:lang="de">de-relationships-desc</description>
+ <ejb-relation id="relation1-id">
+ <description>en-relation1-desc</description>
+ <description xml:lang="fr">fr-relation1-desc</description>
+ <description xml:lang="de">de-relation1-desc</description>
+ <ejb-relation-name>relation1Name</ejb-relation-name>
+ <ejb-relationship-role id="relation1Role1-id">
+ <description>en-relation1Role1-desc</description>
+ <description xml:lang="fr">fr-relation1Role1-desc</description>
+ <description xml:lang="de">de-relation1Role1-desc</description>
+ <ejb-relationship-role-name>relation1Role1Name</ejb-relationship-role-name>
+ <multiplicity>One</multiplicity>
+ <cascade-delete id="relation1Role1CascadeDelete-id"/>
+ <relationship-role-source id="relation1Role1RoleSource-id">
+ <description>en-relation1Role1RoleSource-desc</description>
+ <description xml:lang="fr">fr-relation1Role1RoleSource-desc</description>
+ <description xml:lang="de">de-relation1Role1RoleSource-desc</description>
+ <ejb-name>relation1Role1RoleSourceName</ejb-name>
+ </relationship-role-source>
+ <cmr-field id="relation1Role1CmrField-id">
+ <description>en-relation1Role1CmrField-desc</description>
+ <description xml:lang="fr">fr-relation1Role1CmrField-desc</description>
+ <description xml:lang="de">de-relation1Role1CmrField-desc</description>
+ <cmr-field-name>relation1Role1CmrFieldName</cmr-field-name>
+ <cmr-field-type>relation1Role1CmrFieldType</cmr-field-type>
+ </cmr-field>
+ </ejb-relationship-role>
+ <ejb-relationship-role id="relation1Role2-id">
+ <description>en-relation1Role2-desc</description>
+ <description xml:lang="fr">fr-relation1Role2-desc</description>
+ <description xml:lang="de">de-relation1Role2-desc</description>
+ <ejb-relationship-role-name>relation1Role2Name</ejb-relationship-role-name>
+ <multiplicity>Many</multiplicity>
+ <cascade-delete id="relation1Role2CascadeDelete-id"/>
+ <relationship-role-source id="relation1Role2RoleSource-id">
+ <description>en-relation1Role2RoleSource-desc</description>
+ <description xml:lang="fr">fr-relation1Role2RoleSource-desc</description>
+ <description xml:lang="de">de-relation1Role2RoleSource-desc</description>
+ <ejb-name>relation1Role2RoleSourceName</ejb-name>
+ </relationship-role-source>
+ <cmr-field id="relation1Role2CmrField-id">
+ <description>en-relation1Role2CmrField-desc</description>
+ <description xml:lang="fr">fr-relation1Role2CmrField-desc</description>
+ <description xml:lang="de">de-relation1Role2CmrField-desc</description>
+ <cmr-field-name>relation1Role2CmrFieldName</cmr-field-name>
+ <cmr-field-type>relation1Role2CmrFieldType</cmr-field-type>
+ </cmr-field>
+ </ejb-relationship-role>
+ </ejb-relation>
+ <ejb-relation id="relation2-id">
+ <description>en-relation2-desc</description>
+ <description xml:lang="fr">fr-relation2-desc</description>
+ <description xml:lang="de">de-relation2-desc</description>
+ <ejb-relation-name>relation2Name</ejb-relation-name>
+ <ejb-relationship-role id="relation2Role1-id">
+ <description>en-relation2Role1-desc</description>
+ <description xml:lang="fr">fr-relation2Role1-desc</description>
+ <description xml:lang="de">de-relation2Role1-desc</description>
+ <ejb-relationship-role-name>relation2Role1Name</ejb-relationship-role-name>
+ <multiplicity>One</multiplicity>
+ <cascade-delete id="relation2Role1CascadeDelete-id"/>
+ <relationship-role-source id="relation2Role1RoleSource-id">
+ <description>en-relation2Role1RoleSource-desc</description>
+ <description xml:lang="fr">fr-relation2Role1RoleSource-desc</description>
+ <description xml:lang="de">de-relation2Role1RoleSource-desc</description>
+ <ejb-name>relation2Role1RoleSourceName</ejb-name>
+ </relationship-role-source>
+ <cmr-field id="relation2Role1CmrField-id">
+ <description>en-relation2Role1CmrField-desc</description>
+ <description xml:lang="fr">fr-relation2Role1CmrField-desc</description>
+ <description xml:lang="de">de-relation2Role1CmrField-desc</description>
+ <cmr-field-name>relation2Role1CmrFieldName</cmr-field-name>
+ <cmr-field-type>relation2Role1CmrFieldType</cmr-field-type>
+ </cmr-field>
+ </ejb-relationship-role>
+ <ejb-relationship-role id="relation2Role2-id">
+ <description>en-relation2Role2-desc</description>
+ <description xml:lang="fr">fr-relation2Role2-desc</description>
+ <description xml:lang="de">de-relation2Role2-desc</description>
+ <ejb-relationship-role-name>relation2Role2Name</ejb-relationship-role-name>
+ <multiplicity>Many</multiplicity>
+ <cascade-delete id="relation2Role2CascadeDelete-id"/>
+ <relationship-role-source id="relation2Role2RoleSource-id">
+ <description>en-relation2Role2RoleSource-desc</description>
+ <description xml:lang="fr">fr-relation2Role2RoleSource-desc</description>
+ <description xml:lang="de">de-relation2Role2RoleSource-desc</description>
+ <ejb-name>relation2Role2RoleSourceName</ejb-name>
+ </relationship-role-source>
+ <cmr-field id="relation2Role2CmrField-id">
+ <description>en-relation2Role2CmrField-desc</description>
+ <description xml:lang="fr">fr-relation2Role2CmrField-desc</description>
+ <description xml:lang="de">de-relation2Role2CmrField-desc</description>
+ <cmr-field-name>relation2Role2CmrFieldName</cmr-field-name>
+ <cmr-field-type>relation2Role2CmrFieldType</cmr-field-type>
+ </cmr-field>
+ </ejb-relationship-role>
+ </ejb-relation>
+ </relationships>
+
+ <assembly-descriptor id="assembly-descriptor-id">
+
+ <security-role id="securityRole1-id">
+ <description>en-securityRole1-desc</description>
+ <description xml:lang="fr">fr-securityRole1-desc</description>
+ <description xml:lang="de">de-securityRole1-desc</description>
+ <role-name>securityRole1RoleName</role-name>
+ </security-role>
+ <security-role id="securityRole2-id">
+ <description>en-securityRole2-desc</description>
+ <description xml:lang="fr">fr-securityRole2-desc</description>
+ <description xml:lang="de">de-securityRole2-desc</description>
+ <role-name>securityRole2RoleName</role-name>
+ </security-role>
+
+ <method-permission id="methodPermission1-id">
+ <description>en-methodPermission1-desc</description>
+ <description xml:lang="fr">fr-methodPermission1-desc</description>
+ <description xml:lang="de">de-methodPermission1-desc</description>
+ <unchecked id="methodPermission1Unchecked-id"/>
+ <method id="methodPermission1Method1-id">
+ <description>en-methodPermission1Method1-desc</description>
+ <description xml:lang="fr">fr-methodPermission1Method1-desc</description>
+ <description xml:lang="de">de-methodPermission1Method1-desc</description>
+ <ejb-name>methodPermission1Method1EjbName</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>methodPermission1Method1MethodName</method-name>
+ <method-params>
+ <method-param>methodPermission1Method1Param1</method-param>
+ <method-param>methodPermission1Method1Param2</method-param>
+ </method-params>
+ </method>
+ <method id="methodPermission1Method2-id">
+ <description>en-methodPermission1Method2-desc</description>
+ <description xml:lang="fr">fr-methodPermission1Method2-desc</description>
+ <description xml:lang="de">de-methodPermission1Method2-desc</description>
+ <ejb-name>methodPermission1Method2EjbName</ejb-name>
+ <method-intf>Remote</method-intf>
+ <method-name>methodPermission1Method2MethodName</method-name>
+ </method>
+ <method id="methodPermission1Method3-id">
+ <description>en-methodPermission1Method3-desc</description>
+ <description xml:lang="fr">fr-methodPermission1Method3-desc</description>
+ <description xml:lang="de">de-methodPermission1Method3-desc</description>
+ <ejb-name>methodPermission1Method3EjbName</ejb-name>
+ <method-intf>LocalHome</method-intf>
+ <method-name>methodPermission1Method3MethodName</method-name>
+ </method>
+ <method id="methodPermission1Method4-id">
+ <description>en-methodPermission1Method4-desc</description>
+ <description xml:lang="fr">fr-methodPermission1Method4-desc</description>
+ <description xml:lang="de">de-methodPermission1Method4-desc</description>
+ <ejb-name>methodPermission1Method4EjbName</ejb-name>
+ <method-intf>Local</method-intf>
+ <method-name>methodPermission1Method4MethodName</method-name>
+ </method>
+ <method id="methodPermission1Method5-id">
+ <description>en-methodPermission1Method5-desc</description>
+ <description xml:lang="fr">fr-methodPermission1Method5-desc</description>
+ <description xml:lang="de">de-methodPermission1Method5-desc</description>
+ <ejb-name>methodPermission1Method5EjbName</ejb-name>
+ <method-intf>ServiceEndpoint</method-intf>
+ <method-name>methodPermission1Method5MethodName</method-name>
+ </method>
+ </method-permission>
+ <method-permission id="methodPermission2-id">
+ <description>en-methodPermission2-desc</description>
+ <description xml:lang="fr">fr-methodPermission2-desc</description>
+ <description xml:lang="de">de-methodPermission2-desc</description>
+ <role-name>methodPermission2RoleName1</role-name>
+ <role-name>methodPermission2RoleName2</role-name>
+ <method id="methodPermission2Method1-id">
+ <description>en-methodPermission2Method1-desc</description>
+ <description xml:lang="fr">fr-methodPermission2Method1-desc</description>
+ <description xml:lang="de">de-methodPermission2Method1-desc</description>
+ <ejb-name>methodPermission2Method1EjbName</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>methodPermission2Method1MethodName</method-name>
+ <method-params>
+ <method-param>methodPermission2Method1Param1</method-param>
+ <method-param>methodPermission2Method1Param2</method-param>
+ </method-params>
+ </method>
+ </method-permission>
+ <method-permission id="methodPermission3-id">
+ <description>en-methodPermission3-desc</description>
+ <description xml:lang="fr">fr-methodPermission3-desc</description>
+ <description xml:lang="de">de-methodPermission3-desc</description>
+ <role-name>methodPermission3RoleName1</role-name>
+ <role-name>methodPermission3RoleName2</role-name>
+ <method id="methodPermission3Method1-id">
+ <description>en-methodPermission3Method1-desc</description>
+ <description xml:lang="fr">fr-methodPermission3Method1-desc</description>
+ <description xml:lang="de">de-methodPermission3Method1-desc</description>
+ <ejb-name>methodPermission3Method1EjbName</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>methodPermission3Method1MethodName</method-name>
+ <method-params>
+ <method-param>methodPermission3Method1Param1</method-param>
+ <method-param>methodPermission3Method1Param2</method-param>
+ </method-params>
+ </method>
+ </method-permission>
+
+ <method-permission id="session1MethodPermission1-id">
+ <description>en-session1MethodPermission1-desc</description>
+ <description xml:lang="fr">fr-session1MethodPermission1-desc</description>
+ <description xml:lang="de">de-session1MethodPermission1-desc</description>
+ <unchecked id="session1MethodPermission1Unchecked-id"/>
+ <method id="session1MethodPermission1Method1-id">
+ <description>en-session1MethodPermission1Method1-desc</description>
+ <description xml:lang="fr">fr-session1MethodPermission1Method1-desc</description>
+ <description xml:lang="de">de-session1MethodPermission1Method1-desc</description>
+ <ejb-name>session1</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>session1MethodPermission1Method1MethodName</method-name>
+ <method-params>
+ <method-param>session1MethodPermission1Method1Param1</method-param>
+ <method-param>session1MethodPermission1Method1Param2</method-param>
+ </method-params>
+ </method>
+ <method id="session1MethodPermission1Method2-id">
+ <description>en-session1MethodPermission1Method2-desc</description>
+ <description xml:lang="fr">fr-session1MethodPermission1Method2-desc</description>
+ <description xml:lang="de">de-session1MethodPermission1Method2-desc</description>
+ <ejb-name>session1</ejb-name>
+ <method-intf>Remote</method-intf>
+ <method-name>session1MethodPermission1Method2MethodName</method-name>
+ </method>
+ <method id="session1MethodPermission1Method3-id">
+ <description>en-session1MethodPermission1Method3-desc</description>
+ <description xml:lang="fr">fr-session1MethodPermission1Method3-desc</description>
+ <description xml:lang="de">de-session1MethodPermission1Method3-desc</description>
+ <ejb-name>session1</ejb-name>
+ <method-intf>LocalHome</method-intf>
+ <method-name>session1MethodPermission1Method3MethodName</method-name>
+ </method>
+ <method id="session1MethodPermission1Method4-id">
+ <description>en-session1MethodPermission1Method4-desc</description>
+ <description xml:lang="fr">fr-session1MethodPermission1Method4-desc</description>
+ <description xml:lang="de">de-session1MethodPermission1Method4-desc</description>
+ <ejb-name>session1</ejb-name>
+ <method-intf>Local</method-intf>
+ <method-name>session1MethodPermission1Method4MethodName</method-name>
+ </method>
+ <method id="session1MethodPermission1Method5-id">
+ <description>en-session1MethodPermission1Method5-desc</description>
+ <description xml:lang="fr">fr-session1MethodPermission1Method5-desc</description>
+ <description xml:lang="de">de-session1MethodPermission1Method5-desc</description>
+ <ejb-name>session1</ejb-name>
+ <method-intf>ServiceEndpoint</method-intf>
+ <method-name>session1MethodPermission1Method5MethodName</method-name>
+ </method>
+ </method-permission>
+ <method-permission id="session1MethodPermission2-id">
+ <description>en-session1MethodPermission2-desc</description>
+ <description xml:lang="fr">fr-session1MethodPermission2-desc</description>
+ <description xml:lang="de">de-session1MethodPermission2-desc</description>
+ <role-name>session1MethodPermission2RoleName1</role-name>
+ <role-name>session1MethodPermission2RoleName2</role-name>
+ <method id="session1MethodPermission2Method1-id">
+ <description>en-session1MethodPermission2Method1-desc</description>
+ <description xml:lang="fr">fr-session1MethodPermission2Method1-desc</description>
+ <description xml:lang="de">de-session1MethodPermission2Method1-desc</description>
+ <ejb-name>session1</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>session1MethodPermission2Method1MethodName</method-name>
+ <method-params>
+ <method-param>session1MethodPermission2Method1Param1</method-param>
+ <method-param>session1MethodPermission2Method1Param2</method-param>
+ </method-params>
+ </method>
+ </method-permission>
+ <method-permission id="session1MethodPermission3-id">
+ <description>en-session1MethodPermission3-desc</description>
+ <description xml:lang="fr">fr-session1MethodPermission3-desc</description>
+ <description xml:lang="de">de-session1MethodPermission3-desc</description>
+ <role-name>session1MethodPermission3RoleName1</role-name>
+ <role-name>session1MethodPermission3RoleName2</role-name>
+ <method id="session1MethodPermission3Method1-id">
+ <description>en-session1MethodPermission3Method1-desc</description>
+ <description xml:lang="fr">fr-session1MethodPermission3Method1-desc</description>
+ <description xml:lang="de">de-session1MethodPermission3Method1-desc</description>
+ <ejb-name>session1</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>session1MethodPermission3Method1MethodName</method-name>
+ <method-params>
+ <method-param>session1MethodPermission3Method1Param1</method-param>
+ <method-param>session1MethodPermission3Method1Param2</method-param>
+ </method-params>
+ </method>
+ </method-permission>
+
+ <method-permission id="session2MethodPermission1-id">
+ <description>en-session2MethodPermission1-desc</description>
+ <description xml:lang="fr">fr-session2MethodPermission1-desc</description>
+ <description xml:lang="de">de-session2MethodPermission1-desc</description>
+ <unchecked id="session2MethodPermission1Unchecked-id"/>
+ <method id="session2MethodPermission1Method1-id">
+ <description>en-session2MethodPermission1Method1-desc</description>
+ <description xml:lang="fr">fr-session2MethodPermission1Method1-desc</description>
+ <description xml:lang="de">de-session2MethodPermission1Method1-desc</description>
+ <ejb-name>session2</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>session2MethodPermission1Method1MethodName</method-name>
+ <method-params>
+ <method-param>session2MethodPermission1Method1Param1</method-param>
+ <method-param>session2MethodPermission1Method1Param2</method-param>
+ </method-params>
+ </method>
+ <method id="session2MethodPermission1Method2-id">
+ <description>en-session2MethodPermission1Method2-desc</description>
+ <description xml:lang="fr">fr-session2MethodPermission1Method2-desc</description>
+ <description xml:lang="de">de-session2MethodPermission1Method2-desc</description>
+ <ejb-name>session2</ejb-name>
+ <method-intf>Remote</method-intf>
+ <method-name>session2MethodPermission1Method2MethodName</method-name>
+ </method>
+ <method id="session2MethodPermission1Method3-id">
+ <description>en-session2MethodPermission1Method3-desc</description>
+ <description xml:lang="fr">fr-session2MethodPermission1Method3-desc</description>
+ <description xml:lang="de">de-session2MethodPermission1Method3-desc</description>
+ <ejb-name>session2</ejb-name>
+ <method-intf>LocalHome</method-intf>
+ <method-name>session2MethodPermission1Method3MethodName</method-name>
+ </method>
+ <method id="session2MethodPermission1Method4-id">
+ <description>en-session2MethodPermission1Method4-desc</description>
+ <description xml:lang="fr">fr-session2MethodPermission1Method4-desc</description>
+ <description xml:lang="de">de-session2MethodPermission1Method4-desc</description>
+ <ejb-name>session2</ejb-name>
+ <method-intf>Local</method-intf>
+ <method-name>session2MethodPermission1Method4MethodName</method-name>
+ </method>
+ <method id="session2MethodPermission1Method5-id">
+ <description>en-session2MethodPermission1Method5-desc</description>
+ <description xml:lang="fr">fr-session2MethodPermission1Method5-desc</description>
+ <description xml:lang="de">de-session2MethodPermission1Method5-desc</description>
+ <ejb-name>session2</ejb-name>
+ <method-intf>ServiceEndpoint</method-intf>
+ <method-name>session2MethodPermission1Method5MethodName</method-name>
+ </method>
+ </method-permission>
+ <method-permission id="session2MethodPermission2-id">
+ <description>en-session2MethodPermission2-desc</description>
+ <description xml:lang="fr">fr-session2MethodPermission2-desc</description>
+ <description xml:lang="de">de-session2MethodPermission2-desc</description>
+ <role-name>session2MethodPermission2RoleName1</role-name>
+ <role-name>session2MethodPermission2RoleName2</role-name>
+ <method id="session2MethodPermission2Method1-id">
+ <description>en-session2MethodPermission2Method1-desc</description>
+ <description xml:lang="fr">fr-session2MethodPermission2Method1-desc</description>
+ <description xml:lang="de">de-session2MethodPermission2Method1-desc</description>
+ <ejb-name>session2</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>session2MethodPermission2Method1MethodName</method-name>
+ <method-params>
+ <method-param>session2MethodPermission2Method1Param1</method-param>
+ <method-param>session2MethodPermission2Method1Param2</method-param>
+ </method-params>
+ </method>
+ </method-permission>
+ <method-permission id="session2MethodPermission3-id">
+ <description>en-session2MethodPermission3-desc</description>
+ <description xml:lang="fr">fr-session2MethodPermission3-desc</description>
+ <description xml:lang="de">de-session2MethodPermission3-desc</description>
+ <role-name>session2MethodPermission3RoleName1</role-name>
+ <role-name>session2MethodPermission3RoleName2</role-name>
+ <method id="session2MethodPermission3Method1-id">
+ <description>en-session2MethodPermission3Method1-desc</description>
+ <description xml:lang="fr">fr-session2MethodPermission3Method1-desc</description>
+ <description xml:lang="de">de-session2MethodPermission3Method1-desc</description>
+ <ejb-name>session2</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>session2MethodPermission3Method1MethodName</method-name>
+ <method-params>
+ <method-param>session2MethodPermission3Method1Param1</method-param>
+ <method-param>session2MethodPermission3Method1Param2</method-param>
+ </method-params>
+ </method>
+ </method-permission>
+
+ <method-permission id="entity1MethodPermission1-id">
+ <description>en-entity1MethodPermission1-desc</description>
+ <description xml:lang="fr">fr-entity1MethodPermission1-desc</description>
+ <description xml:lang="de">de-entity1MethodPermission1-desc</description>
+ <unchecked id="entity1MethodPermission1Unchecked-id"/>
+ <method id="entity1MethodPermission1Method1-id">
+ <description>en-entity1MethodPermission1Method1-desc</description>
+ <description xml:lang="fr">fr-entity1MethodPermission1Method1-desc</description>
+ <description xml:lang="de">de-entity1MethodPermission1Method1-desc</description>
+ <ejb-name>entity1</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>entity1MethodPermission1Method1MethodName</method-name>
+ <method-params>
+ <method-param>entity1MethodPermission1Method1Param1</method-param>
+ <method-param>entity1MethodPermission1Method1Param2</method-param>
+ </method-params>
+ </method>
+ <method id="entity1MethodPermission1Method2-id">
+ <description>en-entity1MethodPermission1Method2-desc</description>
+ <description xml:lang="fr">fr-entity1MethodPermission1Method2-desc</description>
+ <description xml:lang="de">de-entity1MethodPermission1Method2-desc</description>
+ <ejb-name>entity1</ejb-name>
+ <method-intf>Remote</method-intf>
+ <method-name>entity1MethodPermission1Method2MethodName</method-name>
+ </method>
+ <method id="entity1MethodPermission1Method3-id">
+ <description>en-entity1MethodPermission1Method3-desc</description>
+ <description xml:lang="fr">fr-entity1MethodPermission1Method3-desc</description>
+ <description xml:lang="de">de-entity1MethodPermission1Method3-desc</description>
+ <ejb-name>entity1</ejb-name>
+ <method-intf>LocalHome</method-intf>
+ <method-name>entity1MethodPermission1Method3MethodName</method-name>
+ </method>
+ <method id="entity1MethodPermission1Method4-id">
+ <description>en-entity1MethodPermission1Method4-desc</description>
+ <description xml:lang="fr">fr-entity1MethodPermission1Method4-desc</description>
+ <description xml:lang="de">de-entity1MethodPermission1Method4-desc</description>
+ <ejb-name>entity1</ejb-name>
+ <method-intf>Local</method-intf>
+ <method-name>entity1MethodPermission1Method4MethodName</method-name>
+ </method>
+ <method id="entity1MethodPermission1Method5-id">
+ <description>en-entity1MethodPermission1Method5-desc</description>
+ <description xml:lang="fr">fr-entity1MethodPermission1Method5-desc</description>
+ <description xml:lang="de">de-entity1MethodPermission1Method5-desc</description>
+ <ejb-name>entity1</ejb-name>
+ <method-intf>ServiceEndpoint</method-intf>
+ <method-name>entity1MethodPermission1Method5MethodName</method-name>
+ </method>
+ </method-permission>
+ <method-permission id="entity1MethodPermission2-id">
+ <description>en-entity1MethodPermission2-desc</description>
+ <description xml:lang="fr">fr-entity1MethodPermission2-desc</description>
+ <description xml:lang="de">de-entity1MethodPermission2-desc</description>
+ <role-name>entity1MethodPermission2RoleName1</role-name>
+ <role-name>entity1MethodPermission2RoleName2</role-name>
+ <method id="entity1MethodPermission2Method1-id">
+ <description>en-entity1MethodPermission2Method1-desc</description>
+ <description xml:lang="fr">fr-entity1MethodPermission2Method1-desc</description>
+ <description xml:lang="de">de-entity1MethodPermission2Method1-desc</description>
+ <ejb-name>entity1</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>entity1MethodPermission2Method1MethodName</method-name>
+ <method-params>
+ <method-param>entity1MethodPermission2Method1Param1</method-param>
+ <method-param>entity1MethodPermission2Method1Param2</method-param>
+ </method-params>
+ </method>
+ </method-permission>
+ <method-permission id="entity1MethodPermission3-id">
+ <description>en-entity1MethodPermission3-desc</description>
+ <description xml:lang="fr">fr-entity1MethodPermission3-desc</description>
+ <description xml:lang="de">de-entity1MethodPermission3-desc</description>
+ <role-name>entity1MethodPermission3RoleName1</role-name>
+ <role-name>entity1MethodPermission3RoleName2</role-name>
+ <method id="entity1MethodPermission3Method1-id">
+ <description>en-entity1MethodPermission3Method1-desc</description>
+ <description xml:lang="fr">fr-entity1MethodPermission3Method1-desc</description>
+ <description xml:lang="de">de-entity1MethodPermission3Method1-desc</description>
+ <ejb-name>entity1</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>entity1MethodPermission3Method1MethodName</method-name>
+ <method-params>
+ <method-param>entity1MethodPermission3Method1Param1</method-param>
+ <method-param>entity1MethodPermission3Method1Param2</method-param>
+ </method-params>
+ </method>
+ </method-permission>
+
+ <method-permission id="entity2MethodPermission1-id">
+ <description>en-entity2MethodPermission1-desc</description>
+ <description xml:lang="fr">fr-entity2MethodPermission1-desc</description>
+ <description xml:lang="de">de-entity2MethodPermission1-desc</description>
+ <unchecked id="entity2MethodPermission1Unchecked-id"/>
+ <method id="entity2MethodPermission1Method1-id">
+ <description>en-entity2MethodPermission1Method1-desc</description>
+ <description xml:lang="fr">fr-entity2MethodPermission1Method1-desc</description>
+ <description xml:lang="de">de-entity2MethodPermission1Method1-desc</description>
+ <ejb-name>entity2</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>entity2MethodPermission1Method1MethodName</method-name>
+ <method-params>
+ <method-param>entity2MethodPermission1Method1Param1</method-param>
+ <method-param>entity2MethodPermission1Method1Param2</method-param>
+ </method-params>
+ </method>
+ <method id="entity2MethodPermission1Method2-id">
+ <description>en-entity2MethodPermission1Method2-desc</description>
+ <description xml:lang="fr">fr-entity2MethodPermission1Method2-desc</description>
+ <description xml:lang="de">de-entity2MethodPermission1Method2-desc</description>
+ <ejb-name>entity2</ejb-name>
+ <method-intf>Remote</method-intf>
+ <method-name>entity2MethodPermission1Method2MethodName</method-name>
+ </method>
+ <method id="entity2MethodPermission1Method3-id">
+ <description>en-entity2MethodPermission1Method3-desc</description>
+ <description xml:lang="fr">fr-entity2MethodPermission1Method3-desc</description>
+ <description xml:lang="de">de-entity2MethodPermission1Method3-desc</description>
+ <ejb-name>entity2</ejb-name>
+ <method-intf>LocalHome</method-intf>
+ <method-name>entity2MethodPermission1Method3MethodName</method-name>
+ </method>
+ <method id="entity2MethodPermission1Method4-id">
+ <description>en-entity2MethodPermission1Method4-desc</description>
+ <description xml:lang="fr">fr-entity2MethodPermission1Method4-desc</description>
+ <description xml:lang="de">de-entity2MethodPermission1Method4-desc</description>
+ <ejb-name>entity2</ejb-name>
+ <method-intf>Local</method-intf>
+ <method-name>entity2MethodPermission1Method4MethodName</method-name>
+ </method>
+ <method id="entity2MethodPermission1Method5-id">
+ <description>en-entity2MethodPermission1Method5-desc</description>
+ <description xml:lang="fr">fr-entity2MethodPermission1Method5-desc</description>
+ <description xml:lang="de">de-entity2MethodPermission1Method5-desc</description>
+ <ejb-name>entity2</ejb-name>
+ <method-intf>ServiceEndpoint</method-intf>
+ <method-name>entity2MethodPermission1Method5MethodName</method-name>
+ </method>
+ </method-permission>
+ <method-permission id="entity2MethodPermission2-id">
+ <description>en-entity2MethodPermission2-desc</description>
+ <description xml:lang="fr">fr-entity2MethodPermission2-desc</description>
+ <description xml:lang="de">de-entity2MethodPermission2-desc</description>
+ <role-name>entity2MethodPermission2RoleName1</role-name>
+ <role-name>entity2MethodPermission2RoleName2</role-name>
+ <method id="entity2MethodPermission2Method1-id">
+ <description>en-entity2MethodPermission2Method1-desc</description>
+ <description xml:lang="fr">fr-entity2MethodPermission2Method1-desc</description>
+ <description xml:lang="de">de-entity2MethodPermission2Method1-desc</description>
+ <ejb-name>entity2</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>entity2MethodPermission2Method1MethodName</method-name>
+ <method-params>
+ <method-param>entity2MethodPermission2Method1Param1</method-param>
+ <method-param>entity2MethodPermission2Method1Param2</method-param>
+ </method-params>
+ </method>
+ </method-permission>
+ <method-permission id="entity2MethodPermission3-id">
+ <description>en-entity2MethodPermission3-desc</description>
+ <description xml:lang="fr">fr-entity2MethodPermission3-desc</description>
+ <description xml:lang="de">de-entity2MethodPermission3-desc</description>
+ <role-name>entity2MethodPermission3RoleName1</role-name>
+ <role-name>entity2MethodPermission3RoleName2</role-name>
+ <method id="entity2MethodPermission3Method1-id">
+ <description>en-entity2MethodPermission3Method1-desc</description>
+ <description xml:lang="fr">fr-entity2MethodPermission3Method1-desc</description>
+ <description xml:lang="de">de-entity2MethodPermission3Method1-desc</description>
+ <ejb-name>entity2</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>entity2MethodPermission3Method1MethodName</method-name>
+ <method-params>
+ <method-param>entity2MethodPermission3Method1Param1</method-param>
+ <method-param>entity2MethodPermission3Method1Param2</method-param>
+ </method-params>
+ </method>
+ </method-permission>
+
+ <method-permission id="mdb1MethodPermission1-id">
+ <description>en-mdb1MethodPermission1-desc</description>
+ <description xml:lang="fr">fr-mdb1MethodPermission1-desc</description>
+ <description xml:lang="de">de-mdb1MethodPermission1-desc</description>
+ <unchecked id="mdb1MethodPermission1Unchecked-id"/>
+ <method id="mdb1MethodPermission1Method1-id">
+ <description>en-mdb1MethodPermission1Method1-desc</description>
+ <description xml:lang="fr">fr-mdb1MethodPermission1Method1-desc</description>
+ <description xml:lang="de">de-mdb1MethodPermission1Method1-desc</description>
+ <ejb-name>mdb1</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>mdb1MethodPermission1Method1MethodName</method-name>
+ <method-params>
+ <method-param>mdb1MethodPermission1Method1Param1</method-param>
+ <method-param>mdb1MethodPermission1Method1Param2</method-param>
+ </method-params>
+ </method>
+ <method id="mdb1MethodPermission1Method2-id">
+ <description>en-mdb1MethodPermission1Method2-desc</description>
+ <description xml:lang="fr">fr-mdb1MethodPermission1Method2-desc</description>
+ <description xml:lang="de">de-mdb1MethodPermission1Method2-desc</description>
+ <ejb-name>mdb1</ejb-name>
+ <method-intf>Remote</method-intf>
+ <method-name>mdb1MethodPermission1Method2MethodName</method-name>
+ </method>
+ <method id="mdb1MethodPermission1Method3-id">
+ <description>en-mdb1MethodPermission1Method3-desc</description>
+ <description xml:lang="fr">fr-mdb1MethodPermission1Method3-desc</description>
+ <description xml:lang="de">de-mdb1MethodPermission1Method3-desc</description>
+ <ejb-name>mdb1</ejb-name>
+ <method-intf>LocalHome</method-intf>
+ <method-name>mdb1MethodPermission1Method3MethodName</method-name>
+ </method>
+ <method id="mdb1MethodPermission1Method4-id">
+ <description>en-mdb1MethodPermission1Method4-desc</description>
+ <description xml:lang="fr">fr-mdb1MethodPermission1Method4-desc</description>
+ <description xml:lang="de">de-mdb1MethodPermission1Method4-desc</description>
+ <ejb-name>mdb1</ejb-name>
+ <method-intf>Local</method-intf>
+ <method-name>mdb1MethodPermission1Method4MethodName</method-name>
+ </method>
+ <method id="mdb1MethodPermission1Method5-id">
+ <description>en-mdb1MethodPermission1Method5-desc</description>
+ <description xml:lang="fr">fr-mdb1MethodPermission1Method5-desc</description>
+ <description xml:lang="de">de-mdb1MethodPermission1Method5-desc</description>
+ <ejb-name>mdb1</ejb-name>
+ <method-intf>ServiceEndpoint</method-intf>
+ <method-name>mdb1MethodPermission1Method5MethodName</method-name>
+ </method>
+ </method-permission>
+ <method-permission id="mdb1MethodPermission2-id">
+ <description>en-mdb1MethodPermission2-desc</description>
+ <description xml:lang="fr">fr-mdb1MethodPermission2-desc</description>
+ <description xml:lang="de">de-mdb1MethodPermission2-desc</description>
+ <role-name>mdb1MethodPermission2RoleName1</role-name>
+ <role-name>mdb1MethodPermission2RoleName2</role-name>
+ <method id="mdb1MethodPermission2Method1-id">
+ <description>en-mdb1MethodPermission2Method1-desc</description>
+ <description xml:lang="fr">fr-mdb1MethodPermission2Method1-desc</description>
+ <description xml:lang="de">de-mdb1MethodPermission2Method1-desc</description>
+ <ejb-name>mdb1</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>mdb1MethodPermission2Method1MethodName</method-name>
+ <method-params>
+ <method-param>mdb1MethodPermission2Method1Param1</method-param>
+ <method-param>mdb1MethodPermission2Method1Param2</method-param>
+ </method-params>
+ </method>
+ </method-permission>
+ <method-permission id="mdb1MethodPermission3-id">
+ <description>en-mdb1MethodPermission3-desc</description>
+ <description xml:lang="fr">fr-mdb1MethodPermission3-desc</description>
+ <description xml:lang="de">de-mdb1MethodPermission3-desc</description>
+ <role-name>mdb1MethodPermission3RoleName1</role-name>
+ <role-name>mdb1MethodPermission3RoleName2</role-name>
+ <method id="mdb1MethodPermission3Method1-id">
+ <description>en-mdb1MethodPermission3Method1-desc</description>
+ <description xml:lang="fr">fr-mdb1MethodPermission3Method1-desc</description>
+ <description xml:lang="de">de-mdb1MethodPermission3Method1-desc</description>
+ <ejb-name>mdb1</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>mdb1MethodPermission3Method1MethodName</method-name>
+ <method-params>
+ <method-param>mdb1MethodPermission3Method1Param1</method-param>
+ <method-param>mdb1MethodPermission3Method1Param2</method-param>
+ </method-params>
+ </method>
+ </method-permission>
+
+ <method-permission id="mdb2MethodPermission1-id">
+ <description>en-mdb2MethodPermission1-desc</description>
+ <description xml:lang="fr">fr-mdb2MethodPermission1-desc</description>
+ <description xml:lang="de">de-mdb2MethodPermission1-desc</description>
+ <unchecked id="mdb2MethodPermission1Unchecked-id"/>
+ <method id="mdb2MethodPermission1Method1-id">
+ <description>en-mdb2MethodPermission1Method1-desc</description>
+ <description xml:lang="fr">fr-mdb2MethodPermission1Method1-desc</description>
+ <description xml:lang="de">de-mdb2MethodPermission1Method1-desc</description>
+ <ejb-name>mdb2</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>mdb2MethodPermission1Method1MethodName</method-name>
+ <method-params>
+ <method-param>mdb2MethodPermission1Method1Param1</method-param>
+ <method-param>mdb2MethodPermission1Method1Param2</method-param>
+ </method-params>
+ </method>
+ <method id="mdb2MethodPermission1Method2-id">
+ <description>en-mdb2MethodPermission1Method2-desc</description>
+ <description xml:lang="fr">fr-mdb2MethodPermission1Method2-desc</description>
+ <description xml:lang="de">de-mdb2MethodPermission1Method2-desc</description>
+ <ejb-name>mdb2</ejb-name>
+ <method-intf>Remote</method-intf>
+ <method-name>mdb2MethodPermission1Method2MethodName</method-name>
+ </method>
+ <method id="mdb2MethodPermission1Method3-id">
+ <description>en-mdb2MethodPermission1Method3-desc</description>
+ <description xml:lang="fr">fr-mdb2MethodPermission1Method3-desc</description>
+ <description xml:lang="de">de-mdb2MethodPermission1Method3-desc</description>
+ <ejb-name>mdb2</ejb-name>
+ <method-intf>LocalHome</method-intf>
+ <method-name>mdb2MethodPermission1Method3MethodName</method-name>
+ </method>
+ <method id="mdb2MethodPermission1Method4-id">
+ <description>en-mdb2MethodPermission1Method4-desc</description>
+ <description xml:lang="fr">fr-mdb2MethodPermission1Method4-desc</description>
+ <description xml:lang="de">de-mdb2MethodPermission1Method4-desc</description>
+ <ejb-name>mdb2</ejb-name>
+ <method-intf>Local</method-intf>
+ <method-name>mdb2MethodPermission1Method4MethodName</method-name>
+ </method>
+ <method id="mdb2MethodPermission1Method5-id">
+ <description>en-mdb2MethodPermission1Method5-desc</description>
+ <description xml:lang="fr">fr-mdb2MethodPermission1Method5-desc</description>
+ <description xml:lang="de">de-mdb2MethodPermission1Method5-desc</description>
+ <ejb-name>mdb2</ejb-name>
+ <method-intf>ServiceEndpoint</method-intf>
+ <method-name>mdb2MethodPermission1Method5MethodName</method-name>
+ </method>
+ </method-permission>
+ <method-permission id="mdb2MethodPermission2-id">
+ <description>en-mdb2MethodPermission2-desc</description>
+ <description xml:lang="fr">fr-mdb2MethodPermission2-desc</description>
+ <description xml:lang="de">de-mdb2MethodPermission2-desc</description>
+ <role-name>mdb2MethodPermission2RoleName1</role-name>
+ <role-name>mdb2MethodPermission2RoleName2</role-name>
+ <method id="mdb2MethodPermission2Method1-id">
+ <description>en-mdb2MethodPermission2Method1-desc</description>
+ <description xml:lang="fr">fr-mdb2MethodPermission2Method1-desc</description>
+ <description xml:lang="de">de-mdb2MethodPermission2Method1-desc</description>
+ <ejb-name>mdb2</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>mdb2MethodPermission2Method1MethodName</method-name>
+ <method-params>
+ <method-param>mdb2MethodPermission2Method1Param1</method-param>
+ <method-param>mdb2MethodPermission2Method1Param2</method-param>
+ </method-params>
+ </method>
+ </method-permission>
+ <method-permission id="mdb2MethodPermission3-id">
+ <description>en-mdb2MethodPermission3-desc</description>
+ <description xml:lang="fr">fr-mdb2MethodPermission3-desc</description>
+ <description xml:lang="de">de-mdb2MethodPermission3-desc</description>
+ <role-name>mdb2MethodPermission3RoleName1</role-name>
+ <role-name>mdb2MethodPermission3RoleName2</role-name>
+ <method id="mdb2MethodPermission3Method1-id">
+ <description>en-mdb2MethodPermission3Method1-desc</description>
+ <description xml:lang="fr">fr-mdb2MethodPermission3Method1-desc</description>
+ <description xml:lang="de">de-mdb2MethodPermission3Method1-desc</description>
+ <ejb-name>mdb2</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>mdb2MethodPermission3Method1MethodName</method-name>
+ <method-params>
+ <method-param>mdb2MethodPermission3Method1Param1</method-param>
+ <method-param>mdb2MethodPermission3Method1Param2</method-param>
+ </method-params>
+ </method>
+ </method-permission>
+
+ <container-transaction id="containerTransaction1-id">
+ <description>en-containerTransaction1-desc</description>
+ <description xml:lang="fr">fr-containerTransaction1-desc</description>
+ <description xml:lang="de">de-containerTransaction1-desc</description>
+ <method id="containerTransaction1Method1-id">
+ <description>en-containerTransaction1Method1-desc</description>
+ <description xml:lang="fr">fr-containerTransaction1Method1-desc</description>
+ <description xml:lang="de">de-containerTransaction1Method1-desc</description>
+ <ejb-name>containerTransaction1Method1EjbName</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>containerTransaction1Method1MethodName</method-name>
+ <method-params>
+ <method-param>containerTransaction1Method1Param1</method-param>
+ <method-param>containerTransaction1Method1Param2</method-param>
+ </method-params>
+ </method>
+ <method id="containerTransaction1Method2-id">
+ <description>en-containerTransaction1Method2-desc</description>
+ <description xml:lang="fr">fr-containerTransaction1Method2-desc</description>
+ <description xml:lang="de">de-containerTransaction1Method2-desc</description>
+ <ejb-name>containerTransaction1Method2EjbName</ejb-name>
+ <method-intf>Remote</method-intf>
+ <method-name>containerTransaction1Method2MethodName</method-name>
+ </method>
+ <method id="containerTransaction1Method3-id">
+ <description>en-containerTransaction1Method3-desc</description>
+ <description xml:lang="fr">fr-containerTransaction1Method3-desc</description>
+ <description xml:lang="de">de-containerTransaction1Method3-desc</description>
+ <ejb-name>containerTransaction1Method3EjbName</ejb-name>
+ <method-intf>LocalHome</method-intf>
+ <method-name>containerTransaction1Method3MethodName</method-name>
+ </method>
+ <method id="containerTransaction1Method4-id">
+ <description>en-containerTransaction1Method4-desc</description>
+ <description xml:lang="fr">fr-containerTransaction1Method4-desc</description>
+ <description xml:lang="de">de-containerTransaction1Method4-desc</description>
+ <ejb-name>containerTransaction1Method4EjbName</ejb-name>
+ <method-intf>Local</method-intf>
+ <method-name>containerTransaction1Method4MethodName</method-name>
+ </method>
+ <method id="containerTransaction1Method5-id">
+ <description>en-containerTransaction1Method5-desc</description>
+ <description xml:lang="fr">fr-containerTransaction1Method5-desc</description>
+ <description xml:lang="de">de-containerTransaction1Method5-desc</description>
+ <ejb-name>containerTransaction1Method5EjbName</ejb-name>
+ <method-intf>ServiceEndpoint</method-intf>
+ <method-name>containerTransaction1Method5MethodName</method-name>
+ </method>
+ <trans-attribute>NotSupported</trans-attribute>
+ </container-transaction>
+ <container-transaction id="containerTransaction2-id">
+ <description>en-containerTransaction2-desc</description>
+ <description xml:lang="fr">fr-containerTransaction2-desc</description>
+ <description xml:lang="de">de-containerTransaction2-desc</description>
+ <method id="containerTransaction2Method1-id">
+ <description>en-containerTransaction2Method1-desc</description>
+ <description xml:lang="fr">fr-containerTransaction2Method1-desc</description>
+ <description xml:lang="de">de-containerTransaction2Method1-desc</description>
+ <ejb-name>containerTransaction2Method1EjbName</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>containerTransaction2Method1MethodName</method-name>
+ <method-params>
+ <method-param>containerTransaction2Method1Param1</method-param>
+ <method-param>containerTransaction2Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>Supports</trans-attribute>
+ </container-transaction>
+ <container-transaction id="containerTransaction3-id">
+ <description>en-containerTransaction3-desc</description>
+ <description xml:lang="fr">fr-containerTransaction3-desc</description>
+ <description xml:lang="de">de-containerTransaction3-desc</description>
+ <method id="containerTransaction3Method1-id">
+ <description>en-containerTransaction3Method1-desc</description>
+ <description xml:lang="fr">fr-containerTransaction3Method1-desc</description>
+ <description xml:lang="de">de-containerTransaction3Method1-desc</description>
+ <ejb-name>containerTransaction3Method1EjbName</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>containerTransaction3Method1MethodName</method-name>
+ <method-params>
+ <method-param>containerTransaction3Method1Param1</method-param>
+ <method-param>containerTransaction3Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>Required</trans-attribute>
+ </container-transaction>
+ <container-transaction id="containerTransaction4-id">
+ <description>en-containerTransaction4-desc</description>
+ <description xml:lang="fr">fr-containerTransaction4-desc</description>
+ <description xml:lang="de">de-containerTransaction4-desc</description>
+ <method id="containerTransaction4Method1-id">
+ <description>en-containerTransaction4Method1-desc</description>
+ <description xml:lang="fr">fr-containerTransaction4Method1-desc</description>
+ <description xml:lang="de">de-containerTransaction4Method1-desc</description>
+ <ejb-name>containerTransaction4Method1EjbName</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>containerTransaction4Method1MethodName</method-name>
+ <method-params>
+ <method-param>containerTransaction4Method1Param1</method-param>
+ <method-param>containerTransaction4Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>RequiresNew</trans-attribute>
+ </container-transaction>
+ <container-transaction id="containerTransaction5-id">
+ <description>en-containerTransaction5-desc</description>
+ <description xml:lang="fr">fr-containerTransaction5-desc</description>
+ <description xml:lang="de">de-containerTransaction5-desc</description>
+ <method id="containerTransaction5Method1-id">
+ <description>en-containerTransaction5Method1-desc</description>
+ <description xml:lang="fr">fr-containerTransaction5Method1-desc</description>
+ <description xml:lang="de">de-containerTransaction5Method1-desc</description>
+ <ejb-name>containerTransaction5Method1EjbName</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>containerTransaction5Method1MethodName</method-name>
+ <method-params>
+ <method-param>containerTransaction5Method1Param1</method-param>
+ <method-param>containerTransaction5Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>Mandatory</trans-attribute>
+ </container-transaction>
+ <container-transaction id="containerTransaction6-id">
+ <description>en-containerTransaction6-desc</description>
+ <description xml:lang="fr">fr-containerTransaction6-desc</description>
+ <description xml:lang="de">de-containerTransaction6-desc</description>
+ <method id="containerTransaction6Method1-id">
+ <description>en-containerTransaction6Method1-desc</description>
+ <description xml:lang="fr">fr-containerTransaction6Method1-desc</description>
+ <description xml:lang="de">de-containerTransaction6Method1-desc</description>
+ <ejb-name>containerTransaction6Method1EjbName</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>containerTransaction6Method1MethodName</method-name>
+ <method-params>
+ <method-param>containerTransaction6Method1Param1</method-param>
+ <method-param>containerTransaction6Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>Never</trans-attribute>
+ </container-transaction>
+
+ <container-transaction id="session1ContainerTransaction1-id">
+ <description>en-session1ContainerTransaction1-desc</description>
+ <description xml:lang="fr">fr-session1ContainerTransaction1-desc</description>
+ <description xml:lang="de">de-session1ContainerTransaction1-desc</description>
+ <method id="session1ContainerTransaction1Method1-id">
+ <description>en-session1ContainerTransaction1Method1-desc</description>
+ <description xml:lang="fr">fr-session1ContainerTransaction1Method1-desc</description>
+ <description xml:lang="de">de-session1ContainerTransaction1Method1-desc</description>
+ <ejb-name>session1</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>session1ContainerTransaction1Method1MethodName</method-name>
+ <method-params>
+ <method-param>session1ContainerTransaction1Method1Param1</method-param>
+ <method-param>session1ContainerTransaction1Method1Param2</method-param>
+ </method-params>
+ </method>
+ <method id="session1ContainerTransaction1Method2-id">
+ <description>en-session1ContainerTransaction1Method2-desc</description>
+ <description xml:lang="fr">fr-session1ContainerTransaction1Method2-desc</description>
+ <description xml:lang="de">de-session1ContainerTransaction1Method2-desc</description>
+ <ejb-name>session1</ejb-name>
+ <method-intf>Remote</method-intf>
+ <method-name>session1ContainerTransaction1Method2MethodName</method-name>
+ </method>
+ <method id="session1ContainerTransaction1Method3-id">
+ <description>en-session1ContainerTransaction1Method3-desc</description>
+ <description xml:lang="fr">fr-session1ContainerTransaction1Method3-desc</description>
+ <description xml:lang="de">de-session1ContainerTransaction1Method3-desc</description>
+ <ejb-name>session1</ejb-name>
+ <method-intf>LocalHome</method-intf>
+ <method-name>session1ContainerTransaction1Method3MethodName</method-name>
+ </method>
+ <method id="session1ContainerTransaction1Method4-id">
+ <description>en-session1ContainerTransaction1Method4-desc</description>
+ <description xml:lang="fr">fr-session1ContainerTransaction1Method4-desc</description>
+ <description xml:lang="de">de-session1ContainerTransaction1Method4-desc</description>
+ <ejb-name>session1</ejb-name>
+ <method-intf>Local</method-intf>
+ <method-name>session1ContainerTransaction1Method4MethodName</method-name>
+ </method>
+ <method id="session1ContainerTransaction1Method5-id">
+ <description>en-session1ContainerTransaction1Method5-desc</description>
+ <description xml:lang="fr">fr-session1ContainerTransaction1Method5-desc</description>
+ <description xml:lang="de">de-session1ContainerTransaction1Method5-desc</description>
+ <ejb-name>session1</ejb-name>
+ <method-intf>ServiceEndpoint</method-intf>
+ <method-name>session1ContainerTransaction1Method5MethodName</method-name>
+ </method>
+ <trans-attribute>NotSupported</trans-attribute>
+ </container-transaction>
+ <container-transaction id="session1ContainerTransaction2-id">
+ <description>en-session1ContainerTransaction2-desc</description>
+ <description xml:lang="fr">fr-session1ContainerTransaction2-desc</description>
+ <description xml:lang="de">de-session1ContainerTransaction2-desc</description>
+ <method id="session1ContainerTransaction2Method1-id">
+ <description>en-session1ContainerTransaction2Method1-desc</description>
+ <description xml:lang="fr">fr-session1ContainerTransaction2Method1-desc</description>
+ <description xml:lang="de">de-session1ContainerTransaction2Method1-desc</description>
+ <ejb-name>session1</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>session1ContainerTransaction2Method1MethodName</method-name>
+ <method-params>
+ <method-param>session1ContainerTransaction2Method1Param1</method-param>
+ <method-param>session1ContainerTransaction2Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>Supports</trans-attribute>
+ </container-transaction>
+ <container-transaction id="session1ContainerTransaction3-id">
+ <description>en-session1ContainerTransaction3-desc</description>
+ <description xml:lang="fr">fr-session1ContainerTransaction3-desc</description>
+ <description xml:lang="de">de-session1ContainerTransaction3-desc</description>
+ <method id="session1ContainerTransaction3Method1-id">
+ <description>en-session1ContainerTransaction3Method1-desc</description>
+ <description xml:lang="fr">fr-session1ContainerTransaction3Method1-desc</description>
+ <description xml:lang="de">de-session1ContainerTransaction3Method1-desc</description>
+ <ejb-name>session1</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>session1ContainerTransaction3Method1MethodName</method-name>
+ <method-params>
+ <method-param>session1ContainerTransaction3Method1Param1</method-param>
+ <method-param>session1ContainerTransaction3Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>Required</trans-attribute>
+ </container-transaction>
+ <container-transaction id="session1ContainerTransaction4-id">
+ <description>en-session1ContainerTransaction4-desc</description>
+ <description xml:lang="fr">fr-session1ContainerTransaction4-desc</description>
+ <description xml:lang="de">de-session1ContainerTransaction4-desc</description>
+ <method id="session1ContainerTransaction4Method1-id">
+ <description>en-session1ContainerTransaction4Method1-desc</description>
+ <description xml:lang="fr">fr-session1ContainerTransaction4Method1-desc</description>
+ <description xml:lang="de">de-session1ContainerTransaction4Method1-desc</description>
+ <ejb-name>session1</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>session1ContainerTransaction4Method1MethodName</method-name>
+ <method-params>
+ <method-param>session1ContainerTransaction4Method1Param1</method-param>
+ <method-param>session1ContainerTransaction4Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>RequiresNew</trans-attribute>
+ </container-transaction>
+ <container-transaction id="session1ContainerTransaction5-id">
+ <description>en-session1ContainerTransaction5-desc</description>
+ <description xml:lang="fr">fr-session1ContainerTransaction5-desc</description>
+ <description xml:lang="de">de-session1ContainerTransaction5-desc</description>
+ <method id="session1ContainerTransaction5Method1-id">
+ <description>en-session1ContainerTransaction5Method1-desc</description>
+ <description xml:lang="fr">fr-session1ContainerTransaction5Method1-desc</description>
+ <description xml:lang="de">de-session1ContainerTransaction5Method1-desc</description>
+ <ejb-name>session1</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>session1ContainerTransaction5Method1MethodName</method-name>
+ <method-params>
+ <method-param>session1ContainerTransaction5Method1Param1</method-param>
+ <method-param>session1ContainerTransaction5Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>Mandatory</trans-attribute>
+ </container-transaction>
+ <container-transaction id="session1ContainerTransaction6-id">
+ <description>en-session1ContainerTransaction6-desc</description>
+ <description xml:lang="fr">fr-session1ContainerTransaction6-desc</description>
+ <description xml:lang="de">de-session1ContainerTransaction6-desc</description>
+ <method id="session1ContainerTransaction6Method1-id">
+ <description>en-session1ContainerTransaction6Method1-desc</description>
+ <description xml:lang="fr">fr-session1ContainerTransaction6Method1-desc</description>
+ <description xml:lang="de">de-session1ContainerTransaction6Method1-desc</description>
+ <ejb-name>session1</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>session1ContainerTransaction6Method1MethodName</method-name>
+ <method-params>
+ <method-param>session1ContainerTransaction6Method1Param1</method-param>
+ <method-param>session1ContainerTransaction6Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>Never</trans-attribute>
+ </container-transaction>
+
+ <container-transaction id="session2ContainerTransaction1-id">
+ <description>en-session2ContainerTransaction1-desc</description>
+ <description xml:lang="fr">fr-session2ContainerTransaction1-desc</description>
+ <description xml:lang="de">de-session2ContainerTransaction1-desc</description>
+ <method id="session2ContainerTransaction1Method1-id">
+ <description>en-session2ContainerTransaction1Method1-desc</description>
+ <description xml:lang="fr">fr-session2ContainerTransaction1Method1-desc</description>
+ <description xml:lang="de">de-session2ContainerTransaction1Method1-desc</description>
+ <ejb-name>session2</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>session2ContainerTransaction1Method1MethodName</method-name>
+ <method-params>
+ <method-param>session2ContainerTransaction1Method1Param1</method-param>
+ <method-param>session2ContainerTransaction1Method1Param2</method-param>
+ </method-params>
+ </method>
+ <method id="session2ContainerTransaction1Method2-id">
+ <description>en-session2ContainerTransaction1Method2-desc</description>
+ <description xml:lang="fr">fr-session2ContainerTransaction1Method2-desc</description>
+ <description xml:lang="de">de-session2ContainerTransaction1Method2-desc</description>
+ <ejb-name>session2</ejb-name>
+ <method-intf>Remote</method-intf>
+ <method-name>session2ContainerTransaction1Method2MethodName</method-name>
+ </method>
+ <method id="session2ContainerTransaction1Method3-id">
+ <description>en-session2ContainerTransaction1Method3-desc</description>
+ <description xml:lang="fr">fr-session2ContainerTransaction1Method3-desc</description>
+ <description xml:lang="de">de-session2ContainerTransaction1Method3-desc</description>
+ <ejb-name>session2</ejb-name>
+ <method-intf>LocalHome</method-intf>
+ <method-name>session2ContainerTransaction1Method3MethodName</method-name>
+ </method>
+ <method id="session2ContainerTransaction1Method4-id">
+ <description>en-session2ContainerTransaction1Method4-desc</description>
+ <description xml:lang="fr">fr-session2ContainerTransaction1Method4-desc</description>
+ <description xml:lang="de">de-session2ContainerTransaction1Method4-desc</description>
+ <ejb-name>session2</ejb-name>
+ <method-intf>Local</method-intf>
+ <method-name>session2ContainerTransaction1Method4MethodName</method-name>
+ </method>
+ <method id="session2ContainerTransaction1Method5-id">
+ <description>en-session2ContainerTransaction1Method5-desc</description>
+ <description xml:lang="fr">fr-session2ContainerTransaction1Method5-desc</description>
+ <description xml:lang="de">de-session2ContainerTransaction1Method5-desc</description>
+ <ejb-name>session2</ejb-name>
+ <method-intf>ServiceEndpoint</method-intf>
+ <method-name>session2ContainerTransaction1Method5MethodName</method-name>
+ </method>
+ <trans-attribute>NotSupported</trans-attribute>
+ </container-transaction>
+ <container-transaction id="session2ContainerTransaction2-id">
+ <description>en-session2ContainerTransaction2-desc</description>
+ <description xml:lang="fr">fr-session2ContainerTransaction2-desc</description>
+ <description xml:lang="de">de-session2ContainerTransaction2-desc</description>
+ <method id="session2ContainerTransaction2Method1-id">
+ <description>en-session2ContainerTransaction2Method1-desc</description>
+ <description xml:lang="fr">fr-session2ContainerTransaction2Method1-desc</description>
+ <description xml:lang="de">de-session2ContainerTransaction2Method1-desc</description>
+ <ejb-name>session2</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>session2ContainerTransaction2Method1MethodName</method-name>
+ <method-params>
+ <method-param>session2ContainerTransaction2Method1Param1</method-param>
+ <method-param>session2ContainerTransaction2Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>Supports</trans-attribute>
+ </container-transaction>
+ <container-transaction id="session2ContainerTransaction3-id">
+ <description>en-session2ContainerTransaction3-desc</description>
+ <description xml:lang="fr">fr-session2ContainerTransaction3-desc</description>
+ <description xml:lang="de">de-session2ContainerTransaction3-desc</description>
+ <method id="session2ContainerTransaction3Method1-id">
+ <description>en-session2ContainerTransaction3Method1-desc</description>
+ <description xml:lang="fr">fr-session2ContainerTransaction3Method1-desc</description>
+ <description xml:lang="de">de-session2ContainerTransaction3Method1-desc</description>
+ <ejb-name>session2</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>session2ContainerTransaction3Method1MethodName</method-name>
+ <method-params>
+ <method-param>session2ContainerTransaction3Method1Param1</method-param>
+ <method-param>session2ContainerTransaction3Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>Required</trans-attribute>
+ </container-transaction>
+ <container-transaction id="session2ContainerTransaction4-id">
+ <description>en-session2ContainerTransaction4-desc</description>
+ <description xml:lang="fr">fr-session2ContainerTransaction4-desc</description>
+ <description xml:lang="de">de-session2ContainerTransaction4-desc</description>
+ <method id="session2ContainerTransaction4Method1-id">
+ <description>en-session2ContainerTransaction4Method1-desc</description>
+ <description xml:lang="fr">fr-session2ContainerTransaction4Method1-desc</description>
+ <description xml:lang="de">de-session2ContainerTransaction4Method1-desc</description>
+ <ejb-name>session2</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>session2ContainerTransaction4Method1MethodName</method-name>
+ <method-params>
+ <method-param>session2ContainerTransaction4Method1Param1</method-param>
+ <method-param>session2ContainerTransaction4Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>RequiresNew</trans-attribute>
+ </container-transaction>
+ <container-transaction id="session2ContainerTransaction5-id">
+ <description>en-session2ContainerTransaction5-desc</description>
+ <description xml:lang="fr">fr-session2ContainerTransaction5-desc</description>
+ <description xml:lang="de">de-session2ContainerTransaction5-desc</description>
+ <method id="session2ContainerTransaction5Method1-id">
+ <description>en-session2ContainerTransaction5Method1-desc</description>
+ <description xml:lang="fr">fr-session2ContainerTransaction5Method1-desc</description>
+ <description xml:lang="de">de-session2ContainerTransaction5Method1-desc</description>
+ <ejb-name>session2</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>session2ContainerTransaction5Method1MethodName</method-name>
+ <method-params>
+ <method-param>session2ContainerTransaction5Method1Param1</method-param>
+ <method-param>session2ContainerTransaction5Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>Mandatory</trans-attribute>
+ </container-transaction>
+ <container-transaction id="session2ContainerTransaction6-id">
+ <description>en-session2ContainerTransaction6-desc</description>
+ <description xml:lang="fr">fr-session2ContainerTransaction6-desc</description>
+ <description xml:lang="de">de-session2ContainerTransaction6-desc</description>
+ <method id="session2ContainerTransaction6Method1-id">
+ <description>en-session2ContainerTransaction6Method1-desc</description>
+ <description xml:lang="fr">fr-session2ContainerTransaction6Method1-desc</description>
+ <description xml:lang="de">de-session2ContainerTransaction6Method1-desc</description>
+ <ejb-name>session2</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>session2ContainerTransaction6Method1MethodName</method-name>
+ <method-params>
+ <method-param>session2ContainerTransaction6Method1Param1</method-param>
+ <method-param>session2ContainerTransaction6Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>Never</trans-attribute>
+ </container-transaction>
+
+ <container-transaction id="entity1ContainerTransaction1-id">
+ <description>en-entity1ContainerTransaction1-desc</description>
+ <description xml:lang="fr">fr-entity1ContainerTransaction1-desc</description>
+ <description xml:lang="de">de-entity1ContainerTransaction1-desc</description>
+ <method id="entity1ContainerTransaction1Method1-id">
+ <description>en-entity1ContainerTransaction1Method1-desc</description>
+ <description xml:lang="fr">fr-entity1ContainerTransaction1Method1-desc</description>
+ <description xml:lang="de">de-entity1ContainerTransaction1Method1-desc</description>
+ <ejb-name>entity1</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>entity1ContainerTransaction1Method1MethodName</method-name>
+ <method-params>
+ <method-param>entity1ContainerTransaction1Method1Param1</method-param>
+ <method-param>entity1ContainerTransaction1Method1Param2</method-param>
+ </method-params>
+ </method>
+ <method id="entity1ContainerTransaction1Method2-id">
+ <description>en-entity1ContainerTransaction1Method2-desc</description>
+ <description xml:lang="fr">fr-entity1ContainerTransaction1Method2-desc</description>
+ <description xml:lang="de">de-entity1ContainerTransaction1Method2-desc</description>
+ <ejb-name>entity1</ejb-name>
+ <method-intf>Remote</method-intf>
+ <method-name>entity1ContainerTransaction1Method2MethodName</method-name>
+ </method>
+ <method id="entity1ContainerTransaction1Method3-id">
+ <description>en-entity1ContainerTransaction1Method3-desc</description>
+ <description xml:lang="fr">fr-entity1ContainerTransaction1Method3-desc</description>
+ <description xml:lang="de">de-entity1ContainerTransaction1Method3-desc</description>
+ <ejb-name>entity1</ejb-name>
+ <method-intf>LocalHome</method-intf>
+ <method-name>entity1ContainerTransaction1Method3MethodName</method-name>
+ </method>
+ <method id="entity1ContainerTransaction1Method4-id">
+ <description>en-entity1ContainerTransaction1Method4-desc</description>
+ <description xml:lang="fr">fr-entity1ContainerTransaction1Method4-desc</description>
+ <description xml:lang="de">de-entity1ContainerTransaction1Method4-desc</description>
+ <ejb-name>entity1</ejb-name>
+ <method-intf>Local</method-intf>
+ <method-name>entity1ContainerTransaction1Method4MethodName</method-name>
+ </method>
+ <method id="entity1ContainerTransaction1Method5-id">
+ <description>en-entity1ContainerTransaction1Method5-desc</description>
+ <description xml:lang="fr">fr-entity1ContainerTransaction1Method5-desc</description>
+ <description xml:lang="de">de-entity1ContainerTransaction1Method5-desc</description>
+ <ejb-name>entity1</ejb-name>
+ <method-intf>ServiceEndpoint</method-intf>
+ <method-name>entity1ContainerTransaction1Method5MethodName</method-name>
+ </method>
+ <trans-attribute>NotSupported</trans-attribute>
+ </container-transaction>
+ <container-transaction id="entity1ContainerTransaction2-id">
+ <description>en-entity1ContainerTransaction2-desc</description>
+ <description xml:lang="fr">fr-entity1ContainerTransaction2-desc</description>
+ <description xml:lang="de">de-entity1ContainerTransaction2-desc</description>
+ <method id="entity1ContainerTransaction2Method1-id">
+ <description>en-entity1ContainerTransaction2Method1-desc</description>
+ <description xml:lang="fr">fr-entity1ContainerTransaction2Method1-desc</description>
+ <description xml:lang="de">de-entity1ContainerTransaction2Method1-desc</description>
+ <ejb-name>entity1</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>entity1ContainerTransaction2Method1MethodName</method-name>
+ <method-params>
+ <method-param>entity1ContainerTransaction2Method1Param1</method-param>
+ <method-param>entity1ContainerTransaction2Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>Supports</trans-attribute>
+ </container-transaction>
+ <container-transaction id="entity1ContainerTransaction3-id">
+ <description>en-entity1ContainerTransaction3-desc</description>
+ <description xml:lang="fr">fr-entity1ContainerTransaction3-desc</description>
+ <description xml:lang="de">de-entity1ContainerTransaction3-desc</description>
+ <method id="entity1ContainerTransaction3Method1-id">
+ <description>en-entity1ContainerTransaction3Method1-desc</description>
+ <description xml:lang="fr">fr-entity1ContainerTransaction3Method1-desc</description>
+ <description xml:lang="de">de-entity1ContainerTransaction3Method1-desc</description>
+ <ejb-name>entity1</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>entity1ContainerTransaction3Method1MethodName</method-name>
+ <method-params>
+ <method-param>entity1ContainerTransaction3Method1Param1</method-param>
+ <method-param>entity1ContainerTransaction3Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>Required</trans-attribute>
+ </container-transaction>
+ <container-transaction id="entity1ContainerTransaction4-id">
+ <description>en-entity1ContainerTransaction4-desc</description>
+ <description xml:lang="fr">fr-entity1ContainerTransaction4-desc</description>
+ <description xml:lang="de">de-entity1ContainerTransaction4-desc</description>
+ <method id="entity1ContainerTransaction4Method1-id">
+ <description>en-entity1ContainerTransaction4Method1-desc</description>
+ <description xml:lang="fr">fr-entity1ContainerTransaction4Method1-desc</description>
+ <description xml:lang="de">de-entity1ContainerTransaction4Method1-desc</description>
+ <ejb-name>entity1</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>entity1ContainerTransaction4Method1MethodName</method-name>
+ <method-params>
+ <method-param>entity1ContainerTransaction4Method1Param1</method-param>
+ <method-param>entity1ContainerTransaction4Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>RequiresNew</trans-attribute>
+ </container-transaction>
+ <container-transaction id="entity1ContainerTransaction5-id">
+ <description>en-entity1ContainerTransaction5-desc</description>
+ <description xml:lang="fr">fr-entity1ContainerTransaction5-desc</description>
+ <description xml:lang="de">de-entity1ContainerTransaction5-desc</description>
+ <method id="entity1ContainerTransaction5Method1-id">
+ <description>en-entity1ContainerTransaction5Method1-desc</description>
+ <description xml:lang="fr">fr-entity1ContainerTransaction5Method1-desc</description>
+ <description xml:lang="de">de-entity1ContainerTransaction5Method1-desc</description>
+ <ejb-name>entity1</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>entity1ContainerTransaction5Method1MethodName</method-name>
+ <method-params>
+ <method-param>entity1ContainerTransaction5Method1Param1</method-param>
+ <method-param>entity1ContainerTransaction5Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>Mandatory</trans-attribute>
+ </container-transaction>
+ <container-transaction id="entity1ContainerTransaction6-id">
+ <description>en-entity1ContainerTransaction6-desc</description>
+ <description xml:lang="fr">fr-entity1ContainerTransaction6-desc</description>
+ <description xml:lang="de">de-entity1ContainerTransaction6-desc</description>
+ <method id="entity1ContainerTransaction6Method1-id">
+ <description>en-entity1ContainerTransaction6Method1-desc</description>
+ <description xml:lang="fr">fr-entity1ContainerTransaction6Method1-desc</description>
+ <description xml:lang="de">de-entity1ContainerTransaction6Method1-desc</description>
+ <ejb-name>entity1</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>entity1ContainerTransaction6Method1MethodName</method-name>
+ <method-params>
+ <method-param>entity1ContainerTransaction6Method1Param1</method-param>
+ <method-param>entity1ContainerTransaction6Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>Never</trans-attribute>
+ </container-transaction>
+
+ <container-transaction id="entity2ContainerTransaction1-id">
+ <description>en-entity2ContainerTransaction1-desc</description>
+ <description xml:lang="fr">fr-entity2ContainerTransaction1-desc</description>
+ <description xml:lang="de">de-entity2ContainerTransaction1-desc</description>
+ <method id="entity2ContainerTransaction1Method1-id">
+ <description>en-entity2ContainerTransaction1Method1-desc</description>
+ <description xml:lang="fr">fr-entity2ContainerTransaction1Method1-desc</description>
+ <description xml:lang="de">de-entity2ContainerTransaction1Method1-desc</description>
+ <ejb-name>entity2</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>entity2ContainerTransaction1Method1MethodName</method-name>
+ <method-params>
+ <method-param>entity2ContainerTransaction1Method1Param1</method-param>
+ <method-param>entity2ContainerTransaction1Method1Param2</method-param>
+ </method-params>
+ </method>
+ <method id="entity2ContainerTransaction1Method2-id">
+ <description>en-entity2ContainerTransaction1Method2-desc</description>
+ <description xml:lang="fr">fr-entity2ContainerTransaction1Method2-desc</description>
+ <description xml:lang="de">de-entity2ContainerTransaction1Method2-desc</description>
+ <ejb-name>entity2</ejb-name>
+ <method-intf>Remote</method-intf>
+ <method-name>entity2ContainerTransaction1Method2MethodName</method-name>
+ </method>
+ <method id="entity2ContainerTransaction1Method3-id">
+ <description>en-entity2ContainerTransaction1Method3-desc</description>
+ <description xml:lang="fr">fr-entity2ContainerTransaction1Method3-desc</description>
+ <description xml:lang="de">de-entity2ContainerTransaction1Method3-desc</description>
+ <ejb-name>entity2</ejb-name>
+ <method-intf>LocalHome</method-intf>
+ <method-name>entity2ContainerTransaction1Method3MethodName</method-name>
+ </method>
+ <method id="entity2ContainerTransaction1Method4-id">
+ <description>en-entity2ContainerTransaction1Method4-desc</description>
+ <description xml:lang="fr">fr-entity2ContainerTransaction1Method4-desc</description>
+ <description xml:lang="de">de-entity2ContainerTransaction1Method4-desc</description>
+ <ejb-name>entity2</ejb-name>
+ <method-intf>Local</method-intf>
+ <method-name>entity2ContainerTransaction1Method4MethodName</method-name>
+ </method>
+ <method id="entity2ContainerTransaction1Method5-id">
+ <description>en-entity2ContainerTransaction1Method5-desc</description>
+ <description xml:lang="fr">fr-entity2ContainerTransaction1Method5-desc</description>
+ <description xml:lang="de">de-entity2ContainerTransaction1Method5-desc</description>
+ <ejb-name>entity2</ejb-name>
+ <method-intf>ServiceEndpoint</method-intf>
+ <method-name>entity2ContainerTransaction1Method5MethodName</method-name>
+ </method>
+ <trans-attribute>NotSupported</trans-attribute>
+ </container-transaction>
+ <container-transaction id="entity2ContainerTransaction2-id">
+ <description>en-entity2ContainerTransaction2-desc</description>
+ <description xml:lang="fr">fr-entity2ContainerTransaction2-desc</description>
+ <description xml:lang="de">de-entity2ContainerTransaction2-desc</description>
+ <method id="entity2ContainerTransaction2Method1-id">
+ <description>en-entity2ContainerTransaction2Method1-desc</description>
+ <description xml:lang="fr">fr-entity2ContainerTransaction2Method1-desc</description>
+ <description xml:lang="de">de-entity2ContainerTransaction2Method1-desc</description>
+ <ejb-name>entity2</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>entity2ContainerTransaction2Method1MethodName</method-name>
+ <method-params>
+ <method-param>entity2ContainerTransaction2Method1Param1</method-param>
+ <method-param>entity2ContainerTransaction2Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>Supports</trans-attribute>
+ </container-transaction>
+ <container-transaction id="entity2ContainerTransaction3-id">
+ <description>en-entity2ContainerTransaction3-desc</description>
+ <description xml:lang="fr">fr-entity2ContainerTransaction3-desc</description>
+ <description xml:lang="de">de-entity2ContainerTransaction3-desc</description>
+ <method id="entity2ContainerTransaction3Method1-id">
+ <description>en-entity2ContainerTransaction3Method1-desc</description>
+ <description xml:lang="fr">fr-entity2ContainerTransaction3Method1-desc</description>
+ <description xml:lang="de">de-entity2ContainerTransaction3Method1-desc</description>
+ <ejb-name>entity2</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>entity2ContainerTransaction3Method1MethodName</method-name>
+ <method-params>
+ <method-param>entity2ContainerTransaction3Method1Param1</method-param>
+ <method-param>entity2ContainerTransaction3Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>Required</trans-attribute>
+ </container-transaction>
+ <container-transaction id="entity2ContainerTransaction4-id">
+ <description>en-entity2ContainerTransaction4-desc</description>
+ <description xml:lang="fr">fr-entity2ContainerTransaction4-desc</description>
+ <description xml:lang="de">de-entity2ContainerTransaction4-desc</description>
+ <method id="entity2ContainerTransaction4Method1-id">
+ <description>en-entity2ContainerTransaction4Method1-desc</description>
+ <description xml:lang="fr">fr-entity2ContainerTransaction4Method1-desc</description>
+ <description xml:lang="de">de-entity2ContainerTransaction4Method1-desc</description>
+ <ejb-name>entity2</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>entity2ContainerTransaction4Method1MethodName</method-name>
+ <method-params>
+ <method-param>entity2ContainerTransaction4Method1Param1</method-param>
+ <method-param>entity2ContainerTransaction4Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>RequiresNew</trans-attribute>
+ </container-transaction>
+ <container-transaction id="entity2ContainerTransaction5-id">
+ <description>en-entity2ContainerTransaction5-desc</description>
+ <description xml:lang="fr">fr-entity2ContainerTransaction5-desc</description>
+ <description xml:lang="de">de-entity2ContainerTransaction5-desc</description>
+ <method id="entity2ContainerTransaction5Method1-id">
+ <description>en-entity2ContainerTransaction5Method1-desc</description>
+ <description xml:lang="fr">fr-entity2ContainerTransaction5Method1-desc</description>
+ <description xml:lang="de">de-entity2ContainerTransaction5Method1-desc</description>
+ <ejb-name>entity2</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>entity2ContainerTransaction5Method1MethodName</method-name>
+ <method-params>
+ <method-param>entity2ContainerTransaction5Method1Param1</method-param>
+ <method-param>entity2ContainerTransaction5Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>Mandatory</trans-attribute>
+ </container-transaction>
+ <container-transaction id="entity2ContainerTransaction6-id">
+ <description>en-entity2ContainerTransaction6-desc</description>
+ <description xml:lang="fr">fr-entity2ContainerTransaction6-desc</description>
+ <description xml:lang="de">de-entity2ContainerTransaction6-desc</description>
+ <method id="entity2ContainerTransaction6Method1-id">
+ <description>en-entity2ContainerTransaction6Method1-desc</description>
+ <description xml:lang="fr">fr-entity2ContainerTransaction6Method1-desc</description>
+ <description xml:lang="de">de-entity2ContainerTransaction6Method1-desc</description>
+ <ejb-name>entity2</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>entity2ContainerTransaction6Method1MethodName</method-name>
+ <method-params>
+ <method-param>entity2ContainerTransaction6Method1Param1</method-param>
+ <method-param>entity2ContainerTransaction6Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>Never</trans-attribute>
+ </container-transaction>
+
+ <container-transaction id="mdb1ContainerTransaction1-id">
+ <description>en-mdb1ContainerTransaction1-desc</description>
+ <description xml:lang="fr">fr-mdb1ContainerTransaction1-desc</description>
+ <description xml:lang="de">de-mdb1ContainerTransaction1-desc</description>
+ <method id="mdb1ContainerTransaction1Method1-id">
+ <description>en-mdb1ContainerTransaction1Method1-desc</description>
+ <description xml:lang="fr">fr-mdb1ContainerTransaction1Method1-desc</description>
+ <description xml:lang="de">de-mdb1ContainerTransaction1Method1-desc</description>
+ <ejb-name>mdb1</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>mdb1ContainerTransaction1Method1MethodName</method-name>
+ <method-params>
+ <method-param>mdb1ContainerTransaction1Method1Param1</method-param>
+ <method-param>mdb1ContainerTransaction1Method1Param2</method-param>
+ </method-params>
+ </method>
+ <method id="mdb1ContainerTransaction1Method2-id">
+ <description>en-mdb1ContainerTransaction1Method2-desc</description>
+ <description xml:lang="fr">fr-mdb1ContainerTransaction1Method2-desc</description>
+ <description xml:lang="de">de-mdb1ContainerTransaction1Method2-desc</description>
+ <ejb-name>mdb1</ejb-name>
+ <method-intf>Remote</method-intf>
+ <method-name>mdb1ContainerTransaction1Method2MethodName</method-name>
+ </method>
+ <method id="mdb1ContainerTransaction1Method3-id">
+ <description>en-mdb1ContainerTransaction1Method3-desc</description>
+ <description xml:lang="fr">fr-mdb1ContainerTransaction1Method3-desc</description>
+ <description xml:lang="de">de-mdb1ContainerTransaction1Method3-desc</description>
+ <ejb-name>mdb1</ejb-name>
+ <method-intf>LocalHome</method-intf>
+ <method-name>mdb1ContainerTransaction1Method3MethodName</method-name>
+ </method>
+ <method id="mdb1ContainerTransaction1Method4-id">
+ <description>en-mdb1ContainerTransaction1Method4-desc</description>
+ <description xml:lang="fr">fr-mdb1ContainerTransaction1Method4-desc</description>
+ <description xml:lang="de">de-mdb1ContainerTransaction1Method4-desc</description>
+ <ejb-name>mdb1</ejb-name>
+ <method-intf>Local</method-intf>
+ <method-name>mdb1ContainerTransaction1Method4MethodName</method-name>
+ </method>
+ <method id="mdb1ContainerTransaction1Method5-id">
+ <description>en-mdb1ContainerTransaction1Method5-desc</description>
+ <description xml:lang="fr">fr-mdb1ContainerTransaction1Method5-desc</description>
+ <description xml:lang="de">de-mdb1ContainerTransaction1Method5-desc</description>
+ <ejb-name>mdb1</ejb-name>
+ <method-intf>ServiceEndpoint</method-intf>
+ <method-name>mdb1ContainerTransaction1Method5MethodName</method-name>
+ </method>
+ <trans-attribute>NotSupported</trans-attribute>
+ </container-transaction>
+ <container-transaction id="mdb1ContainerTransaction2-id">
+ <description>en-mdb1ContainerTransaction2-desc</description>
+ <description xml:lang="fr">fr-mdb1ContainerTransaction2-desc</description>
+ <description xml:lang="de">de-mdb1ContainerTransaction2-desc</description>
+ <method id="mdb1ContainerTransaction2Method1-id">
+ <description>en-mdb1ContainerTransaction2Method1-desc</description>
+ <description xml:lang="fr">fr-mdb1ContainerTransaction2Method1-desc</description>
+ <description xml:lang="de">de-mdb1ContainerTransaction2Method1-desc</description>
+ <ejb-name>mdb1</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>mdb1ContainerTransaction2Method1MethodName</method-name>
+ <method-params>
+ <method-param>mdb1ContainerTransaction2Method1Param1</method-param>
+ <method-param>mdb1ContainerTransaction2Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>Supports</trans-attribute>
+ </container-transaction>
+ <container-transaction id="mdb1ContainerTransaction3-id">
+ <description>en-mdb1ContainerTransaction3-desc</description>
+ <description xml:lang="fr">fr-mdb1ContainerTransaction3-desc</description>
+ <description xml:lang="de">de-mdb1ContainerTransaction3-desc</description>
+ <method id="mdb1ContainerTransaction3Method1-id">
+ <description>en-mdb1ContainerTransaction3Method1-desc</description>
+ <description xml:lang="fr">fr-mdb1ContainerTransaction3Method1-desc</description>
+ <description xml:lang="de">de-mdb1ContainerTransaction3Method1-desc</description>
+ <ejb-name>mdb1</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>mdb1ContainerTransaction3Method1MethodName</method-name>
+ <method-params>
+ <method-param>mdb1ContainerTransaction3Method1Param1</method-param>
+ <method-param>mdb1ContainerTransaction3Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>Required</trans-attribute>
+ </container-transaction>
+ <container-transaction id="mdb1ContainerTransaction4-id">
+ <description>en-mdb1ContainerTransaction4-desc</description>
+ <description xml:lang="fr">fr-mdb1ContainerTransaction4-desc</description>
+ <description xml:lang="de">de-mdb1ContainerTransaction4-desc</description>
+ <method id="mdb1ContainerTransaction4Method1-id">
+ <description>en-mdb1ContainerTransaction4Method1-desc</description>
+ <description xml:lang="fr">fr-mdb1ContainerTransaction4Method1-desc</description>
+ <description xml:lang="de">de-mdb1ContainerTransaction4Method1-desc</description>
+ <ejb-name>mdb1</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>mdb1ContainerTransaction4Method1MethodName</method-name>
+ <method-params>
+ <method-param>mdb1ContainerTransaction4Method1Param1</method-param>
+ <method-param>mdb1ContainerTransaction4Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>RequiresNew</trans-attribute>
+ </container-transaction>
+ <container-transaction id="mdb1ContainerTransaction5-id">
+ <description>en-mdb1ContainerTransaction5-desc</description>
+ <description xml:lang="fr">fr-mdb1ContainerTransaction5-desc</description>
+ <description xml:lang="de">de-mdb1ContainerTransaction5-desc</description>
+ <method id="mdb1ContainerTransaction5Method1-id">
+ <description>en-mdb1ContainerTransaction5Method1-desc</description>
+ <description xml:lang="fr">fr-mdb1ContainerTransaction5Method1-desc</description>
+ <description xml:lang="de">de-mdb1ContainerTransaction5Method1-desc</description>
+ <ejb-name>mdb1</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>mdb1ContainerTransaction5Method1MethodName</method-name>
+ <method-params>
+ <method-param>mdb1ContainerTransaction5Method1Param1</method-param>
+ <method-param>mdb1ContainerTransaction5Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>Mandatory</trans-attribute>
+ </container-transaction>
+ <container-transaction id="mdb1ContainerTransaction6-id">
+ <description>en-mdb1ContainerTransaction6-desc</description>
+ <description xml:lang="fr">fr-mdb1ContainerTransaction6-desc</description>
+ <description xml:lang="de">de-mdb1ContainerTransaction6-desc</description>
+ <method id="mdb1ContainerTransaction6Method1-id">
+ <description>en-mdb1ContainerTransaction6Method1-desc</description>
+ <description xml:lang="fr">fr-mdb1ContainerTransaction6Method1-desc</description>
+ <description xml:lang="de">de-mdb1ContainerTransaction6Method1-desc</description>
+ <ejb-name>mdb1</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>mdb1ContainerTransaction6Method1MethodName</method-name>
+ <method-params>
+ <method-param>mdb1ContainerTransaction6Method1Param1</method-param>
+ <method-param>mdb1ContainerTransaction6Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>Never</trans-attribute>
+ </container-transaction>
+
+ <container-transaction id="mdb2ContainerTransaction1-id">
+ <description>en-mdb2ContainerTransaction1-desc</description>
+ <description xml:lang="fr">fr-mdb2ContainerTransaction1-desc</description>
+ <description xml:lang="de">de-mdb2ContainerTransaction1-desc</description>
+ <method id="mdb2ContainerTransaction1Method1-id">
+ <description>en-mdb2ContainerTransaction1Method1-desc</description>
+ <description xml:lang="fr">fr-mdb2ContainerTransaction1Method1-desc</description>
+ <description xml:lang="de">de-mdb2ContainerTransaction1Method1-desc</description>
+ <ejb-name>mdb2</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>mdb2ContainerTransaction1Method1MethodName</method-name>
+ <method-params>
+ <method-param>mdb2ContainerTransaction1Method1Param1</method-param>
+ <method-param>mdb2ContainerTransaction1Method1Param2</method-param>
+ </method-params>
+ </method>
+ <method id="mdb2ContainerTransaction1Method2-id">
+ <description>en-mdb2ContainerTransaction1Method2-desc</description>
+ <description xml:lang="fr">fr-mdb2ContainerTransaction1Method2-desc</description>
+ <description xml:lang="de">de-mdb2ContainerTransaction1Method2-desc</description>
+ <ejb-name>mdb2</ejb-name>
+ <method-intf>Remote</method-intf>
+ <method-name>mdb2ContainerTransaction1Method2MethodName</method-name>
+ </method>
+ <method id="mdb2ContainerTransaction1Method3-id">
+ <description>en-mdb2ContainerTransaction1Method3-desc</description>
+ <description xml:lang="fr">fr-mdb2ContainerTransaction1Method3-desc</description>
+ <description xml:lang="de">de-mdb2ContainerTransaction1Method3-desc</description>
+ <ejb-name>mdb2</ejb-name>
+ <method-intf>LocalHome</method-intf>
+ <method-name>mdb2ContainerTransaction1Method3MethodName</method-name>
+ </method>
+ <method id="mdb2ContainerTransaction1Method4-id">
+ <description>en-mdb2ContainerTransaction1Method4-desc</description>
+ <description xml:lang="fr">fr-mdb2ContainerTransaction1Method4-desc</description>
+ <description xml:lang="de">de-mdb2ContainerTransaction1Method4-desc</description>
+ <ejb-name>mdb2</ejb-name>
+ <method-intf>Local</method-intf>
+ <method-name>mdb2ContainerTransaction1Method4MethodName</method-name>
+ </method>
+ <method id="mdb2ContainerTransaction1Method5-id">
+ <description>en-mdb2ContainerTransaction1Method5-desc</description>
+ <description xml:lang="fr">fr-mdb2ContainerTransaction1Method5-desc</description>
+ <description xml:lang="de">de-mdb2ContainerTransaction1Method5-desc</description>
+ <ejb-name>mdb2</ejb-name>
+ <method-intf>ServiceEndpoint</method-intf>
+ <method-name>mdb2ContainerTransaction1Method5MethodName</method-name>
+ </method>
+ <trans-attribute>NotSupported</trans-attribute>
+ </container-transaction>
+ <container-transaction id="mdb2ContainerTransaction2-id">
+ <description>en-mdb2ContainerTransaction2-desc</description>
+ <description xml:lang="fr">fr-mdb2ContainerTransaction2-desc</description>
+ <description xml:lang="de">de-mdb2ContainerTransaction2-desc</description>
+ <method id="mdb2ContainerTransaction2Method1-id">
+ <description>en-mdb2ContainerTransaction2Method1-desc</description>
+ <description xml:lang="fr">fr-mdb2ContainerTransaction2Method1-desc</description>
+ <description xml:lang="de">de-mdb2ContainerTransaction2Method1-desc</description>
+ <ejb-name>mdb2</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>mdb2ContainerTransaction2Method1MethodName</method-name>
+ <method-params>
+ <method-param>mdb2ContainerTransaction2Method1Param1</method-param>
+ <method-param>mdb2ContainerTransaction2Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>Supports</trans-attribute>
+ </container-transaction>
+ <container-transaction id="mdb2ContainerTransaction3-id">
+ <description>en-mdb2ContainerTransaction3-desc</description>
+ <description xml:lang="fr">fr-mdb2ContainerTransaction3-desc</description>
+ <description xml:lang="de">de-mdb2ContainerTransaction3-desc</description>
+ <method id="mdb2ContainerTransaction3Method1-id">
+ <description>en-mdb2ContainerTransaction3Method1-desc</description>
+ <description xml:lang="fr">fr-mdb2ContainerTransaction3Method1-desc</description>
+ <description xml:lang="de">de-mdb2ContainerTransaction3Method1-desc</description>
+ <ejb-name>mdb2</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>mdb2ContainerTransaction3Method1MethodName</method-name>
+ <method-params>
+ <method-param>mdb2ContainerTransaction3Method1Param1</method-param>
+ <method-param>mdb2ContainerTransaction3Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>Required</trans-attribute>
+ </container-transaction>
+ <container-transaction id="mdb2ContainerTransaction4-id">
+ <description>en-mdb2ContainerTransaction4-desc</description>
+ <description xml:lang="fr">fr-mdb2ContainerTransaction4-desc</description>
+ <description xml:lang="de">de-mdb2ContainerTransaction4-desc</description>
+ <method id="mdb2ContainerTransaction4Method1-id">
+ <description>en-mdb2ContainerTransaction4Method1-desc</description>
+ <description xml:lang="fr">fr-mdb2ContainerTransaction4Method1-desc</description>
+ <description xml:lang="de">de-mdb2ContainerTransaction4Method1-desc</description>
+ <ejb-name>mdb2</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>mdb2ContainerTransaction4Method1MethodName</method-name>
+ <method-params>
+ <method-param>mdb2ContainerTransaction4Method1Param1</method-param>
+ <method-param>mdb2ContainerTransaction4Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>RequiresNew</trans-attribute>
+ </container-transaction>
+ <container-transaction id="mdb2ContainerTransaction5-id">
+ <description>en-mdb2ContainerTransaction5-desc</description>
+ <description xml:lang="fr">fr-mdb2ContainerTransaction5-desc</description>
+ <description xml:lang="de">de-mdb2ContainerTransaction5-desc</description>
+ <method id="mdb2ContainerTransaction5Method1-id">
+ <description>en-mdb2ContainerTransaction5Method1-desc</description>
+ <description xml:lang="fr">fr-mdb2ContainerTransaction5Method1-desc</description>
+ <description xml:lang="de">de-mdb2ContainerTransaction5Method1-desc</description>
+ <ejb-name>mdb2</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>mdb2ContainerTransaction5Method1MethodName</method-name>
+ <method-params>
+ <method-param>mdb2ContainerTransaction5Method1Param1</method-param>
+ <method-param>mdb2ContainerTransaction5Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>Mandatory</trans-attribute>
+ </container-transaction>
+ <container-transaction id="mdb2ContainerTransaction6-id">
+ <description>en-mdb2ContainerTransaction6-desc</description>
+ <description xml:lang="fr">fr-mdb2ContainerTransaction6-desc</description>
+ <description xml:lang="de">de-mdb2ContainerTransaction6-desc</description>
+ <method id="mdb2ContainerTransaction6Method1-id">
+ <description>en-mdb2ContainerTransaction6Method1-desc</description>
+ <description xml:lang="fr">fr-mdb2ContainerTransaction6Method1-desc</description>
+ <description xml:lang="de">de-mdb2ContainerTransaction6Method1-desc</description>
+ <ejb-name>mdb2</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>mdb2ContainerTransaction6Method1MethodName</method-name>
+ <method-params>
+ <method-param>mdb2ContainerTransaction6Method1Param1</method-param>
+ <method-param>mdb2ContainerTransaction6Method1Param2</method-param>
+ </method-params>
+ </method>
+ <trans-attribute>Never</trans-attribute>
+ </container-transaction>
+
+ <interceptor-binding id="interceptorBinding1-id">
+ <description>en-interceptorBinding1-desc</description>
+ <description xml:lang="fr">fr-interceptorBinding1-desc</description>
+ <description xml:lang="de">de-interceptorBinding1-desc</description>
+ <ejb-name>interceptorBinding1EjbName</ejb-name>
+ <interceptor-class>interceptorBinding1Class1</interceptor-class>
+ <interceptor-class>interceptorBinding1Class2</interceptor-class>
+ <exclude-default-interceptors>true</exclude-default-interceptors>
+ <exclude-class-interceptors>true</exclude-class-interceptors>
+ <method id="interceptorBinding1Method-id">
+ <method-name>interceptorBinding1Method</method-name>
+ <method-params>
+ <method-param>interceptorBinding1MethodParam1</method-param>
+ <method-param>interceptorBinding1MethodParam2</method-param>
+ </method-params>
+ </method>
+ </interceptor-binding>
+ <interceptor-binding id="interceptorBinding2-id">
+ <description>en-interceptorBinding2-desc</description>
+ <description xml:lang="fr">fr-interceptorBinding2-desc</description>
+ <description xml:lang="de">de-interceptorBinding2-desc</description>
+ <ejb-name>interceptorBinding2EjbName</ejb-name>
+ <interceptor-order id="interceptorBinding2InterceptorOrder-id">
+ <interceptor-class>interceptorBinding2Class1</interceptor-class>
+ <interceptor-class>interceptorBinding2Class2</interceptor-class>
+ </interceptor-order>
+ <exclude-default-interceptors>false</exclude-default-interceptors>
+ <exclude-class-interceptors>false</exclude-class-interceptors>
+ <method id="interceptorBinding2Method-id">
+ <method-name>interceptorBinding2Method</method-name>
+ <method-params>
+ <method-param>interceptorBinding2MethodParam1</method-param>
+ <method-param>interceptorBinding2MethodParam2</method-param>
+ </method-params>
+ </method>
+ </interceptor-binding>
+
+ <message-destination id="messageDestination1-id">
+ <description>en-messageDestination1-desc</description>
+ <description xml:lang="fr">fr-messageDestination1-desc</description>
+ <description xml:lang="de">de-messageDestination1-desc</description>
+ <display-name>en-messageDestination1-disp</display-name>
+ <display-name xml:lang="fr">fr-messageDestination1-disp</display-name>
+ <display-name xml:lang="de">de-messageDestination1-disp</display-name>
+ <icon id="en-messageDestination1-icon-id">
+ <small-icon>en-messageDestination1-small-icon</small-icon>
+ <large-icon>en-messageDestination1-large-icon</large-icon>
+ </icon>
+ <icon xml:lang="fr" id="fr-messageDestination1-icon-id">
+ <small-icon>fr-messageDestination1-small-icon</small-icon>
+ <large-icon>fr-messageDestination1-large-icon</large-icon>
+ </icon>
+ <icon xml:lang="de" id="de-messageDestination1-icon-id">
+ <small-icon>de-messageDestination1-small-icon</small-icon>
+ <large-icon>de-messageDestination1-large-icon</large-icon>
+ </icon>
+ <message-destination-name>messageDestination1Name</message-destination-name>
+ <mapped-name>messageDestination1MappedName</mapped-name>
+ </message-destination>
+ <message-destination id="messageDestination2-id">
+ <description>en-messageDestination2-desc</description>
+ <description xml:lang="fr">fr-messageDestination2-desc</description>
+ <description xml:lang="de">de-messageDestination2-desc</description>
+ <display-name>en-messageDestination2-disp</display-name>
+ <display-name xml:lang="fr">fr-messageDestination2-disp</display-name>
+ <display-name xml:lang="de">de-messageDestination2-disp</display-name>
+ <icon id="en-messageDestination2-icon-id">
+ <small-icon>en-messageDestination2-small-icon</small-icon>
+ <large-icon>en-messageDestination2-large-icon</large-icon>
+ </icon>
+ <icon xml:lang="fr" id="fr-messageDestination2-icon-id">
+ <small-icon>fr-messageDestination2-small-icon</small-icon>
+ <large-icon>fr-messageDestination2-large-icon</large-icon>
+ </icon>
+ <icon xml:lang="de" id="de-messageDestination2-icon-id">
+ <small-icon>de-messageDestination2-small-icon</small-icon>
+ <large-icon>de-messageDestination2-large-icon</large-icon>
+ </icon>
+ <message-destination-name>messageDestination2Name</message-destination-name>
+ <mapped-name>messageDestination2MappedName</mapped-name>
+ </message-destination>
+
+ <exclude-list id="excludeList-id">
+ <description>en-excludeList-desc</description>
+ <description xml:lang="fr">fr-excludeList-desc</description>
+ <description xml:lang="de">de-excludeList-desc</description>
+ <method id="excludeListMethod1-id">
+ <description>en-excludeListMethod1-desc</description>
+ <description xml:lang="fr">fr-excludeListMethod1-desc</description>
+ <description xml:lang="de">de-excludeListMethod1-desc</description>
+ <ejb-name>excludeListMethod1EjbName</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>excludeListMethod1MethodName</method-name>
+ <method-params>
+ <method-param>excludeListMethod1Param1</method-param>
+ <method-param>excludeListMethod1Param2</method-param>
+ </method-params>
+ </method>
+ <method id="excludeListMethod2-id">
+ <description>en-excludeListMethod2-desc</description>
+ <description xml:lang="fr">fr-excludeListMethod2-desc</description>
+ <description xml:lang="de">de-excludeListMethod2-desc</description>
+ <ejb-name>excludeListMethod2EjbName</ejb-name>
+ <method-intf>Remote</method-intf>
+ <method-name>excludeListMethod2MethodName</method-name>
+ </method>
+ <method id="excludeListMethod3-id">
+ <description>en-excludeListMethod3-desc</description>
+ <description xml:lang="fr">fr-excludeListMethod3-desc</description>
+ <description xml:lang="de">de-excludeListMethod3-desc</description>
+ <ejb-name>excludeListMethod3EjbName</ejb-name>
+ <method-intf>LocalHome</method-intf>
+ <method-name>excludeListMethod3MethodName</method-name>
+ </method>
+ <method id="excludeListMethod4-id">
+ <description>en-excludeListMethod4-desc</description>
+ <description xml:lang="fr">fr-excludeListMethod4-desc</description>
+ <description xml:lang="de">de-excludeListMethod4-desc</description>
+ <ejb-name>excludeListMethod4EjbName</ejb-name>
+ <method-intf>Local</method-intf>
+ <method-name>excludeListMethod4MethodName</method-name>
+ </method>
+ <method id="excludeListMethod5-id">
+ <description>en-excludeListMethod5-desc</description>
+ <description xml:lang="fr">fr-excludeListMethod5-desc</description>
+ <description xml:lang="de">de-excludeListMethod5-desc</description>
+ <ejb-name>excludeListMethod5EjbName</ejb-name>
+ <method-intf>ServiceEndpoint</method-intf>
+ <method-name>excludeListMethod5MethodName</method-name>
+ </method>
+
+ <method id="session1ExcludeListMethod1-id">
+ <description>en-session1ExcludeListMethod1-desc</description>
+ <description xml:lang="fr">fr-session1ExcludeListMethod1-desc</description>
+ <description xml:lang="de">de-session1ExcludeListMethod1-desc</description>
+ <ejb-name>session1</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>session1ExcludeListMethod1MethodName</method-name>
+ <method-params>
+ <method-param>session1ExcludeListMethod1Param1</method-param>
+ <method-param>session1ExcludeListMethod1Param2</method-param>
+ </method-params>
+ </method>
+ <method id="session1ExcludeListMethod2-id">
+ <description>en-session1ExcludeListMethod2-desc</description>
+ <description xml:lang="fr">fr-session1ExcludeListMethod2-desc</description>
+ <description xml:lang="de">de-session1ExcludeListMethod2-desc</description>
+ <ejb-name>session1</ejb-name>
+ <method-intf>Remote</method-intf>
+ <method-name>session1ExcludeListMethod2MethodName</method-name>
+ </method>
+ <method id="session1ExcludeListMethod3-id">
+ <description>en-session1ExcludeListMethod3-desc</description>
+ <description xml:lang="fr">fr-session1ExcludeListMethod3-desc</description>
+ <description xml:lang="de">de-session1ExcludeListMethod3-desc</description>
+ <ejb-name>session1</ejb-name>
+ <method-intf>LocalHome</method-intf>
+ <method-name>session1ExcludeListMethod3MethodName</method-name>
+ </method>
+ <method id="session1ExcludeListMethod4-id">
+ <description>en-session1ExcludeListMethod4-desc</description>
+ <description xml:lang="fr">fr-session1ExcludeListMethod4-desc</description>
+ <description xml:lang="de">de-session1ExcludeListMethod4-desc</description>
+ <ejb-name>session1</ejb-name>
+ <method-intf>Local</method-intf>
+ <method-name>session1ExcludeListMethod4MethodName</method-name>
+ </method>
+ <method id="session1ExcludeListMethod5-id">
+ <description>en-session1ExcludeListMethod5-desc</description>
+ <description xml:lang="fr">fr-session1ExcludeListMethod5-desc</description>
+ <description xml:lang="de">de-session1ExcludeListMethod5-desc</description>
+ <ejb-name>session1</ejb-name>
+ <method-intf>ServiceEndpoint</method-intf>
+ <method-name>session1ExcludeListMethod5MethodName</method-name>
+ </method>
+
+ <method id="session2ExcludeListMethod1-id">
+ <description>en-session2ExcludeListMethod1-desc</description>
+ <description xml:lang="fr">fr-session2ExcludeListMethod1-desc</description>
+ <description xml:lang="de">de-session2ExcludeListMethod1-desc</description>
+ <ejb-name>session2</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>session2ExcludeListMethod1MethodName</method-name>
+ <method-params>
+ <method-param>session2ExcludeListMethod1Param1</method-param>
+ <method-param>session2ExcludeListMethod1Param2</method-param>
+ </method-params>
+ </method>
+ <method id="session2ExcludeListMethod2-id">
+ <description>en-session2ExcludeListMethod2-desc</description>
+ <description xml:lang="fr">fr-session2ExcludeListMethod2-desc</description>
+ <description xml:lang="de">de-session2ExcludeListMethod2-desc</description>
+ <ejb-name>session2</ejb-name>
+ <method-intf>Remote</method-intf>
+ <method-name>session2ExcludeListMethod2MethodName</method-name>
+ </method>
+ <method id="session2ExcludeListMethod3-id">
+ <description>en-session2ExcludeListMethod3-desc</description>
+ <description xml:lang="fr">fr-session2ExcludeListMethod3-desc</description>
+ <description xml:lang="de">de-session2ExcludeListMethod3-desc</description>
+ <ejb-name>session2</ejb-name>
+ <method-intf>LocalHome</method-intf>
+ <method-name>session2ExcludeListMethod3MethodName</method-name>
+ </method>
+ <method id="session2ExcludeListMethod4-id">
+ <description>en-session2ExcludeListMethod4-desc</description>
+ <description xml:lang="fr">fr-session2ExcludeListMethod4-desc</description>
+ <description xml:lang="de">de-session2ExcludeListMethod4-desc</description>
+ <ejb-name>session2</ejb-name>
+ <method-intf>Local</method-intf>
+ <method-name>session2ExcludeListMethod4MethodName</method-name>
+ </method>
+ <method id="session2ExcludeListMethod5-id">
+ <description>en-session2ExcludeListMethod5-desc</description>
+ <description xml:lang="fr">fr-session2ExcludeListMethod5-desc</description>
+ <description xml:lang="de">de-session2ExcludeListMethod5-desc</description>
+ <ejb-name>session2</ejb-name>
+ <method-intf>ServiceEndpoint</method-intf>
+ <method-name>session2ExcludeListMethod5MethodName</method-name>
+ </method>
+
+ <method id="entity1ExcludeListMethod1-id">
+ <description>en-entity1ExcludeListMethod1-desc</description>
+ <description xml:lang="fr">fr-entity1ExcludeListMethod1-desc</description>
+ <description xml:lang="de">de-entity1ExcludeListMethod1-desc</description>
+ <ejb-name>entity1</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>entity1ExcludeListMethod1MethodName</method-name>
+ <method-params>
+ <method-param>entity1ExcludeListMethod1Param1</method-param>
+ <method-param>entity1ExcludeListMethod1Param2</method-param>
+ </method-params>
+ </method>
+ <method id="entity1ExcludeListMethod2-id">
+ <description>en-entity1ExcludeListMethod2-desc</description>
+ <description xml:lang="fr">fr-entity1ExcludeListMethod2-desc</description>
+ <description xml:lang="de">de-entity1ExcludeListMethod2-desc</description>
+ <ejb-name>entity1</ejb-name>
+ <method-intf>Remote</method-intf>
+ <method-name>entity1ExcludeListMethod2MethodName</method-name>
+ </method>
+ <method id="entity1ExcludeListMethod3-id">
+ <description>en-entity1ExcludeListMethod3-desc</description>
+ <description xml:lang="fr">fr-entity1ExcludeListMethod3-desc</description>
+ <description xml:lang="de">de-entity1ExcludeListMethod3-desc</description>
+ <ejb-name>entity1</ejb-name>
+ <method-intf>LocalHome</method-intf>
+ <method-name>entity1ExcludeListMethod3MethodName</method-name>
+ </method>
+ <method id="entity1ExcludeListMethod4-id">
+ <description>en-entity1ExcludeListMethod4-desc</description>
+ <description xml:lang="fr">fr-entity1ExcludeListMethod4-desc</description>
+ <description xml:lang="de">de-entity1ExcludeListMethod4-desc</description>
+ <ejb-name>entity1</ejb-name>
+ <method-intf>Local</method-intf>
+ <method-name>entity1ExcludeListMethod4MethodName</method-name>
+ </method>
+ <method id="entity1ExcludeListMethod5-id">
+ <description>en-entity1ExcludeListMethod5-desc</description>
+ <description xml:lang="fr">fr-entity1ExcludeListMethod5-desc</description>
+ <description xml:lang="de">de-entity1ExcludeListMethod5-desc</description>
+ <ejb-name>entity1</ejb-name>
+ <method-intf>ServiceEndpoint</method-intf>
+ <method-name>entity1ExcludeListMethod5MethodName</method-name>
+ </method>
+
+ <method id="entity2ExcludeListMethod1-id">
+ <description>en-entity2ExcludeListMethod1-desc</description>
+ <description xml:lang="fr">fr-entity2ExcludeListMethod1-desc</description>
+ <description xml:lang="de">de-entity2ExcludeListMethod1-desc</description>
+ <ejb-name>entity2</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>entity2ExcludeListMethod1MethodName</method-name>
+ <method-params>
+ <method-param>entity2ExcludeListMethod1Param1</method-param>
+ <method-param>entity2ExcludeListMethod1Param2</method-param>
+ </method-params>
+ </method>
+ <method id="entity2ExcludeListMethod2-id">
+ <description>en-entity2ExcludeListMethod2-desc</description>
+ <description xml:lang="fr">fr-entity2ExcludeListMethod2-desc</description>
+ <description xml:lang="de">de-entity2ExcludeListMethod2-desc</description>
+ <ejb-name>entity2</ejb-name>
+ <method-intf>Remote</method-intf>
+ <method-name>entity2ExcludeListMethod2MethodName</method-name>
+ </method>
+ <method id="entity2ExcludeListMethod3-id">
+ <description>en-entity2ExcludeListMethod3-desc</description>
+ <description xml:lang="fr">fr-entity2ExcludeListMethod3-desc</description>
+ <description xml:lang="de">de-entity2ExcludeListMethod3-desc</description>
+ <ejb-name>entity2</ejb-name>
+ <method-intf>LocalHome</method-intf>
+ <method-name>entity2ExcludeListMethod3MethodName</method-name>
+ </method>
+ <method id="entity2ExcludeListMethod4-id">
+ <description>en-entity2ExcludeListMethod4-desc</description>
+ <description xml:lang="fr">fr-entity2ExcludeListMethod4-desc</description>
+ <description xml:lang="de">de-entity2ExcludeListMethod4-desc</description>
+ <ejb-name>entity2</ejb-name>
+ <method-intf>Local</method-intf>
+ <method-name>entity2ExcludeListMethod4MethodName</method-name>
+ </method>
+ <method id="entity2ExcludeListMethod5-id">
+ <description>en-entity2ExcludeListMethod5-desc</description>
+ <description xml:lang="fr">fr-entity2ExcludeListMethod5-desc</description>
+ <description xml:lang="de">de-entity2ExcludeListMethod5-desc</description>
+ <ejb-name>entity2</ejb-name>
+ <method-intf>ServiceEndpoint</method-intf>
+ <method-name>entity2ExcludeListMethod5MethodName</method-name>
+ </method>
+
+ <method id="mdb1ExcludeListMethod1-id">
+ <description>en-mdb1ExcludeListMethod1-desc</description>
+ <description xml:lang="fr">fr-mdb1ExcludeListMethod1-desc</description>
+ <description xml:lang="de">de-mdb1ExcludeListMethod1-desc</description>
+ <ejb-name>mdb1</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>mdb1ExcludeListMethod1MethodName</method-name>
+ <method-params>
+ <method-param>mdb1ExcludeListMethod1Param1</method-param>
+ <method-param>mdb1ExcludeListMethod1Param2</method-param>
+ </method-params>
+ </method>
+ <method id="mdb1ExcludeListMethod2-id">
+ <description>en-mdb1ExcludeListMethod2-desc</description>
+ <description xml:lang="fr">fr-mdb1ExcludeListMethod2-desc</description>
+ <description xml:lang="de">de-mdb1ExcludeListMethod2-desc</description>
+ <ejb-name>mdb1</ejb-name>
+ <method-intf>Remote</method-intf>
+ <method-name>mdb1ExcludeListMethod2MethodName</method-name>
+ </method>
+ <method id="mdb1ExcludeListMethod3-id">
+ <description>en-mdb1ExcludeListMethod3-desc</description>
+ <description xml:lang="fr">fr-mdb1ExcludeListMethod3-desc</description>
+ <description xml:lang="de">de-mdb1ExcludeListMethod3-desc</description>
+ <ejb-name>mdb1</ejb-name>
+ <method-intf>LocalHome</method-intf>
+ <method-name>mdb1ExcludeListMethod3MethodName</method-name>
+ </method>
+ <method id="mdb1ExcludeListMethod4-id">
+ <description>en-mdb1ExcludeListMethod4-desc</description>
+ <description xml:lang="fr">fr-mdb1ExcludeListMethod4-desc</description>
+ <description xml:lang="de">de-mdb1ExcludeListMethod4-desc</description>
+ <ejb-name>mdb1</ejb-name>
+ <method-intf>Local</method-intf>
+ <method-name>mdb1ExcludeListMethod4MethodName</method-name>
+ </method>
+ <method id="mdb1ExcludeListMethod5-id">
+ <description>en-mdb1ExcludeListMethod5-desc</description>
+ <description xml:lang="fr">fr-mdb1ExcludeListMethod5-desc</description>
+ <description xml:lang="de">de-mdb1ExcludeListMethod5-desc</description>
+ <ejb-name>mdb1</ejb-name>
+ <method-intf>ServiceEndpoint</method-intf>
+ <method-name>mdb1ExcludeListMethod5MethodName</method-name>
+ </method>
+
+ <method id="mdb2ExcludeListMethod1-id">
+ <description>en-mdb2ExcludeListMethod1-desc</description>
+ <description xml:lang="fr">fr-mdb2ExcludeListMethod1-desc</description>
+ <description xml:lang="de">de-mdb2ExcludeListMethod1-desc</description>
+ <ejb-name>mdb2</ejb-name>
+ <method-intf>Home</method-intf>
+ <method-name>mdb2ExcludeListMethod1MethodName</method-name>
+ <method-params>
+ <method-param>mdb2ExcludeListMethod1Param1</method-param>
+ <method-param>mdb2ExcludeListMethod1Param2</method-param>
+ </method-params>
+ </method>
+ <method id="mdb2ExcludeListMethod2-id">
+ <description>en-mdb2ExcludeListMethod2-desc</description>
+ <description xml:lang="fr">fr-mdb2ExcludeListMethod2-desc</description>
+ <description xml:lang="de">de-mdb2ExcludeListMethod2-desc</description>
+ <ejb-name>mdb2</ejb-name>
+ <method-intf>Remote</method-intf>
+ <method-name>mdb2ExcludeListMethod2MethodName</method-name>
+ </method>
+ <method id="mdb2ExcludeListMethod3-id">
+ <description>en-mdb2ExcludeListMethod3-desc</description>
+ <description xml:lang="fr">fr-mdb2ExcludeListMethod3-desc</description>
+ <description xml:lang="de">de-mdb2ExcludeListMethod3-desc</description>
+ <ejb-name>mdb2</ejb-name>
+ <method-intf>LocalHome</method-intf>
+ <method-name>mdb2ExcludeListMethod3MethodName</method-name>
+ </method>
+ <method id="mdb2ExcludeListMethod4-id">
+ <description>en-mdb2ExcludeListMethod4-desc</description>
+ <description xml:lang="fr">fr-mdb2ExcludeListMethod4-desc</description>
+ <description xml:lang="de">de-mdb2ExcludeListMethod4-desc</description>
+ <ejb-name>mdb2</ejb-name>
+ <method-intf>Local</method-intf>
+ <method-name>mdb2ExcludeListMethod4MethodName</method-name>
+ </method>
+ <method id="mdb2ExcludeListMethod5-id">
+ <description>en-mdb2ExcludeListMethod5-desc</description>
+ <description xml:lang="fr">fr-mdb2ExcludeListMethod5-desc</description>
+ <description xml:lang="de">de-mdb2ExcludeListMethod5-desc</description>
+ <ejb-name>mdb2</ejb-name>
+ <method-intf>ServiceEndpoint</method-intf>
+ <method-name>mdb2ExcludeListMethod5MethodName</method-name>
+ </method>
+
+ </exclude-list>
+
+ <application-exception id="applicationException1-id">
+ <exception-class>applicationException1Class</exception-class>
+ <rollback>true</rollback>
+ </application-exception>
+ <application-exception id="applicationException2-id">
+ <exception-class>applicationException2Class</exception-class>
+ <rollback>false</rollback>
+ </application-exception>
+
+ </assembly-descriptor>
+
+ <ejb-client-jar>some/path/client.jar</ejb-client-jar>
+
+</ejb-jar>
\ No newline at end of file
Added: jbossxb-builder/trunk/src/test/resources/org/jboss/test/ejb/metadata/test/EjbJar3x_testDescriptionDefaultLanguage.xml
===================================================================
--- jbossxb-builder/trunk/src/test/resources/org/jboss/test/ejb/metadata/test/EjbJar3x_testDescriptionDefaultLanguage.xml (rev 0)
+++ jbossxb-builder/trunk/src/test/resources/org/jboss/test/ejb/metadata/test/EjbJar3x_testDescriptionDefaultLanguage.xml 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<ejb-jar 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/ejb-jar_3_0.xsd"
+ version="3.0">
+ <description>Hello</description>
+</ejb-jar>
\ No newline at end of file
Added: jbossxb-builder/trunk/src/test/resources/org/jboss/test/ejb/metadata/test/EjbJar3x_testDisplayNameDefaultLanguage.xml
===================================================================
--- jbossxb-builder/trunk/src/test/resources/org/jboss/test/ejb/metadata/test/EjbJar3x_testDisplayNameDefaultLanguage.xml (rev 0)
+++ jbossxb-builder/trunk/src/test/resources/org/jboss/test/ejb/metadata/test/EjbJar3x_testDisplayNameDefaultLanguage.xml 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<ejb-jar 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/ejb-jar_3_0.xsd"
+ version="3.0">
+ <display-name>Hello</display-name>
+</ejb-jar>
\ No newline at end of file
Added: jbossxb-builder/trunk/src/test/resources/org/jboss/test/ejb/metadata/test/EjbJar3x_testEjbClientJar.xml
===================================================================
--- jbossxb-builder/trunk/src/test/resources/org/jboss/test/ejb/metadata/test/EjbJar3x_testEjbClientJar.xml (rev 0)
+++ jbossxb-builder/trunk/src/test/resources/org/jboss/test/ejb/metadata/test/EjbJar3x_testEjbClientJar.xml 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<ejb-jar 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/ejb-jar_3_0.xsd"
+ version="3.0">
+ <ejb-client-jar>some/path/client.jar</ejb-client-jar>
+</ejb-jar>
\ No newline at end of file
Added: jbossxb-builder/trunk/src/test/resources/org/jboss/test/ejb/metadata/test/EjbJar3x_testEnterpriseBeans.xml
===================================================================
--- jbossxb-builder/trunk/src/test/resources/org/jboss/test/ejb/metadata/test/EjbJar3x_testEnterpriseBeans.xml (rev 0)
+++ jbossxb-builder/trunk/src/test/resources/org/jboss/test/ejb/metadata/test/EjbJar3x_testEnterpriseBeans.xml 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<ejb-jar 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/ejb-jar_3_0.xsd"
+ version="3.0">
+ <enterprise-beans>
+ <session>
+ <ejb-name>TestBean</ejb-name>
+ </session>
+ </enterprise-beans>
+</ejb-jar>
\ No newline at end of file
Added: jbossxb-builder/trunk/src/test/resources/org/jboss/test/ejb/metadata/test/EjbJar3x_testIconDefaultLanguage.xml
===================================================================
--- jbossxb-builder/trunk/src/test/resources/org/jboss/test/ejb/metadata/test/EjbJar3x_testIconDefaultLanguage.xml (rev 0)
+++ jbossxb-builder/trunk/src/test/resources/org/jboss/test/ejb/metadata/test/EjbJar3x_testIconDefaultLanguage.xml 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<ejb-jar 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/ejb-jar_3_0.xsd"
+ version="3.0">
+ <icon>
+ <small-icon>small</small-icon>
+ <large-icon>large</large-icon>
+ </icon>
+</ejb-jar>
\ No newline at end of file
Added: jbossxb-builder/trunk/src/test/resources/org/jboss/test/ejb/metadata/test/EjbJar3x_testId.xml
===================================================================
--- jbossxb-builder/trunk/src/test/resources/org/jboss/test/ejb/metadata/test/EjbJar3x_testId.xml (rev 0)
+++ jbossxb-builder/trunk/src/test/resources/org/jboss/test/ejb/metadata/test/EjbJar3x_testId.xml 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<ejb-jar 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/ejb-jar_3_0.xsd"
+ version="3.0"
+ id="ejb-jar-test-id">
+</ejb-jar>
\ No newline at end of file
Added: jbossxb-builder/trunk/src/test/resources/org/jboss/test/ejb/metadata/test/EjbJar3x_testVersion.xml
===================================================================
--- jbossxb-builder/trunk/src/test/resources/org/jboss/test/ejb/metadata/test/EjbJar3x_testVersion.xml (rev 0)
+++ jbossxb-builder/trunk/src/test/resources/org/jboss/test/ejb/metadata/test/EjbJar3x_testVersion.xml 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<ejb-jar 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/ejb-jar_3_0.xsd"
+ version="3.0">
+</ejb-jar>
\ No newline at end of file
Added: jbossxb-builder/trunk/src/test/resources/org/jboss/test/ejb/metadata/test/JBoss5xEverything_testEverything.xml
===================================================================
--- jbossxb-builder/trunk/src/test/resources/org/jboss/test/ejb/metadata/test/JBoss5xEverything_testEverything.xml (rev 0)
+++ jbossxb-builder/trunk/src/test/resources/org/jboss/test/ejb/metadata/test/JBoss5xEverything_testEverything.xml 2007-07-25 11:48:03 UTC (rev 2457)
@@ -0,0 +1,2793 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<jboss 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://www.jboss.org/j2ee/schema/jboss_5_0.xsd"
+ version="5.0"
+ id="jboss-id">
+
+ <description>en-jboss-desc</description>
+ <description xml:lang="fr">fr-jboss-desc</description>
+ <description xml:lang="de">de-jboss-desc</description>
+ <display-name>en-jboss-disp</display-name>
+ <display-name xml:lang="fr">fr-jboss-disp</display-name>
+ <display-name xml:lang="de">de-jboss-disp</display-name>
+ <icon id="en-jboss-icon-id">
+ <small-icon>en-jboss-small-icon</small-icon>
+ <large-icon>en-jboss-large-icon</large-icon>
+ </icon>
+ <icon xml:lang="fr" id="fr-jboss-icon-id">
+ <small-icon>fr-jboss-small-icon</small-icon>
+ <large-icon>fr-jboss-large-icon</large-icon>
+ </icon>
+ <icon xml:lang="de" id="de-jboss-icon-id">
+ <small-icon>de-jboss-small-icon</small-icon>
+ <large-icon>de-jboss-large-icon</large-icon>
+ </icon>
+
+ <loader-repository id="loaderRepository-id" loaderRepositoryClass="loaderRepositoryClass">
+ loaderRepositoryName
+ <loader-repository-config id="loaderRepositoryConfig1-id" configParserClass="loaderRepositoryConfigParserClass1">
+ loaderRepositoryConfig1
+ </loader-repository-config>
+ <loader-repository-config id="loaderRepositoryConfig2-id" configParserClass="loaderRepositoryConfigParserClass2">
+ loaderRepositoryConfig2
+ </loader-repository-config>
+ </loader-repository>
+
+ <jmx-name>jboss-jmx-name</jmx-name>
+ <enforce-ejb-restrictions>NO LONGER USED</enforce-ejb-restrictions>
+ <security-domain>jboss-security-domain</security-domain>
+ <missing-method-permissions-excluded-mode>false</missing-method-permissions-excluded-mode>
+ <unauthenticated-principal>jboss-unauthenticated-principal</unauthenticated-principal>
+ <exception-on-rollback>true</exception-on-rollback>
+
+ <webservices id="webservices-id">
+ <context-root>webservicesContextRoot</context-root>
+ <webservice-description id="webserviceDescription1-id">
+ <webservice-description-name>webserviceDescription1Name</webservice-description-name>
+ <config-name>webserviceDescription1ConfigName</config-name>
+ <config-file>webserviceDescription1ConfigFile</config-file>
+ <wsdl-publish-location>webserviceDescription1WsdlPublishLocation</wsdl-publish-location>
+ </webservice-description>
+ <webservice-description id="webserviceDescription2-id">
+ <webservice-description-name>webserviceDescription2Name</webservice-description-name>
+ <config-name>webserviceDescription2ConfigName</config-name>
+ <config-file>webserviceDescription2ConfigFile</config-file>
+ <wsdl-publish-location>webserviceDescription2WsdlPublishLocation</wsdl-publish-location>
+ </webservice-description>
+ </webservices>
+
+ <enterprise-beans id="enterprise-beans-id">
+
+ <session>
+ <ejb-name>session0EjbName</ejb-name>
+ </session>
+
+ <session id="session1-id">
+ <description>en-session1-desc</description>
+ <description xml:lang="fr">fr-session1-desc</description>
+ <description xml:lang="de">de-session1-desc</description>
+ <display-name>en-session1-disp</display-name>
+ <display-name xml:lang="fr">fr-session1-disp</display-name>
+ <display-name xml:lang="de">de-session1-disp</display-name>
+ <icon id="en-session1-icon-id">
+ <small-icon>en-session1-small-icon</small-icon>
+ <large-icon>en-session1-large-icon</large-icon>
+ </icon>
+ <icon xml:lang="fr" id="fr-session1-icon-id">
+ <small-icon>fr-session1-small-icon</small-icon>
+ <large-icon>fr-session1-large-icon</large-icon>
+ </icon>
+ <icon xml:lang="de" id="de-session1-icon-id">
+ <small-icon>de-session1-small-icon</small-icon>
+ <large-icon>de-session1-large-icon</large-icon>
+ </icon>
+
+ <ejb-name>session1EjbName</ejb-name>
+
+ <remote-binding id="session1RemoteBinding-id">
+ <description>en-session1RemoteBinding-desc</description>
+ <description xml:lang="fr">fr-session1RemoteBinding-desc</description>
+ <description xml:lang="de">de-session1RemoteBinding-desc</description>
+ <jndi-name>session1RemoteBindingJndiName</jndi-name>
+ <client-bind-url>session1RemoteBindingClientBindUrl</client-bind-url>
+ <interceptor-stack>session1RemoteBindingInterceptorStack</interceptor-stack>
+ <proxy-factory>session1RemoteBindingProxyFactory</proxy-factory>
+ </remote-binding>
+
+ <jndi-name>session1JndiName</jndi-name>
+ <local-jndi-name>session1LocalJndiName</local-jndi-name>
+ <call-by-value>true</call-by-value>
+ <exception-on-rollback>true</exception-on-rollback>
+ <timer-persistence>true</timer-persistence>
+ <configuration-name>session1ConfigurationName</configuration-name>
+
+ <invoker-bindings id="session1InvokerBindings-id">
+ <description>en-session1InvokerBindings-desc</description>
+ <description xml:lang="fr">fr-session1InvokerBindings-desc</description>
+ <description xml:lang="de">de-session1InvokerBindings-desc</description>
+
+ <invoker id="session1Invoker1-id">
+ <description>en-session1Invoker1-desc</description>
+ <description xml:lang="fr">fr-session1Invoker1-desc</description>
+ <description xml:lang="de">de-session1Invoker1-desc</description>
+
+ <invoker-proxy-binding-name>session1Invoker1Name</invoker-proxy-binding-name>
+ <jndi-name>session1Invoker1JndiName</jndi-name>
+ <!-- TODO ejb-ref -->
+ </invoker>
+ <invoker id="session1Invoker2-id">
+ <description>en-session1Invoker2-desc</description>
+ <description xml:lang="fr">fr-session1Invoker2-desc</description>
+ <description xml:lang="de">de-session1Invoker2-desc</description>
+
+ <invoker-proxy-binding-name>session1Invoker2Name</invoker-proxy-binding-name>
+ <jndi-name>session1Invoker2JndiName</jndi-name>
+ <!-- TODO ejb-ref -->
+ </invoker>
+ </invoker-bindings>
+
+ <security-proxy>session1SecurityProxy</security-proxy>
+
+ <ejb-ref id="session1EjbRef1-id">
+ <description>en-session1EjbRef1-desc</description>
+ <description xml:lang="fr">fr-session1EjbRef1-desc</description>
+ <description xml:lang="de">de-session1EjbRef1-desc</description>
+
+ <ejb-ref-name>session1EjbRef1Name</ejb-ref-name>
+ <injection-target>
+ <injection-target-class>session1EjbRef1Injection1Class</injection-target-class>
+ <injection-target-name>session1EjbRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>session1EjbRef1Injection2Class</injection-target-class>
+ <injection-target-name>session1EjbRef1Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>session1EjbRef1JndiName</jndi-name>
+ <ignore-dependency/>
+ </ejb-ref>
+ <ejb-ref id="session1EjbRef2-id">
+ <description>en-session1EjbRef2-desc</description>
+ <description xml:lang="fr">fr-session1EjbRef2-desc</description>
+ <description xml:lang="de">de-session1EjbRef2-desc</description>
+
+ <ejb-ref-name>session1EjbRef2Name</ejb-ref-name>
+ <injection-target>
+ <injection-target-class>session1EjbRef2Injection1Class</injection-target-class>
+ <injection-target-name>session1EjbRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>session1EjbRef2Injection2Class</injection-target-class>
+ <injection-target-name>session1EjbRef2Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>session1EjbRef2JndiName</jndi-name>
+ </ejb-ref>
+
+ <ejb-local-ref id="session1EjbLocalRef1-id">
+ <description>en-session1EjbLocalRef1-desc</description>
+ <description xml:lang="fr">fr-session1EjbLocalRef1-desc</description>
+ <description xml:lang="de">de-session1EjbLocalRef1-desc</description>
+
+ <ejb-ref-name>session1EjbLocalRef1Name</ejb-ref-name>
+ <injection-target>
+ <injection-target-class>session1EjbLocalRef1Injection1Class</injection-target-class>
+ <injection-target-name>session1EjbLocalRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>session1EjbLocalRef1Injection2Class</injection-target-class>
+ <injection-target-name>session1EjbLocalRef1Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>session1EjbLocalRef1JndiName</jndi-name>
+ <ignore-dependency/>
+ </ejb-local-ref>
+ <ejb-local-ref id="session1EjbLocalRef2-id">
+ <description>en-session1EjbLocalRef2-desc</description>
+ <description xml:lang="fr">fr-session1EjbLocalRef2-desc</description>
+ <description xml:lang="de">de-session1EjbLocalRef2-desc</description>
+
+ <ejb-ref-name>session1EjbLocalRef2Name</ejb-ref-name>
+ <injection-target>
+ <injection-target-class>session1EjbLocalRef2Injection1Class</injection-target-class>
+ <injection-target-name>session1EjbLocalRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>session1EjbLocalRef2Injection2Class</injection-target-class>
+ <injection-target-name>session1EjbLocalRef2Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>session1EjbLocalRef2JndiName</jndi-name>
+ </ejb-local-ref>
+
+ <!-- TODO service-ref -->
+
+ <security-identity id="session1SecurityIdentity-id">
+ <description>en-session1SecurityIdentity-desc</description>
+ <description xml:lang="fr">fr-session1SecurityIdentity-desc</description>
+ <description xml:lang="de">de-session1SecurityIdentity-desc</description>
+ <run-as-principal>session1SecurityIdentityRunAsPrincipal</run-as-principal>
+ </security-identity>
+
+ <resource-ref id="session1ResourceRef1-id">
+ <description>en-session1ResourceRef1-desc</description>
+ <description xml:lang="fr">fr-session1ResourceRef1-desc</description>
+ <description xml:lang="de">de-session1ResourceRef1-desc</description>
+ <res-ref-name>session1ResourceRef1Name</res-ref-name>
+ <injection-target>
+ <injection-target-class>session1ResourceRef1Injection1Class</injection-target-class>
+ <injection-target-name>session1ResourceRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>session1ResourceRef1Injection2Class</injection-target-class>
+ <injection-target-name>session1ResourceRef1Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>session1ResourceRef1JndiName</jndi-name>
+ <ignore-dependency/>
+ </resource-ref>
+ <resource-ref id="session1ResourceRef2-id">
+ <description>en-session1ResourceRef2-desc</description>
+ <description xml:lang="fr">fr-session1ResourceRef2-desc</description>
+ <description xml:lang="de">de-session1ResourceRef2-desc</description>
+ <res-ref-name>session1ResourceRef2Name</res-ref-name>
+ <injection-target>
+ <injection-target-class>session1ResourceRef2Injection1Class</injection-target-class>
+ <injection-target-name>session1ResourceRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>session1ResourceRef2Injection2Class</injection-target-class>
+ <injection-target-name>session1ResourceRef2Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>session1ResourceRef2JndiName</jndi-name>
+ </resource-ref>
+ <resource-env-ref id="session1ResourceEnvRef1-id">
+ <description>en-session1ResourceEnvRef1-desc</description>
+ <description xml:lang="fr">fr-session1ResourceEnvRef1-desc</description>
+ <description xml:lang="de">de-session1ResourceEnvRef1-desc</description>
+ <resource-env-ref-name>session1ResourceEnvRef1Name</resource-env-ref-name>
+ <injection-target>
+ <injection-target-class>session1ResourceEnvRef1Injection1Class</injection-target-class>
+ <injection-target-name>session1ResourceEnvRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>session1ResourceEnvRef1Injection2Class</injection-target-class>
+ <injection-target-name>session1ResourceEnvRef1Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>session1ResourceEnvRef1JndiName</jndi-name>
+ <ignore-dependency/>
+ </resource-env-ref>
+ <resource-env-ref id="session1ResourceEnvRef2-id">
+ <description>en-session1ResourceEnvRef2-desc</description>
+ <description xml:lang="fr">fr-session1ResourceEnvRef2-desc</description>
+ <description xml:lang="de">de-session1ResourceEnvRef2-desc</description>
+ <resource-env-ref-name>session1ResourceEnvRef2Name</resource-env-ref-name>
+ <injection-target>
+ <injection-target-class>session1ResourceEnvRef2Injection1Class</injection-target-class>
+ <injection-target-name>session1ResourceEnvRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>session1ResourceEnvRef2Injection2Class</injection-target-class>
+ <injection-target-name>session1ResourceEnvRef2Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>session1ResourceEnvRef2JndiName</jndi-name>
+ </resource-env-ref>
+ <message-destination-ref id="session1MessageDestinationRef1-id">
+ <description>en-session1MessageDestinationRef1-desc</description>
+ <description xml:lang="fr">fr-session1MessageDestinationRef1-desc</description>
+ <description xml:lang="de">de-session1MessageDestinationRef1-desc</description>
+ <message-destination-ref-name>session1MessageDestinationRef1Name</message-destination-ref-name>
+ <injection-target>
+ <injection-target-class>session1MessageDestinationRef1Injection1Class</injection-target-class>
+ <injection-target-name>session1MessageDestinationRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>session1MessageDestinationRef1Injection2Class</injection-target-class>
+ <injection-target-name>session1MessageDestinationRef1Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>session1MessageDestinationRef1JndiName</jndi-name>
+ <ignore-dependency/>
+ </message-destination-ref>
+ <message-destination-ref id="session1MessageDestinationRef2-id">
+ <description>en-session1MessageDestinationRef2-desc</description>
+ <description xml:lang="fr">fr-session1MessageDestinationRef2-desc</description>
+ <description xml:lang="de">de-session1MessageDestinationRef2-desc</description>
+ <message-destination-ref-name>session1MessageDestinationRef2Name</message-destination-ref-name>
+ <injection-target>
+ <injection-target-class>session1MessageDestinationRef2Injection1Class</injection-target-class>
+ <injection-target-name>session1MessageDestinationRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>session1MessageDestinationRef2Injection2Class</injection-target-class>
+ <injection-target-name>session1MessageDestinationRef2Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>session1MessageDestinationRef2JndiName</jndi-name>
+ </message-destination-ref>
+ <message-destination-ref id="session1MessageDestinationRef3-id">
+ <description>en-session1MessageDestinationRef3-desc</description>
+ <description xml:lang="fr">fr-session1MessageDestinationRef3-desc</description>
+ <description xml:lang="de">de-session1MessageDestinationRef3-desc</description>
+ <message-destination-ref-name>session1MessageDestinationRef3Name</message-destination-ref-name>
+ <injection-target>
+ <injection-target-class>session1MessageDestinationRef3Injection1Class</injection-target-class>
+ <injection-target-name>session1MessageDestinationRef3Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>session1MessageDestinationRef3Injection2Class</injection-target-class>
+ <injection-target-name>session1MessageDestinationRef3Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>session1MessageDestinationRef3JndiName</jndi-name>
+ </message-destination-ref>
+
+ <clustered>true</clustered>
+
+ <cluster-config id="session1ClusterConfig-id">
+ <description>en-session1ClusterConfig-desc</description>
+ <description xml:lang="fr">fr-session1ClusterConfig-desc</description>
+ <description xml:lang="de">de-session1ClusterConfig-desc</description>
+ <partition-name>session1ClusterConfigPartitionName</partition-name>
+ <home-load-balancing-policy>session1ClusterConfigHomeLoadBalancingPolicy</home-load-balancing-policy>
+ <bean-load-balancing-policy>session1ClusterConfigBeanLoadBalancingPolicy</bean-load-balancing-policy>
+ <session-state-manager-jndi-name>session1ClusterConfigSessionStateManagerJndiName</session-state-manager-jndi-name>
+ </cluster-config>
+
+ <security-domain>session1SecurityDomain</security-domain>
+
+ <method-attributes id="session1MethodAttributes-id">
+ <method id="session1MethodAttributesMethod1-id">
+ <method-name>get*</method-name>
+ <read-only>true</read-only>
+ <idempotent>true</idempotent>
+ <transaction-timeout>5000</transaction-timeout>
+ </method>
+ <method id="session1MethodAttributesMethod2-id">
+ <method-name>*</method-name>
+ </method>
+ </method-attributes>
+
+ <depends>session1Depends1</depends>
+ <depends>session1Depends2</depends>
+
+ <ior-security-config id="session1IorSecurityConfig-id">
+ <description>en-session1IorSecurityConfig-desc</description>
+ <description xml:lang="fr">fr-session1IorSecurityConfig-desc</description>
+ <description xml:lang="de">de-session1IorSecurityConfig-desc</description>
+ <transport-config id="session1TransportConfig-id">
+ <description>en-session1TransportConfig-desc</description>
+ <description xml:lang="fr">fr-session1TransportConfig-desc</description>
+ <description xml:lang="de">de-session1TransportConfig-desc</description>
+ <integrity>NONE</integrity>
+ <confidentiality>NONE</confidentiality>
+ <establish-trust-in-target>NONE</establish-trust-in-target>
+ <establish-trust-in-client>NONE</establish-trust-in-client>
+ <detect-misordering>NONE</detect-misordering>
+ <detect-replay>NONE</detect-replay>
+ </transport-config>
+ <as-context id="session1ASContext-id">
+ <description>en-session1ASContext-desc</description>
+ <description xml:lang="fr">fr-session1ASContext-desc</description>
+ <description xml:lang="de">de-session1ASContext-desc</description>
+ <auth-method>USERNAME_PASSWORD</auth-method>
+ <realm>session1ASContextRealm</realm>
+ <required>false</required>
+ </as-context>
+ <sas-context id="session1SASContext-id">
+ <description>en-session1SASContext-desc</description>
+ <description xml:lang="fr">fr-session1SASContext-desc</description>
+ <description xml:lang="de">de-session1SASContext-desc</description>
+ <caller-propagation>NONE</caller-propagation>
+ </sas-context>
+ </ior-security-config>
+
+ <!-- TODO port component -->
+
+ <ejb-timeout-identity id="session1EjbTimeoutIdentity-id">
+ <description>en-session1EjbTimeoutIdentity-desc</description>
+ <description xml:lang="fr">fr-session1EjbTimeoutIdentity-desc</description>
+ <description xml:lang="de">de-session1EjbTimeoutIdentity-desc</description>
+ <run-as-principal>session1EjbTimeoutIdentityRunAsPrincipal</run-as-principal>
+ </ejb-timeout-identity>
+
+ <annotation id="session1Annotation1-id">
+ <description>en-session1Annotation1-desc</description>
+ <description xml:lang="fr">fr-session1Annotation1-desc</description>
+ <description xml:lang="de">de-session1Annotation1-desc</description>
+
+ <annotation-class>session1Annotation1Class</annotation-class>
+ <annotation-implementation-class>session1Annotation1Impl</annotation-implementation-class>
+ <injection-target>
+ <injection-target-class>session1Annotation1InjectionTargetClass</injection-target-class>
+ <injection-target-name>session1Annotation1InjectionTargetName</injection-target-name>
+ </injection-target>
+ <property id="session1Annotation1Property1-id">
+ <description>en-session1Annotation1Property1-desc</description>
+ <description xml:lang="fr">fr-session1Annotation1Property1-desc</description>
+ <description xml:lang="de">de-session1Annotation1Property1-desc</description>
+ <property-name>session1Annotation1Property1Name</property-name>
+ <property-value>session1Annotation1Property1Value</property-value>
+ </property>
+ <property id="session1Annotation1Property2-id">
+ <description>en-session1Annotation1Property2-desc</description>
+ <description xml:lang="fr">fr-session1Annotation1Property2-desc</description>
+ <description xml:lang="de">de-session1Annotation1Property2-desc</description>
+ <property-name>session1Annotation1Property2Name</property-name>
+ <property-value>session1Annotation1Property2Value</property-value>
+ </property>
+ </annotation>
+ <annotation id="session1Annotation2-id">
+ <description>en-session1Annotation2-desc</description>
+ <description xml:lang="fr">fr-session1Annotation2-desc</description>
+ <description xml:lang="de">de-session1Annotation2-desc</description>
+
+ <annotation-class>session1Annotation2Class</annotation-class>
+ <annotation-implementation-class>session1Annotation2Impl</annotation-implementation-class>
+ <injection-target>
+ <injection-target-class>session1Annotation2InjectionTargetClass</injection-target-class>
+ <injection-target-name>session1Annotation2InjectionTargetName</injection-target-name>
+ </injection-target>
+ <property id="session1Annotation2Property1-id">
+ <description>en-session1Annotation2Property1-desc</description>
+ <description xml:lang="fr">fr-session1Annotation2Property1-desc</description>
+ <description xml:lang="de">de-session1Annotation2Property1-desc</description>
+ <property-name>session1Annotation2Property1Name</property-name>
+ <property-value>session1Annotation2Property1Value</property-value>
+ </property>
+ <property id="session1Annotation2Property2-id">
+ <description>en-session1Annotation2Property2-desc</description>
+ <description xml:lang="fr">fr-session1Annotation2Property2-desc</description>
+ <description xml:lang="de">de-session1Annotation2Property2-desc</description>
+ <property-name>session1Annotation2Property2Name</property-name>
+ <property-value>session1Annotation2Property2Value</property-value>
+ </property>
+ </annotation>
+
+ <ignore-dependency id="session1IgnoreDependency-id">
+ <description>en-session1IgnoreDependency-desc</description>
+ <description xml:lang="fr">fr-session1IgnoreDependency-desc</description>
+ <description xml:lang="de">de-session1IgnoreDependency-desc</description>
+ <injection-target>
+ <injection-target-class>session1IgnoreDependencyInjection1Class</injection-target-class>
+ <injection-target-name>session1IgnoreDependencyInjection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>session1IgnoreDependencyInjection2Class</injection-target-class>
+ <injection-target-name>session1IgnoreDependencyInjection2Name</injection-target-name>
+ </injection-target>
+ </ignore-dependency>
+
+ <aop-domain-name>session1AOPDomain</aop-domain-name>
+
+ <!-- TODO cache config -->
+
+ <!-- TODO pool config -->
+
+ <concurrent>true</concurrent>
+
+ <!-- TODO jndi ref -->
+ <jndi-ref id="session1JndiRef1-id">
+ <description>en-session1JndiRef1-desc</description>
+ <description xml:lang="fr">fr-session1JndiRef1-desc</description>
+ <description xml:lang="de">de-session1JndiRef1-desc</description>
+ <jndi-ref-name>session1JndiRef1Name</jndi-ref-name>
+ <mapped-name>session1JndiRef1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>session1JndiRef1Injection1Class</injection-target-class>
+ <injection-target-name>session1JndiRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>session1JndiRef1Injection2Class</injection-target-class>
+ <injection-target-name>session1JndiRef1Injection2Name</injection-target-name>
+ </injection-target>
+ </jndi-ref>
+ <jndi-ref id="session1JndiRef2-id">
+ <description>en-session1JndiRef2-desc</description>
+ <description xml:lang="fr">fr-session1JndiRef2-desc</description>
+ <description xml:lang="de">de-session1JndiRef2-desc</description>
+ <jndi-ref-name>session1JndiRef2Name</jndi-ref-name>
+ <mapped-name>session1JndiRef2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>session1JndiRef2Injection1Class</injection-target-class>
+ <injection-target-name>session1JndiRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>session1JndiRef2Injection2Class</injection-target-class>
+ <injection-target-name>session1JndiRef2Injection2Name</injection-target-name>
+ </injection-target>
+ </jndi-ref>
+
+ </session>
+
+ <session id="session2-id">
+ <description>en-session2-desc</description>
+ <description xml:lang="fr">fr-session2-desc</description>
+ <description xml:lang="de">de-session2-desc</description>
+ <display-name>en-session2-disp</display-name>
+ <display-name xml:lang="fr">fr-session2-disp</display-name>
+ <display-name xml:lang="de">de-session2-disp</display-name>
+ <icon id="en-session2-icon-id">
+ <small-icon>en-session2-small-icon</small-icon>
+ <large-icon>en-session2-large-icon</large-icon>
+ </icon>
+ <icon xml:lang="fr" id="fr-session2-icon-id">
+ <small-icon>fr-session2-small-icon</small-icon>
+ <large-icon>fr-session2-large-icon</large-icon>
+ </icon>
+ <icon xml:lang="de" id="de-session2-icon-id">
+ <small-icon>de-session2-small-icon</small-icon>
+ <large-icon>de-session2-large-icon</large-icon>
+ </icon>
+
+ <ejb-name>session2EjbName</ejb-name>
+
+ <remote-binding id="session2RemoteBinding-id">
+ <description>en-session2RemoteBinding-desc</description>
+ <description xml:lang="fr">fr-session2RemoteBinding-desc</description>
+ <description xml:lang="de">de-session2RemoteBinding-desc</description>
+ <jndi-name>session2RemoteBindingJndiName</jndi-name>
+ <client-bind-url>session2RemoteBindingClientBindUrl</client-bind-url>
+ <interceptor-stack>session2RemoteBindingInterceptorStack</interceptor-stack>
+ <proxy-factory>session2RemoteBindingProxyFactory</proxy-factory>
+ </remote-binding>
+
+ <jndi-name>session2JndiName</jndi-name>
+ <local-jndi-name>session2LocalJndiName</local-jndi-name>
+ <call-by-value>false</call-by-value>
+ <exception-on-rollback>false</exception-on-rollback>
+ <timer-persistence>false</timer-persistence>
+ <configuration-name>session2ConfigurationName</configuration-name>
+
+ <invoker-bindings id="session2InvokerBindings-id">
+ <description>en-session2InvokerBindings-desc</description>
+ <description xml:lang="fr">fr-session2InvokerBindings-desc</description>
+ <description xml:lang="de">de-session2InvokerBindings-desc</description>
+
+ <invoker id="session2Invoker1-id">
+ <description>en-session2Invoker1-desc</description>
+ <description xml:lang="fr">fr-session2Invoker1-desc</description>
+ <description xml:lang="de">de-session2Invoker1-desc</description>
+
+ <invoker-proxy-binding-name>session2Invoker1Name</invoker-proxy-binding-name>
+ <jndi-name>session2Invoker1JndiName</jndi-name>
+ <!-- TODO ejb-ref -->
+ </invoker>
+ <invoker id="session2Invoker2-id">
+ <description>en-session2Invoker2-desc</description>
+ <description xml:lang="fr">fr-session2Invoker2-desc</description>
+ <description xml:lang="de">de-session2Invoker2-desc</description>
+
+ <invoker-proxy-binding-name>session2Invoker2Name</invoker-proxy-binding-name>
+ <jndi-name>session2Invoker2JndiName</jndi-name>
+ <!-- TODO ejb-ref -->
+ </invoker>
+ </invoker-bindings>
+
+ <security-proxy>session2SecurityProxy</security-proxy>
+
+ <ejb-ref id="session2EjbRef1-id">
+ <description>en-session2EjbRef1-desc</description>
+ <description xml:lang="fr">fr-session2EjbRef1-desc</description>
+ <description xml:lang="de">de-session2EjbRef1-desc</description>
+
+ <ejb-ref-name>session2EjbRef1Name</ejb-ref-name>
+ <injection-target>
+ <injection-target-class>session2EjbRef1Injection1Class</injection-target-class>
+ <injection-target-name>session2EjbRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>session2EjbRef1Injection2Class</injection-target-class>
+ <injection-target-name>session2EjbRef1Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>session2EjbRef1JndiName</jndi-name>
+ <ignore-dependency/>
+ </ejb-ref>
+ <ejb-ref id="session2EjbRef2-id">
+ <description>en-session2EjbRef2-desc</description>
+ <description xml:lang="fr">fr-session2EjbRef2-desc</description>
+ <description xml:lang="de">de-session2EjbRef2-desc</description>
+
+ <ejb-ref-name>session2EjbRef2Name</ejb-ref-name>
+ <injection-target>
+ <injection-target-class>session2EjbRef2Injection1Class</injection-target-class>
+ <injection-target-name>session2EjbRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>session2EjbRef2Injection2Class</injection-target-class>
+ <injection-target-name>session2EjbRef2Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>session2EjbRef2JndiName</jndi-name>
+ </ejb-ref>
+
+ <ejb-local-ref id="session2EjbLocalRef1-id">
+ <description>en-session2EjbLocalRef1-desc</description>
+ <description xml:lang="fr">fr-session2EjbLocalRef1-desc</description>
+ <description xml:lang="de">de-session2EjbLocalRef1-desc</description>
+
+ <ejb-ref-name>session2EjbLocalRef1Name</ejb-ref-name>
+ <injection-target>
+ <injection-target-class>session2EjbLocalRef1Injection1Class</injection-target-class>
+ <injection-target-name>session2EjbLocalRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>session2EjbLocalRef1Injection2Class</injection-target-class>
+ <injection-target-name>session2EjbLocalRef1Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>session2EjbLocalRef1JndiName</jndi-name>
+ <ignore-dependency/>
+ </ejb-local-ref>
+ <ejb-local-ref id="session2EjbLocalRef2-id">
+ <description>en-session2EjbLocalRef2-desc</description>
+ <description xml:lang="fr">fr-session2EjbLocalRef2-desc</description>
+ <description xml:lang="de">de-session2EjbLocalRef2-desc</description>
+
+ <ejb-ref-name>session2EjbLocalRef2Name</ejb-ref-name>
+ <injection-target>
+ <injection-target-class>session2EjbLocalRef2Injection1Class</injection-target-class>
+ <injection-target-name>session2EjbLocalRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>session2EjbLocalRef2Injection2Class</injection-target-class>
+ <injection-target-name>session2EjbLocalRef2Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>session2EjbLocalRef2JndiName</jndi-name>
+ </ejb-local-ref>
+
+ <!-- TODO service-ref -->
+
+ <security-identity id="session2SecurityIdentity-id">
+ <description>en-session2SecurityIdentity-desc</description>
+ <description xml:lang="fr">fr-session2SecurityIdentity-desc</description>
+ <description xml:lang="de">de-session2SecurityIdentity-desc</description>
+ <run-as-principal>session2SecurityIdentityRunAsPrincipal</run-as-principal>
+ </security-identity>
+
+ <resource-ref id="session2ResourceRef1-id">
+ <description>en-session2ResourceRef1-desc</description>
+ <description xml:lang="fr">fr-session2ResourceRef1-desc</description>
+ <description xml:lang="de">de-session2ResourceRef1-desc</description>
+ <res-ref-name>session2ResourceRef1Name</res-ref-name>
+ <injection-target>
+ <injection-target-class>session2ResourceRef1Injection1Class</injection-target-class>
+ <injection-target-name>session2ResourceRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>session2ResourceRef1Injection2Class</injection-target-class>
+ <injection-target-name>session2ResourceRef1Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>session2ResourceRef1JndiName</jndi-name>
+ <ignore-dependency/>
+ </resource-ref>
+ <resource-ref id="session2ResourceRef2-id">
+ <description>en-session2ResourceRef2-desc</description>
+ <description xml:lang="fr">fr-session2ResourceRef2-desc</description>
+ <description xml:lang="de">de-session2ResourceRef2-desc</description>
+ <res-ref-name>session2ResourceRef2Name</res-ref-name>
+ <injection-target>
+ <injection-target-class>session2ResourceRef2Injection1Class</injection-target-class>
+ <injection-target-name>session2ResourceRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>session2ResourceRef2Injection2Class</injection-target-class>
+ <injection-target-name>session2ResourceRef2Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>session2ResourceRef2JndiName</jndi-name>
+ </resource-ref>
+ <resource-env-ref id="session2ResourceEnvRef1-id">
+ <description>en-session2ResourceEnvRef1-desc</description>
+ <description xml:lang="fr">fr-session2ResourceEnvRef1-desc</description>
+ <description xml:lang="de">de-session2ResourceEnvRef1-desc</description>
+ <resource-env-ref-name>session2ResourceEnvRef1Name</resource-env-ref-name>
+ <injection-target>
+ <injection-target-class>session2ResourceEnvRef1Injection1Class</injection-target-class>
+ <injection-target-name>session2ResourceEnvRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>session2ResourceEnvRef1Injection2Class</injection-target-class>
+ <injection-target-name>session2ResourceEnvRef1Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>session2ResourceEnvRef1JndiName</jndi-name>
+ <ignore-dependency/>
+ </resource-env-ref>
+ <resource-env-ref id="session2ResourceEnvRef2-id">
+ <description>en-session2ResourceEnvRef2-desc</description>
+ <description xml:lang="fr">fr-session2ResourceEnvRef2-desc</description>
+ <description xml:lang="de">de-session2ResourceEnvRef2-desc</description>
+ <resource-env-ref-name>session2ResourceEnvRef2Name</resource-env-ref-name>
+ <injection-target>
+ <injection-target-class>session2ResourceEnvRef2Injection1Class</injection-target-class>
+ <injection-target-name>session2ResourceEnvRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>session2ResourceEnvRef2Injection2Class</injection-target-class>
+ <injection-target-name>session2ResourceEnvRef2Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>session2ResourceEnvRef2JndiName</jndi-name>
+ </resource-env-ref>
+ <message-destination-ref id="session2MessageDestinationRef1-id">
+ <description>en-session2MessageDestinationRef1-desc</description>
+ <description xml:lang="fr">fr-session2MessageDestinationRef1-desc</description>
+ <description xml:lang="de">de-session2MessageDestinationRef1-desc</description>
+ <message-destination-ref-name>session2MessageDestinationRef1Name</message-destination-ref-name>
+ <injection-target>
+ <injection-target-class>session2MessageDestinationRef1Injection1Class</injection-target-class>
+ <injection-target-name>session2MessageDestinationRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>session2MessageDestinationRef1Injection2Class</injection-target-class>
+ <injection-target-name>session2MessageDestinationRef1Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>session2MessageDestinationRef1JndiName</jndi-name>
+ <ignore-dependency/>
+ </message-destination-ref>
+ <message-destination-ref id="session2MessageDestinationRef2-id">
+ <description>en-session2MessageDestinationRef2-desc</description>
+ <description xml:lang="fr">fr-session2MessageDestinationRef2-desc</description>
+ <description xml:lang="de">de-session2MessageDestinationRef2-desc</description>
+ <message-destination-ref-name>session2MessageDestinationRef2Name</message-destination-ref-name>
+ <injection-target>
+ <injection-target-class>session2MessageDestinationRef2Injection1Class</injection-target-class>
+ <injection-target-name>session2MessageDestinationRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>session2MessageDestinationRef2Injection2Class</injection-target-class>
+ <injection-target-name>session2MessageDestinationRef2Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>session2MessageDestinationRef2JndiName</jndi-name>
+ </message-destination-ref>
+ <message-destination-ref id="session2MessageDestinationRef3-id">
+ <description>en-session2MessageDestinationRef3-desc</description>
+ <description xml:lang="fr">fr-session2MessageDestinationRef3-desc</description>
+ <description xml:lang="de">de-session2MessageDestinationRef3-desc</description>
+ <message-destination-ref-name>session2MessageDestinationRef3Name</message-destination-ref-name>
+ <injection-target>
+ <injection-target-class>session2MessageDestinationRef3Injection1Class</injection-target-class>
+ <injection-target-name>session2MessageDestinationRef3Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>session2MessageDestinationRef3Injection2Class</injection-target-class>
+ <injection-target-name>session2MessageDestinationRef3Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>session2MessageDestinationRef3JndiName</jndi-name>
+ </message-destination-ref>
+
+ <clustered>false</clustered>
+
+ <cluster-config id="session2ClusterConfig-id">
+ <description>en-session2ClusterConfig-desc</description>
+ <description xml:lang="fr">fr-session2ClusterConfig-desc</description>
+ <description xml:lang="de">de-session2ClusterConfig-desc</description>
+ <partition-name>session2ClusterConfigPartitionName</partition-name>
+ <home-load-balancing-policy>session2ClusterConfigHomeLoadBalancingPolicy</home-load-balancing-policy>
+ <bean-load-balancing-policy>session2ClusterConfigBeanLoadBalancingPolicy</bean-load-balancing-policy>
+ <session-state-manager-jndi-name>session2ClusterConfigSessionStateManagerJndiName</session-state-manager-jndi-name>
+ </cluster-config>
+
+ <security-domain>session2SecurityDomain</security-domain>
+
+ <method-attributes id="session2MethodAttributes-id">
+ <method id="session2MethodAttributesMethod1-id">
+ <method-name>get*</method-name>
+ <read-only>true</read-only>
+ <idempotent>true</idempotent>
+ <transaction-timeout>5000</transaction-timeout>
+ </method>
+ <method id="session2MethodAttributesMethod2-id">
+ <method-name>*</method-name>
+ </method>
+ </method-attributes>
+
+ <depends>session2Depends1</depends>
+ <depends>session2Depends2</depends>
+
+ <ior-security-config id="session2IorSecurityConfig-id">
+ <description>en-session2IorSecurityConfig-desc</description>
+ <description xml:lang="fr">fr-session2IorSecurityConfig-desc</description>
+ <description xml:lang="de">de-session2IorSecurityConfig-desc</description>
+ <transport-config id="session2TransportConfig-id">
+ <description>en-session2TransportConfig-desc</description>
+ <description xml:lang="fr">fr-session2TransportConfig-desc</description>
+ <description xml:lang="de">de-session2TransportConfig-desc</description>
+ <integrity>NONE</integrity>
+ <confidentiality>NONE</confidentiality>
+ <establish-trust-in-target>NONE</establish-trust-in-target>
+ <establish-trust-in-client>NONE</establish-trust-in-client>
+ <detect-misordering>NONE</detect-misordering>
+ <detect-replay>NONE</detect-replay>
+ </transport-config>
+ <as-context id="session2ASContext-id">
+ <description>en-session2ASContext-desc</description>
+ <description xml:lang="fr">fr-session2ASContext-desc</description>
+ <description xml:lang="de">de-session2ASContext-desc</description>
+ <auth-method>USERNAME_PASSWORD</auth-method>
+ <realm>session2ASContextRealm</realm>
+ <required>false</required>
+ </as-context>
+ <sas-context id="session2SASContext-id">
+ <description>en-session2SASContext-desc</description>
+ <description xml:lang="fr">fr-session2SASContext-desc</description>
+ <description xml:lang="de">de-session2SASContext-desc</description>
+ <caller-propagation>NONE</caller-propagation>
+ </sas-context>
+ </ior-security-config>
+
+ <!-- TODO port component -->
+
+ <ejb-timeout-identity id="session2EjbTimeoutIdentity-id">
+ <description>en-session2EjbTimeoutIdentity-desc</description>
+ <description xml:lang="fr">fr-session2EjbTimeoutIdentity-desc</description>
+ <description xml:lang="de">de-session2EjbTimeoutIdentity-desc</description>
+ <run-as-principal>session2EjbTimeoutIdentityRunAsPrincipal</run-as-principal>
+ </ejb-timeout-identity>
+
+ <annotation id="session2Annotation1-id">
+ <description>en-session2Annotation1-desc</description>
+ <description xml:lang="fr">fr-session2Annotation1-desc</description>
+ <description xml:lang="de">de-session2Annotation1-desc</description>
+
+ <annotation-class>session2Annotation1Class</annotation-class>
+ <annotation-implementation-class>session2Annotation1Impl</annotation-implementation-class>
+ <injection-target>
+ <injection-target-class>session2Annotation1InjectionTargetClass</injection-target-class>
+ <injection-target-name>session2Annotation1InjectionTargetName</injection-target-name>
+ </injection-target>
+ <property id="session2Annotation1Property1-id">
+ <description>en-session2Annotation1Property1-desc</description>
+ <description xml:lang="fr">fr-session2Annotation1Property1-desc</description>
+ <description xml:lang="de">de-session2Annotation1Property1-desc</description>
+ <property-name>session2Annotation1Property1Name</property-name>
+ <property-value>session2Annotation1Property1Value</property-value>
+ </property>
+ <property id="session2Annotation1Property2-id">
+ <description>en-session2Annotation1Property2-desc</description>
+ <description xml:lang="fr">fr-session2Annotation1Property2-desc</description>
+ <description xml:lang="de">de-session2Annotation1Property2-desc</description>
+ <property-name>session2Annotation1Property2Name</property-name>
+ <property-value>session2Annotation1Property2Value</property-value>
+ </property>
+ </annotation>
+ <annotation id="session2Annotation2-id">
+ <description>en-session2Annotation2-desc</description>
+ <description xml:lang="fr">fr-session2Annotation2-desc</description>
+ <description xml:lang="de">de-session2Annotation2-desc</description>
+
+ <annotation-class>session2Annotation2Class</annotation-class>
+ <annotation-implementation-class>session2Annotation2Impl</annotation-implementation-class>
+ <injection-target>
+ <injection-target-class>session2Annotation2InjectionTargetClass</injection-target-class>
+ <injection-target-name>session2Annotation2InjectionTargetName</injection-target-name>
+ </injection-target>
+ <property id="session2Annotation2Property1-id">
+ <description>en-session2Annotation2Property1-desc</description>
+ <description xml:lang="fr">fr-session2Annotation2Property1-desc</description>
+ <description xml:lang="de">de-session2Annotation2Property1-desc</description>
+ <property-name>session2Annotation2Property1Name</property-name>
+ <property-value>session2Annotation2Property1Value</property-value>
+ </property>
+ <property id="session2Annotation2Property2-id">
+ <description>en-session2Annotation2Property2-desc</description>
+ <description xml:lang="fr">fr-session2Annotation2Property2-desc</description>
+ <description xml:lang="de">de-session2Annotation2Property2-desc</description>
+ <property-name>session2Annotation2Property2Name</property-name>
+ <property-value>session2Annotation2Property2Value</property-value>
+ </property>
+ </annotation>
+
+ <ignore-dependency id="session2IgnoreDependency-id">
+ <description>en-session2IgnoreDependency-desc</description>
+ <description xml:lang="fr">fr-session2IgnoreDependency-desc</description>
+ <description xml:lang="de">de-session2IgnoreDependency-desc</description>
+ <injection-target>
+ <injection-target-class>session2IgnoreDependencyInjection1Class</injection-target-class>
+ <injection-target-name>session2IgnoreDependencyInjection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>session2IgnoreDependencyInjection2Class</injection-target-class>
+ <injection-target-name>session2IgnoreDependencyInjection2Name</injection-target-name>
+ </injection-target>
+ </ignore-dependency>
+
+ <aop-domain-name>session2AOPDomain</aop-domain-name>
+
+ <!-- TODO cache config -->
+
+ <!-- TODO pool config -->
+
+ <concurrent>false</concurrent>
+
+ <jndi-ref id="session2JndiRef1-id">
+ <description>en-session2JndiRef1-desc</description>
+ <description xml:lang="fr">fr-session2JndiRef1-desc</description>
+ <description xml:lang="de">de-session2JndiRef1-desc</description>
+ <jndi-ref-name>session2JndiRef1Name</jndi-ref-name>
+ <mapped-name>session2JndiRef1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>session2JndiRef1Injection1Class</injection-target-class>
+ <injection-target-name>session2JndiRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>session2JndiRef1Injection2Class</injection-target-class>
+ <injection-target-name>session2JndiRef1Injection2Name</injection-target-name>
+ </injection-target>
+ </jndi-ref>
+ <jndi-ref id="session2JndiRef2-id">
+ <description>en-session2JndiRef2-desc</description>
+ <description xml:lang="fr">fr-session2JndiRef2-desc</description>
+ <description xml:lang="de">de-session2JndiRef2-desc</description>
+ <jndi-ref-name>session2JndiRef2Name</jndi-ref-name>
+ <mapped-name>session2JndiRef2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>session2JndiRef2Injection1Class</injection-target-class>
+ <injection-target-name>session2JndiRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>session2JndiRef2Injection2Class</injection-target-class>
+ <injection-target-name>session2JndiRef2Injection2Name</injection-target-name>
+ </injection-target>
+ </jndi-ref>
+
+ </session>
+
+ <entity>
+ <ejb-name>entity0EjbName</ejb-name>
+ </entity>
+
+ <entity id="entity1-id">
+ <description>en-entity1-desc</description>
+ <description xml:lang="fr">fr-entity1-desc</description>
+ <description xml:lang="de">de-entity1-desc</description>
+ <display-name>en-entity1-disp</display-name>
+ <display-name xml:lang="fr">fr-entity1-disp</display-name>
+ <display-name xml:lang="de">de-entity1-disp</display-name>
+ <icon id="en-entity1-icon-id">
+ <small-icon>en-entity1-small-icon</small-icon>
+ <large-icon>en-entity1-large-icon</large-icon>
+ </icon>
+ <icon xml:lang="fr" id="fr-entity1-icon-id">
+ <small-icon>fr-entity1-small-icon</small-icon>
+ <large-icon>fr-entity1-large-icon</large-icon>
+ </icon>
+ <icon xml:lang="de" id="de-entity1-icon-id">
+ <small-icon>de-entity1-small-icon</small-icon>
+ <large-icon>de-entity1-large-icon</large-icon>
+ </icon>
+
+ <ejb-name>entity1EjbName</ejb-name>
+
+ <jndi-name>entity1JndiName</jndi-name>
+ <local-jndi-name>entity1LocalJndiName</local-jndi-name>
+ <call-by-value>true</call-by-value>
+ <read-only>true</read-only>
+ <exception-on-rollback>true</exception-on-rollback>
+ <timer-persistence>true</timer-persistence>
+ <configuration-name>entity1ConfigurationName</configuration-name>
+
+ <invoker-bindings id="entity1InvokerBindings-id">
+ <description>en-entity1InvokerBindings-desc</description>
+ <description xml:lang="fr">fr-entity1InvokerBindings-desc</description>
+ <description xml:lang="de">de-entity1InvokerBindings-desc</description>
+
+ <invoker id="entity1Invoker1-id">
+ <description>en-entity1Invoker1-desc</description>
+ <description xml:lang="fr">fr-entity1Invoker1-desc</description>
+ <description xml:lang="de">de-entity1Invoker1-desc</description>
+
+ <invoker-proxy-binding-name>entity1Invoker1Name</invoker-proxy-binding-name>
+ <jndi-name>entity1Invoker1JndiName</jndi-name>
+ <!-- TODO ejb-ref -->
+ </invoker>
+ <invoker id="entity1Invoker2-id">
+ <description>en-entity1Invoker2-desc</description>
+ <description xml:lang="fr">fr-entity1Invoker2-desc</description>
+ <description xml:lang="de">de-entity1Invoker2-desc</description>
+
+ <invoker-proxy-binding-name>entity1Invoker2Name</invoker-proxy-binding-name>
+ <jndi-name>entity1Invoker2JndiName</jndi-name>
+ <!-- TODO ejb-ref -->
+ </invoker>
+ </invoker-bindings>
+
+ <security-proxy>entity1SecurityProxy</security-proxy>
+
+ <ejb-ref id="entity1EjbRef1-id">
+ <description>en-entity1EjbRef1-desc</description>
+ <description xml:lang="fr">fr-entity1EjbRef1-desc</description>
+ <description xml:lang="de">de-entity1EjbRef1-desc</description>
+
+ <ejb-ref-name>entity1EjbRef1Name</ejb-ref-name>
+ <injection-target>
+ <injection-target-class>entity1EjbRef1Injection1Class</injection-target-class>
+ <injection-target-name>entity1EjbRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>entity1EjbRef1Injection2Class</injection-target-class>
+ <injection-target-name>entity1EjbRef1Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>entity1EjbRef1JndiName</jndi-name>
+ <ignore-dependency/>
+ </ejb-ref>
+ <ejb-ref id="entity1EjbRef2-id">
+ <description>en-entity1EjbRef2-desc</description>
+ <description xml:lang="fr">fr-entity1EjbRef2-desc</description>
+ <description xml:lang="de">de-entity1EjbRef2-desc</description>
+
+ <ejb-ref-name>entity1EjbRef2Name</ejb-ref-name>
+ <injection-target>
+ <injection-target-class>entity1EjbRef2Injection1Class</injection-target-class>
+ <injection-target-name>entity1EjbRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>entity1EjbRef2Injection2Class</injection-target-class>
+ <injection-target-name>entity1EjbRef2Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>entity1EjbRef2JndiName</jndi-name>
+ </ejb-ref>
+
+ <ejb-local-ref id="entity1EjbLocalRef1-id">
+ <description>en-entity1EjbLocalRef1-desc</description>
+ <description xml:lang="fr">fr-entity1EjbLocalRef1-desc</description>
+ <description xml:lang="de">de-entity1EjbLocalRef1-desc</description>
+
+ <ejb-ref-name>entity1EjbLocalRef1Name</ejb-ref-name>
+ <injection-target>
+ <injection-target-class>entity1EjbLocalRef1Injection1Class</injection-target-class>
+ <injection-target-name>entity1EjbLocalRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>entity1EjbLocalRef1Injection2Class</injection-target-class>
+ <injection-target-name>entity1EjbLocalRef1Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>entity1EjbLocalRef1JndiName</jndi-name>
+ <ignore-dependency/>
+ </ejb-local-ref>
+ <ejb-local-ref id="entity1EjbLocalRef2-id">
+ <description>en-entity1EjbLocalRef2-desc</description>
+ <description xml:lang="fr">fr-entity1EjbLocalRef2-desc</description>
+ <description xml:lang="de">de-entity1EjbLocalRef2-desc</description>
+
+ <ejb-ref-name>entity1EjbLocalRef2Name</ejb-ref-name>
+ <injection-target>
+ <injection-target-class>entity1EjbLocalRef2Injection1Class</injection-target-class>
+ <injection-target-name>entity1EjbLocalRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>entity1EjbLocalRef2Injection2Class</injection-target-class>
+ <injection-target-name>entity1EjbLocalRef2Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>entity1EjbLocalRef2JndiName</jndi-name>
+ </ejb-local-ref>
+
+ <!-- TODO service-ref -->
+
+ <security-identity id="entity1SecurityIdentity-id">
+ <description>en-entity1SecurityIdentity-desc</description>
+ <description xml:lang="fr">fr-entity1SecurityIdentity-desc</description>
+ <description xml:lang="de">de-entity1SecurityIdentity-desc</description>
+ <run-as-principal>entity1SecurityIdentityRunAsPrincipal</run-as-principal>
+ </security-identity>
+
+ <resource-ref id="entity1ResourceRef1-id">
+ <description>en-entity1ResourceRef1-desc</description>
+ <description xml:lang="fr">fr-entity1ResourceRef1-desc</description>
+ <description xml:lang="de">de-entity1ResourceRef1-desc</description>
+ <res-ref-name>entity1ResourceRef1Name</res-ref-name>
+ <injection-target>
+ <injection-target-class>entity1ResourceRef1Injection1Class</injection-target-class>
+ <injection-target-name>entity1ResourceRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>entity1ResourceRef1Injection2Class</injection-target-class>
+ <injection-target-name>entity1ResourceRef1Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>entity1ResourceRef1JndiName</jndi-name>
+ <ignore-dependency/>
+ </resource-ref>
+ <resource-ref id="entity1ResourceRef2-id">
+ <description>en-entity1ResourceRef2-desc</description>
+ <description xml:lang="fr">fr-entity1ResourceRef2-desc</description>
+ <description xml:lang="de">de-entity1ResourceRef2-desc</description>
+ <res-ref-name>entity1ResourceRef2Name</res-ref-name>
+ <injection-target>
+ <injection-target-class>entity1ResourceRef2Injection1Class</injection-target-class>
+ <injection-target-name>entity1ResourceRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>entity1ResourceRef2Injection2Class</injection-target-class>
+ <injection-target-name>entity1ResourceRef2Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>entity1ResourceRef2JndiName</jndi-name>
+ </resource-ref>
+ <resource-env-ref id="entity1ResourceEnvRef1-id">
+ <description>en-entity1ResourceEnvRef1-desc</description>
+ <description xml:lang="fr">fr-entity1ResourceEnvRef1-desc</description>
+ <description xml:lang="de">de-entity1ResourceEnvRef1-desc</description>
+ <resource-env-ref-name>entity1ResourceEnvRef1Name</resource-env-ref-name>
+ <injection-target>
+ <injection-target-class>entity1ResourceEnvRef1Injection1Class</injection-target-class>
+ <injection-target-name>entity1ResourceEnvRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>entity1ResourceEnvRef1Injection2Class</injection-target-class>
+ <injection-target-name>entity1ResourceEnvRef1Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>entity1ResourceEnvRef1JndiName</jndi-name>
+ <ignore-dependency/>
+ </resource-env-ref>
+ <resource-env-ref id="entity1ResourceEnvRef2-id">
+ <description>en-entity1ResourceEnvRef2-desc</description>
+ <description xml:lang="fr">fr-entity1ResourceEnvRef2-desc</description>
+ <description xml:lang="de">de-entity1ResourceEnvRef2-desc</description>
+ <resource-env-ref-name>entity1ResourceEnvRef2Name</resource-env-ref-name>
+ <injection-target>
+ <injection-target-class>entity1ResourceEnvRef2Injection1Class</injection-target-class>
+ <injection-target-name>entity1ResourceEnvRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>entity1ResourceEnvRef2Injection2Class</injection-target-class>
+ <injection-target-name>entity1ResourceEnvRef2Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>entity1ResourceEnvRef2JndiName</jndi-name>
+ </resource-env-ref>
+ <message-destination-ref id="entity1MessageDestinationRef1-id">
+ <description>en-entity1MessageDestinationRef1-desc</description>
+ <description xml:lang="fr">fr-entity1MessageDestinationRef1-desc</description>
+ <description xml:lang="de">de-entity1MessageDestinationRef1-desc</description>
+ <message-destination-ref-name>entity1MessageDestinationRef1Name</message-destination-ref-name>
+ <injection-target>
+ <injection-target-class>entity1MessageDestinationRef1Injection1Class</injection-target-class>
+ <injection-target-name>entity1MessageDestinationRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>entity1MessageDestinationRef1Injection2Class</injection-target-class>
+ <injection-target-name>entity1MessageDestinationRef1Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>entity1MessageDestinationRef1JndiName</jndi-name>
+ <ignore-dependency/>
+ </message-destination-ref>
+ <message-destination-ref id="entity1MessageDestinationRef2-id">
+ <description>en-entity1MessageDestinationRef2-desc</description>
+ <description xml:lang="fr">fr-entity1MessageDestinationRef2-desc</description>
+ <description xml:lang="de">de-entity1MessageDestinationRef2-desc</description>
+ <message-destination-ref-name>entity1MessageDestinationRef2Name</message-destination-ref-name>
+ <injection-target>
+ <injection-target-class>entity1MessageDestinationRef2Injection1Class</injection-target-class>
+ <injection-target-name>entity1MessageDestinationRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>entity1MessageDestinationRef2Injection2Class</injection-target-class>
+ <injection-target-name>entity1MessageDestinationRef2Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>entity1MessageDestinationRef2JndiName</jndi-name>
+ </message-destination-ref>
+ <message-destination-ref id="entity1MessageDestinationRef3-id">
+ <description>en-entity1MessageDestinationRef3-desc</description>
+ <description xml:lang="fr">fr-entity1MessageDestinationRef3-desc</description>
+ <description xml:lang="de">de-entity1MessageDestinationRef3-desc</description>
+ <message-destination-ref-name>entity1MessageDestinationRef3Name</message-destination-ref-name>
+ <injection-target>
+ <injection-target-class>entity1MessageDestinationRef3Injection1Class</injection-target-class>
+ <injection-target-name>entity1MessageDestinationRef3Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>entity1MessageDestinationRef3Injection2Class</injection-target-class>
+ <injection-target-name>entity1MessageDestinationRef3Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>entity1MessageDestinationRef3JndiName</jndi-name>
+ </message-destination-ref>
+
+ <method-attributes id="entity1MethodAttributes-id">
+ <method id="entity1MethodAttributesMethod1-id">
+ <method-name>get*</method-name>
+ <read-only>true</read-only>
+ <idempotent>true</idempotent>
+ <transaction-timeout>5000</transaction-timeout>
+ </method>
+ <method id="entity1MethodAttributesMethod2-id">
+ <method-name>*</method-name>
+ </method>
+ </method-attributes>
+
+ <clustered>true</clustered>
+
+ <cluster-config id="entity1ClusterConfig-id">
+ <description>en-entity1ClusterConfig-desc</description>
+ <description xml:lang="fr">fr-entity1ClusterConfig-desc</description>
+ <description xml:lang="de">de-entity1ClusterConfig-desc</description>
+ <partition-name>entity1ClusterConfigPartitionName</partition-name>
+ <home-load-balancing-policy>entity1ClusterConfigHomeLoadBalancingPolicy</home-load-balancing-policy>
+ <bean-load-balancing-policy>entity1ClusterConfigBeanLoadBalancingPolicy</bean-load-balancing-policy>
+ </cluster-config>
+
+ <security-domain>entity1SecurityDomain</security-domain>
+
+ <cache-invalidation>true</cache-invalidation>
+ <cache-invalidation-config id="entity1CacheInvalidationConfig-id">
+ <description>en-entity1CacheInvalidationConfig-desc</description>
+ <description xml:lang="fr">fr-entity1CacheInvalidationConfig-desc</description>
+ <description xml:lang="de">de-entity1CacheInvalidationConfig-desc</description>
+ <invalidation-group-name>entity1CacheInvalidationConfigInvalidationGroupName</invalidation-group-name>
+ <invalidation-manager-name>entity1CacheInvalidationConfigInvalidationManagerName</invalidation-manager-name>
+ </cache-invalidation-config>
+
+ <depends>entity1Depends1</depends>
+ <depends>entity1Depends2</depends>
+
+ <ior-security-config id="entity1IorSecurityConfig-id">
+ <description>en-entity1IorSecurityConfig-desc</description>
+ <description xml:lang="fr">fr-entity1IorSecurityConfig-desc</description>
+ <description xml:lang="de">de-entity1IorSecurityConfig-desc</description>
+ <transport-config id="entity1TransportConfig-id">
+ <description>en-entity1TransportConfig-desc</description>
+ <description xml:lang="fr">fr-entity1TransportConfig-desc</description>
+ <description xml:lang="de">de-entity1TransportConfig-desc</description>
+ <integrity>NONE</integrity>
+ <confidentiality>NONE</confidentiality>
+ <establish-trust-in-target>NONE</establish-trust-in-target>
+ <establish-trust-in-client>NONE</establish-trust-in-client>
+ <detect-misordering>NONE</detect-misordering>
+ <detect-replay>NONE</detect-replay>
+ </transport-config>
+ <as-context id="entity1ASContext-id">
+ <description>en-entity1ASContext-desc</description>
+ <description xml:lang="fr">fr-entity1ASContext-desc</description>
+ <description xml:lang="de">de-entity1ASContext-desc</description>
+ <auth-method>USERNAME_PASSWORD</auth-method>
+ <realm>entity1ASContextRealm</realm>
+ <required>false</required>
+ </as-context>
+ <sas-context id="entity1SASContext-id">
+ <description>en-entity1SASContext-desc</description>
+ <description xml:lang="fr">fr-entity1SASContext-desc</description>
+ <description xml:lang="de">de-entity1SASContext-desc</description>
+ <caller-propagation>NONE</caller-propagation>
+ </sas-context>
+ </ior-security-config>
+
+ <annotation id="entity1Annotation1-id">
+ <description>en-entity1Annotation1-desc</description>
+ <description xml:lang="fr">fr-entity1Annotation1-desc</description>
+ <description xml:lang="de">de-entity1Annotation1-desc</description>
+
+ <annotation-class>entity1Annotation1Class</annotation-class>
+ <annotation-implementation-class>entity1Annotation1Impl</annotation-implementation-class>
+ <injection-target>
+ <injection-target-class>entity1Annotation1InjectionTargetClass</injection-target-class>
+ <injection-target-name>entity1Annotation1InjectionTargetName</injection-target-name>
+ </injection-target>
+ <property id="entity1Annotation1Property1-id">
+ <description>en-entity1Annotation1Property1-desc</description>
+ <description xml:lang="fr">fr-entity1Annotation1Property1-desc</description>
+ <description xml:lang="de">de-entity1Annotation1Property1-desc</description>
+ <property-name>entity1Annotation1Property1Name</property-name>
+ <property-value>entity1Annotation1Property1Value</property-value>
+ </property>
+ <property id="entity1Annotation1Property2-id">
+ <description>en-entity1Annotation1Property2-desc</description>
+ <description xml:lang="fr">fr-entity1Annotation1Property2-desc</description>
+ <description xml:lang="de">de-entity1Annotation1Property2-desc</description>
+ <property-name>entity1Annotation1Property2Name</property-name>
+ <property-value>entity1Annotation1Property2Value</property-value>
+ </property>
+ </annotation>
+ <annotation id="entity1Annotation2-id">
+ <description>en-entity1Annotation2-desc</description>
+ <description xml:lang="fr">fr-entity1Annotation2-desc</description>
+ <description xml:lang="de">de-entity1Annotation2-desc</description>
+
+ <annotation-class>entity1Annotation2Class</annotation-class>
+ <annotation-implementation-class>entity1Annotation2Impl</annotation-implementation-class>
+ <injection-target>
+ <injection-target-class>entity1Annotation2InjectionTargetClass</injection-target-class>
+ <injection-target-name>entity1Annotation2InjectionTargetName</injection-target-name>
+ </injection-target>
+ <property id="entity1Annotation2Property1-id">
+ <description>en-entity1Annotation2Property1-desc</description>
+ <description xml:lang="fr">fr-entity1Annotation2Property1-desc</description>
+ <description xml:lang="de">de-entity1Annotation2Property1-desc</description>
+ <property-name>entity1Annotation2Property1Name</property-name>
+ <property-value>entity1Annotation2Property1Value</property-value>
+ </property>
+ <property id="entity1Annotation2Property2-id">
+ <description>en-entity1Annotation2Property2-desc</description>
+ <description xml:lang="fr">fr-entity1Annotation2Property2-desc</description>
+ <description xml:lang="de">de-entity1Annotation2Property2-desc</description>
+ <property-name>entity1Annotation2Property2Name</property-name>
+ <property-value>entity1Annotation2Property2Value</property-value>
+ </property>
+ </annotation>
+
+ <ignore-dependency id="entity1IgnoreDependency-id">
+ <description>en-entity1IgnoreDependency-desc</description>
+ <description xml:lang="fr">fr-entity1IgnoreDependency-desc</description>
+ <description xml:lang="de">de-entity1IgnoreDependency-desc</description>
+ <injection-target>
+ <injection-target-class>entity1IgnoreDependencyInjection1Class</injection-target-class>
+ <injection-target-name>entity1IgnoreDependencyInjection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>entity1IgnoreDependencyInjection2Class</injection-target-class>
+ <injection-target-name>entity1IgnoreDependencyInjection2Name</injection-target-name>
+ </injection-target>
+ </ignore-dependency>
+
+ <aop-domain-name>entity1AOPDomain</aop-domain-name>
+
+ <!-- TODO cache config -->
+
+ <!-- TODO pool config -->
+
+ <jndi-ref id="entity1JndiRef1-id">
+ <description>en-entity1JndiRef1-desc</description>
+ <description xml:lang="fr">fr-entity1JndiRef1-desc</description>
+ <description xml:lang="de">de-entity1JndiRef1-desc</description>
+ <jndi-ref-name>entity1JndiRef1Name</jndi-ref-name>
+ <mapped-name>entity1JndiRef1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>entity1JndiRef1Injection1Class</injection-target-class>
+ <injection-target-name>entity1JndiRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>entity1JndiRef1Injection2Class</injection-target-class>
+ <injection-target-name>entity1JndiRef1Injection2Name</injection-target-name>
+ </injection-target>
+ </jndi-ref>
+ <jndi-ref id="entity1JndiRef2-id">
+ <description>en-entity1JndiRef2-desc</description>
+ <description xml:lang="fr">fr-entity1JndiRef2-desc</description>
+ <description xml:lang="de">de-entity1JndiRef2-desc</description>
+ <jndi-ref-name>entity1JndiRef2Name</jndi-ref-name>
+ <mapped-name>entity1JndiRef2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>entity1JndiRef2Injection1Class</injection-target-class>
+ <injection-target-name>entity1JndiRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>entity1JndiRef2Injection2Class</injection-target-class>
+ <injection-target-name>entity1JndiRef2Injection2Name</injection-target-name>
+ </injection-target>
+ </jndi-ref>
+
+ </entity>
+
+ <entity id="entity2-id">
+ <description>en-entity2-desc</description>
+ <description xml:lang="fr">fr-entity2-desc</description>
+ <description xml:lang="de">de-entity2-desc</description>
+ <display-name>en-entity2-disp</display-name>
+ <display-name xml:lang="fr">fr-entity2-disp</display-name>
+ <display-name xml:lang="de">de-entity2-disp</display-name>
+ <icon id="en-entity2-icon-id">
+ <small-icon>en-entity2-small-icon</small-icon>
+ <large-icon>en-entity2-large-icon</large-icon>
+ </icon>
+ <icon xml:lang="fr" id="fr-entity2-icon-id">
+ <small-icon>fr-entity2-small-icon</small-icon>
+ <large-icon>fr-entity2-large-icon</large-icon>
+ </icon>
+ <icon xml:lang="de" id="de-entity2-icon-id">
+ <small-icon>de-entity2-small-icon</small-icon>
+ <large-icon>de-entity2-large-icon</large-icon>
+ </icon>
+
+ <ejb-name>entity2EjbName</ejb-name>
+
+ <jndi-name>entity2JndiName</jndi-name>
+ <local-jndi-name>entity2LocalJndiName</local-jndi-name>
+ <call-by-value>false</call-by-value>
+ <read-only>false</read-only>
+ <exception-on-rollback>false</exception-on-rollback>
+ <timer-persistence>false</timer-persistence>
+ <configuration-name>entity2ConfigurationName</configuration-name>
+
+ <invoker-bindings id="entity2InvokerBindings-id">
+ <description>en-entity2InvokerBindings-desc</description>
+ <description xml:lang="fr">fr-entity2InvokerBindings-desc</description>
+ <description xml:lang="de">de-entity2InvokerBindings-desc</description>
+
+ <invoker id="entity2Invoker1-id">
+ <description>en-entity2Invoker1-desc</description>
+ <description xml:lang="fr">fr-entity2Invoker1-desc</description>
+ <description xml:lang="de">de-entity2Invoker1-desc</description>
+
+ <invoker-proxy-binding-name>entity2Invoker1Name</invoker-proxy-binding-name>
+ <jndi-name>entity2Invoker1JndiName</jndi-name>
+ <!-- TODO ejb-ref -->
+ </invoker>
+ <invoker id="entity2Invoker2-id">
+ <description>en-entity2Invoker2-desc</description>
+ <description xml:lang="fr">fr-entity2Invoker2-desc</description>
+ <description xml:lang="de">de-entity2Invoker2-desc</description>
+
+ <invoker-proxy-binding-name>entity2Invoker2Name</invoker-proxy-binding-name>
+ <jndi-name>entity2Invoker2JndiName</jndi-name>
+ <!-- TODO ejb-ref -->
+ </invoker>
+ </invoker-bindings>
+
+ <security-proxy>entity2SecurityProxy</security-proxy>
+
+ <ejb-ref id="entity2EjbRef1-id">
+ <description>en-entity2EjbRef1-desc</description>
+ <description xml:lang="fr">fr-entity2EjbRef1-desc</description>
+ <description xml:lang="de">de-entity2EjbRef1-desc</description>
+
+ <ejb-ref-name>entity2EjbRef1Name</ejb-ref-name>
+ <injection-target>
+ <injection-target-class>entity2EjbRef1Injection1Class</injection-target-class>
+ <injection-target-name>entity2EjbRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>entity2EjbRef1Injection2Class</injection-target-class>
+ <injection-target-name>entity2EjbRef1Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>entity2EjbRef1JndiName</jndi-name>
+ <ignore-dependency/>
+ </ejb-ref>
+ <ejb-ref id="entity2EjbRef2-id">
+ <description>en-entity2EjbRef2-desc</description>
+ <description xml:lang="fr">fr-entity2EjbRef2-desc</description>
+ <description xml:lang="de">de-entity2EjbRef2-desc</description>
+
+ <ejb-ref-name>entity2EjbRef2Name</ejb-ref-name>
+ <injection-target>
+ <injection-target-class>entity2EjbRef2Injection1Class</injection-target-class>
+ <injection-target-name>entity2EjbRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>entity2EjbRef2Injection2Class</injection-target-class>
+ <injection-target-name>entity2EjbRef2Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>entity2EjbRef2JndiName</jndi-name>
+ </ejb-ref>
+
+ <ejb-local-ref id="entity2EjbLocalRef1-id">
+ <description>en-entity2EjbLocalRef1-desc</description>
+ <description xml:lang="fr">fr-entity2EjbLocalRef1-desc</description>
+ <description xml:lang="de">de-entity2EjbLocalRef1-desc</description>
+
+ <ejb-ref-name>entity2EjbLocalRef1Name</ejb-ref-name>
+ <injection-target>
+ <injection-target-class>entity2EjbLocalRef1Injection1Class</injection-target-class>
+ <injection-target-name>entity2EjbLocalRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>entity2EjbLocalRef1Injection2Class</injection-target-class>
+ <injection-target-name>entity2EjbLocalRef1Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>entity2EjbLocalRef1JndiName</jndi-name>
+ <ignore-dependency/>
+ </ejb-local-ref>
+ <ejb-local-ref id="entity2EjbLocalRef2-id">
+ <description>en-entity2EjbLocalRef2-desc</description>
+ <description xml:lang="fr">fr-entity2EjbLocalRef2-desc</description>
+ <description xml:lang="de">de-entity2EjbLocalRef2-desc</description>
+
+ <ejb-ref-name>entity2EjbLocalRef2Name</ejb-ref-name>
+ <injection-target>
+ <injection-target-class>entity2EjbLocalRef2Injection1Class</injection-target-class>
+ <injection-target-name>entity2EjbLocalRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>entity2EjbLocalRef2Injection2Class</injection-target-class>
+ <injection-target-name>entity2EjbLocalRef2Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>entity2EjbLocalRef2JndiName</jndi-name>
+ </ejb-local-ref>
+
+ <!-- TODO service-ref -->
+
+ <security-identity id="entity2SecurityIdentity-id">
+ <description>en-entity2SecurityIdentity-desc</description>
+ <description xml:lang="fr">fr-entity2SecurityIdentity-desc</description>
+ <description xml:lang="de">de-entity2SecurityIdentity-desc</description>
+ <run-as-principal>entity2SecurityIdentityRunAsPrincipal</run-as-principal>
+ </security-identity>
+
+ <resource-ref id="entity2ResourceRef1-id">
+ <description>en-entity2ResourceRef1-desc</description>
+ <description xml:lang="fr">fr-entity2ResourceRef1-desc</description>
+ <description xml:lang="de">de-entity2ResourceRef1-desc</description>
+ <res-ref-name>entity2ResourceRef1Name</res-ref-name>
+ <injection-target>
+ <injection-target-class>entity2ResourceRef1Injection1Class</injection-target-class>
+ <injection-target-name>entity2ResourceRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>entity2ResourceRef1Injection2Class</injection-target-class>
+ <injection-target-name>entity2ResourceRef1Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>entity2ResourceRef1JndiName</jndi-name>
+ <ignore-dependency/>
+ </resource-ref>
+ <resource-ref id="entity2ResourceRef2-id">
+ <description>en-entity2ResourceRef2-desc</description>
+ <description xml:lang="fr">fr-entity2ResourceRef2-desc</description>
+ <description xml:lang="de">de-entity2ResourceRef2-desc</description>
+ <res-ref-name>entity2ResourceRef2Name</res-ref-name>
+ <injection-target>
+ <injection-target-class>entity2ResourceRef2Injection1Class</injection-target-class>
+ <injection-target-name>entity2ResourceRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>entity2ResourceRef2Injection2Class</injection-target-class>
+ <injection-target-name>entity2ResourceRef2Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>entity2ResourceRef2JndiName</jndi-name>
+ </resource-ref>
+ <resource-env-ref id="entity2ResourceEnvRef1-id">
+ <description>en-entity2ResourceEnvRef1-desc</description>
+ <description xml:lang="fr">fr-entity2ResourceEnvRef1-desc</description>
+ <description xml:lang="de">de-entity2ResourceEnvRef1-desc</description>
+ <resource-env-ref-name>entity2ResourceEnvRef1Name</resource-env-ref-name>
+ <injection-target>
+ <injection-target-class>entity2ResourceEnvRef1Injection1Class</injection-target-class>
+ <injection-target-name>entity2ResourceEnvRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>entity2ResourceEnvRef1Injection2Class</injection-target-class>
+ <injection-target-name>entity2ResourceEnvRef1Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>entity2ResourceEnvRef1JndiName</jndi-name>
+ <ignore-dependency/>
+ </resource-env-ref>
+ <resource-env-ref id="entity2ResourceEnvRef2-id">
+ <description>en-entity2ResourceEnvRef2-desc</description>
+ <description xml:lang="fr">fr-entity2ResourceEnvRef2-desc</description>
+ <description xml:lang="de">de-entity2ResourceEnvRef2-desc</description>
+ <resource-env-ref-name>entity2ResourceEnvRef2Name</resource-env-ref-name>
+ <injection-target>
+ <injection-target-class>entity2ResourceEnvRef2Injection1Class</injection-target-class>
+ <injection-target-name>entity2ResourceEnvRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>entity2ResourceEnvRef2Injection2Class</injection-target-class>
+ <injection-target-name>entity2ResourceEnvRef2Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>entity2ResourceEnvRef2JndiName</jndi-name>
+ </resource-env-ref>
+ <message-destination-ref id="entity2MessageDestinationRef1-id">
+ <description>en-entity2MessageDestinationRef1-desc</description>
+ <description xml:lang="fr">fr-entity2MessageDestinationRef1-desc</description>
+ <description xml:lang="de">de-entity2MessageDestinationRef1-desc</description>
+ <message-destination-ref-name>entity2MessageDestinationRef1Name</message-destination-ref-name>
+ <injection-target>
+ <injection-target-class>entity2MessageDestinationRef1Injection1Class</injection-target-class>
+ <injection-target-name>entity2MessageDestinationRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>entity2MessageDestinationRef1Injection2Class</injection-target-class>
+ <injection-target-name>entity2MessageDestinationRef1Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>entity2MessageDestinationRef1JndiName</jndi-name>
+ <ignore-dependency/>
+ </message-destination-ref>
+ <message-destination-ref id="entity2MessageDestinationRef2-id">
+ <description>en-entity2MessageDestinationRef2-desc</description>
+ <description xml:lang="fr">fr-entity2MessageDestinationRef2-desc</description>
+ <description xml:lang="de">de-entity2MessageDestinationRef2-desc</description>
+ <message-destination-ref-name>entity2MessageDestinationRef2Name</message-destination-ref-name>
+ <injection-target>
+ <injection-target-class>entity2MessageDestinationRef2Injection1Class</injection-target-class>
+ <injection-target-name>entity2MessageDestinationRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>entity2MessageDestinationRef2Injection2Class</injection-target-class>
+ <injection-target-name>entity2MessageDestinationRef2Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>entity2MessageDestinationRef2JndiName</jndi-name>
+ </message-destination-ref>
+ <message-destination-ref id="entity2MessageDestinationRef3-id">
+ <description>en-entity2MessageDestinationRef3-desc</description>
+ <description xml:lang="fr">fr-entity2MessageDestinationRef3-desc</description>
+ <description xml:lang="de">de-entity2MessageDestinationRef3-desc</description>
+ <message-destination-ref-name>entity2MessageDestinationRef3Name</message-destination-ref-name>
+ <injection-target>
+ <injection-target-class>entity2MessageDestinationRef3Injection1Class</injection-target-class>
+ <injection-target-name>entity2MessageDestinationRef3Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>entity2MessageDestinationRef3Injection2Class</injection-target-class>
+ <injection-target-name>entity2MessageDestinationRef3Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>entity2MessageDestinationRef3JndiName</jndi-name>
+ </message-destination-ref>
+
+ <method-attributes id="entity2MethodAttributes-id">
+ <method id="entity2MethodAttributesMethod1-id">
+ <method-name>get*</method-name>
+ <read-only>true</read-only>
+ <idempotent>true</idempotent>
+ <transaction-timeout>5000</transaction-timeout>
+ </method>
+ <method id="entity2MethodAttributesMethod2-id">
+ <method-name>*</method-name>
+ </method>
+ </method-attributes>
+
+ <clustered>false</clustered>
+
+ <cluster-config id="entity2ClusterConfig-id">
+ <description>en-entity2ClusterConfig-desc</description>
+ <description xml:lang="fr">fr-entity2ClusterConfig-desc</description>
+ <description xml:lang="de">de-entity2ClusterConfig-desc</description>
+ <partition-name>entity2ClusterConfigPartitionName</partition-name>
+ <home-load-balancing-policy>entity2ClusterConfigHomeLoadBalancingPolicy</home-load-balancing-policy>
+ <bean-load-balancing-policy>entity2ClusterConfigBeanLoadBalancingPolicy</bean-load-balancing-policy>
+ </cluster-config>
+
+ <security-domain>entity2SecurityDomain</security-domain>
+
+ <cache-invalidation>false</cache-invalidation>
+ <cache-invalidation-config id="entity2CacheInvalidationConfig-id">
+ <description>en-entity2CacheInvalidationConfig-desc</description>
+ <description xml:lang="fr">fr-entity2CacheInvalidationConfig-desc</description>
+ <description xml:lang="de">de-entity2CacheInvalidationConfig-desc</description>
+ <invalidation-group-name>entity2CacheInvalidationConfigInvalidationGroupName</invalidation-group-name>
+ <invalidation-manager-name>entity2CacheInvalidationConfigInvalidationManagerName</invalidation-manager-name>
+ </cache-invalidation-config>
+
+ <depends>entity2Depends1</depends>
+ <depends>entity2Depends2</depends>
+
+ <ior-security-config id="entity2IorSecurityConfig-id">
+ <description>en-entity2IorSecurityConfig-desc</description>
+ <description xml:lang="fr">fr-entity2IorSecurityConfig-desc</description>
+ <description xml:lang="de">de-entity2IorSecurityConfig-desc</description>
+ <transport-config id="entity2TransportConfig-id">
+ <description>en-entity2TransportConfig-desc</description>
+ <description xml:lang="fr">fr-entity2TransportConfig-desc</description>
+ <description xml:lang="de">de-entity2TransportConfig-desc</description>
+ <integrity>NONE</integrity>
+ <confidentiality>NONE</confidentiality>
+ <establish-trust-in-target>NONE</establish-trust-in-target>
+ <establish-trust-in-client>NONE</establish-trust-in-client>
+ <detect-misordering>NONE</detect-misordering>
+ <detect-replay>NONE</detect-replay>
+ </transport-config>
+ <as-context id="entity2ASContext-id">
+ <description>en-entity2ASContext-desc</description>
+ <description xml:lang="fr">fr-entity2ASContext-desc</description>
+ <description xml:lang="de">de-entity2ASContext-desc</description>
+ <auth-method>USERNAME_PASSWORD</auth-method>
+ <realm>entity2ASContextRealm</realm>
+ <required>false</required>
+ </as-context>
+ <sas-context id="entity2SASContext-id">
+ <description>en-entity2SASContext-desc</description>
+ <description xml:lang="fr">fr-entity2SASContext-desc</description>
+ <description xml:lang="de">de-entity2SASContext-desc</description>
+ <caller-propagation>NONE</caller-propagation>
+ </sas-context>
+ </ior-security-config>
+
+ <annotation id="entity2Annotation1-id">
+ <description>en-entity2Annotation1-desc</description>
+ <description xml:lang="fr">fr-entity2Annotation1-desc</description>
+ <description xml:lang="de">de-entity2Annotation1-desc</description>
+
+ <annotation-class>entity2Annotation1Class</annotation-class>
+ <annotation-implementation-class>entity2Annotation1Impl</annotation-implementation-class>
+ <injection-target>
+ <injection-target-class>entity2Annotation1InjectionTargetClass</injection-target-class>
+ <injection-target-name>entity2Annotation1InjectionTargetName</injection-target-name>
+ </injection-target>
+ <property id="entity2Annotation1Property1-id">
+ <description>en-entity2Annotation1Property1-desc</description>
+ <description xml:lang="fr">fr-entity2Annotation1Property1-desc</description>
+ <description xml:lang="de">de-entity2Annotation1Property1-desc</description>
+ <property-name>entity2Annotation1Property1Name</property-name>
+ <property-value>entity2Annotation1Property1Value</property-value>
+ </property>
+ <property id="entity2Annotation1Property2-id">
+ <description>en-entity2Annotation1Property2-desc</description>
+ <description xml:lang="fr">fr-entity2Annotation1Property2-desc</description>
+ <description xml:lang="de">de-entity2Annotation1Property2-desc</description>
+ <property-name>entity2Annotation1Property2Name</property-name>
+ <property-value>entity2Annotation1Property2Value</property-value>
+ </property>
+ </annotation>
+ <annotation id="entity2Annotation2-id">
+ <description>en-entity2Annotation2-desc</description>
+ <description xml:lang="fr">fr-entity2Annotation2-desc</description>
+ <description xml:lang="de">de-entity2Annotation2-desc</description>
+
+ <annotation-class>entity2Annotation2Class</annotation-class>
+ <annotation-implementation-class>entity2Annotation2Impl</annotation-implementation-class>
+ <injection-target>
+ <injection-target-class>entity2Annotation2InjectionTargetClass</injection-target-class>
+ <injection-target-name>entity2Annotation2InjectionTargetName</injection-target-name>
+ </injection-target>
+ <property id="entity2Annotation2Property1-id">
+ <description>en-entity2Annotation2Property1-desc</description>
+ <description xml:lang="fr">fr-entity2Annotation2Property1-desc</description>
+ <description xml:lang="de">de-entity2Annotation2Property1-desc</description>
+ <property-name>entity2Annotation2Property1Name</property-name>
+ <property-value>entity2Annotation2Property1Value</property-value>
+ </property>
+ <property id="entity2Annotation2Property2-id">
+ <description>en-entity2Annotation2Property2-desc</description>
+ <description xml:lang="fr">fr-entity2Annotation2Property2-desc</description>
+ <description xml:lang="de">de-entity2Annotation2Property2-desc</description>
+ <property-name>entity2Annotation2Property2Name</property-name>
+ <property-value>entity2Annotation2Property2Value</property-value>
+ </property>
+ </annotation>
+
+ <ignore-dependency id="entity2IgnoreDependency-id">
+ <description>en-entity2IgnoreDependency-desc</description>
+ <description xml:lang="fr">fr-entity2IgnoreDependency-desc</description>
+ <description xml:lang="de">de-entity2IgnoreDependency-desc</description>
+ <injection-target>
+ <injection-target-class>entity2IgnoreDependencyInjection1Class</injection-target-class>
+ <injection-target-name>entity2IgnoreDependencyInjection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>entity2IgnoreDependencyInjection2Class</injection-target-class>
+ <injection-target-name>entity2IgnoreDependencyInjection2Name</injection-target-name>
+ </injection-target>
+ </ignore-dependency>
+
+ <aop-domain-name>entity2AOPDomain</aop-domain-name>
+
+ <!-- TODO cache config -->
+
+ <!-- TODO pool config -->
+
+ <jndi-ref id="entity2JndiRef1-id">
+ <description>en-entity2JndiRef1-desc</description>
+ <description xml:lang="fr">fr-entity2JndiRef1-desc</description>
+ <description xml:lang="de">de-entity2JndiRef1-desc</description>
+ <jndi-ref-name>entity2JndiRef1Name</jndi-ref-name>
+ <mapped-name>entity2JndiRef1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>entity2JndiRef1Injection1Class</injection-target-class>
+ <injection-target-name>entity2JndiRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>entity2JndiRef1Injection2Class</injection-target-class>
+ <injection-target-name>entity2JndiRef1Injection2Name</injection-target-name>
+ </injection-target>
+ </jndi-ref>
+ <jndi-ref id="entity2JndiRef2-id">
+ <description>en-entity2JndiRef2-desc</description>
+ <description xml:lang="fr">fr-entity2JndiRef2-desc</description>
+ <description xml:lang="de">de-entity2JndiRef2-desc</description>
+ <jndi-ref-name>entity2JndiRef2Name</jndi-ref-name>
+ <mapped-name>entity2JndiRef2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>entity2JndiRef2Injection1Class</injection-target-class>
+ <injection-target-name>entity2JndiRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>entity2JndiRef2Injection2Class</injection-target-class>
+ <injection-target-name>entity2JndiRef2Injection2Name</injection-target-name>
+ </injection-target>
+ </jndi-ref>
+
+ </entity>
+
+ <message-driven>
+ <ejb-name>mdb0EjbName</ejb-name>
+ </message-driven>
+
+ <message-driven id="mdb1-id">
+ <description>en-mdb1-desc</description>
+ <description xml:lang="fr">fr-mdb1-desc</description>
+ <description xml:lang="de">de-mdb1-desc</description>
+ <display-name>en-mdb1-disp</display-name>
+ <display-name xml:lang="fr">fr-mdb1-disp</display-name>
+ <display-name xml:lang="de">de-mdb1-disp</display-name>
+ <icon id="en-mdb1-icon-id">
+ <small-icon>en-mdb1-small-icon</small-icon>
+ <large-icon>en-mdb1-large-icon</large-icon>
+ </icon>
+ <icon xml:lang="fr" id="fr-mdb1-icon-id">
+ <small-icon>fr-mdb1-small-icon</small-icon>
+ <large-icon>fr-mdb1-large-icon</large-icon>
+ </icon>
+ <icon xml:lang="de" id="de-mdb1-icon-id">
+ <small-icon>de-mdb1-small-icon</small-icon>
+ <large-icon>de-mdb1-large-icon</large-icon>
+ </icon>
+
+ <ejb-name>mdb1EjbName</ejb-name>
+
+ <destination-jndi-name>mdb1DestinationJndiName</destination-jndi-name>
+ <local-jndi-name>mdb1LocalJndiName</local-jndi-name>
+ <mdb-user>mdb1User</mdb-user>
+ <mdb-passwd>mdb1Password</mdb-passwd>
+ <mdb-client-id>mdb1ClientId</mdb-client-id>
+ <mdb-subscription-id>mdb1SubscriptionId</mdb-subscription-id>
+ <resource-adapter-name>mdb1RAR</resource-adapter-name>
+ <exception-on-rollback>true</exception-on-rollback>
+ <timer-persistence>true</timer-persistence>
+ <configuration-name>mdb1ConfigurationName</configuration-name>
+
+ <invoker-bindings id="mdb1InvokerBindings-id">
+ <description>en-mdb1InvokerBindings-desc</description>
+ <description xml:lang="fr">fr-mdb1InvokerBindings-desc</description>
+ <description xml:lang="de">de-mdb1InvokerBindings-desc</description>
+
+ <invoker id="mdb1Invoker1-id">
+ <description>en-mdb1Invoker1-desc</description>
+ <description xml:lang="fr">fr-mdb1Invoker1-desc</description>
+ <description xml:lang="de">de-mdb1Invoker1-desc</description>
+
+ <invoker-proxy-binding-name>mdb1Invoker1Name</invoker-proxy-binding-name>
+ <jndi-name>mdb1Invoker1JndiName</jndi-name>
+ <!-- TODO ejb-ref -->
+ </invoker>
+ <invoker id="mdb1Invoker2-id">
+ <description>en-mdb1Invoker2-desc</description>
+ <description xml:lang="fr">fr-mdb1Invoker2-desc</description>
+ <description xml:lang="de">de-mdb1Invoker2-desc</description>
+
+ <invoker-proxy-binding-name>mdb1Invoker2Name</invoker-proxy-binding-name>
+ <jndi-name>mdb1Invoker2JndiName</jndi-name>
+ <!-- TODO ejb-ref -->
+ </invoker>
+ </invoker-bindings>
+
+ <security-proxy>mdb1SecurityProxy</security-proxy>
+
+ <ejb-ref id="mdb1EjbRef1-id">
+ <description>en-mdb1EjbRef1-desc</description>
+ <description xml:lang="fr">fr-mdb1EjbRef1-desc</description>
+ <description xml:lang="de">de-mdb1EjbRef1-desc</description>
+
+ <ejb-ref-name>mdb1EjbRef1Name</ejb-ref-name>
+ <injection-target>
+ <injection-target-class>mdb1EjbRef1Injection1Class</injection-target-class>
+ <injection-target-name>mdb1EjbRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>mdb1EjbRef1Injection2Class</injection-target-class>
+ <injection-target-name>mdb1EjbRef1Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>mdb1EjbRef1JndiName</jndi-name>
+ <ignore-dependency/>
+ </ejb-ref>
+ <ejb-ref id="mdb1EjbRef2-id">
+ <description>en-mdb1EjbRef2-desc</description>
+ <description xml:lang="fr">fr-mdb1EjbRef2-desc</description>
+ <description xml:lang="de">de-mdb1EjbRef2-desc</description>
+
+ <ejb-ref-name>mdb1EjbRef2Name</ejb-ref-name>
+ <injection-target>
+ <injection-target-class>mdb1EjbRef2Injection1Class</injection-target-class>
+ <injection-target-name>mdb1EjbRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>mdb1EjbRef2Injection2Class</injection-target-class>
+ <injection-target-name>mdb1EjbRef2Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>mdb1EjbRef2JndiName</jndi-name>
+ </ejb-ref>
+
+ <ejb-local-ref id="mdb1EjbLocalRef1-id">
+ <description>en-mdb1EjbLocalRef1-desc</description>
+ <description xml:lang="fr">fr-mdb1EjbLocalRef1-desc</description>
+ <description xml:lang="de">de-mdb1EjbLocalRef1-desc</description>
+
+ <ejb-ref-name>mdb1EjbLocalRef1Name</ejb-ref-name>
+ <injection-target>
+ <injection-target-class>mdb1EjbLocalRef1Injection1Class</injection-target-class>
+ <injection-target-name>mdb1EjbLocalRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>mdb1EjbLocalRef1Injection2Class</injection-target-class>
+ <injection-target-name>mdb1EjbLocalRef1Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>mdb1EjbLocalRef1JndiName</jndi-name>
+ <ignore-dependency/>
+ </ejb-local-ref>
+ <ejb-local-ref id="mdb1EjbLocalRef2-id">
+ <description>en-mdb1EjbLocalRef2-desc</description>
+ <description xml:lang="fr">fr-mdb1EjbLocalRef2-desc</description>
+ <description xml:lang="de">de-mdb1EjbLocalRef2-desc</description>
+
+ <ejb-ref-name>mdb1EjbLocalRef2Name</ejb-ref-name>
+ <injection-target>
+ <injection-target-class>mdb1EjbLocalRef2Injection1Class</injection-target-class>
+ <injection-target-name>mdb1EjbLocalRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>mdb1EjbLocalRef2Injection2Class</injection-target-class>
+ <injection-target-name>mdb1EjbLocalRef2Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>mdb1EjbLocalRef2JndiName</jndi-name>
+ </ejb-local-ref>
+
+ <!-- TODO service-ref -->
+
+ <security-identity id="mdb1SecurityIdentity-id">
+ <description>en-mdb1SecurityIdentity-desc</description>
+ <description xml:lang="fr">fr-mdb1SecurityIdentity-desc</description>
+ <description xml:lang="de">de-mdb1SecurityIdentity-desc</description>
+ <run-as-principal>mdb1SecurityIdentityRunAsPrincipal</run-as-principal>
+ </security-identity>
+
+ <resource-ref id="mdb1ResourceRef1-id">
+ <description>en-mdb1ResourceRef1-desc</description>
+ <description xml:lang="fr">fr-mdb1ResourceRef1-desc</description>
+ <description xml:lang="de">de-mdb1ResourceRef1-desc</description>
+ <res-ref-name>mdb1ResourceRef1Name</res-ref-name>
+ <injection-target>
+ <injection-target-class>mdb1ResourceRef1Injection1Class</injection-target-class>
+ <injection-target-name>mdb1ResourceRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>mdb1ResourceRef1Injection2Class</injection-target-class>
+ <injection-target-name>mdb1ResourceRef1Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>mdb1ResourceRef1JndiName</jndi-name>
+ <ignore-dependency/>
+ </resource-ref>
+ <resource-ref id="mdb1ResourceRef2-id">
+ <description>en-mdb1ResourceRef2-desc</description>
+ <description xml:lang="fr">fr-mdb1ResourceRef2-desc</description>
+ <description xml:lang="de">de-mdb1ResourceRef2-desc</description>
+ <res-ref-name>mdb1ResourceRef2Name</res-ref-name>
+ <injection-target>
+ <injection-target-class>mdb1ResourceRef2Injection1Class</injection-target-class>
+ <injection-target-name>mdb1ResourceRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>mdb1ResourceRef2Injection2Class</injection-target-class>
+ <injection-target-name>mdb1ResourceRef2Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>mdb1ResourceRef2JndiName</jndi-name>
+ </resource-ref>
+ <resource-env-ref id="mdb1ResourceEnvRef1-id">
+ <description>en-mdb1ResourceEnvRef1-desc</description>
+ <description xml:lang="fr">fr-mdb1ResourceEnvRef1-desc</description>
+ <description xml:lang="de">de-mdb1ResourceEnvRef1-desc</description>
+ <resource-env-ref-name>mdb1ResourceEnvRef1Name</resource-env-ref-name>
+ <injection-target>
+ <injection-target-class>mdb1ResourceEnvRef1Injection1Class</injection-target-class>
+ <injection-target-name>mdb1ResourceEnvRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>mdb1ResourceEnvRef1Injection2Class</injection-target-class>
+ <injection-target-name>mdb1ResourceEnvRef1Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>mdb1ResourceEnvRef1JndiName</jndi-name>
+ <ignore-dependency/>
+ </resource-env-ref>
+ <resource-env-ref id="mdb1ResourceEnvRef2-id">
+ <description>en-mdb1ResourceEnvRef2-desc</description>
+ <description xml:lang="fr">fr-mdb1ResourceEnvRef2-desc</description>
+ <description xml:lang="de">de-mdb1ResourceEnvRef2-desc</description>
+ <resource-env-ref-name>mdb1ResourceEnvRef2Name</resource-env-ref-name>
+ <injection-target>
+ <injection-target-class>mdb1ResourceEnvRef2Injection1Class</injection-target-class>
+ <injection-target-name>mdb1ResourceEnvRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>mdb1ResourceEnvRef2Injection2Class</injection-target-class>
+ <injection-target-name>mdb1ResourceEnvRef2Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>mdb1ResourceEnvRef2JndiName</jndi-name>
+ </resource-env-ref>
+ <message-destination-ref id="mdb1MessageDestinationRef1-id">
+ <description>en-mdb1MessageDestinationRef1-desc</description>
+ <description xml:lang="fr">fr-mdb1MessageDestinationRef1-desc</description>
+ <description xml:lang="de">de-mdb1MessageDestinationRef1-desc</description>
+ <message-destination-ref-name>mdb1MessageDestinationRef1Name</message-destination-ref-name>
+ <injection-target>
+ <injection-target-class>mdb1MessageDestinationRef1Injection1Class</injection-target-class>
+ <injection-target-name>mdb1MessageDestinationRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>mdb1MessageDestinationRef1Injection2Class</injection-target-class>
+ <injection-target-name>mdb1MessageDestinationRef1Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>mdb1MessageDestinationRef1JndiName</jndi-name>
+ <ignore-dependency/>
+ </message-destination-ref>
+ <message-destination-ref id="mdb1MessageDestinationRef2-id">
+ <description>en-mdb1MessageDestinationRef2-desc</description>
+ <description xml:lang="fr">fr-mdb1MessageDestinationRef2-desc</description>
+ <description xml:lang="de">de-mdb1MessageDestinationRef2-desc</description>
+ <message-destination-ref-name>mdb1MessageDestinationRef2Name</message-destination-ref-name>
+ <injection-target>
+ <injection-target-class>mdb1MessageDestinationRef2Injection1Class</injection-target-class>
+ <injection-target-name>mdb1MessageDestinationRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>mdb1MessageDestinationRef2Injection2Class</injection-target-class>
+ <injection-target-name>mdb1MessageDestinationRef2Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>mdb1MessageDestinationRef2JndiName</jndi-name>
+ </message-destination-ref>
+ <message-destination-ref id="mdb1MessageDestinationRef3-id">
+ <description>en-mdb1MessageDestinationRef3-desc</description>
+ <description xml:lang="fr">fr-mdb1MessageDestinationRef3-desc</description>
+ <description xml:lang="de">de-mdb1MessageDestinationRef3-desc</description>
+ <message-destination-ref-name>mdb1MessageDestinationRef3Name</message-destination-ref-name>
+ <injection-target>
+ <injection-target-class>mdb1MessageDestinationRef3Injection1Class</injection-target-class>
+ <injection-target-name>mdb1MessageDestinationRef3Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>mdb1MessageDestinationRef3Injection2Class</injection-target-class>
+ <injection-target-name>mdb1MessageDestinationRef3Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>mdb1MessageDestinationRef3JndiName</jndi-name>
+ </message-destination-ref>
+
+ <method-attributes id="mdb1MethodAttributes-id">
+ <method id="mdb1MethodAttributesMethod1-id">
+ <method-name>get*</method-name>
+ <read-only>true</read-only>
+ <idempotent>true</idempotent>
+ <transaction-timeout>5000</transaction-timeout>
+ </method>
+ <method id="mdb1MethodAttributesMethod2-id">
+ <method-name>*</method-name>
+ </method>
+ </method-attributes>
+
+ <depends>mdb1Depends1</depends>
+ <depends>mdb1Depends2</depends>
+
+ <ior-security-config id="mdb1IorSecurityConfig-id">
+ <description>en-mdb1IorSecurityConfig-desc</description>
+ <description xml:lang="fr">fr-mdb1IorSecurityConfig-desc</description>
+ <description xml:lang="de">de-mdb1IorSecurityConfig-desc</description>
+ <transport-config id="mdb1TransportConfig-id">
+ <description>en-mdb1TransportConfig-desc</description>
+ <description xml:lang="fr">fr-mdb1TransportConfig-desc</description>
+ <description xml:lang="de">de-mdb1TransportConfig-desc</description>
+ <integrity>NONE</integrity>
+ <confidentiality>NONE</confidentiality>
+ <establish-trust-in-target>NONE</establish-trust-in-target>
+ <establish-trust-in-client>NONE</establish-trust-in-client>
+ <detect-misordering>NONE</detect-misordering>
+ <detect-replay>NONE</detect-replay>
+ </transport-config>
+ <as-context id="mdb1ASContext-id">
+ <description>en-mdb1ASContext-desc</description>
+ <description xml:lang="fr">fr-mdb1ASContext-desc</description>
+ <description xml:lang="de">de-mdb1ASContext-desc</description>
+ <auth-method>USERNAME_PASSWORD</auth-method>
+ <realm>mdb1ASContextRealm</realm>
+ <required>false</required>
+ </as-context>
+ <sas-context id="mdb1SASContext-id">
+ <description>en-mdb1SASContext-desc</description>
+ <description xml:lang="fr">fr-mdb1SASContext-desc</description>
+ <description xml:lang="de">de-mdb1SASContext-desc</description>
+ <caller-propagation>NONE</caller-propagation>
+ </sas-context>
+ </ior-security-config>
+
+ <ejb-timeout-identity id="mdb1EjbTimeoutIdentity-id">
+ <description>en-mdb1EjbTimeoutIdentity-desc</description>
+ <description xml:lang="fr">fr-mdb1EjbTimeoutIdentity-desc</description>
+ <description xml:lang="de">de-mdb1EjbTimeoutIdentity-desc</description>
+ <run-as-principal>mdb1EjbTimeoutIdentityRunAsPrincipal</run-as-principal>
+ </ejb-timeout-identity>
+
+ <annotation id="mdb1Annotation1-id">
+ <description>en-mdb1Annotation1-desc</description>
+ <description xml:lang="fr">fr-mdb1Annotation1-desc</description>
+ <description xml:lang="de">de-mdb1Annotation1-desc</description>
+
+ <annotation-class>mdb1Annotation1Class</annotation-class>
+ <annotation-implementation-class>mdb1Annotation1Impl</annotation-implementation-class>
+ <injection-target>
+ <injection-target-class>mdb1Annotation1InjectionTargetClass</injection-target-class>
+ <injection-target-name>mdb1Annotation1InjectionTargetName</injection-target-name>
+ </injection-target>
+ <property id="mdb1Annotation1Property1-id">
+ <description>en-mdb1Annotation1Property1-desc</description>
+ <description xml:lang="fr">fr-mdb1Annotation1Property1-desc</description>
+ <description xml:lang="de">de-mdb1Annotation1Property1-desc</description>
+ <property-name>mdb1Annotation1Property1Name</property-name>
+ <property-value>mdb1Annotation1Property1Value</property-value>
+ </property>
+ <property id="mdb1Annotation1Property2-id">
+ <description>en-mdb1Annotation1Property2-desc</description>
+ <description xml:lang="fr">fr-mdb1Annotation1Property2-desc</description>
+ <description xml:lang="de">de-mdb1Annotation1Property2-desc</description>
+ <property-name>mdb1Annotation1Property2Name</property-name>
+ <property-value>mdb1Annotation1Property2Value</property-value>
+ </property>
+ </annotation>
+ <annotation id="mdb1Annotation2-id">
+ <description>en-mdb1Annotation2-desc</description>
+ <description xml:lang="fr">fr-mdb1Annotation2-desc</description>
+ <description xml:lang="de">de-mdb1Annotation2-desc</description>
+
+ <annotation-class>mdb1Annotation2Class</annotation-class>
+ <annotation-implementation-class>mdb1Annotation2Impl</annotation-implementation-class>
+ <injection-target>
+ <injection-target-class>mdb1Annotation2InjectionTargetClass</injection-target-class>
+ <injection-target-name>mdb1Annotation2InjectionTargetName</injection-target-name>
+ </injection-target>
+ <property id="mdb1Annotation2Property1-id">
+ <description>en-mdb1Annotation2Property1-desc</description>
+ <description xml:lang="fr">fr-mdb1Annotation2Property1-desc</description>
+ <description xml:lang="de">de-mdb1Annotation2Property1-desc</description>
+ <property-name>mdb1Annotation2Property1Name</property-name>
+ <property-value>mdb1Annotation2Property1Value</property-value>
+ </property>
+ <property id="mdb1Annotation2Property2-id">
+ <description>en-mdb1Annotation2Property2-desc</description>
+ <description xml:lang="fr">fr-mdb1Annotation2Property2-desc</description>
+ <description xml:lang="de">de-mdb1Annotation2Property2-desc</description>
+ <property-name>mdb1Annotation2Property2Name</property-name>
+ <property-value>mdb1Annotation2Property2Value</property-value>
+ </property>
+ </annotation>
+
+ <ignore-dependency id="mdb1IgnoreDependency-id">
+ <description>en-mdb1IgnoreDependency-desc</description>
+ <description xml:lang="fr">fr-mdb1IgnoreDependency-desc</description>
+ <description xml:lang="de">de-mdb1IgnoreDependency-desc</description>
+ <injection-target>
+ <injection-target-class>mdb1IgnoreDependencyInjection1Class</injection-target-class>
+ <injection-target-name>mdb1IgnoreDependencyInjection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>mdb1IgnoreDependencyInjection2Class</injection-target-class>
+ <injection-target-name>mdb1IgnoreDependencyInjection2Name</injection-target-name>
+ </injection-target>
+ </ignore-dependency>
+
+ <aop-domain-name>mdb1AOPDomain</aop-domain-name>
+
+ <!-- TODO pool config -->
+
+ <jndi-ref id="mdb1JndiRef1-id">
+ <description>en-mdb1JndiRef1-desc</description>
+ <description xml:lang="fr">fr-mdb1JndiRef1-desc</description>
+ <description xml:lang="de">de-mdb1JndiRef1-desc</description>
+ <jndi-ref-name>mdb1JndiRef1Name</jndi-ref-name>
+ <mapped-name>mdb1JndiRef1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>mdb1JndiRef1Injection1Class</injection-target-class>
+ <injection-target-name>mdb1JndiRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>mdb1JndiRef1Injection2Class</injection-target-class>
+ <injection-target-name>mdb1JndiRef1Injection2Name</injection-target-name>
+ </injection-target>
+ </jndi-ref>
+ <jndi-ref id="mdb1JndiRef2-id">
+ <description>en-mdb1JndiRef2-desc</description>
+ <description xml:lang="fr">fr-mdb1JndiRef2-desc</description>
+ <description xml:lang="de">de-mdb1JndiRef2-desc</description>
+ <jndi-ref-name>mdb1JndiRef2Name</jndi-ref-name>
+ <mapped-name>mdb1JndiRef2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>mdb1JndiRef2Injection1Class</injection-target-class>
+ <injection-target-name>mdb1JndiRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>mdb1JndiRef2Injection2Class</injection-target-class>
+ <injection-target-name>mdb1JndiRef2Injection2Name</injection-target-name>
+ </injection-target>
+ </jndi-ref>
+
+ <default-activation-config id="mdb1DefaultActivationConfig-id">
+ <activation-config-property id="mdb1DefaultActivationConfigProperty1-id">
+ <activation-config-property-name>mdb1DefaultActivationConfigProperty1Name</activation-config-property-name>
+ <activation-config-property-value>mdb1DefaultActivationConfigProperty1Value</activation-config-property-value>
+ </activation-config-property>
+ <activation-config-property id="mdb1DefaultActivationConfigProperty2-id">
+ <activation-config-property-name>mdb1DefaultActivationConfigProperty2Name</activation-config-property-name>
+ <activation-config-property-value>mdb1DefaultActivationConfigProperty2Value</activation-config-property-value>
+ </activation-config-property>
+ </default-activation-config>
+
+ </message-driven>
+
+ <message-driven id="mdb2-id">
+ <description>en-mdb2-desc</description>
+ <description xml:lang="fr">fr-mdb2-desc</description>
+ <description xml:lang="de">de-mdb2-desc</description>
+ <display-name>en-mdb2-disp</display-name>
+ <display-name xml:lang="fr">fr-mdb2-disp</display-name>
+ <display-name xml:lang="de">de-mdb2-disp</display-name>
+ <icon id="en-mdb2-icon-id">
+ <small-icon>en-mdb2-small-icon</small-icon>
+ <large-icon>en-mdb2-large-icon</large-icon>
+ </icon>
+ <icon xml:lang="fr" id="fr-mdb2-icon-id">
+ <small-icon>fr-mdb2-small-icon</small-icon>
+ <large-icon>fr-mdb2-large-icon</large-icon>
+ </icon>
+ <icon xml:lang="de" id="de-mdb2-icon-id">
+ <small-icon>de-mdb2-small-icon</small-icon>
+ <large-icon>de-mdb2-large-icon</large-icon>
+ </icon>
+
+ <ejb-name>mdb2EjbName</ejb-name>
+
+ <destination-jndi-name>mdb2DestinationJndiName</destination-jndi-name>
+ <local-jndi-name>mdb2LocalJndiName</local-jndi-name>
+ <mdb-user>mdb2User</mdb-user>
+ <mdb-passwd>mdb2Password</mdb-passwd>
+ <mdb-client-id>mdb2ClientId</mdb-client-id>
+ <mdb-subscription-id>mdb2SubscriptionId</mdb-subscription-id>
+ <resource-adapter-name>mdb2RAR</resource-adapter-name>
+ <exception-on-rollback>false</exception-on-rollback>
+ <timer-persistence>false</timer-persistence>
+ <configuration-name>mdb2ConfigurationName</configuration-name>
+
+ <invoker-bindings id="mdb2InvokerBindings-id">
+ <description>en-mdb2InvokerBindings-desc</description>
+ <description xml:lang="fr">fr-mdb2InvokerBindings-desc</description>
+ <description xml:lang="de">de-mdb2InvokerBindings-desc</description>
+
+ <invoker id="mdb2Invoker1-id">
+ <description>en-mdb2Invoker1-desc</description>
+ <description xml:lang="fr">fr-mdb2Invoker1-desc</description>
+ <description xml:lang="de">de-mdb2Invoker1-desc</description>
+
+ <invoker-proxy-binding-name>mdb2Invoker1Name</invoker-proxy-binding-name>
+ <jndi-name>mdb2Invoker1JndiName</jndi-name>
+ <!-- TODO ejb-ref -->
+ </invoker>
+ <invoker id="mdb2Invoker2-id">
+ <description>en-mdb2Invoker2-desc</description>
+ <description xml:lang="fr">fr-mdb2Invoker2-desc</description>
+ <description xml:lang="de">de-mdb2Invoker2-desc</description>
+
+ <invoker-proxy-binding-name>mdb2Invoker2Name</invoker-proxy-binding-name>
+ <jndi-name>mdb2Invoker2JndiName</jndi-name>
+ <!-- TODO ejb-ref -->
+ </invoker>
+ </invoker-bindings>
+
+ <security-proxy>mdb2SecurityProxy</security-proxy>
+
+ <ejb-ref id="mdb2EjbRef1-id">
+ <description>en-mdb2EjbRef1-desc</description>
+ <description xml:lang="fr">fr-mdb2EjbRef1-desc</description>
+ <description xml:lang="de">de-mdb2EjbRef1-desc</description>
+
+ <ejb-ref-name>mdb2EjbRef1Name</ejb-ref-name>
+ <injection-target>
+ <injection-target-class>mdb2EjbRef1Injection1Class</injection-target-class>
+ <injection-target-name>mdb2EjbRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>mdb2EjbRef1Injection2Class</injection-target-class>
+ <injection-target-name>mdb2EjbRef1Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>mdb2EjbRef1JndiName</jndi-name>
+ <ignore-dependency/>
+ </ejb-ref>
+ <ejb-ref id="mdb2EjbRef2-id">
+ <description>en-mdb2EjbRef2-desc</description>
+ <description xml:lang="fr">fr-mdb2EjbRef2-desc</description>
+ <description xml:lang="de">de-mdb2EjbRef2-desc</description>
+
+ <ejb-ref-name>mdb2EjbRef2Name</ejb-ref-name>
+ <injection-target>
+ <injection-target-class>mdb2EjbRef2Injection1Class</injection-target-class>
+ <injection-target-name>mdb2EjbRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>mdb2EjbRef2Injection2Class</injection-target-class>
+ <injection-target-name>mdb2EjbRef2Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>mdb2EjbRef2JndiName</jndi-name>
+ </ejb-ref>
+
+ <ejb-local-ref id="mdb2EjbLocalRef1-id">
+ <description>en-mdb2EjbLocalRef1-desc</description>
+ <description xml:lang="fr">fr-mdb2EjbLocalRef1-desc</description>
+ <description xml:lang="de">de-mdb2EjbLocalRef1-desc</description>
+
+ <ejb-ref-name>mdb2EjbLocalRef1Name</ejb-ref-name>
+ <injection-target>
+ <injection-target-class>mdb2EjbLocalRef1Injection1Class</injection-target-class>
+ <injection-target-name>mdb2EjbLocalRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>mdb2EjbLocalRef1Injection2Class</injection-target-class>
+ <injection-target-name>mdb2EjbLocalRef1Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>mdb2EjbLocalRef1JndiName</jndi-name>
+ <ignore-dependency/>
+ </ejb-local-ref>
+ <ejb-local-ref id="mdb2EjbLocalRef2-id">
+ <description>en-mdb2EjbLocalRef2-desc</description>
+ <description xml:lang="fr">fr-mdb2EjbLocalRef2-desc</description>
+ <description xml:lang="de">de-mdb2EjbLocalRef2-desc</description>
+
+ <ejb-ref-name>mdb2EjbLocalRef2Name</ejb-ref-name>
+ <injection-target>
+ <injection-target-class>mdb2EjbLocalRef2Injection1Class</injection-target-class>
+ <injection-target-name>mdb2EjbLocalRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>mdb2EjbLocalRef2Injection2Class</injection-target-class>
+ <injection-target-name>mdb2EjbLocalRef2Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>mdb2EjbLocalRef2JndiName</jndi-name>
+ </ejb-local-ref>
+
+ <!-- TODO service-ref -->
+
+ <security-identity id="mdb2SecurityIdentity-id">
+ <description>en-mdb2SecurityIdentity-desc</description>
+ <description xml:lang="fr">fr-mdb2SecurityIdentity-desc</description>
+ <description xml:lang="de">de-mdb2SecurityIdentity-desc</description>
+ <run-as-principal>mdb2SecurityIdentityRunAsPrincipal</run-as-principal>
+ </security-identity>
+
+ <resource-ref id="mdb2ResourceRef1-id">
+ <description>en-mdb2ResourceRef1-desc</description>
+ <description xml:lang="fr">fr-mdb2ResourceRef1-desc</description>
+ <description xml:lang="de">de-mdb2ResourceRef1-desc</description>
+ <res-ref-name>mdb2ResourceRef1Name</res-ref-name>
+ <injection-target>
+ <injection-target-class>mdb2ResourceRef1Injection1Class</injection-target-class>
+ <injection-target-name>mdb2ResourceRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>mdb2ResourceRef1Injection2Class</injection-target-class>
+ <injection-target-name>mdb2ResourceRef1Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>mdb2ResourceRef1JndiName</jndi-name>
+ <ignore-dependency/>
+ </resource-ref>
+ <resource-ref id="mdb2ResourceRef2-id">
+ <description>en-mdb2ResourceRef2-desc</description>
+ <description xml:lang="fr">fr-mdb2ResourceRef2-desc</description>
+ <description xml:lang="de">de-mdb2ResourceRef2-desc</description>
+ <res-ref-name>mdb2ResourceRef2Name</res-ref-name>
+ <injection-target>
+ <injection-target-class>mdb2ResourceRef2Injection1Class</injection-target-class>
+ <injection-target-name>mdb2ResourceRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>mdb2ResourceRef2Injection2Class</injection-target-class>
+ <injection-target-name>mdb2ResourceRef2Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>mdb2ResourceRef2JndiName</jndi-name>
+ </resource-ref>
+ <resource-env-ref id="mdb2ResourceEnvRef1-id">
+ <description>en-mdb2ResourceEnvRef1-desc</description>
+ <description xml:lang="fr">fr-mdb2ResourceEnvRef1-desc</description>
+ <description xml:lang="de">de-mdb2ResourceEnvRef1-desc</description>
+ <resource-env-ref-name>mdb2ResourceEnvRef1Name</resource-env-ref-name>
+ <injection-target>
+ <injection-target-class>mdb2ResourceEnvRef1Injection1Class</injection-target-class>
+ <injection-target-name>mdb2ResourceEnvRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>mdb2ResourceEnvRef1Injection2Class</injection-target-class>
+ <injection-target-name>mdb2ResourceEnvRef1Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>mdb2ResourceEnvRef1JndiName</jndi-name>
+ <ignore-dependency/>
+ </resource-env-ref>
+ <resource-env-ref id="mdb2ResourceEnvRef2-id">
+ <description>en-mdb2ResourceEnvRef2-desc</description>
+ <description xml:lang="fr">fr-mdb2ResourceEnvRef2-desc</description>
+ <description xml:lang="de">de-mdb2ResourceEnvRef2-desc</description>
+ <resource-env-ref-name>mdb2ResourceEnvRef2Name</resource-env-ref-name>
+ <injection-target>
+ <injection-target-class>mdb2ResourceEnvRef2Injection1Class</injection-target-class>
+ <injection-target-name>mdb2ResourceEnvRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>mdb2ResourceEnvRef2Injection2Class</injection-target-class>
+ <injection-target-name>mdb2ResourceEnvRef2Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>mdb2ResourceEnvRef2JndiName</jndi-name>
+ </resource-env-ref>
+ <message-destination-ref id="mdb2MessageDestinationRef1-id">
+ <description>en-mdb2MessageDestinationRef1-desc</description>
+ <description xml:lang="fr">fr-mdb2MessageDestinationRef1-desc</description>
+ <description xml:lang="de">de-mdb2MessageDestinationRef1-desc</description>
+ <message-destination-ref-name>mdb2MessageDestinationRef1Name</message-destination-ref-name>
+ <injection-target>
+ <injection-target-class>mdb2MessageDestinationRef1Injection1Class</injection-target-class>
+ <injection-target-name>mdb2MessageDestinationRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>mdb2MessageDestinationRef1Injection2Class</injection-target-class>
+ <injection-target-name>mdb2MessageDestinationRef1Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>mdb2MessageDestinationRef1JndiName</jndi-name>
+ <ignore-dependency/>
+ </message-destination-ref>
+ <message-destination-ref id="mdb2MessageDestinationRef2-id">
+ <description>en-mdb2MessageDestinationRef2-desc</description>
+ <description xml:lang="fr">fr-mdb2MessageDestinationRef2-desc</description>
+ <description xml:lang="de">de-mdb2MessageDestinationRef2-desc</description>
+ <message-destination-ref-name>mdb2MessageDestinationRef2Name</message-destination-ref-name>
+ <injection-target>
+ <injection-target-class>mdb2MessageDestinationRef2Injection1Class</injection-target-class>
+ <injection-target-name>mdb2MessageDestinationRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>mdb2MessageDestinationRef2Injection2Class</injection-target-class>
+ <injection-target-name>mdb2MessageDestinationRef2Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>mdb2MessageDestinationRef2JndiName</jndi-name>
+ </message-destination-ref>
+ <message-destination-ref id="mdb2MessageDestinationRef3-id">
+ <description>en-mdb2MessageDestinationRef3-desc</description>
+ <description xml:lang="fr">fr-mdb2MessageDestinationRef3-desc</description>
+ <description xml:lang="de">de-mdb2MessageDestinationRef3-desc</description>
+ <message-destination-ref-name>mdb2MessageDestinationRef3Name</message-destination-ref-name>
+ <injection-target>
+ <injection-target-class>mdb2MessageDestinationRef3Injection1Class</injection-target-class>
+ <injection-target-name>mdb2MessageDestinationRef3Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>mdb2MessageDestinationRef3Injection2Class</injection-target-class>
+ <injection-target-name>mdb2MessageDestinationRef3Injection2Name</injection-target-name>
+ </injection-target>
+ <jndi-name>mdb2MessageDestinationRef3JndiName</jndi-name>
+ </message-destination-ref>
+
+ <method-attributes id="mdb2MethodAttributes-id">
+ <method id="mdb2MethodAttributesMethod1-id">
+ <method-name>get*</method-name>
+ <read-only>true</read-only>
+ <idempotent>true</idempotent>
+ <transaction-timeout>5000</transaction-timeout>
+ </method>
+ <method id="mdb2MethodAttributesMethod2-id">
+ <method-name>*</method-name>
+ </method>
+ </method-attributes>
+
+ <depends>mdb2Depends1</depends>
+ <depends>mdb2Depends2</depends>
+
+ <ior-security-config id="mdb2IorSecurityConfig-id">
+ <description>en-mdb2IorSecurityConfig-desc</description>
+ <description xml:lang="fr">fr-mdb2IorSecurityConfig-desc</description>
+ <description xml:lang="de">de-mdb2IorSecurityConfig-desc</description>
+ <transport-config id="mdb2TransportConfig-id">
+ <description>en-mdb2TransportConfig-desc</description>
+ <description xml:lang="fr">fr-mdb2TransportConfig-desc</description>
+ <description xml:lang="de">de-mdb2TransportConfig-desc</description>
+ <integrity>NONE</integrity>
+ <confidentiality>NONE</confidentiality>
+ <establish-trust-in-target>NONE</establish-trust-in-target>
+ <establish-trust-in-client>NONE</establish-trust-in-client>
+ <detect-misordering>NONE</detect-misordering>
+ <detect-replay>NONE</detect-replay>
+ </transport-config>
+ <as-context id="mdb2ASContext-id">
+ <description>en-mdb2ASContext-desc</description>
+ <description xml:lang="fr">fr-mdb2ASContext-desc</description>
+ <description xml:lang="de">de-mdb2ASContext-desc</description>
+ <auth-method>USERNAME_PASSWORD</auth-method>
+ <realm>mdb2ASContextRealm</realm>
+ <required>false</required>
+ </as-context>
+ <sas-context id="mdb2SASContext-id">
+ <description>en-mdb2SASContext-desc</description>
+ <description xml:lang="fr">fr-mdb2SASContext-desc</description>
+ <description xml:lang="de">de-mdb2SASContext-desc</description>
+ <caller-propagation>NONE</caller-propagation>
+ </sas-context>
+ </ior-security-config>
+
+ <ejb-timeout-identity id="mdb2EjbTimeoutIdentity-id">
+ <description>en-mdb2EjbTimeoutIdentity-desc</description>
+ <description xml:lang="fr">fr-mdb2EjbTimeoutIdentity-desc</description>
+ <description xml:lang="de">de-mdb2EjbTimeoutIdentity-desc</description>
+ <run-as-principal>mdb2EjbTimeoutIdentityRunAsPrincipal</run-as-principal>
+ </ejb-timeout-identity>
+
+ <annotation id="mdb2Annotation1-id">
+ <description>en-mdb2Annotation1-desc</description>
+ <description xml:lang="fr">fr-mdb2Annotation1-desc</description>
+ <description xml:lang="de">de-mdb2Annotation1-desc</description>
+
+ <annotation-class>mdb2Annotation1Class</annotation-class>
+ <annotation-implementation-class>mdb2Annotation1Impl</annotation-implementation-class>
+ <injection-target>
+ <injection-target-class>mdb2Annotation1InjectionTargetClass</injection-target-class>
+ <injection-target-name>mdb2Annotation1InjectionTargetName</injection-target-name>
+ </injection-target>
+ <property id="mdb2Annotation1Property1-id">
+ <description>en-mdb2Annotation1Property1-desc</description>
+ <description xml:lang="fr">fr-mdb2Annotation1Property1-desc</description>
+ <description xml:lang="de">de-mdb2Annotation1Property1-desc</description>
+ <property-name>mdb2Annotation1Property1Name</property-name>
+ <property-value>mdb2Annotation1Property1Value</property-value>
+ </property>
+ <property id="mdb2Annotation1Property2-id">
+ <description>en-mdb2Annotation1Property2-desc</description>
+ <description xml:lang="fr">fr-mdb2Annotation1Property2-desc</description>
+ <description xml:lang="de">de-mdb2Annotation1Property2-desc</description>
+ <property-name>mdb2Annotation1Property2Name</property-name>
+ <property-value>mdb2Annotation1Property2Value</property-value>
+ </property>
+ </annotation>
+ <annotation id="mdb2Annotation2-id">
+ <description>en-mdb2Annotation2-desc</description>
+ <description xml:lang="fr">fr-mdb2Annotation2-desc</description>
+ <description xml:lang="de">de-mdb2Annotation2-desc</description>
+
+ <annotation-class>mdb2Annotation2Class</annotation-class>
+ <annotation-implementation-class>mdb2Annotation2Impl</annotation-implementation-class>
+ <injection-target>
+ <injection-target-class>mdb2Annotation2InjectionTargetClass</injection-target-class>
+ <injection-target-name>mdb2Annotation2InjectionTargetName</injection-target-name>
+ </injection-target>
+ <property id="mdb2Annotation2Property1-id">
+ <description>en-mdb2Annotation2Property1-desc</description>
+ <description xml:lang="fr">fr-mdb2Annotation2Property1-desc</description>
+ <description xml:lang="de">de-mdb2Annotation2Property1-desc</description>
+ <property-name>mdb2Annotation2Property1Name</property-name>
+ <property-value>mdb2Annotation2Property1Value</property-value>
+ </property>
+ <property id="mdb2Annotation2Property2-id">
+ <description>en-mdb2Annotation2Property2-desc</description>
+ <description xml:lang="fr">fr-mdb2Annotation2Property2-desc</description>
+ <description xml:lang="de">de-mdb2Annotation2Property2-desc</description>
+ <property-name>mdb2Annotation2Property2Name</property-name>
+ <property-value>mdb2Annotation2Property2Value</property-value>
+ </property>
+ </annotation>
+
+ <ignore-dependency id="mdb2IgnoreDependency-id">
+ <description>en-mdb2IgnoreDependency-desc</description>
+ <description xml:lang="fr">fr-mdb2IgnoreDependency-desc</description>
+ <description xml:lang="de">de-mdb2IgnoreDependency-desc</description>
+ <injection-target>
+ <injection-target-class>mdb2IgnoreDependencyInjection1Class</injection-target-class>
+ <injection-target-name>mdb2IgnoreDependencyInjection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>mdb2IgnoreDependencyInjection2Class</injection-target-class>
+ <injection-target-name>mdb2IgnoreDependencyInjection2Name</injection-target-name>
+ </injection-target>
+ </ignore-dependency>
+
+ <aop-domain-name>mdb2AOPDomain</aop-domain-name>
+
+ <!-- TODO pool config -->
+
+ <jndi-ref id="mdb2JndiRef1-id">
+ <description>en-mdb2JndiRef1-desc</description>
+ <description xml:lang="fr">fr-mdb2JndiRef1-desc</description>
+ <description xml:lang="de">de-mdb2JndiRef1-desc</description>
+ <jndi-ref-name>mdb2JndiRef1Name</jndi-ref-name>
+ <mapped-name>mdb2JndiRef1MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>mdb2JndiRef1Injection1Class</injection-target-class>
+ <injection-target-name>mdb2JndiRef1Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>mdb2JndiRef1Injection2Class</injection-target-class>
+ <injection-target-name>mdb2JndiRef1Injection2Name</injection-target-name>
+ </injection-target>
+ </jndi-ref>
+ <jndi-ref id="mdb2JndiRef2-id">
+ <description>en-mdb2JndiRef2-desc</description>
+ <description xml:lang="fr">fr-mdb2JndiRef2-desc</description>
+ <description xml:lang="de">de-mdb2JndiRef2-desc</description>
+ <jndi-ref-name>mdb2JndiRef2Name</jndi-ref-name>
+ <mapped-name>mdb2JndiRef2MappedName</mapped-name>
+ <injection-target>
+ <injection-target-class>mdb2JndiRef2Injection1Class</injection-target-class>
+ <injection-target-name>mdb2JndiRef2Injection1Name</injection-target-name>
+ </injection-target>
+ <injection-target>
+ <injection-target-class>mdb2JndiRef2Injection2Class</injection-target-class>
+ <injection-target-name>mdb2JndiRef2Injection2Name</injection-target-name>
+ </injection-target>
+ </jndi-ref>
+
+ <default-activation-config id="mdb2DefaultActivationConfig-id">
+ <activation-config-property id="mdb2DefaultActivationConfigProperty1-id">
+ <activation-config-property-name>mdb2DefaultActivationConfigProperty1Name</activation-config-property-name>
+ <activation-config-property-value>mdb2DefaultActivationConfigProperty1Value</activation-config-property-value>
+ </activation-config-property>
+ <activation-config-property id="mdb2DefaultActivationConfigProperty2-id">
+ <activation-config-property-name>mdb2DefaultActivationConfigProperty2Name</activation-config-property-name>
+ <activation-config-property-value>mdb2DefaultActivationConfigProperty2Value</activation-config-property-value>
+ </activation-config-property>
+ </default-activation-config>
+
+ </message-driven>
+
+ </enterprise-beans>
+
+ <assembly-descriptor id="assembly-descriptor-id">
+
+ <security-role id="securityRole1-id">
+ <description>en-securityRole1-desc</description>
+ <description xml:lang="fr">fr-securityRole1-desc</description>
+ <description xml:lang="de">de-securityRole1-desc</description>
+ <role-name>securityRole1RoleName</role-name>
+ <principal>securityRole1Principal1</principal>
+ <principal>securityRole1Principal2</principal>
+ </security-role>
+ <security-role id="securityRole2-id">
+ <description>en-securityRole2-desc</description>
+ <description xml:lang="fr">fr-securityRole2-desc</description>
+ <description xml:lang="de">de-securityRole2-desc</description>
+ <role-name>securityRole2RoleName</role-name>
+ <principal>securityRole2Principal1</principal>
+ <principal>securityRole2Principal2</principal>
+ </security-role>
+
+ <message-destination id="messageDestination1-id">
+ <description>en-messageDestination1-desc</description>
+ <description xml:lang="fr">fr-messageDestination1-desc</description>
+ <description xml:lang="de">de-messageDestination1-desc</description>
+ <display-name>en-messageDestination1-disp</display-name>
+ <display-name xml:lang="fr">fr-messageDestination1-disp</display-name>
+ <display-name xml:lang="de">de-messageDestination1-disp</display-name>
+ <icon id="en-messageDestination1-icon-id">
+ <small-icon>en-messageDestination1-small-icon</small-icon>
+ <large-icon>en-messageDestination1-large-icon</large-icon>
+ </icon>
+ <icon xml:lang="fr" id="fr-messageDestination1-icon-id">
+ <small-icon>fr-messageDestination1-small-icon</small-icon>
+ <large-icon>fr-messageDestination1-large-icon</large-icon>
+ </icon>
+ <icon xml:lang="de" id="de-messageDestination1-icon-id">
+ <small-icon>de-messageDestination1-small-icon</small-icon>
+ <large-icon>de-messageDestination1-large-icon</large-icon>
+ </icon>
+ <message-destination-name>messageDestination1Name</message-destination-name>
+ <jndi-name>messageDestination1JndiName</jndi-name>
+ </message-destination>
+ <message-destination id="messageDestination2-id">
+ <description>en-messageDestination2-desc</description>
+ <description xml:lang="fr">fr-messageDestination2-desc</description>
+ <description xml:lang="de">de-messageDestination2-desc</description>
+ <display-name>en-messageDestination2-disp</display-name>
+ <display-name xml:lang="fr">fr-messageDestination2-disp</display-name>
+ <display-name xml:lang="de">de-messageDestination2-disp</display-name>
+ <icon id="en-messageDestination2-icon-id">
+ <small-icon>en-messageDestination2-small-icon</small-icon>
+ <large-icon>en-messageDestination2-large-icon</large-icon>
+ </icon>
+ <icon xml:lang="fr" id="fr-messageDestination2-icon-id">
+ <small-icon>fr-messageDestination2-small-icon</small-icon>
+ <large-icon>fr-messageDestination2-large-icon</large-icon>
+ </icon>
+ <icon xml:lang="de" id="de-messageDestination2-icon-id">
+ <small-icon>de-messageDestination2-small-icon</small-icon>
+ <large-icon>de-messageDestination2-large-icon</large-icon>
+ </icon>
+ <message-destination-name>messageDestination2Name</message-destination-name>
+ <jndi-name>messageDestination2JndiName</jndi-name>
+ </message-destination>
+
+ </assembly-descriptor>
+
+ <resource-managers id="resource-managers-id">
+ <description>en-resource-managers-desc</description>
+ <description xml:lang="fr">fr-resource-managers-desc</description>
+ <description xml:lang="de">de-resource-managers-desc</description>
+ <resource-manager id="resourceManager1-id" res-class="resourceManager1Class">
+ <description>en-resourceManager1-desc</description>
+ <description xml:lang="fr">fr-resourceManager1-desc</description>
+ <description xml:lang="de">de-resourceManager1-desc</description>
+ <res-name>resourceManager1Name</res-name>
+ <res-jndi-name>resourceManager1JndiName</res-jndi-name>
+ </resource-manager>
+ <resource-manager id="resourceManager2-id" res-class="resourceManager2Class">
+ <description>en-resourceManager2-desc</description>
+ <description xml:lang="fr">fr-resourceManager2-desc</description>
+ <description xml:lang="de">de-resourceManager2-desc</description>
+ <res-name>resourceManager2Name</res-name>
+ <res-url>resourceManager2URL</res-url>
+ </resource-manager>
+ </resource-managers>
+
+ <invoker-proxy-bindings id="invoker-proxy-bindings-id">
+ <description>en-invoker-proxy-bindings-desc</description>
+ <description xml:lang="fr">fr-invoker-proxy-bindings-desc</description>
+ <description xml:lang="de">de-invoker-proxy-bindings-desc</description>
+ <invoker-proxy-binding id="invokerProxyBinding1-id">
+ <description>en-invokerProxyBinding1-desc</description>
+ <description xml:lang="fr">fr-invokerProxyBinding1-desc</description>
+ <description xml:lang="de">de-invokerProxyBinding1-desc</description>
+ <invoker-proxy-binding-name>invokerProxyBinding1Name</invoker-proxy-binding-name>
+ <invoker-mbean>invokerProxyBinding1InvokerMBean</invoker-mbean>
+ <proxy-factory>invokerProxyBinding1ProxyFactory</proxy-factory>
+ </invoker-proxy-binding>
+ <invoker-proxy-binding id="invokerProxyBinding2-id">
+ <description>en-invokerProxyBinding2-desc</description>
+ <description xml:lang="fr">fr-invokerProxyBinding2-desc</description>
+ <description xml:lang="de">de-invokerProxyBinding2-desc</description>
+ <invoker-proxy-binding-name>invokerProxyBinding2Name</invoker-proxy-binding-name>
+ <invoker-mbean>invokerProxyBinding2InvokerMBean</invoker-mbean>
+ <proxy-factory>invokerProxyBinding2ProxyFactory</proxy-factory>
+ </invoker-proxy-binding>
+ </invoker-proxy-bindings>
+
+ <container-configurations id="container-configurations-id">
+ <description>en-container-configurations-desc</description>
+ <description xml:lang="fr">fr-container-configurations-desc</description>
+ <description xml:lang="de">de-container-configurations-desc</description>
+ <container-configuration>
+ <container-name>containerConfiguration0Name</container-name>
+ </container-configuration>
+ <container-configuration id="containerConfiguration1-id" extends="containerConfiguration1Extends">
+ <description>en-containerConfiguration1-desc</description>
+ <description xml:lang="fr">fr-containerConfiguration1-desc</description>
+ <description xml:lang="de">de-containerConfiguration1-desc</description>
+ <container-name>containerConfiguration1Name</container-name>
+ <call-logging>true</call-logging>
+ <invoker-proxy-binding-name>containerConfiguration1InvokerProxyBindingName1</invoker-proxy-binding-name>
+ <invoker-proxy-binding-name>containerConfiguration1InvokerProxyBindingName2</invoker-proxy-binding-name>
+ <sync-on-commit-only>true</sync-on-commit-only>
+ <insert-after-ejb-post-create>true</insert-after-ejb-post-create>
+ <ejb-store-on-clean>true</ejb-store-on-clean>
+ <store-not-flushed>true</store-not-flushed>
+ <!-- TODO container-interceptors -->
+ <instance-pool>containerConfiguration1InstancePool</instance-pool>
+ <instance-cache>containerConfiguration1InstanceCache</instance-cache>
+ <persistence-manager>containerConfiguration1PersistenceManager</persistence-manager>
+ <web-class-loader>containerConfiguration1WebClassLoader</web-class-loader>
+ <locking-policy>containerConfiguration1LockingPolicy</locking-policy>
+ <!-- TODO container cache conf -->
+ <!-- TODO container pool conf -->
+ <commit-option>D</commit-option>
+ <optiond-refresh-rate>10</optiond-refresh-rate>
+ <security-domain>containerConfiguration1SecurityDomain</security-domain>
+ <cluster-config id="containerConfiguration1ClusterConfig-id">
+ <description>en-containerConfiguration1ClusterConfig-desc</description>
+ <description xml:lang="fr">fr-containerConfiguration1ClusterConfig-desc</description>
+ <description xml:lang="de">de-containerConfiguration1ClusterConfig-desc</description>
+ <partition-name>containerConfiguration1ClusterConfigPartitionName</partition-name>
+ <home-load-balancing-policy>containerConfiguration1ClusterConfigHomeLoadBalancingPolicy</home-load-balancing-policy>
+ <bean-load-balancing-policy>containerConfiguration1ClusterConfigBeanLoadBalancingPolicy</bean-load-balancing-policy>
+ <session-state-manager-jndi-name>containerConfiguration1ClusterConfigSessionStateManagerJndiName</session-state-manager-jndi-name>
+ </cluster-config>
+ <depends>containerConfiguration1Depends1</depends>
+ <depends>containerConfiguration1Depends2</depends>
+ </container-configuration>
+ <container-configuration id="containerConfiguration2-id" extends="containerConfiguration2Extends">
+ <description>en-containerConfiguration2-desc</description>
+ <description xml:lang="fr">fr-containerConfiguration2-desc</description>
+ <description xml:lang="de">de-containerConfiguration2-desc</description>
+ <container-name>containerConfiguration2Name</container-name>
+ <call-logging>false</call-logging>
+ <invoker-proxy-binding-name>containerConfiguration2InvokerProxyBindingName1</invoker-proxy-binding-name>
+ <invoker-proxy-binding-name>containerConfiguration2InvokerProxyBindingName2</invoker-proxy-binding-name>
+ <sync-on-commit-only>false</sync-on-commit-only>
+ <insert-after-ejb-post-create>false</insert-after-ejb-post-create>
+ <ejb-store-on-clean>false</ejb-store-on-clean>
+ <store-not-flushed>false</store-not-flushed>
+ <!-- TODO container-interceptors -->
+ <instance-pool>containerConfiguration2InstancePool</instance-pool>
+ <instance-cache>containerConfiguration2InstanceCache</instance-cache>
+ <persistence-manager>containerConfiguration2PersistenceManager</persistence-manager>
+ <web-class-loader>containerConfiguration2WebClassLoader</web-class-loader>
+ <locking-policy>containerConfiguration2LockingPolicy</locking-policy>
+ <!-- TODO container cache conf -->
+ <!-- TODO container pool conf -->
+ <commit-option>D</commit-option>
+ <optiond-refresh-rate>10</optiond-refresh-rate>
+ <security-domain>containerConfiguration2SecurityDomain</security-domain>
+ <cluster-config id="containerConfiguration2ClusterConfig-id">
+ <description>en-containerConfiguration2ClusterConfig-desc</description>
+ <description xml:lang="fr">fr-containerConfiguration2ClusterConfig-desc</description>
+ <description xml:lang="de">de-containerConfiguration2ClusterConfig-desc</description>
+ <partition-name>containerConfiguration2ClusterConfigPartitionName</partition-name>
+ <home-load-balancing-policy>containerConfiguration2ClusterConfigHomeLoadBalancingPolicy</home-load-balancing-policy>
+ <bean-load-balancing-policy>containerConfiguration2ClusterConfigBeanLoadBalancingPolicy</bean-load-balancing-policy>
+ <session-state-manager-jndi-name>containerConfiguration2ClusterConfigSessionStateManagerJndiName</session-state-manager-jndi-name>
+ </cluster-config>
+ <depends>containerConfiguration2Depends1</depends>
+ <depends>containerConfiguration2Depends2</depends>
+ </container-configuration>
+ <container-configuration>
+ <container-name>containerConfiguration3Name</container-name>
+ <commit-option>B</commit-option>
+ </container-configuration>
+ <container-configuration>
+ <container-name>containerConfiguration4Name</container-name>
+ <commit-option>C</commit-option>
+ </container-configuration>
+ </container-configurations>
+
+</jboss>
\ No newline at end of file
More information about the jboss-svn-commits
mailing list