[jboss-svn-commits] JBoss Common SVN: r2525 - in jbossxb-builder/trunk/src/test: java/org/jboss/javaee/metadata/support and 3 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon Sep 3 09:41:41 EDT 2007
Author: alex.loubyansky at jboss.com
Date: 2007-09-03 09:41:41 -0400 (Mon, 03 Sep 2007)
New Revision: 2525
Added:
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/cmp/JBossCMPFieldMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/cmp/JBossCMPFieldsMetaData.java
jbossxb-builder/trunk/src/test/resources/org/jboss/test/ejb/metadata/test/JBossCMPMerge_testMerge.xml
Removed:
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/cmp/JBossCMPCMPFieldMetaData.java
Modified:
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/cmp/JBossCMPEnterpriseBeansMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/cmp/JBossCMPEntityBeanMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/cmp/JBossCMPMetaData.java
jbossxb-builder/trunk/src/test/java/org/jboss/javaee/metadata/support/JavaEEMetaDataUtil.java
jbossxb-builder/trunk/src/test/java/org/jboss/test/ejb/AbstractEJBEverythingTest.java
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/JBossCMPUnitTestCase.java
Log:
testcase for merging jbosscmp and ejb-jar, made cmp-fields mergeable
Deleted: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/cmp/JBossCMPCMPFieldMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/cmp/JBossCMPCMPFieldMetaData.java 2007-08-31 15:58:09 UTC (rev 2524)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/cmp/JBossCMPCMPFieldMetaData.java 2007-09-03 13:41:41 UTC (rev 2525)
@@ -1,294 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2006, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file 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.cmp;
-
-import java.util.List;
-
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
-
-
-/**
- * A JBossCMPCMPFieldMetaData.
- *
- * @author <a href="alex at jboss.com">Alexey Loubyansky</a>
- * @version $Revision: 1.1 $
- */
-public class JBossCMPCMPFieldMetaData
-{
- private String fieldName;
- private boolean readOnly;
- private long readTimeOut;
- private String columnName;
- private boolean notNull;
- private int jdbcType;
- private String sqlType;
- private List<JBossCMPPropertyMetaData> properties;
- private boolean autoIncrement;
- private boolean dbindex;
- private boolean checkDirtyAfterGet;
- private String stateFactory;
-
- /**
- * Get the autoIncrement.
- *
- * @return the autoIncrement.
- */
- public boolean isAutoIncrement()
- {
- return autoIncrement;
- }
-
- /**
- * Set the autoIncrement.
- *
- * @param autoIncrement The autoIncrement to set.
- */
- @XmlJavaTypeAdapter(value=EmptyElementToBooleanAdapter.class)
- public void setAutoIncrement(boolean autoIncrement)
- {
- this.autoIncrement = autoIncrement;
- }
-
- /**
- * Get the checkDirtyAfterGet.
- *
- * @return the checkDirtyAfterGet.
- */
- public boolean isCheckDirtyAfterGet()
- {
- return checkDirtyAfterGet;
- }
-
- /**
- * Set the checkDirtyAfterGet.
- *
- * @param checkDirtyAfterGet The checkDirtyAfterGet to set.
- */
- public void setCheckDirtyAfterGet(boolean checkDirtyAfterGet)
- {
- this.checkDirtyAfterGet = checkDirtyAfterGet;
- }
-
- /**
- * Get the columnName.
- *
- * @return the columnName.
- */
- public String getColumnName()
- {
- return columnName;
- }
-
- /**
- * Set the columnName.
- *
- * @param columnName The columnName to set.
- */
- public void setColumnName(String columnName)
- {
- this.columnName = columnName;
- }
-
- /**
- * Get the dbIndex.
- *
- * @return the dbIndex.
- */
- public boolean isDbindex()
- {
- return dbindex;
- }
-
- /**
- * Set the dbIndex.
- *
- * @param dbIndex The dbIndex to set.
- */
- @XmlJavaTypeAdapter(value=EmptyElementToBooleanAdapter.class)
- public void setDbindex(boolean dbIndex)
- {
- this.dbindex = dbIndex;
- }
-
- /**
- * Get the fieldName.
- *
- * @return the fieldName.
- */
- public String getFieldName()
- {
- return fieldName;
- }
-
- /**
- * Set the fieldName.
- *
- * @param fieldName The fieldName to set.
- */
- public void setFieldName(String fieldName)
- {
- this.fieldName = fieldName;
- }
-
- /**
- * Get the jdbcType.
- *
- * @return the jdbcType.
- */
- public int getJdbcType()
- {
- return jdbcType;
- }
-
- /**
- * Set the jdbcType.
- *
- * @param jdbcType The jdbcType to set.
- */
- @XmlJavaTypeAdapter(value=JDBCTypeAdapter.class)
- public void setJdbcType(int jdbcType)
- {
- this.jdbcType = jdbcType;
- }
-
- /**
- * Get the notNull.
- *
- * @return the notNull.
- */
- public boolean isNotNull()
- {
- return notNull;
- }
-
- /**
- * Set the notNull.
- *
- * @param notNull The notNull to set.
- */
- public void setNotNull(boolean notNull)
- {
- this.notNull = notNull;
- }
-
- /**
- * Get the properties.
- *
- * @return the properties.
- */
- public List<JBossCMPPropertyMetaData> getProperties()
- {
- return properties;
- }
-
- /**
- * Set the properties.
- *
- * @param properties The properties to set.
- */
- @XmlElement(name="property")
- public void setProperties(List<JBossCMPPropertyMetaData> properties)
- {
- this.properties = properties;
- }
-
- /**
- * Get the readOnly.
- *
- * @return the readOnly.
- */
- public boolean isReadOnly()
- {
- return readOnly;
- }
-
- /**
- * Set the readOnly.
- *
- * @param readOnly The readOnly to set.
- */
- public void setReadOnly(boolean readOnly)
- {
- this.readOnly = readOnly;
- }
-
- /**
- * Get the readTimeOut.
- *
- * @return the readTimeOut.
- */
- public long getReadTimeOut()
- {
- return readTimeOut;
- }
-
- /**
- * Set the readTimeOut.
- *
- * @param readTimeOut The readTimeOut to set.
- */
- public void setReadTimeOut(long readTimeOut)
- {
- this.readTimeOut = readTimeOut;
- }
-
- /**
- * Get the sqlType.
- *
- * @return the sqlType.
- */
- public String getSqlType()
- {
- return sqlType;
- }
-
- /**
- * Set the sqlType.
- *
- * @param sqlType The sqlType to set.
- */
- public void setSqlType(String sqlType)
- {
- this.sqlType = sqlType;
- }
-
- /**
- * Get the stateFactory.
- *
- * @return the stateFactory.
- */
- public String getStateFactory()
- {
- return stateFactory;
- }
-
- /**
- * Set the stateFactory.
- *
- * @param stateFactory The stateFactory to set.
- */
- public void setStateFactory(String stateFactory)
- {
- this.stateFactory = stateFactory;
- }
-}
Modified: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/cmp/JBossCMPEnterpriseBeansMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/cmp/JBossCMPEnterpriseBeansMetaData.java 2007-08-31 15:58:09 UTC (rev 2524)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/cmp/JBossCMPEnterpriseBeansMetaData.java 2007-09-03 13:41:41 UTC (rev 2525)
@@ -27,6 +27,7 @@
import org.jboss.ejb.metadata.spec.EnterpriseBeansMetaData;
import org.jboss.ejb.metadata.spec.EntityBeanMetaData;
import org.jboss.javaee.metadata.support.AbstractMappedMetaDataWithOverride;
+import org.jboss.javaee.metadata.support.JavaEEMetaDataUtil;
/**
@@ -43,15 +44,20 @@
super("ejb name for enterprise bean");
}
+ public static JBossCMPEnterpriseBeansMetaData merge(JBossCMPEnterpriseBeansMetaData jbossCMPEnterpriseBeansMetaData, EnterpriseBeansMetaData enterpriseBeansMetaData)
+ {
+ JBossCMPEnterpriseBeansMetaData merged = new JBossCMPEnterpriseBeansMetaData();
+ return JavaEEMetaDataUtil.mergeOverrideJBossXml(merged, enterpriseBeansMetaData, jbossCMPEnterpriseBeansMetaData, "enterprise bean", true);
+ }
+
public JBossCMPEntityBeanMetaData createOverride(EnterpriseBeanMetaData data)
{
if (data == null)
throw new IllegalArgumentException("Null data");
if (!(data instanceof EntityBeanMetaData))
- throw new IllegalArgumentException("Unregonised: " + data);
+ return null;
JBossCMPEntityBeanMetaData result = new JBossCMPEntityBeanMetaData();
-
result.setEjbName(data.getEjbName());
result.setOverridenMetaData(data);
return result;
Modified: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/cmp/JBossCMPEntityBeanMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/cmp/JBossCMPEntityBeanMetaData.java 2007-08-31 15:58:09 UTC (rev 2524)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/cmp/JBossCMPEntityBeanMetaData.java 2007-09-03 13:41:41 UTC (rev 2525)
@@ -65,7 +65,8 @@
private boolean cleanReadAheadOnLoad;
private long fetchSize;
private String tableName;
- private List<JBossCMPCMPFieldMetaData> cmpFields;
+ private JBossCMPFieldsMetaData cmpFields;
+ private JBossCMPFieldsMetaData mergedCmpFields;
private List<JBossCMPLoadGroupMetaData> loadGroups;
private String eagerLoadGroup;
private List<String> lazyLoadGroups;
@@ -104,17 +105,28 @@
this.cleanReadAheadOnLoad = cleanReadAheadOnLoad;
}
- public List<JBossCMPCMPFieldMetaData> getCmpFields()
+ public JBossCMPFieldsMetaData getCmpFields()
{
- return cmpFields;
+ if(mergedCmpFields != null)
+ {
+ return mergedCmpFields;
+ }
+
+ if(getOverridenMetaData() == null)
+ {
+ return cmpFields;
+ }
+
+ mergedCmpFields = JBossCMPFieldsMetaData.merge(cmpFields, ((EntityBeanMetaData)getOverridenMetaDataWithCheck()).getCmpFields());
+ return mergedCmpFields;
}
@XmlElement(name="cmp-field")
- public void setCmpFields(List<JBossCMPCMPFieldMetaData> cmpFields)
+ public void setCmpFields(JBossCMPFieldsMetaData cmpFields)
{
this.cmpFields = cmpFields;
}
-
+
public boolean isCreateTable()
{
return createTable;
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/cmp/JBossCMPFieldMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/cmp/JBossCMPFieldMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/cmp/JBossCMPFieldMetaData.java 2007-09-03 13:41:41 UTC (rev 2525)
@@ -0,0 +1,299 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.cmp;
+
+import java.util.List;
+
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+import org.jboss.ejb.metadata.spec.CMPFieldMetaData;
+import org.jboss.javaee.metadata.support.NamedMetaDataWithDescriptionGroupWithOverride;
+
+
+/**
+ * A JBossCMPFieldMetaData.
+ *
+ * @author <a href="alex at jboss.com">Alexey Loubyansky</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlType(name="jbosscmp-cmp-fieldType")
+public class JBossCMPFieldMetaData
+ extends NamedMetaDataWithDescriptionGroupWithOverride<CMPFieldMetaData>
+{
+ private boolean readOnly;
+ private long readTimeOut;
+ private String columnName;
+ private boolean notNull;
+ private int jdbcType;
+ private String sqlType;
+ private List<JBossCMPPropertyMetaData> properties;
+ private boolean autoIncrement;
+ private boolean dbindex;
+ private boolean checkDirtyAfterGet;
+ private String stateFactory;
+
+ /**
+ * Get the autoIncrement.
+ *
+ * @return the autoIncrement.
+ */
+ public boolean isAutoIncrement()
+ {
+ return autoIncrement;
+ }
+
+ /**
+ * Set the autoIncrement.
+ *
+ * @param autoIncrement The autoIncrement to set.
+ */
+ @XmlJavaTypeAdapter(value=EmptyElementToBooleanAdapter.class)
+ public void setAutoIncrement(boolean autoIncrement)
+ {
+ this.autoIncrement = autoIncrement;
+ }
+
+ /**
+ * Get the checkDirtyAfterGet.
+ *
+ * @return the checkDirtyAfterGet.
+ */
+ public boolean isCheckDirtyAfterGet()
+ {
+ return checkDirtyAfterGet;
+ }
+
+ /**
+ * Set the checkDirtyAfterGet.
+ *
+ * @param checkDirtyAfterGet The checkDirtyAfterGet to set.
+ */
+ public void setCheckDirtyAfterGet(boolean checkDirtyAfterGet)
+ {
+ this.checkDirtyAfterGet = checkDirtyAfterGet;
+ }
+
+ /**
+ * Get the columnName.
+ *
+ * @return the columnName.
+ */
+ public String getColumnName()
+ {
+ return columnName;
+ }
+
+ /**
+ * Set the columnName.
+ *
+ * @param columnName The columnName to set.
+ */
+ public void setColumnName(String columnName)
+ {
+ this.columnName = columnName;
+ }
+
+ /**
+ * Get the dbIndex.
+ *
+ * @return the dbIndex.
+ */
+ public boolean isDbindex()
+ {
+ return dbindex;
+ }
+
+ /**
+ * Set the dbIndex.
+ *
+ * @param dbIndex The dbIndex to set.
+ */
+ @XmlJavaTypeAdapter(value=EmptyElementToBooleanAdapter.class)
+ public void setDbindex(boolean dbIndex)
+ {
+ this.dbindex = dbIndex;
+ }
+
+ /**
+ * Get the fieldName.
+ *
+ * @return the fieldName.
+ */
+ public String getFieldName()
+ {
+ return getName();
+ }
+
+ /**
+ * Set the fieldName.
+ *
+ * @param fieldName The fieldName to set.
+ */
+ public void setFieldName(String fieldName)
+ {
+ setName(fieldName);
+ }
+
+ /**
+ * Get the jdbcType.
+ *
+ * @return the jdbcType.
+ */
+ public int getJdbcType()
+ {
+ return jdbcType;
+ }
+
+ /**
+ * Set the jdbcType.
+ *
+ * @param jdbcType The jdbcType to set.
+ */
+ @XmlJavaTypeAdapter(value=JDBCTypeAdapter.class)
+ public void setJdbcType(int jdbcType)
+ {
+ this.jdbcType = jdbcType;
+ }
+
+ /**
+ * Get the notNull.
+ *
+ * @return the notNull.
+ */
+ public boolean isNotNull()
+ {
+ return notNull;
+ }
+
+ /**
+ * Set the notNull.
+ *
+ * @param notNull The notNull to set.
+ */
+ public void setNotNull(boolean notNull)
+ {
+ this.notNull = notNull;
+ }
+
+ /**
+ * Get the properties.
+ *
+ * @return the properties.
+ */
+ public List<JBossCMPPropertyMetaData> getProperties()
+ {
+ return properties;
+ }
+
+ /**
+ * Set the properties.
+ *
+ * @param properties The properties to set.
+ */
+ @XmlElement(name="property")
+ public void setProperties(List<JBossCMPPropertyMetaData> properties)
+ {
+ this.properties = properties;
+ }
+
+ /**
+ * Get the readOnly.
+ *
+ * @return the readOnly.
+ */
+ public boolean isReadOnly()
+ {
+ return readOnly;
+ }
+
+ /**
+ * Set the readOnly.
+ *
+ * @param readOnly The readOnly to set.
+ */
+ public void setReadOnly(boolean readOnly)
+ {
+ this.readOnly = readOnly;
+ }
+
+ /**
+ * Get the readTimeOut.
+ *
+ * @return the readTimeOut.
+ */
+ public long getReadTimeOut()
+ {
+ return readTimeOut;
+ }
+
+ /**
+ * Set the readTimeOut.
+ *
+ * @param readTimeOut The readTimeOut to set.
+ */
+ public void setReadTimeOut(long readTimeOut)
+ {
+ this.readTimeOut = readTimeOut;
+ }
+
+ /**
+ * Get the sqlType.
+ *
+ * @return the sqlType.
+ */
+ public String getSqlType()
+ {
+ return sqlType;
+ }
+
+ /**
+ * Set the sqlType.
+ *
+ * @param sqlType The sqlType to set.
+ */
+ public void setSqlType(String sqlType)
+ {
+ this.sqlType = sqlType;
+ }
+
+ /**
+ * Get the stateFactory.
+ *
+ * @return the stateFactory.
+ */
+ public String getStateFactory()
+ {
+ return stateFactory;
+ }
+
+ /**
+ * Set the stateFactory.
+ *
+ * @param stateFactory The stateFactory to set.
+ */
+ public void setStateFactory(String stateFactory)
+ {
+ this.stateFactory = stateFactory;
+ }
+}
Added: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/cmp/JBossCMPFieldsMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/cmp/JBossCMPFieldsMetaData.java (rev 0)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/cmp/JBossCMPFieldsMetaData.java 2007-09-03 13:41:41 UTC (rev 2525)
@@ -0,0 +1,65 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.cmp;
+
+import org.jboss.ejb.metadata.spec.CMPFieldMetaData;
+import org.jboss.ejb.metadata.spec.CMPFieldsMetaData;
+import org.jboss.javaee.metadata.support.AbstractMappedMetaDataWithOverride;
+import org.jboss.javaee.metadata.support.JavaEEMetaDataUtil;
+
+
+/**
+ * A JBossCMPFieldsMetaData.
+ *
+ * @author <a href="alex at jboss.com">Alexey Loubyansky</a>
+ * @version $Revision: 1.1 $
+ */
+public class JBossCMPFieldsMetaData
+ extends AbstractMappedMetaDataWithOverride<CMPFieldMetaData, JBossCMPFieldMetaData, CMPFieldsMetaData>
+{
+ public JBossCMPFieldsMetaData()
+ {
+ super("field name");
+ }
+
+ public static JBossCMPFieldsMetaData merge(JBossCMPFieldsMetaData jbossCMPFieldsMetaData, CMPFieldsMetaData cmpFieldsMetaData)
+ {
+ if(cmpFieldsMetaData == null)
+ return null;
+
+ JBossCMPFieldsMetaData merged = new JBossCMPFieldsMetaData();
+ return JavaEEMetaDataUtil.mergeOverrideJBossXml(merged, cmpFieldsMetaData, jbossCMPFieldsMetaData, "cmp field", true);
+ }
+
+ public JBossCMPFieldMetaData createOverride(CMPFieldMetaData data)
+ {
+ if (data == null)
+ throw new IllegalArgumentException("Null data");
+ if (!(data instanceof CMPFieldMetaData))
+ return null;
+
+ JBossCMPFieldMetaData result = new JBossCMPFieldMetaData();
+ result.setFieldName(data.getFieldName());
+ result.setOverridenMetaData(data);
+ return result;
+ }
+}
Modified: jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/cmp/JBossCMPMetaData.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/cmp/JBossCMPMetaData.java 2007-08-31 15:58:09 UTC (rev 2524)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/ejb/metadata/jboss/cmp/JBossCMPMetaData.java 2007-09-03 13:41:41 UTC (rev 2525)
@@ -28,6 +28,7 @@
import javax.xml.bind.annotation.XmlNs;
import javax.xml.bind.annotation.XmlNsForm;
import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlTransient;
import javax.xml.bind.annotation.XmlType;
import org.jboss.ejb.metadata.jboss.JBossMetaData;
@@ -58,6 +59,7 @@
private JBossCMPDefaultsMetaData defaults;
private JBossCMPEnterpriseBeansMetaData enterpriseBeans;
+ private JBossCMPEnterpriseBeansMetaData mergedEnterpriseBeans;
private JBossCMPRelationshipsMetaData relationships;
private List<JBossCMPDependentValueClassMetaData> dependentValueClasses;
private List<JBossCMPTypeMappingMetaData> typeMappings;
@@ -134,7 +136,28 @@
this.enterpriseBeans = enterpriseBeans;
}
+ @XmlTransient
+ public JBossCMPEnterpriseBeansMetaData getMergedEnterpriseBeans()
+ {
+ if(mergedEnterpriseBeans != null)
+ return mergedEnterpriseBeans;
+ mergedEnterpriseBeans = JBossCMPEnterpriseBeansMetaData.merge(enterpriseBeans, getOverridenMetaDataWithCheck().getEnterpriseBeans());
+ return mergedEnterpriseBeans;
+ }
+
/**
+ * Get a merged enterprise bean
+ *
+ * @param name the name
+ * @return the container configuration
+ */
+ @XmlTransient
+ public JBossCMPEntityBeanMetaData getMergedEnterpriseBean(String name)
+ {
+ return getMergedEnterpriseBeans().get(name);
+ }
+
+ /**
* Get the entityCommands.
*
* @return the entityCommands.
Modified: jbossxb-builder/trunk/src/test/java/org/jboss/javaee/metadata/support/JavaEEMetaDataUtil.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/javaee/metadata/support/JavaEEMetaDataUtil.java 2007-08-31 15:58:09 UTC (rev 2524)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/javaee/metadata/support/JavaEEMetaDataUtil.java 2007-09-03 13:41:41 UTC (rev 2525)
@@ -142,7 +142,16 @@
{
return mergeOverride(merged, overriden, mapped, context, "ejb-jar.xml", "jboss.xml", mustOverride);
}
-
+
+ public static <C extends MappableMetaData,
+ O extends MappedMetaData<C>,
+ T extends MappableMetaDataWithOverride<C>,
+ M extends MappedMetaDataWithOverride<C, T, O>>
+ M mergeOverrideJBossCMPXml(M merged, O overriden, M mapped, String context, boolean mustOverride)
+ {
+ return mergeOverride(merged, overriden, mapped, context, "ejb-jar.xml", "jbosscmp-jdbc.xml", mustOverride);
+ }
+
/**
* Merged overriden mapped metadata
*
@@ -195,9 +204,14 @@
if (t == null)
t = merged.createOverride(c);
- // Return the result
- t.setOverridenMetaData(c);
- merged.add(t);
+ // give a chance to ignore an instance
+ // in case of jbosscmp, there are only entity beans
+ if(t != null)
+ {
+ // Return the result
+ t.setOverridenMetaData(c);
+ merged.add(t);
+ }
}
}
Modified: jbossxb-builder/trunk/src/test/java/org/jboss/test/ejb/AbstractEJBEverythingTest.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/test/ejb/AbstractEJBEverythingTest.java 2007-08-31 15:58:09 UTC (rev 2524)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/test/ejb/AbstractEJBEverythingTest.java 2007-09-03 13:41:41 UTC (rev 2525)
@@ -277,6 +277,12 @@
private EntityBeanMetaData assertNullEntity(String ejbName, EnterpriseBeansMetaData enterpriseBeansMetaData)
{
EntityBeanMetaData entity = assertEntity(ejbName + "EjbName", enterpriseBeansMetaData);
+ assertNullEntity(entity);
+ return entity;
+ }
+
+ public void assertNullEntity(EntityBeanMetaData entity)
+ {
assertNull(entity.getId());
assertNull(entity.getMappedName());
assertNull(entity.getHome());
@@ -299,8 +305,6 @@
assertNull(entity.getSecurityRoleRefs());
assertNull(entity.getSecurityIdentity());
assertNull(entity.getQueries());
-
- return entity;
}
protected EntityBeanMetaData assertEntity(String ejbName, EnterpriseBeansMetaData enterpriseBeansMetaData)
Modified: 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 2007-08-31 15:58:09 UTC (rev 2524)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/test/ejb/metadata/test/EJBMetaDataTestSuite.java 2007-09-03 13:41:41 UTC (rev 2525)
@@ -49,6 +49,7 @@
suite.addTest(JBoss5xEverythingUnitTestCase.suite());
suite.addTest(EjbJarJBossMergeEverythingUnitTestCase.suite());
suite.addTest(JBossCMPUnitTestCase.suite());
+ suite.addTest(JBossCMPMergeUnitTestCase.suite());
return suite;
}
Modified: 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 2007-08-31 15:58:09 UTC (rev 2524)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/test/ejb/metadata/test/EjbJar21EverythingUnitTestCase.java 2007-09-03 13:41:41 UTC (rev 2525)
@@ -148,6 +148,12 @@
protected EntityBeanMetaData assertFullEntity(String ejbName, EnterpriseBeansMetaData enterpriseBeansMetaData)
{
EntityBeanMetaData entity = assertEntity(ejbName + "EjbName", enterpriseBeansMetaData);
+ assertFullEntity(ejbName, entity);
+ return entity;
+ }
+
+ public void assertFullEntity(String ejbName, EntityBeanMetaData entity)
+ {
assertId(ejbName, entity);
assertClass(ejbName, "Home", entity.getHome());
assertClass(ejbName, "Remote", entity.getRemote());
@@ -169,8 +175,6 @@
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)
Modified: jbossxb-builder/trunk/src/test/java/org/jboss/test/ejb/metadata/test/JBossCMPUnitTestCase.java
===================================================================
--- jbossxb-builder/trunk/src/test/java/org/jboss/test/ejb/metadata/test/JBossCMPUnitTestCase.java 2007-08-31 15:58:09 UTC (rev 2524)
+++ jbossxb-builder/trunk/src/test/java/org/jboss/test/ejb/metadata/test/JBossCMPUnitTestCase.java 2007-09-03 13:41:41 UTC (rev 2525)
@@ -27,7 +27,7 @@
import junit.framework.Test;
import org.jboss.ejb.metadata.jboss.cmp.JBossCMPAuditMetaData;
-import org.jboss.ejb.metadata.jboss.cmp.JBossCMPCMPFieldMetaData;
+import org.jboss.ejb.metadata.jboss.cmp.JBossCMPFieldMetaData;
import org.jboss.ejb.metadata.jboss.cmp.JBossCMPDeclaredSqlMetaData;
import org.jboss.ejb.metadata.jboss.cmp.JBossCMPDefaultsMetaData;
import org.jboss.ejb.metadata.jboss.cmp.JBossCMPDependentValueClassMetaData;
@@ -36,6 +36,7 @@
import org.jboss.ejb.metadata.jboss.cmp.JBossCMPEnterpriseBeansMetaData;
import org.jboss.ejb.metadata.jboss.cmp.JBossCMPEntityBeanMetaData;
import org.jboss.ejb.metadata.jboss.cmp.JBossCMPEntityCommandMetaData;
+import org.jboss.ejb.metadata.jboss.cmp.JBossCMPFieldsMetaData;
import org.jboss.ejb.metadata.jboss.cmp.JBossCMPKeyFieldMetaData;
import org.jboss.ejb.metadata.jboss.cmp.JBossCMPLoadGroupMetaData;
import org.jboss.ejb.metadata.jboss.cmp.JBossCMPMetaData;
@@ -392,11 +393,11 @@
//
// cmp-fields
//
- List<JBossCMPCMPFieldMetaData> cmpFields = entity.getCmpFields();
+ JBossCMPFieldsMetaData cmpFields = entity.getCmpFields();
assertNotNull(cmpFields);
assertEquals(3, cmpFields.size());
- JBossCMPCMPFieldMetaData field = cmpFields.get(0);
+ JBossCMPFieldMetaData field = cmpFields.get("id");
assertNotNull(field);
assertEquals("id", field.getFieldName());
assertFalse(field.isReadOnly());
@@ -411,7 +412,7 @@
assertFalse(field.isCheckDirtyAfterGet());
assertNull(field.getStateFactory());
- field = cmpFields.get(1);
+ field = cmpFields.get("name");
assertNotNull(field);
assertEquals("name", field.getFieldName());
assertTrue(field.isReadOnly());
@@ -426,7 +427,7 @@
assertTrue(field.isCheckDirtyAfterGet());
assertEquals("entity2.StateFactory", field.getStateFactory());
- field = cmpFields.get(2);
+ field = cmpFields.get("address");
assertNotNull(field);
assertEquals("address", field.getFieldName());
assertFalse(field.isReadOnly());
Added: jbossxb-builder/trunk/src/test/resources/org/jboss/test/ejb/metadata/test/JBossCMPMerge_testMerge.xml
===================================================================
--- jbossxb-builder/trunk/src/test/resources/org/jboss/test/ejb/metadata/test/JBossCMPMerge_testMerge.xml (rev 0)
+++ jbossxb-builder/trunk/src/test/resources/org/jboss/test/ejb/metadata/test/JBossCMPMerge_testMerge.xml 2007-09-03 13:41:41 UTC (rev 2525)
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<jbosscmp-jdbc xmlns="http://www.jboss.com/xml/ns/javaee/cmp2x"
+ xmlns:jee="http://java.sun.com/xml/ns/javaee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.jboss.com/xml/ns/javaee/cmp2x http://www.jboss.org/j2ee/schema/jbosscmp-jdbc_5_0.xsd">
+
+ <enterprise-beans>
+ <entity>
+ <ejb-name>entity1EjbName</ejb-name>
+ </entity>
+
+ <entity>
+ <ejb-name>entity2EjbName</ejb-name>
+ <datasource>java:/DefaultDS</datasource>
+ <datasource-mapping>Hypersonic SQL</datasource-mapping>
+ <create-table>true</create-table>
+ <remove-table>true</remove-table>
+
+ <table-name>entity2Table</table-name>
+ <cmp-field>
+ <field-name>entity2CmpField2</field-name>
+ <read-only>true</read-only>
+ <read-time-out>1111</read-time-out>
+ <column-name>name_column</column-name>
+ <not-null>true</not-null>
+ <jdbc-type>VARCHAR</jdbc-type>
+ <sql-type>VARCHAR(111)</sql-type>
+ <auto-increment/>
+ <dbindex/>
+ <check-dirty-after-get>true</check-dirty-after-get>
+ <state-factory>entity2.StateFactory</state-factory>
+ </cmp-field>
+
+ <query>
+ <description>overriden entity2Query1QueryMethod</description>
+ <query-method>
+ <method-name>entity2Query1QueryMethod</method-name>
+ <method-params>
+ <method-param>entity2Query1QueryMethodParam1</method-param>
+ <method-param>entity2Query1QueryMethodParam2</method-param>
+ </method-params>
+ </query-method>
+ <jboss-ql>select object(o) from entity2</jboss-ql>
+ <read-ahead>
+ <strategy>on-load</strategy>
+ <page-size>22</page-size>
+ <eager-load-group>eager-group</eager-load-group>
+ </read-ahead>
+ <ql-compiler>entity.QLCompiler</ql-compiler>
+ <lazy-resultset-loading>true</lazy-resultset-loading>
+ </query>
+ </entity>
+ </enterprise-beans>
+
+ <relationships>
+ <ejb-relation>
+ <ejb-relation-name>relation2Name</ejb-relation-name>
+ <ejb-relationship-role>
+ <ejb-relationship-role-name>relation2Role1Name</ejb-relationship-role-name>
+ <key-fields>
+ <key-field>
+ <field-name>id1</field-name>
+ <column-name>a_id1</column-name>
+ <jdbc-type>INTEGER</jdbc-type>
+ <sql-type>NUMERIC</sql-type>
+ </key-field>
+ <key-field>
+ <field-name>id2</field-name>
+ <column-name>a_id2</column-name>
+ <dbindex/>
+ </key-field>
+ </key-fields>
+ </ejb-relationship-role>
+ <ejb-relationship-role>
+ <ejb-relationship-role-name>relation2Role2Name</ejb-relationship-role-name>
+ <key-fields/>
+ <batch-cascade-delete/>
+ </ejb-relationship-role>
+ </ejb-relation>
+ </relationships>
+
+</jbosscmp-jdbc>
More information about the jboss-svn-commits
mailing list