http://git-wip-us.apache.org/repos/asf/cayenne/blob/6378c41f/itests/cayenne-tools-itest/src/test/resources/testmap.map.xml ---------------------------------------------------------------------- diff --git a/itests/cayenne-tools-itest/src/test/resources/testmap.map.xml b/itests/cayenne-tools-itest/src/test/resources/testmap.map.xml deleted file mode 100644 index e426dda..0000000 --- a/itests/cayenne-tools-itest/src/test/resources/testmap.map.xml +++ /dev/null @@ -1,735 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<data-map xmlns="http://cayenne.apache.org/schema/10/modelMap" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://cayenne.apache.org/schema/10/modelMap http://cayenne.apache.org/schema/10/modelMap.xsd" - project-version="10"> - <property name="defaultPackage" value="org.apache.cayenne.testdo.testmap"/> - <property name="defaultSuperclass" value="org.apache.cayenne.CayenneDataObject"/> - <property name="clientSupported" value="true"/> - <property name="defaultClientPackage" value="test.client"/> - <property name="defaultClientSuperclass" value="org.apache.cayenne.PersistentObject"/> - <procedure name="cayenne_tst_out_proc"> - <procedure-parameter name="in_param" type="INTEGER" direction="in"/> - <procedure-parameter name="out_param" type="INTEGER" direction="out"/> - </procedure> - <procedure name="cayenne_tst_select_proc"> - <procedure-parameter name="aName" type="VARCHAR" length="254" direction="in"/> - <procedure-parameter name="paintingPrice" type="INTEGER" direction="in"/> - </procedure> - <procedure name="cayenne_tst_upd_proc"> - <procedure-parameter name="paintingPrice" type="INTEGER" direction="in"/> - </procedure> - <procedure name="cayenne_tst_upd_proc2"> - </procedure> - <db-entity name="ARRAYS_ENTITY"> - <db-attribute name="BYTE_ARRAY" type="VARBINARY" length="200"/> - <db-attribute name="BYTE_WRAPPER_ARRAY" type="VARBINARY" length="200"/> - <db-attribute name="CHAR_ARRAY" type="VARCHAR" length="200"/> - <db-attribute name="CHAR_WRAPPER_ARRAY" type="VARCHAR" length="200"/> - <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/> - </db-entity> - <db-entity name="ARTGROUP"> - <db-attribute name="GROUP_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/> - <db-attribute name="NAME" type="VARCHAR" isMandatory="true" length="100"/> - <db-attribute name="PARENT_GROUP_ID" type="INTEGER"/> - </db-entity> - <db-entity name="ARTIST"> - <db-attribute name="ARTIST_ID" type="BIGINT" isPrimaryKey="true" isMandatory="true"/> - <db-attribute name="ARTIST_NAME" type="CHAR" isMandatory="true" length="254"/> - <db-attribute name="DATE_OF_BIRTH" type="DATE"/> - </db-entity> - <db-entity name="ARTIST_CT"> - <db-attribute name="ARTIST_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/> - <db-attribute name="ARTIST_NAME" type="CHAR" isMandatory="true" length="254"/> - <db-attribute name="DATE_OF_BIRTH" type="DATE"/> - </db-entity> - <db-entity name="ARTIST_EXHIBIT"> - <db-attribute name="ARTIST_ID" type="BIGINT" isPrimaryKey="true" isMandatory="true"/> - <db-attribute name="EXHIBIT_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/> - </db-entity> - <db-entity name="ARTIST_GROUP"> - <db-attribute name="ARTIST_ID" type="BIGINT" isPrimaryKey="true" isMandatory="true"/> - <db-attribute name="GROUP_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/> - </db-entity> - <db-entity name="BIGDECIMAL_ENTITY"> - <db-attribute name="BIGDECIMAL_FIELD" type="NUMERIC" length="12" scale="2"/> - <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/> - </db-entity> - <db-entity name="BIGINTEGER_ENTITY"> - <db-attribute name="BIG_INTEGER_FIELD" type="BIGINT"/> - <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/> - </db-entity> - <db-entity name="BINARY_PK_TEST1"> - <db-attribute name="BIN_ID" type="VARBINARY" isPrimaryKey="true" isMandatory="true" length="32"/> - <db-attribute name="NAME" type="VARCHAR" length="10"/> - </db-entity> - <db-entity name="BINARY_PK_TEST2"> - <db-attribute name="DETAIL_NAME" type="VARCHAR" length="10"/> - <db-attribute name="FK_ID" type="VARBINARY" length="32"/> - <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/> - </db-entity> - <db-entity name="BIT_TEST"> - <db-attribute name="BIT_COLUMN" type="BIT" isMandatory="true"/> - <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/> - </db-entity> - <db-entity name="BLOB_TEST"> - <db-attribute name="BLOB_COL" type="BLOB"/> - <db-attribute name="BLOB_TEST_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/> - </db-entity> - <db-entity name="BOOLEAN_TEST"> - <db-attribute name="BOOLEAN_COLUMN" type="BOOLEAN" isMandatory="true"/> - <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/> - </db-entity> - <db-entity name="CALENDAR_TEST"> - <db-attribute name="CALENDAR_FIELD" type="TIMESTAMP"/> - <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/> - </db-entity> - <db-entity name="CHARACTER_ENTITY"> - <db-attribute name="CHARACTER_FIELD" type="CHAR" length="1"/> - <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/> - </db-entity> - <db-entity name="CHAR_FK_TEST"> - <db-attribute name="FK_COL" type="CHAR" length="10"/> - <db-attribute name="NAME" type="VARCHAR" length="100"/> - <db-attribute name="PK" type="INTEGER" isPrimaryKey="true" isMandatory="true"/> - </db-entity> - <db-entity name="CHAR_PK_TEST"> - <db-attribute name="OTHER_COL" type="CHAR" length="10"/> - <db-attribute name="PK_COL" type="CHAR" isPrimaryKey="true" isMandatory="true" length="10"/> - </db-entity> - <db-entity name="CLOB_TEST"> - <db-attribute name="CLOB_COL" type="CLOB"/> - <db-attribute name="CLOB_TEST_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/> - </db-entity> - <db-entity name="CLOB_TEST_RELATION"> - <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/> - <db-attribute name="ID_CLOB" type="INTEGER" isMandatory="true"/> - <db-attribute name="VALUE" type="INTEGER"/> - </db-entity> - <db-entity name="COMPOUND_FK_TEST"> - <db-attribute name="F_KEY1" type="VARCHAR" length="20"/> - <db-attribute name="F_KEY2" type="VARCHAR" length="20"/> - <db-attribute name="NAME" type="VARCHAR" length="255"/> - <db-attribute name="PKEY" type="INTEGER" isPrimaryKey="true" isMandatory="true"/> - </db-entity> - <db-entity name="COMPOUND_PK_TEST"> - <db-attribute name="KEY1" type="VARCHAR" isPrimaryKey="true" isMandatory="true" length="20"/> - <db-attribute name="KEY2" type="VARCHAR" isPrimaryKey="true" isMandatory="true" length="20"/> - <db-attribute name="NAME" type="VARCHAR" length="255"/> - </db-entity> - <db-entity name="DATE_TEST"> - <db-attribute name="DATE_COLUMN" type="DATE"/> - <db-attribute name="DATE_TEST_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/> - <db-attribute name="TIMESTAMP_COLUMN" type="TIMESTAMP"/> - <db-attribute name="TIME_COLUMN" type="TIME"/> - </db-entity> - <db-entity name="DECIMAL_PK_TST"> - <db-attribute name="DECIMAL_PK" type="DECIMAL" isPrimaryKey="true" isMandatory="true"/> - <db-attribute name="NAME" type="VARCHAR" length="100"/> - </db-entity> - <db-entity name="ENUM_ENTITY"> - <db-attribute name="ENUM_ATTRIBUTE" type="VARCHAR" length="250"/> - <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/> - </db-entity> - <db-entity name="EXHIBIT"> - <db-attribute name="CLOSING_DATE" type="TIMESTAMP" isMandatory="true"/> - <db-attribute name="EXHIBIT_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/> - <db-attribute name="GALLERY_ID" type="INTEGER" isMandatory="true"/> - <db-attribute name="OPENING_DATE" type="TIMESTAMP" isMandatory="true"/> - </db-entity> - <db-entity name="EXTENDED_TYPE_TEST"> - <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/> - <db-attribute name="NAME" type="VARCHAR" length="200"/> - </db-entity> - <db-entity name="FLOAT_TEST"> - <db-attribute name="FLOAT_COL" type="FLOAT"/> - <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/> - </db-entity> - <db-entity name="GALLERY"> - <db-attribute name="GALLERY_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/> - <db-attribute name="GALLERY_NAME" type="VARCHAR" isMandatory="true" length="100"/> - </db-entity> - <db-entity name="GENERATED_COLUMN_COMP_KEY"> - <db-attribute name="AUTO_PK" type="INTEGER" isPrimaryKey="true" isMandatory="true"/> - <db-attribute name="GENERATED_COLUMN" type="INTEGER" isPrimaryKey="true" isGenerated="true" isMandatory="true"/> - <db-attribute name="NAME" type="VARCHAR" length="100"/> - <db-attribute name="PROPAGATED_PK" type="INTEGER" isPrimaryKey="true" isMandatory="true"/> - </db-entity> - <db-entity name="GENERATED_COLUMN_COMP_M"> - <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/> - <db-attribute name="NAME" type="VARCHAR" length="100"/> - </db-entity> - <db-entity name="GENERATED_COLUMN_DEP"> - <db-attribute name="GENERATED_COLUMN_FK" type="INTEGER" isPrimaryKey="true" isMandatory="true"/> - <db-attribute name="NAME" type="VARCHAR" length="100"/> - </db-entity> - <db-entity name="GENERATED_COLUMN_TEST"> - <db-attribute name="GENERATED_COLUMN" type="INTEGER" isPrimaryKey="true" isGenerated="true" isMandatory="true"/> - <db-attribute name="NAME" type="VARCHAR" length="250"/> - </db-entity> - <db-entity name="GENERATED_COLUMN_TEST2"> - <db-attribute name="GENERATED_COLUMN" type="INTEGER" isPrimaryKey="true" isGenerated="true" isMandatory="true"/> - <db-attribute name="NAME" type="VARCHAR" length="100"/> - </db-entity> - <db-entity name="GENERATED_F1"> - <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/> - </db-entity> - <db-entity name="GENERATED_F2"> - <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/> - </db-entity> - <db-entity name="GENERATED_JOIN"> - <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isGenerated="true" isMandatory="true"/> - <db-attribute name="ID1" type="INTEGER"/> - <db-attribute name="ID2" type="INTEGER"/> - </db-entity> - <db-entity name="LONG_ENTITY"> - <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/> - <db-attribute name="LONG_FIELD" type="BIGINT"/> - </db-entity> - <db-entity name="MEANINGFUL_PK_DEP"> - <db-attribute name="DESCR" type="VARCHAR" length="50"/> - <db-attribute name="MASTER_PK" type="INTEGER"/> - <db-attribute name="PK_ATTRIBUTE" type="INTEGER" isPrimaryKey="true" isMandatory="true"/> - </db-entity> - <db-entity name="MEANINGFUL_PK_TEST1"> - <db-attribute name="DESCR" type="VARCHAR" length="50"/> - <db-attribute name="PK_ATTRIBUTE" type="INTEGER" isPrimaryKey="true" isMandatory="true"/> - </db-entity> - <db-entity name="MIXED_PERSISTENCE_STRATEGY"> - <db-attribute name="DESCRIPTION" type="VARCHAR" length="200"/> - <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/> - <db-attribute name="NAME" type="VARCHAR" length="200"/> - </db-entity> - <db-entity name="MIXED_PERSISTENCE_STRATEGY2"> - <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/> - <db-attribute name="MASTER_ID" type="INTEGER"/> - <db-attribute name="NAME" type="VARCHAR" length="200"/> - </db-entity> - <db-entity name="NO_PK_TEST"> - <db-attribute name="ATTRIBUTE1" type="INTEGER"/> - </db-entity> - <db-entity name="PAINTING"> - <db-attribute name="ARTIST_ID" type="BIGINT"/> - <db-attribute name="ESTIMATED_PRICE" type="DECIMAL" length="10" scale="2"/> - <db-attribute name="GALLERY_ID" type="INTEGER"/> - <db-attribute name="PAINTING_DESCRIPTION" type="VARCHAR" length="255"/> - <db-attribute name="PAINTING_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/> - <db-attribute name="PAINTING_TITLE" type="VARCHAR" isMandatory="true" length="255"/> - </db-entity> - <db-entity name="PAINTING1"> - <db-attribute name="ARTIST_ID" type="BIGINT"/> - <db-attribute name="ESTIMATED_PRICE" type="DECIMAL" length="10" scale="2"/> - <db-attribute name="GALLERY_ID" type="INTEGER"/> - <db-attribute name="PAINTING_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/> - <db-attribute name="PAINTING_TITLE" type="VARCHAR" isMandatory="true" length="255"/> - </db-entity> - <db-entity name="PAINTING_INFO"> - <db-attribute name="IMAGE_BLOB" type="LONGVARBINARY"/> - <db-attribute name="PAINTING_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/> - <db-attribute name="TEXT_REVIEW" type="LONGVARCHAR"/> - </db-entity> - <db-entity name="PRIMITIVES_TEST"> - <db-attribute name="BOOLEAN_COLUMN" type="BOOLEAN"/> - <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/> - <db-attribute name="INT_COLUMN" type="INTEGER"/> - </db-entity> - <db-entity name="SERIALIZABLE_ENTITY"> - <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/> - <db-attribute name="SERIALIZABLE_FIELD" type="BLOB"/> - </db-entity> - <db-entity name="SMALLINT_TEST"> - <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/> - <db-attribute name="SMALLINT_COL" type="SMALLINT"/> - </db-entity> - <db-entity name="TINYINT_TEST"> - <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/> - <db-attribute name="TINYINT_COL" type="TINYINT"/> - </db-entity> - <db-entity name="TYPES_MAPPING_TEST1"> - <db-attribute name="AAAID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/> - <db-attribute name="BIGINT_COLUMN" type="BIGINT"/> - <db-attribute name="BIT_COLUMN" type="BIT"/> - <db-attribute name="BOOLEAN_COLUMN" type="BOOLEAN"/> - <db-attribute name="CHAR_COLUMN" type="CHAR" length="254"/> - <db-attribute name="CLOB_COLUMN" type="CLOB"/> - <db-attribute name="DATE_COLUMN" type="DATE"/> - <db-attribute name="DECIMAL_COLUMN" type="DECIMAL" length="12" scale="5"/> - <db-attribute name="DOUBLE_COLUMN" type="DOUBLE" scale="7"/> - <db-attribute name="FLOAT_COLUMN" type="FLOAT" scale="3"/> - <db-attribute name="INTEGER_COLUMN" type="INTEGER"/> - <db-attribute name="LONGVARCHAR_COLUMN" type="LONGVARCHAR"/> - <db-attribute name="NUMERIC_COLUMN" type="NUMERIC" length="12" scale="5"/> - <db-attribute name="REAL_COLUMN" type="REAL" scale="5"/> - <db-attribute name="SMALLINT_COLUMN" type="SMALLINT"/> - <db-attribute name="TIMESTAMP_COLUMN" type="TIMESTAMP"/> - <db-attribute name="TIME_COLUMN" type="TIME"/> - <db-attribute name="TINYINT_COLUMN" type="TINYINT"/> - <db-attribute name="VARCHAR_COLUMN" type="VARCHAR" length="255"/> - </db-entity> - <db-entity name="TYPES_MAPPING_TEST2"> - <db-attribute name="AAAID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/> - <db-attribute name="BINARY_COLUMN" type="BINARY" length="14"/> - <db-attribute name="BLOB_COLUMN" type="BLOB"/> - <db-attribute name="LONGVARBINARY_COLUMN" type="LONGVARBINARY"/> - <db-attribute name="VARBINARY_COLUMN" type="VARBINARY" length="1000"/> - </db-entity> - <db-entity name="UUID_TEST"> - <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/> - <db-attribute name="UUID" type="VARCHAR" length="100"/> - </db-entity> - <obj-entity name="ArraysEntity" className="org.apache.cayenne.testdo.misc_types.ArraysEntity" dbEntityName="ARRAYS_ENTITY"> - <obj-attribute name="byteArray" type="byte[]" db-attribute-path="BYTE_ARRAY"/> - <obj-attribute name="byteWrapperArray" type="java.lang.Byte[]" db-attribute-path="BYTE_WRAPPER_ARRAY"/> - <obj-attribute name="charArray" type="char[]" db-attribute-path="CHAR_ARRAY"/> - <obj-attribute name="charWrapperArray" type="java.lang.Character[]" db-attribute-path="CHAR_WRAPPER_ARRAY"/> - </obj-entity> - <obj-entity name="ArtGroup" className="org.apache.cayenne.testdo.testmap.ArtGroup" dbEntityName="ARTGROUP"> - <obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/> - </obj-entity> - <obj-entity name="Artist" className="org.apache.cayenne.testdo.testmap.Artist" dbEntityName="ARTIST"> - <obj-attribute name="artistName" type="java.lang.String" db-attribute-path="ARTIST_NAME"/> - <obj-attribute name="dateOfBirth" type="java.util.Date" db-attribute-path="DATE_OF_BIRTH"/> - </obj-entity> - <obj-entity name="ArtistCallbackTest" className="org.apache.cayenne.testdo.testmap.ArtistCallbackTest" dbEntityName="ARTIST_CT"> - <obj-attribute name="artistName" type="java.lang.String"/> - <obj-attribute name="dateOfBirth" type="java.util.Date"/> - <post-add method-name="prePersistEntityObjEntity"/> - <post-persist method-name="postPersistEntityObjEntity"/> - <pre-update method-name="preUpdateEntityObjEntity"/> - <post-update method-name="postUpdateEntityObjEntity"/> - <pre-remove method-name="preRemoveEntityObjEntity"/> - <post-remove method-name="postRemoveEntityObjEntity"/> - <post-load method-name="postLoadEntityObjEntity"/> - </obj-entity> - <obj-entity name="ArtistExhibit" className="org.apache.cayenne.testdo.testmap.ArtistExhibit" dbEntityName="ARTIST_EXHIBIT"> - </obj-entity> - <obj-entity name="BigDecimalEntity" className="org.apache.cayenne.testdo.numeric_types.BigDecimalEntity" dbEntityName="BIGDECIMAL_ENTITY"> - <obj-attribute name="bigDecimalField" type="java.math.BigDecimal" db-attribute-path="BIGDECIMAL_FIELD"/> - </obj-entity> - <obj-entity name="BigIntegerEntity" className="org.apache.cayenne.testdo.numeric_types.BigIntegerEntity" dbEntityName="BIGINTEGER_ENTITY"> - <obj-attribute name="bigIntegerField" type="java.math.BigInteger" db-attribute-path="BIG_INTEGER_FIELD"/> - </obj-entity> - <obj-entity name="BinaryPKTest1" className="org.apache.cayenne.testdo.binary_pk.BinaryPKTest1" dbEntityName="BINARY_PK_TEST1"> - <obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/> - </obj-entity> - <obj-entity name="BinaryPKTest2" className="org.apache.cayenne.testdo.binary_pk.BinaryPKTest2" dbEntityName="BINARY_PK_TEST2"> - <obj-attribute name="detailName" type="java.lang.String" db-attribute-path="DETAIL_NAME"/> - </obj-entity> - <obj-entity name="BitNumberTestEntity" className="org.apache.cayenne.testdo.numeric_types.BitNumberTestEntity" dbEntityName="BIT_TEST"> - <obj-attribute name="bitColumn" type="java.lang.Integer" db-attribute-path="BIT_COLUMN"/> - </obj-entity> - <obj-entity name="BitTestEntity" className="org.apache.cayenne.testdo.numeric_types.BitTestEntity" dbEntityName="BIT_TEST"> - <obj-attribute name="bitColumn" type="java.lang.Boolean" db-attribute-path="BIT_COLUMN"/> - </obj-entity> - <obj-entity name="BlobTestEntity" className="org.apache.cayenne.testdo.lob.BlobTestEntity" dbEntityName="BLOB_TEST"> - <obj-attribute name="blobCol" type="byte[]" db-attribute-path="BLOB_COL"/> - </obj-entity> - <obj-entity name="BooleanTestEntity" className="org.apache.cayenne.testdo.numeric_types.BooleanTestEntity" dbEntityName="BOOLEAN_TEST"> - <obj-attribute name="booleanColumn" type="java.lang.Boolean" db-attribute-path="BOOLEAN_COLUMN"/> - </obj-entity> - <obj-entity name="CalendarEntity" className="org.apache.cayenne.testdo.date_time.CalendarEntity" dbEntityName="CALENDAR_TEST"> - <obj-attribute name="calendarField" type="java.util.Calendar" db-attribute-path="CALENDAR_FIELD"/> - </obj-entity> - <obj-entity name="CharFkTestEntity" className="org.apache.cayenne.testdo.compound.CharFkTestEntity" dbEntityName="CHAR_FK_TEST"> - <obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/> - </obj-entity> - <obj-entity name="CharPkTestEntity" className="org.apache.cayenne.testdo.compound.CharPkTestEntity" dbEntityName="CHAR_PK_TEST"> - <obj-attribute name="otherCol" type="java.lang.String" db-attribute-path="OTHER_COL"/> - <obj-attribute name="pkCol" type="java.lang.String" db-attribute-path="PK_COL"/> - </obj-entity> - <obj-entity name="CharacterEntity" className="org.apache.cayenne.testdo.misc_types.CharacterEntity" dbEntityName="CHARACTER_ENTITY"> - <obj-attribute name="characterField" type="java.lang.Character" db-attribute-path="CHARACTER_FIELD"/> - </obj-entity> - <obj-entity name="ClobTestEntity" className="org.apache.cayenne.testdo.lob.ClobTestEntity" dbEntityName="CLOB_TEST"> - <obj-attribute name="clobCol" type="java.lang.String" db-attribute-path="CLOB_COL"/> - </obj-entity> - <obj-entity name="ClobTestRelation" className="org.apache.cayenne.testdo.lob.ClobTestRelation" dbEntityName="CLOB_TEST_RELATION"> - <obj-attribute name="id" type="java.lang.Integer" db-attribute-path="ID"/> - <obj-attribute name="value" type="java.lang.Integer" db-attribute-path="VALUE"/> - </obj-entity> - <obj-entity name="CompoundFkTestEntity" className="org.apache.cayenne.testdo.compound.CompoundFkTestEntity" dbEntityName="COMPOUND_FK_TEST"> - <obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/> - </obj-entity> - <obj-entity name="CompoundPainting" className="org.apache.cayenne.testdo.testmap.CompoundPainting" dbEntityName="PAINTING"> - <obj-attribute name="artistName" type="java.lang.String" db-attribute-path="toArtist.ARTIST_NAME"/> - <obj-attribute name="estimatedPrice" type="java.math.BigDecimal" db-attribute-path="ESTIMATED_PRICE"/> - <obj-attribute name="galleryName" type="java.lang.String" db-attribute-path="toGallery.GALLERY_NAME"/> - <obj-attribute name="paintingTitle" type="java.lang.String" db-attribute-path="PAINTING_TITLE"/> - <obj-attribute name="textReview" type="java.lang.String" db-attribute-path="toPaintingInfo.TEXT_REVIEW"/> - </obj-entity> - <obj-entity name="CompoundPkTestEntity" className="org.apache.cayenne.testdo.compound.CompoundPkTestEntity" dbEntityName="COMPOUND_PK_TEST"> - <obj-attribute name="key1" type="java.lang.String" db-attribute-path="KEY1"/> - <obj-attribute name="key2" type="java.lang.String" db-attribute-path="KEY2"/> - <obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/> - </obj-entity> - <obj-entity name="DateTestEntity" className="org.apache.cayenne.testdo.date_time.DateTestEntity" dbEntityName="DATE_TEST"> - <obj-attribute name="dateColumn" type="java.util.Date" db-attribute-path="DATE_COLUMN"/> - <obj-attribute name="timeColumn" type="java.util.Date" db-attribute-path="TIME_COLUMN"/> - <obj-attribute name="timestampColumn" type="java.util.Date" db-attribute-path="TIMESTAMP_COLUMN"/> - </obj-entity> - <obj-entity name="DecimalPKTest1" className="org.apache.cayenne.testdo.numeric_types.DecimalPKTest1" dbEntityName="DECIMAL_PK_TST"> - <obj-attribute name="decimalPK" type="java.lang.Double" db-attribute-path="DECIMAL_PK"/> - <obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/> - </obj-entity> - <obj-entity name="DecimalPKTestEntity" className="org.apache.cayenne.testdo.numeric_types.DecimalPKTestEntity" dbEntityName="DECIMAL_PK_TST"> - <obj-attribute name="decimalPK" type="java.math.BigDecimal" db-attribute-path="DECIMAL_PK"/> - <obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/> - </obj-entity> - <obj-entity name="EnumEntity" className="org.apache.cayenne.testdo.enum_test.EnumEntity" dbEntityName="ENUM_ENTITY"> - <obj-attribute name="enumAttribute" type="org.apache.cayenne.testdo.enum_test.Enum1" db-attribute-path="ENUM_ATTRIBUTE"/> - </obj-entity> - <obj-entity name="Exhibit" className="org.apache.cayenne.testdo.testmap.Exhibit" dbEntityName="EXHIBIT"> - <obj-attribute name="closingDate" type="java.util.Date" db-attribute-path="CLOSING_DATE"/> - <obj-attribute name="openingDate" type="java.util.Date" db-attribute-path="OPENING_DATE"/> - </obj-entity> - <obj-entity name="ExtendedTypeEntity" className="org.apache.cayenne.testdo.extended_type.ExtendedTypeEntity" dbEntityName="EXTENDED_TYPE_TEST"> - <obj-attribute name="name" type="org.apache.cayenne.testdo.extended_type.StringET1" db-attribute-path="NAME"/> - </obj-entity> - <obj-entity name="Gallery" className="org.apache.cayenne.testdo.testmap.Gallery" dbEntityName="GALLERY"> - <obj-attribute name="galleryName" type="java.lang.String" db-attribute-path="GALLERY_NAME"/> - </obj-entity> - <obj-entity name="GeneratedColumnCompKey" className="org.apache.cayenne.testdo.generated.GeneratedColumnCompKey" dbEntityName="GENERATED_COLUMN_COMP_KEY"> - <obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/> - </obj-entity> - <obj-entity name="GeneratedColumnCompMaster" className="org.apache.cayenne.testdo.generated.GeneratedColumnCompMaster" dbEntityName="GENERATED_COLUMN_COMP_M"> - <obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/> - </obj-entity> - <obj-entity name="GeneratedColumnDep" className="org.apache.cayenne.testdo.generated.GeneratedColumnDep" dbEntityName="GENERATED_COLUMN_DEP"> - <obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/> - </obj-entity> - <obj-entity name="GeneratedColumnTest2" className="org.apache.cayenne.testdo.generated.GeneratedColumnTest2" dbEntityName="GENERATED_COLUMN_TEST2"> - <obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/> - </obj-entity> - <obj-entity name="GeneratedColumnTestEntity" className="org.apache.cayenne.testdo.generated.GeneratedColumnTestEntity" dbEntityName="GENERATED_COLUMN_TEST"> - <obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/> - </obj-entity> - <obj-entity name="GeneratedF1" className="org.apache.cayenne.testdo.generated.GeneratedF1" clientClassName="test.client.GeneratedF1" dbEntityName="GENERATED_F1" superClassName="org.apache.cayenne.CayenneDataObject" clientSuperClassName="org.apache.cayenne.PersistentObject"> - </obj-entity> - <obj-entity name="GeneratedF2" className="org.apache.cayenne.testdo.generated.GeneratedF2" clientClassName="test.client.GeneratedF2" dbEntityName="GENERATED_F2" superClassName="org.apache.cayenne.CayenneDataObject" clientSuperClassName="org.apache.cayenne.PersistentObject"> - </obj-entity> - <obj-entity name="LongEntity" className="org.apache.cayenne.testdo.numeric_types.LongEntity" dbEntityName="LONG_ENTITY"> - <obj-attribute name="longField" type="java.lang.Long" db-attribute-path="LONG_FIELD"/> - </obj-entity> - <obj-entity name="MeaningfulGeneratedColumnTestEntity" className="org.apache.cayenne.testdo.testmap.MeaningfulGeneratedColumnTestEntity" dbEntityName="GENERATED_COLUMN_TEST"> - <obj-attribute name="generatedColumn" type="java.lang.Integer" db-attribute-path="GENERATED_COLUMN"/> - <obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/> - </obj-entity> - <obj-entity name="MeaningfulPKDep" className="org.apache.cayenne.testdo.meaningful_pk.MeaningfulPKDep" dbEntityName="MEANINGFUL_PK_DEP"> - <obj-attribute name="descr" type="java.lang.String" db-attribute-path="DESCR"/> - </obj-entity> - <obj-entity name="MeaningfulPKTest1" className="org.apache.cayenne.testdo.meaningful_pk.MeaningfulPKTest1" dbEntityName="MEANINGFUL_PK_TEST1"> - <obj-attribute name="descr" type="java.lang.String" db-attribute-path="DESCR"/> - <obj-attribute name="pkAttribute" type="java.lang.Integer" db-attribute-path="PK_ATTRIBUTE"/> - </obj-entity> - <obj-entity name="MixedPersistenceStrategy" className="org.apache.cayenne.testdo.mixed_persistence_strategy.MixedPersistenceStrategy" dbEntityName="MIXED_PERSISTENCE_STRATEGY"> - <obj-attribute name="description" type="java.lang.String" db-attribute-path="DESCRIPTION"/> - <obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/> - </obj-entity> - <obj-entity name="MixedPersistenceStrategy2" className="org.apache.cayenne.testdo.mixed_persistence_strategy.MixedPersistenceStrategy2" dbEntityName="MIXED_PERSISTENCE_STRATEGY2"> - <obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/> - </obj-entity> - <obj-entity name="NoPkTestEntity" className="org.apache.cayenne.testdo.no_pk.NoPkTestEntity" dbEntityName="NO_PK_TEST"> - <obj-attribute name="attribute1" type="java.lang.Integer" db-attribute-path="ATTRIBUTE1"/> - </obj-entity> - <obj-entity name="Painting" className="org.apache.cayenne.testdo.testmap.Painting" dbEntityName="PAINTING" superClassName="org.apache.cayenne.testdo.testmap.ArtDataObject"> - <obj-attribute name="estimatedPrice" type="java.math.BigDecimal" db-attribute-path="ESTIMATED_PRICE"/> - <obj-attribute name="paintingDescription" type="java.lang.String" db-attribute-path="PAINTING_DESCRIPTION"/> - <obj-attribute name="paintingTitle" type="java.lang.String" db-attribute-path="PAINTING_TITLE"/> - </obj-entity> - <obj-entity name="Painting1" className="org.apache.cayenne.testdo.testmap.Painting1" dbEntityName="PAINTING1"> - <obj-attribute name="estimatedPrice" type="java.math.BigDecimal" db-attribute-path="ESTIMATED_PRICE"/> - <obj-attribute name="paintingTitle" type="java.lang.String" db-attribute-path="PAINTING_TITLE"/> - </obj-entity> - <obj-entity name="PaintingInfo" className="org.apache.cayenne.testdo.testmap.PaintingInfo" dbEntityName="PAINTING_INFO"> - <obj-attribute name="imageBlob" type="byte[]" db-attribute-path="IMAGE_BLOB"/> - <obj-attribute name="textReview" type="java.lang.String" db-attribute-path="TEXT_REVIEW"/> - </obj-entity> - <obj-entity name="PrimitivesTestEntity" className="org.apache.cayenne.testdo.primitive.PrimitivesTestEntity" dbEntityName="PRIMITIVES_TEST"> - <obj-attribute name="booleanColumn" type="boolean" db-attribute-path="BOOLEAN_COLUMN"/> - <obj-attribute name="intColumn" type="int" db-attribute-path="INT_COLUMN"/> - </obj-entity> - <obj-entity name="ROArtist" className="org.apache.cayenne.testdo.testmap.ROArtist" readOnly="true" dbEntityName="ARTIST"> - <obj-attribute name="artistName" type="java.lang.String" db-attribute-path="ARTIST_NAME"/> - <obj-attribute name="dateOfBirth" type="java.sql.Date" db-attribute-path="DATE_OF_BIRTH"/> - </obj-entity> - <obj-entity name="ROPainting" className="org.apache.cayenne.testdo.testmap.ROPainting" readOnly="true" dbEntityName="PAINTING"> - <obj-attribute name="estimatedPrice" type="java.math.BigDecimal" db-attribute-path="ESTIMATED_PRICE"/> - <obj-attribute name="paintingTitle" type="java.lang.String" db-attribute-path="PAINTING_TITLE"/> - </obj-entity> - <obj-entity name="RWCompoundPainting" className="org.apache.cayenne.testdo.testmap.RWCompoundPainting" dbEntityName="PAINTING"> - <obj-attribute name="estimatedPrice" type="java.math.BigDecimal" db-attribute-path="ESTIMATED_PRICE"/> - <obj-attribute name="paintingTitle" type="java.lang.String" db-attribute-path="PAINTING_TITLE"/> - <obj-attribute name="textReview" type="java.lang.String" db-attribute-path="toPaintingInfo.TEXT_REVIEW"/> - </obj-entity> - <obj-entity name="ReturnTypesMap1" className="org.apache.cayenne.testdo.return_types.ReturnTypesMap1" clientClassName="test.client.ReturnTypesMap1" dbEntityName="TYPES_MAPPING_TEST1" superClassName="org.apache.cayenne.CayenneDataObject" clientSuperClassName="org.apache.cayenne.PersistentObject"> - <obj-attribute name="bigintColumn" type="java.lang.Long" db-attribute-path="BIGINT_COLUMN"/> - <obj-attribute name="bitColumn" type="java.lang.Boolean" db-attribute-path="BIT_COLUMN"/> - <obj-attribute name="booleanColumn" type="java.lang.Boolean" db-attribute-path="BOOLEAN_COLUMN"/> - <obj-attribute name="charColumn" type="java.lang.String" db-attribute-path="CHAR_COLUMN"/> - <obj-attribute name="clobColumn" type="java.lang.String" db-attribute-path="CLOB_COLUMN"/> - <obj-attribute name="dateColumn" type="java.util.Date" db-attribute-path="DATE_COLUMN"/> - <obj-attribute name="decimalColumn" type="java.math.BigDecimal" db-attribute-path="DECIMAL_COLUMN"/> - <obj-attribute name="doubleColumn" type="java.lang.Double" db-attribute-path="DOUBLE_COLUMN"/> - <obj-attribute name="floatColumn" type="java.lang.Float" db-attribute-path="FLOAT_COLUMN"/> - <obj-attribute name="integerColumn" type="java.lang.Integer" db-attribute-path="INTEGER_COLUMN"/> - <obj-attribute name="longvarcharColumn" type="java.lang.String" db-attribute-path="LONGVARCHAR_COLUMN"/> - <obj-attribute name="numericColumn" type="java.math.BigDecimal" db-attribute-path="NUMERIC_COLUMN"/> - <obj-attribute name="realColumn" type="java.lang.Float" db-attribute-path="REAL_COLUMN"/> - <obj-attribute name="smallintColumn" type="java.lang.Short" db-attribute-path="SMALLINT_COLUMN"/> - <obj-attribute name="timeColumn" type="java.util.Date" db-attribute-path="TIME_COLUMN"/> - <obj-attribute name="timestampColumn" type="java.util.Date" db-attribute-path="TIMESTAMP_COLUMN"/> - <obj-attribute name="tinyintColumn" type="java.lang.Byte" db-attribute-path="TINYINT_COLUMN"/> - <obj-attribute name="varcharColumn" type="java.lang.String" db-attribute-path="VARCHAR_COLUMN"/> - </obj-entity> - <obj-entity name="ReturnTypesMap2" className="org.apache.cayenne.testdo.return_types.ReturnTypesMap2" clientClassName="test.client.ReturnTypesMap2" dbEntityName="TYPES_MAPPING_TEST2" superClassName="org.apache.cayenne.CayenneDataObject" clientSuperClassName="org.apache.cayenne.PersistentObject"> - <obj-attribute name="binaryColumn" type="byte[]" db-attribute-path="BINARY_COLUMN"/> - <obj-attribute name="blobColumn" type="byte[]" db-attribute-path="BLOB_COLUMN"/> - <obj-attribute name="longvarbinaryColumn" type="byte[]" db-attribute-path="LONGVARBINARY_COLUMN"/> - <obj-attribute name="varbinaryColumn" type="byte[]" db-attribute-path="VARBINARY_COLUMN"/> - </obj-entity> - <obj-entity name="SerializableEntity" className="org.apache.cayenne.testdo.misc_types.SerializableEntity" dbEntityName="SERIALIZABLE_ENTITY"> - <obj-attribute name="serializableField" type="org.apache.cayenne.MockSerializable" db-attribute-path="SERIALIZABLE_FIELD"/> - </obj-entity> - <obj-entity name="SmallintTestEntity" className="org.apache.cayenne.testdo.numeric_types.SmallintTestEntity" dbEntityName="SMALLINT_TEST"> - <obj-attribute name="smallintCol" type="java.lang.Short" db-attribute-path="SMALLINT_COL"/> - </obj-entity> - <obj-entity name="SubPainting" className="org.apache.cayenne.testdo.testmap.SubPainting" dbEntityName="PAINTING"> - <obj-attribute name="paintingTitle" type="java.lang.String" db-attribute-path="PAINTING_TITLE"/> - </obj-entity> - <obj-entity name="TinyintTestEntity" className="org.apache.cayenne.testdo.numeric_types.TinyintTestEntity" dbEntityName="TINYINT_TEST"> - <obj-attribute name="tinyintCol" type="java.lang.Byte" db-attribute-path="TINYINT_COL"/> - </obj-entity> - <obj-entity name="UuidTestEntity" className="org.apache.cayenne.testdo.uuid.UuidTestEntity" dbEntityName="UUID_TEST"> - <obj-attribute name="uuid" type="java.util.UUID" db-attribute-path="UUID"/> - </obj-entity> - <db-relationship name="artistGroupArray" source="ARTGROUP" target="ARTIST_GROUP" toMany="true"> - <db-attribute-pair source="GROUP_ID" target="GROUP_ID"/> - </db-relationship> - <db-relationship name="toChildGroups" source="ARTGROUP" target="ARTGROUP" toMany="true"> - <db-attribute-pair source="GROUP_ID" target="PARENT_GROUP_ID"/> - </db-relationship> - <db-relationship name="toParentGroup" source="ARTGROUP" target="ARTGROUP" toMany="false"> - <db-attribute-pair source="PARENT_GROUP_ID" target="GROUP_ID"/> - </db-relationship> - <db-relationship name="artistExhibitArray" source="ARTIST" target="ARTIST_EXHIBIT" toDependentPK="true" toMany="true"> - <db-attribute-pair source="ARTIST_ID" target="ARTIST_ID"/> - </db-relationship> - <db-relationship name="artistGroupArray" source="ARTIST" target="ARTIST_GROUP" toMany="true"> - <db-attribute-pair source="ARTIST_ID" target="ARTIST_ID"/> - </db-relationship> - <db-relationship name="paintingArray" source="ARTIST" target="PAINTING" toMany="true"> - <db-attribute-pair source="ARTIST_ID" target="ARTIST_ID"/> - </db-relationship> - <db-relationship name="toArtist" source="ARTIST_EXHIBIT" target="ARTIST" toMany="false"> - <db-attribute-pair source="ARTIST_ID" target="ARTIST_ID"/> - </db-relationship> - <db-relationship name="toExhibit" source="ARTIST_EXHIBIT" target="EXHIBIT" toMany="false"> - <db-attribute-pair source="EXHIBIT_ID" target="EXHIBIT_ID"/> - </db-relationship> - <db-relationship name="toArtist" source="ARTIST_GROUP" target="ARTIST" toMany="false"> - <db-attribute-pair source="ARTIST_ID" target="ARTIST_ID"/> - </db-relationship> - <db-relationship name="toGroup" source="ARTIST_GROUP" target="ARTGROUP" toMany="false"> - <db-attribute-pair source="GROUP_ID" target="GROUP_ID"/> - </db-relationship> - <db-relationship name="binaryPKDetails" source="BINARY_PK_TEST1" target="BINARY_PK_TEST2" toMany="true"> - <db-attribute-pair source="BIN_ID" target="FK_ID"/> - </db-relationship> - <db-relationship name="toBinaryPKMaster" source="BINARY_PK_TEST2" target="BINARY_PK_TEST1" toMany="false"> - <db-attribute-pair source="FK_ID" target="BIN_ID"/> - </db-relationship> - <db-relationship name="toCharPK" source="CHAR_FK_TEST" target="CHAR_PK_TEST" toMany="false"> - <db-attribute-pair source="FK_COL" target="PK_COL"/> - </db-relationship> - <db-relationship name="charFKs" source="CHAR_PK_TEST" target="CHAR_FK_TEST" toMany="true"> - <db-attribute-pair source="PK_COL" target="FK_COL"/> - </db-relationship> - <db-relationship name="clob" source="CLOB_TEST" target="CLOB_TEST_RELATION" toMany="true"> - <db-attribute-pair source="CLOB_TEST_ID" target="ID_CLOB"/> - </db-relationship> - <db-relationship name="CLOB_REL" source="CLOB_TEST_RELATION" target="CLOB_TEST" toMany="false"> - <db-attribute-pair source="ID_CLOB" target="CLOB_TEST_ID"/> - </db-relationship> - <db-relationship name="toCompoundPk" source="COMPOUND_FK_TEST" target="COMPOUND_PK_TEST" toMany="false"> - <db-attribute-pair source="F_KEY1" target="KEY1"/> - <db-attribute-pair source="F_KEY2" target="KEY2"/> - </db-relationship> - <db-relationship name="compoundFkArray" source="COMPOUND_PK_TEST" target="COMPOUND_FK_TEST" toMany="true"> - <db-attribute-pair source="KEY1" target="F_KEY1"/> - <db-attribute-pair source="KEY2" target="F_KEY2"/> - </db-relationship> - <db-relationship name="artistExhibitArray" source="EXHIBIT" target="ARTIST_EXHIBIT" toDependentPK="true" toMany="true"> - <db-attribute-pair source="EXHIBIT_ID" target="EXHIBIT_ID"/> - </db-relationship> - <db-relationship name="toGallery" source="EXHIBIT" target="GALLERY" toMany="false"> - <db-attribute-pair source="GALLERY_ID" target="GALLERY_ID"/> - </db-relationship> - <db-relationship name="exhibitArray" source="GALLERY" target="EXHIBIT" toMany="true"> - <db-attribute-pair source="GALLERY_ID" target="GALLERY_ID"/> - </db-relationship> - <db-relationship name="paintingArray" source="GALLERY" target="PAINTING" toMany="true"> - <db-attribute-pair source="GALLERY_ID" target="GALLERY_ID"/> - </db-relationship> - <db-relationship name="toMaster" source="GENERATED_COLUMN_COMP_KEY" target="GENERATED_COLUMN_COMP_M" toMany="false"> - <db-attribute-pair source="PROPAGATED_PK" target="ID"/> - </db-relationship> - <db-relationship name="toDetail" source="GENERATED_COLUMN_COMP_M" target="GENERATED_COLUMN_COMP_KEY" toDependentPK="true" toMany="true"> - <db-attribute-pair source="ID" target="PROPAGATED_PK"/> - </db-relationship> - <db-relationship name="toMaster" source="GENERATED_COLUMN_DEP" target="GENERATED_COLUMN_TEST" toMany="false"> - <db-attribute-pair source="GENERATED_COLUMN_FK" target="GENERATED_COLUMN"/> - </db-relationship> - <db-relationship name="toDep" source="GENERATED_COLUMN_TEST" target="GENERATED_COLUMN_DEP" toDependentPK="true" toMany="false"> - <db-attribute-pair source="GENERATED_COLUMN" target="GENERATED_COLUMN_FK"/> - </db-relationship> - <db-relationship name="join" source="GENERATED_F1" target="GENERATED_JOIN" toMany="true"> - <db-attribute-pair source="ID" target="ID1"/> - </db-relationship> - <db-relationship name="join" source="GENERATED_F2" target="GENERATED_JOIN" toMany="true"> - <db-attribute-pair source="ID" target="ID2"/> - </db-relationship> - <db-relationship name="f1" source="GENERATED_JOIN" target="GENERATED_F1" toMany="false"> - <db-attribute-pair source="ID1" target="ID"/> - </db-relationship> - <db-relationship name="f2" source="GENERATED_JOIN" target="GENERATED_F2" toMany="false"> - <db-attribute-pair source="ID2" target="ID"/> - </db-relationship> - <db-relationship name="toMeaningfulPK" source="MEANINGFUL_PK_DEP" target="MEANINGFUL_PK_TEST1" toMany="false"> - <db-attribute-pair source="MASTER_PK" target="PK_ATTRIBUTE"/> - </db-relationship> - <db-relationship name="meaningfulPKDepArray" source="MEANINGFUL_PK_TEST1" target="MEANINGFUL_PK_DEP" toMany="true"> - <db-attribute-pair source="PK_ATTRIBUTE" target="MASTER_PK"/> - </db-relationship> - <db-relationship name="details" source="MIXED_PERSISTENCE_STRATEGY" target="MIXED_PERSISTENCE_STRATEGY2" toMany="true"> - <db-attribute-pair source="ID" target="MASTER_ID"/> - </db-relationship> - <db-relationship name="master" source="MIXED_PERSISTENCE_STRATEGY2" target="MIXED_PERSISTENCE_STRATEGY" toMany="false"> - <db-attribute-pair source="MASTER_ID" target="ID"/> - </db-relationship> - <db-relationship name="toArtist" source="PAINTING" target="ARTIST" toMany="false"> - <db-attribute-pair source="ARTIST_ID" target="ARTIST_ID"/> - </db-relationship> - <db-relationship name="toGallery" source="PAINTING" target="GALLERY" toMany="false"> - <db-attribute-pair source="GALLERY_ID" target="GALLERY_ID"/> - </db-relationship> - <db-relationship name="toPaintingInfo" source="PAINTING" target="PAINTING_INFO" toDependentPK="true" toMany="false"> - <db-attribute-pair source="PAINTING_ID" target="PAINTING_ID"/> - </db-relationship> - <db-relationship name="toArtist" source="PAINTING1" target="ARTIST" toMany="false"> - <db-attribute-pair source="ARTIST_ID" target="ARTIST_ID"/> - </db-relationship> - <db-relationship name="painting" source="PAINTING_INFO" target="PAINTING" toMany="false"> - <db-attribute-pair source="PAINTING_ID" target="PAINTING_ID"/> - </db-relationship> - <obj-relationship name="artistArray" source="ArtGroup" target="Artist" deleteRule="Nullify" db-relationship-path="artistGroupArray.toArtist"/> - <obj-relationship name="childGroupsArray" source="ArtGroup" target="ArtGroup" deleteRule="Nullify" db-relationship-path="toChildGroups"/> - <obj-relationship name="toParentGroup" source="ArtGroup" target="ArtGroup" deleteRule="Nullify" db-relationship-path="toParentGroup"/> - <obj-relationship name="artistExhibitArray" source="Artist" target="ArtistExhibit" deleteRule="Cascade" db-relationship-path="artistExhibitArray"/> - <obj-relationship name="groupArray" source="Artist" target="ArtGroup" deleteRule="Cascade" db-relationship-path="artistGroupArray.toGroup"/> - <obj-relationship name="paintingArray" source="Artist" target="Painting" deleteRule="Cascade" db-relationship-path="paintingArray"/> - <obj-relationship name="toArtist" source="ArtistExhibit" target="Artist" deleteRule="Nullify" db-relationship-path="toArtist"/> - <obj-relationship name="toExhibit" source="ArtistExhibit" target="Exhibit" deleteRule="Nullify" db-relationship-path="toExhibit"/> - <obj-relationship name="binaryPKDetails" source="BinaryPKTest1" target="BinaryPKTest2" db-relationship-path="binaryPKDetails"/> - <obj-relationship name="toBinaryPKMaster" source="BinaryPKTest2" target="BinaryPKTest1" db-relationship-path="toBinaryPKMaster"/> - <obj-relationship name="toCharPK" source="CharFkTestEntity" target="CharPkTestEntity" db-relationship-path="toCharPK"/> - <obj-relationship name="charFKs" source="CharPkTestEntity" target="CharFkTestEntity" db-relationship-path="charFKs"/> - <obj-relationship name="clobValue" source="ClobTestEntity" target="ClobTestRelation" db-relationship-path="clob"/> - <obj-relationship name="clobId" source="ClobTestRelation" target="ClobTestEntity" db-relationship-path="CLOB_REL"/> - <obj-relationship name="toCompoundPk" source="CompoundFkTestEntity" target="CompoundPkTestEntity" db-relationship-path="toCompoundPk"/> - <obj-relationship name="toArtist" source="CompoundPainting" target="Artist" deleteRule="Nullify" db-relationship-path="toArtist"/> - <obj-relationship name="toGallery" source="CompoundPainting" target="Gallery" deleteRule="Nullify" db-relationship-path="toGallery"/> - <obj-relationship name="toPaintingInfo" source="CompoundPainting" target="PaintingInfo" deleteRule="Cascade" db-relationship-path="toPaintingInfo"/> - <obj-relationship name="compoundFkArray" source="CompoundPkTestEntity" target="CompoundFkTestEntity" db-relationship-path="compoundFkArray"/> - <obj-relationship name="artistExhibitArray" source="Exhibit" target="ArtistExhibit" deleteRule="Cascade" db-relationship-path="artistExhibitArray"/> - <obj-relationship name="toGallery" source="Exhibit" target="Gallery" deleteRule="Nullify" db-relationship-path="toGallery"/> - <obj-relationship name="exhibitArray" source="Gallery" target="Exhibit" deleteRule="Cascade" db-relationship-path="exhibitArray"/> - <obj-relationship name="paintingArray" source="Gallery" target="Painting" deleteRule="Deny" db-relationship-path="paintingArray"/> - <obj-relationship name="toMaster" source="GeneratedColumnCompKey" target="GeneratedColumnCompMaster" db-relationship-path="toMaster"/> - <obj-relationship name="toDetail" source="GeneratedColumnCompMaster" target="GeneratedColumnCompKey" db-relationship-path="toDetail"/> - <obj-relationship name="toMaster" source="GeneratedColumnDep" target="GeneratedColumnTestEntity" db-relationship-path="toMaster"/> - <obj-relationship name="toDep" source="GeneratedColumnTestEntity" target="GeneratedColumnDep" db-relationship-path="toDep"/> - <obj-relationship name="f2" source="GeneratedF1" target="GeneratedF2" deleteRule="Nullify" db-relationship-path="join.f2"/> - <obj-relationship name="f1" source="GeneratedF2" target="GeneratedF1" deleteRule="Nullify" db-relationship-path="join.f1"/> - <obj-relationship name="toMeaningfulPK" source="MeaningfulPKDep" target="MeaningfulPKTest1" db-relationship-path="toMeaningfulPK"/> - <obj-relationship name="meaningfulPKDepArray" source="MeaningfulPKTest1" target="MeaningfulPKDep" db-relationship-path="meaningfulPKDepArray"/> - <obj-relationship name="details" source="MixedPersistenceStrategy" target="MixedPersistenceStrategy2" db-relationship-path="details"/> - <obj-relationship name="master" source="MixedPersistenceStrategy2" target="MixedPersistenceStrategy" db-relationship-path="master"/> - <obj-relationship name="toArtist" source="Painting" target="Artist" deleteRule="Nullify" db-relationship-path="toArtist"/> - <obj-relationship name="toGallery" source="Painting" target="Gallery" deleteRule="Nullify" db-relationship-path="toGallery"/> - <obj-relationship name="toPaintingInfo" source="Painting" target="PaintingInfo" deleteRule="Cascade" db-relationship-path="toPaintingInfo"/> - <obj-relationship name="toArtist" source="Painting1" target="Artist" deleteRule="Nullify" db-relationship-path="toArtist"/> - <obj-relationship name="painting" source="PaintingInfo" target="Painting" deleteRule="Nullify" db-relationship-path="painting"/> - <obj-relationship name="paintingArray" source="ROArtist" target="Painting" deleteRule="Deny" db-relationship-path="paintingArray"/> - <obj-relationship name="toArtist" source="ROPainting" target="Artist" deleteRule="Nullify" db-relationship-path="toArtist"/> - <query name="EjbqlQueryTest" type="EJBQLQuery"> - <property name="cayenne.GenericSelectQuery.fetchingDataRows" value="true"/> - <property name="cayenne.GenericSelectQuery.cacheStrategy" value="SHARED_CACHE"/> - <ejbql><![CDATA[select a from Artist a]]></ejbql> - </query> - <query name="NonSelectingQuery" type="SQLTemplate" root="data-map" root-name="testmap"> - <property name="cayenne.SQLTemplate.columnNameCapitalization" value="UPPER"/> - <sql><![CDATA[INSERT INTO PAINTING (PAINTING_ID, PAINTING_TITLE, ESTIMATED_PRICE) -VALUES (512, 'No Painting Like This', 12.5)]]></sql> - <sql adapter-class="org.apache.cayenne.dba.db2.DB2Adapter"><![CDATA[INSERT INTO PAINTING (PAINTING_ID, PAINTING_TITLE, ESTIMATED_PRICE) VALUES (512, 'No Painting Like This', 12.5)]]></sql> - </query> - <query name="ObjectQuery" type="SelectQuery" root="obj-entity" root-name="Painting"> - <qualifier><![CDATA[toArtist = $artist]]></qualifier> - <ordering><![CDATA[paintingTitle]]></ordering> - </query> - <query name="ParameterizedNonSelectingQuery" type="SQLTemplate" root="data-map" root-name="testmap"> - <sql><![CDATA[INSERT INTO PAINTING (PAINTING_ID, PAINTING_TITLE, ESTIMATED_PRICE) -VALUES (#bind($id), #bind($title), #bind($price))]]></sql> - <sql adapter-class="org.apache.cayenne.dba.db2.DB2Adapter"><![CDATA[INSERT INTO PAINTING (PAINTING_ID, PAINTING_TITLE, ESTIMATED_PRICE) values (#bind($id), #bind($title), #bind($price))]]></sql> - </query> - <query name="ParameterizedQueryWithLocalCache" type="SelectQuery" root="obj-entity" root-name="Artist"> - <property name="cayenne.GenericSelectQuery.cacheStrategy" value="LOCAL_CACHE"/> - <qualifier><![CDATA[artistName like $name]]></qualifier> - </query> - <query name="ParameterizedQueryWithSharedCache" type="SelectQuery" root="obj-entity" root-name="Artist"> - <property name="cayenne.GenericSelectQuery.cacheStrategy" value="SHARED_CACHE"/> - <qualifier><![CDATA[artistName like $name]]></qualifier> - </query> - <query name="ProcedureQuery" type="ProcedureQuery" root="procedure" root-name="cayenne_tst_select_proc" result-entity="Artist"> - </query> - <query name="QueryWithLocalCache" type="SelectQuery" root="obj-entity" root-name="Artist"> - <property name="cayenne.GenericSelectQuery.cacheStrategy" value="LOCAL_CACHE"/> - </query> - <query name="QueryWithOrdering" type="SelectQuery" root="obj-entity" root-name="Artist"> - <ordering descending="true" ignore-case="true"><![CDATA[artistName]]></ordering> - <ordering><![CDATA[dateOfBirth]]></ordering> - </query> - <query name="QueryWithPrefetch" type="SelectQuery" root="obj-entity" root-name="Gallery"> - <prefetch>paintingArray</prefetch> - </query> - <query name="QueryWithQualifier" type="SelectQuery" root="obj-entity" root-name="Artist"> - <qualifier><![CDATA[artistName = $param1]]></qualifier> - </query> - <query name="QueryWithSharedCache" type="SelectQuery" root="obj-entity" root-name="Artist"> - <property name="cayenne.GenericSelectQuery.cacheStrategy" value="SHARED_CACHE"/> - </query> - <query name="SelectDateTest" type="SQLTemplate" root="data-map" root-name="testmap"> - <property name="cayenne.GenericSelectQuery.fetchingDataRows" value="true"/> - <property name="cayenne.SQLTemplate.columnNameCapitalization" value="UPPER"/> - <sql><![CDATA[SELECT * FROM DATE_TEST]]></sql> - </query> - <query name="SelectReturnTypesMap1" type="SQLTemplate" root="data-map" root-name="testmap"> - <property name="cayenne.GenericSelectQuery.fetchingDataRows" value="true"/> - <property name="cayenne.SQLTemplate.columnNameCapitalization" value="UPPER"/> - <sql><![CDATA[SELECT * FROM TYPES_MAPPING_TEST1]]></sql> - </query> - <query name="SelectReturnTypesMap2" type="SQLTemplate" root="data-map" root-name="testmap"> - <property name="cayenne.GenericSelectQuery.fetchingDataRows" value="true"/> - <property name="cayenne.SQLTemplate.columnNameCapitalization" value="UPPER"/> - <sql><![CDATA[SELECT * FROM TYPES_MAPPING_TEST2]]></sql> - </query> - <query name="SelectTestLower" type="SQLTemplate" root="data-map" root-name="testmap"> - <property name="cayenne.GenericSelectQuery.fetchingDataRows" value="true"/> - <property name="cayenne.SQLTemplate.columnNameCapitalization" value="LOWER"/> - <sql><![CDATA[select * from ARTIST]]></sql> - </query> - <query name="SelectTestUpper" type="SQLTemplate" root="data-map" root-name="testmap"> - <property name="cayenne.GenericSelectQuery.fetchingDataRows" value="true"/> - <property name="cayenne.SQLTemplate.columnNameCapitalization" value="UPPER"/> - <sql><![CDATA[select * from ARTIST]]></sql> - </query> -</data-map>
http://git-wip-us.apache.org/repos/asf/cayenne/blob/6378c41f/itests/pom.xml ---------------------------------------------------------------------- diff --git a/itests/pom.xml b/itests/pom.xml deleted file mode 100644 index eea0029..0000000 --- a/itests/pom.xml +++ /dev/null @@ -1,57 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. ---> - -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - - <modelVersion>4.0.0</modelVersion> - - <parent> - <groupId>org.apache.cayenne</groupId> - <artifactId>cayenne-parent</artifactId> - <version>4.1.M2-SNAPSHOT</version> - </parent> - - <groupId>org.apache.cayenne.itests</groupId> - <artifactId>cayenne-itests-parent</artifactId> - <name>cayenne-itests-parent: Integration Tests Parent</name> - <packaging>pom</packaging> - - <modules> - <module>cayenne-tools-itest</module> - </modules> - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-deploy-plugin</artifactId> - <configuration> - <skip>true</skip> - </configuration> - </plugin> - <!-- This ensures LICENSE and NOTICE inclusion in all jars --> - <plugin> - <artifactId>maven-remote-resources-plugin</artifactId> - <configuration> - <skip>true</skip> - </configuration> - </plugin> - </plugins> - </build> -</project> http://git-wip-us.apache.org/repos/asf/cayenne/blob/6378c41f/maven-plugins/cayenne-tools-itest/pom.xml ---------------------------------------------------------------------- diff --git a/maven-plugins/cayenne-tools-itest/pom.xml b/maven-plugins/cayenne-tools-itest/pom.xml new file mode 100644 index 0000000..f173358 --- /dev/null +++ b/maven-plugins/cayenne-tools-itest/pom.xml @@ -0,0 +1,178 @@ +<?xml version="1.0" encoding="UTF-8"?> + <!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to you under the Apache License, Version + 2.0 (the "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 Unless required by + applicable law or agreed to in writing, software distributed under the + License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR + CONDITIONS OF ANY KIND, either express or implied. See the License for + the specific language governing permissions and limitations under the + License. + --> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + + <modelVersion>4.0.0</modelVersion> + + <parent> + <artifactId>cayenne-maven-plugins-parent</artifactId> + <groupId>org.apache.cayenne.plugins</groupId> + <version>4.1.M2-SNAPSHOT</version> + </parent> + + <description>Integration Tests - Cayenne Tools</description> + <artifactId>cayenne-tools-itest</artifactId> + <name>cayenne-tools-itest: Tools integration tests</name> + <packaging>jar</packaging> + + <properties> + <testResourceDir>${project.build.testSourceDirectory}/../resources</testResourceDir> + <generatedClassesDir>${project.build.directory}/generated-tests</generatedClassesDir> + </properties> + + <dependencies> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <scope>compile</scope> + </dependency> + + <dependency> + <groupId>org.apache.cayenne.build-tools</groupId> + <artifactId>cayenne-test-utilities</artifactId> + <version>${project.version}</version> + <scope>compile</scope> + </dependency> + + <dependency> + <groupId>org.apache.cayenne</groupId> + <artifactId>cayenne-di</artifactId> + <version>${project.version}</version> + </dependency> + + <dependency> + <groupId>org.apache.cayenne</groupId> + <artifactId>cayenne-server</artifactId> + <version>${project.version}</version> + </dependency> + + </dependencies> + + <build> + <plugins> + + <plugin> + <groupId>org.apache.cayenne.plugins</groupId> + <artifactId>cayenne-maven-plugin</artifactId> + <version>${project.version}</version> + <executions> + <execution> + <id>single-classes-cust-template</id> + <goals> + <goal>cgen</goal> + </goals> + <configuration> + <map>${testResourceDir}/testmap.map.xml</map> + <destDir>${generatedClassesDir}/single-classes-cust-template</destDir> + <makePairs>false</makePairs> + <usePkgPath>true</usePkgPath> + <template>${testResourceDir}/org/apache/cayenne/tools/velotemplate.vm</template> + </configuration> + </execution> + <execution> + <id>single-classes1</id> + <goals> + <goal>cgen</goal> + </goals> + <configuration> + <map>${testResourceDir}/testmap.map.xml</map> + <destDir>${generatedClassesDir}/single-classes1</destDir> + <makePairs>false</makePairs> + <usePkgPath>true</usePkgPath> + </configuration> + </execution> + <execution> + <id>single-classes2</id> + <goals> + <goal>cgen</goal> + </goals> + <configuration> + <map>${testResourceDir}/testmap.map.xml</map> + <destDir>${generatedClassesDir}/single-classes2</destDir> + <makePairs>false</makePairs> + <usePkgPath>false</usePkgPath> + </configuration> + </execution> + <execution> + <id>pairs1</id> + <goals> + <goal>cgen</goal> + </goals> + <configuration> + <map>${testResourceDir}/testmap.map.xml</map> + <destDir>${generatedClassesDir}/pairs1</destDir> + <makePairs>true</makePairs> + <usePkgPath>true</usePkgPath> + </configuration> + </execution> + <execution> + <id>pairs2</id> + <goals> + <goal>cgen</goal> + </goals> + <configuration> + <map>${testResourceDir}/testmap.map.xml</map> + <destDir>${generatedClassesDir}/pairs2</destDir> + <makePairs>true</makePairs> + <usePkgPath>false</usePkgPath> + </configuration> + </execution> + <execution> + <id>pairs3</id> + <goals> + <goal>cgen</goal> + </goals> + <configuration> + <map>${testResourceDir}/testmap.map.xml</map> + <destDir>${generatedClassesDir}/pairs3</destDir> + <makePairs>true</makePairs> + <usePkgPath>true</usePkgPath> + <superPkg>org.apache.cayenne.testdo.testmap.superart</superPkg> + </configuration> + </execution> + <execution> + <id>pairs1-client</id> + <goals> + <goal>cgen</goal> + </goals> + <configuration> + <map>${testResourceDir}/testmap-client.map.xml</map> + <destDir>${generatedClassesDir}/pairs1-client</destDir> + <client>true</client> + <makePairs>true</makePairs> + <usePkgPath>true</usePkgPath> + <superPkg>org.apache.cayenne.testdo.testmap.client.superart</superPkg> + </configuration> + </execution> + <execution> + <id>pairs-embeddables3</id> + <goals> + <goal>cgen</goal> + </goals> + <configuration> + <map>${testResourceDir}/embeddable.map.xml</map> + <destDir>${generatedClassesDir}/pairs-embeddables3</destDir> + <makePairs>true</makePairs> + <usePkgPath>true</usePkgPath> + <superPkg>org.apache.cayenne.testdo.embeddable.auto</superPkg> + </configuration> + </execution> + </executions> + </plugin> + </plugins> + </build> +</project> http://git-wip-us.apache.org/repos/asf/cayenne/blob/6378c41f/maven-plugins/cayenne-tools-itest/src/test/java/org/apache/cayenne/tools/CayenneGeneratorIntegrationTest.java ---------------------------------------------------------------------- diff --git a/maven-plugins/cayenne-tools-itest/src/test/java/org/apache/cayenne/tools/CayenneGeneratorIntegrationTest.java b/maven-plugins/cayenne-tools-itest/src/test/java/org/apache/cayenne/tools/CayenneGeneratorIntegrationTest.java new file mode 100644 index 0000000..2142389 --- /dev/null +++ b/maven-plugins/cayenne-tools-itest/src/test/java/org/apache/cayenne/tools/CayenneGeneratorIntegrationTest.java @@ -0,0 +1,186 @@ +/***************************************************************** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + ****************************************************************/ +package org.apache.cayenne.tools; + +import org.junit.Test; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileInputStream; +import java.io.InputStreamReader; +import java.util.regex.Pattern; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + +public class CayenneGeneratorIntegrationTest { + + private File testDir; + + private void startTest(String testName) { + testDir = new File("target/generated-tests", testName); + assertTrue(testDir.isDirectory()); + } + + /** + * Test single classes with a non-standard template. + */ + @Test + public void testSingleClassesCustTemplate() throws Exception { + startTest("single-classes-cust-template"); + + assertContents("org/apache/cayenne/testdo/testmap/Artist.java", "Artist", "org.apache.cayenne.testdo.testmap", + "CayenneDataObject"); + assertExists("org/apache/cayenne/testdo/testmap/_Artist.java"); + } + + /** Test single classes generation including full package path. */ + @Test + public void testSingleClasses1() throws Exception { + startTest("single-classes1"); + + assertContents("org/apache/cayenne/testdo/testmap/Artist.java", "Artist", "org.apache.cayenne.testdo.testmap", + "BaseDataObject"); + assertExists("org/apache/cayenne/testdo/testmap/_Artist.java"); + } + + /** Test single classes generation ignoring package path. */ + @Test + public void testSingleClasses2() throws Exception { + startTest("single-classes2"); + + assertContents("Artist.java", "Artist", "org.apache.cayenne.testdo.testmap", "BaseDataObject"); + assertExists("_Artist.java"); + assertExists("org/apache/cayenne/testdo/testmap/Artist.java"); + } + + /** Test pairs generation including full package path. */ + @Test + public void testPairs1() throws Exception { + startTest("pairs1"); + + assertContents("org/apache/cayenne/testdo/testmap/Artist.java", "Artist", "org.apache.cayenne.testdo.testmap", + "_Artist"); + assertContents("org/apache/cayenne/testdo/testmap/auto/_Artist.java", "_Artist", + "org.apache.cayenne.testdo.testmap.auto", "BaseDataObject"); + } + + /** Test pairs generation in the same directory. */ + @Test + public void testPairs2() throws Exception { + startTest("pairs2"); + + assertContents("Artist.java", "Artist", "org.apache.cayenne.testdo.testmap", "_Artist"); + assertContents("_Artist.java", "_Artist", "org.apache.cayenne.testdo.testmap", "BaseDataObject"); + assertExists("org/apache/cayenne/testdo/testmap/Artist.java"); + } + + /** + * Test pairs generation including full package path with superclass and + * subclass in different packages. + */ + @Test + public void testPairs3() throws Exception { + startTest("pairs3"); + + assertContents("org/apache/cayenne/testdo/testmap/Artist.java", "Artist", "org.apache.cayenne.testdo.testmap", + "_Artist"); + assertContents("org/apache/cayenne/testdo/testmap/superart/_Artist.java", "_Artist", + "org.apache.cayenne.testdo.testmap.superart", "BaseDataObject"); + } + + @Test + public void testPairs1_client() throws Exception { + startTest("pairs1-client"); + + assertContents("org/apache/cayenne/testdo/testmap/client/Artist.java", "Artist", "org.apache.cayenne.testdo.testmap.client", + "_Artist"); + assertContents("org/apache/cayenne/testdo/testmap/client/superart/_Artist.java", "_Artist", + "org.apache.cayenne.testdo.testmap.client.superart", "PersistentObject"); + } + + @Test + public void testPairsEmbeddable3() throws Exception { + startTest("pairs-embeddables3"); + + assertContents("org/apache/cayenne/testdo/embeddable/EmbedEntity1.java", "EmbedEntity1", + "org.apache.cayenne.testdo.embeddable", "_EmbedEntity1"); + assertContents("org/apache/cayenne/testdo/embeddable/auto/_EmbedEntity1.java", "_EmbedEntity1", + "org.apache.cayenne.testdo.embeddable.auto", "BaseDataObject"); + assertContents("org/apache/cayenne/testdo/embeddable/Embeddable1.java", "Embeddable1", + "org.apache.cayenne.testdo.embeddable", "_Embeddable1"); + assertContents("org/apache/cayenne/testdo/embeddable/auto/_Embeddable1.java", "_Embeddable1", + "org.apache.cayenne.testdo.embeddable.auto", "Object"); + } + + private String convertPath(String unixPath) { + return unixPath.replace('/', File.separatorChar); + } + + private void assertContents(String filePath, String className, String packageName, String extendsName) + throws Exception { + File f = new File(testDir, convertPath(filePath)); + assertTrue("Not a file: " + f.getAbsolutePath(), f.isFile()); + assertContents(f, className, packageName, extendsName); + } + + private void assertExists(String filePath) { + File f = new File(testDir, convertPath(filePath)); + assertFalse(f.exists()); + } + + private void assertContents(File f, String className, String packageName, String extendsName) throws Exception { + + try(BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(f)))) { + assertPackage(in, packageName); + assertClass(in, className, extendsName); + } + } + + private void assertPackage(BufferedReader in, String packageName) throws Exception { + + String s = null; + while ((s = in.readLine()) != null) { + if (Pattern.matches("^package\\s+([^\\s;]+);", s)) { + assertTrue(s.indexOf(packageName) > 0); + return; + } + } + + fail("No package declaration found."); + } + + private void assertClass(BufferedReader in, String className, String extendsName) throws Exception { + + Pattern classPattern = Pattern.compile("^public\\s+"); + + String s = null; + while ((s = in.readLine()) != null) { + if (classPattern.matcher(s).find()) { + assertTrue(s.indexOf(className) > 0); + assertTrue(s.indexOf(extendsName) > 0); + assertTrue(s.indexOf(className) < s.indexOf(extendsName)); + return; + } + } + + fail("No class declaration found."); + } +} http://git-wip-us.apache.org/repos/asf/cayenne/blob/6378c41f/maven-plugins/cayenne-tools-itest/src/test/resources/cayenne-client.xml ---------------------------------------------------------------------- diff --git a/maven-plugins/cayenne-tools-itest/src/test/resources/cayenne-client.xml b/maven-plugins/cayenne-tools-itest/src/test/resources/cayenne-client.xml new file mode 100644 index 0000000..355ac28 --- /dev/null +++ b/maven-plugins/cayenne-tools-itest/src/test/resources/cayenne-client.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="utf-8"?> +<domain xmlns="http://cayenne.apache.org/schema/10/domain" + project-version="10"> + <map name="testmap-client"/> +</domain> http://git-wip-us.apache.org/repos/asf/cayenne/blob/6378c41f/maven-plugins/cayenne-tools-itest/src/test/resources/embeddable.map.xml ---------------------------------------------------------------------- diff --git a/maven-plugins/cayenne-tools-itest/src/test/resources/embeddable.map.xml b/maven-plugins/cayenne-tools-itest/src/test/resources/embeddable.map.xml new file mode 100644 index 0000000..10c4db6 --- /dev/null +++ b/maven-plugins/cayenne-tools-itest/src/test/resources/embeddable.map.xml @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="utf-8"?> +<data-map xmlns="http://cayenne.apache.org/schema/10/modelMap" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://cayenne.apache.org/schema/10/modelMap http://cayenne.apache.org/schema/10/modelMap.xsd" + project-version="10"> + <property name="defaultPackage" value="org.apache.cayenne.testdo.embeddable"/> + <embeddable className="org.apache.cayenne.testdo.embeddable.Embeddable1"> + <embeddable-attribute name="embedded10" type="java.lang.String" db-attribute-name="EMBEDDED10"/> + <embeddable-attribute name="embedded20" type="java.lang.String" db-attribute-name="EMBEDDED20"/> + </embeddable> + <db-entity name="EMBED_ENTITY1"> + <db-attribute name="EMBEDDED10" type="VARCHAR" length="100"/> + <db-attribute name="EMBEDDED20" type="VARCHAR" length="100"/> + <db-attribute name="EMBEDDED30" type="VARCHAR" length="100"/> + <db-attribute name="EMBEDDED40" type="VARCHAR" length="100"/> + <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/> + <db-attribute name="NAME" type="VARCHAR" length="100"/> + </db-entity> + <obj-entity name="EmbedEntity1" className="org.apache.cayenne.testdo.embeddable.EmbedEntity1" dbEntityName="EMBED_ENTITY1"> + <embedded-attribute name="embedded1" type="org.apache.cayenne.testdo.embeddable.Embeddable1"/> + <embedded-attribute name="embedded2" type="org.apache.cayenne.testdo.embeddable.Embeddable1"> + <embeddable-attribute-override name="embedded10" db-attribute-path="EMBEDDED30"/> + <embeddable-attribute-override name="embedded20" db-attribute-path="EMBEDDED40"/> + </embedded-attribute> + <obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/> + </obj-entity> +</data-map> http://git-wip-us.apache.org/repos/asf/cayenne/blob/6378c41f/maven-plugins/cayenne-tools-itest/src/test/resources/org/apache/cayenne/tools/cgen-dependent.map.xml ---------------------------------------------------------------------- diff --git a/maven-plugins/cayenne-tools-itest/src/test/resources/org/apache/cayenne/tools/cgen-dependent.map.xml b/maven-plugins/cayenne-tools-itest/src/test/resources/org/apache/cayenne/tools/cgen-dependent.map.xml new file mode 100644 index 0000000..b72f320 --- /dev/null +++ b/maven-plugins/cayenne-tools-itest/src/test/resources/org/apache/cayenne/tools/cgen-dependent.map.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8"?> +<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd" + project-version="1.1"> + <property name="defaultPackage" value="org.apache.cayenne.testdo.cgen2"/> + <db-entity name="MYARTGROUP"> + <db-attribute name="MY_GROUP_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/> + <db-attribute name="CUSTOM" type="VARCHAR" isMandatory="true" length="100"/> + <db-attribute name="MY_PARENT_GROUP_ID" type="INTEGER"/> + </db-entity> + <obj-entity name="MyArtGroup" className="org.apache.cayenne.testdo.cgen2.MyArtGroup" dbEntityName="MYARTGROUP"> + <obj-attribute name="custom" type="java.lang.String" db-attribute-path="CUSTOM"/> + </obj-entity> + <db-relationship name="toParentArtGroup" source="MYARTGROUP" target="ARTGROUP" toMany="false"> + <db-attribute-pair source="MY_PARENT_GROUP_ID" target="GROUP_ID"/> + </db-relationship> + <obj-relationship name="toParentGroup" source="MyArtGroup" target="ArtGroup" deleteRule="Nullify" db-relationship-path="toParentArtGroup"/> +</data-map> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/cayenne/blob/6378c41f/maven-plugins/cayenne-tools-itest/src/test/resources/org/apache/cayenne/tools/cgen.map.xml ---------------------------------------------------------------------- diff --git a/maven-plugins/cayenne-tools-itest/src/test/resources/org/apache/cayenne/tools/cgen.map.xml b/maven-plugins/cayenne-tools-itest/src/test/resources/org/apache/cayenne/tools/cgen.map.xml new file mode 100644 index 0000000..56a2d92 --- /dev/null +++ b/maven-plugins/cayenne-tools-itest/src/test/resources/org/apache/cayenne/tools/cgen.map.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="utf-8"?> +<data-map xmlns="http://cayenne.apache.org/schema/9/modelMap" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://cayenne.apache.org/schema/9/modelMap http://cayenne.apache.org/schema/9/modelMap.xsd" + project-version="9"> + + <db-entity name="ARTGROUP"> + <db-attribute name="GROUP_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/> + <db-attribute name="NAME" type="VARCHAR" isMandatory="true" length="100"/> + <db-attribute name="PARENT_GROUP_ID" type="INTEGER"/> + </db-entity> + <obj-entity name="ArtGroup" className="org.apache.cayenne.testdo.testmap.ArtGroup" dbEntityName="ARTGROUP"> + <obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/> + </obj-entity> +</data-map> http://git-wip-us.apache.org/repos/asf/cayenne/blob/6378c41f/maven-plugins/cayenne-tools-itest/src/test/resources/org/apache/cayenne/tools/velotemplate.vm ---------------------------------------------------------------------- diff --git a/maven-plugins/cayenne-tools-itest/src/test/resources/org/apache/cayenne/tools/velotemplate.vm b/maven-plugins/cayenne-tools-itest/src/test/resources/org/apache/cayenne/tools/velotemplate.vm new file mode 100644 index 0000000..1ca078c --- /dev/null +++ b/maven-plugins/cayenne-tools-itest/src/test/resources/org/apache/cayenne/tools/velotemplate.vm @@ -0,0 +1,13 @@ +## Test Velocity template +${importUtils.setPackage($subPackageName)}## +${importUtils.generate()} + +import java.util.List; +import org.apache.cayenne.*; + +/** Class ${classGen.superPrefix}${classGen.className} was generated by Cayenne. + * It is probably a good idea to avoid changing this class manually, + * since it may be overwritten next time code is regenerated. + * If you need to make any customizations, please use subclass. + */ +public class ${subClassName} extends CayenneDataObject {