You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jdo-dev@db.apache.org by Michael Bouschen <mb...@spree.de> on 2006/03/04 21:17:58 UTC

Re: svn commit: r382920 - in /db/jdo/trunk/tck20/src: conf/configurations.list orm/applicationidentity/org/apache/jdo/tck/pc/company/package-standard.orm orm/datastoreidentity/org/apache/jdo/tck/pc/company/package-standard.orm

Hi,

just FYI: after updating my workspace with this change adding 
<interface> metadata to the company orm file most of the tests result in 
a JDOException. The exception disappears when reverting the changes in 
company/package-standard.orm. Maybe the JPOX orm metadata parser does 
not yet accept the <interface> definition.

Here is the exception:

JDOUserException: One or more instances could not be made persistent
  at 
org.jpox.AbstractPersistenceManager.makePersistentAll(AbstractPersistenceManager.java:1217)
  ...
with a nested exception:
JDOException: Cannot read the JDO Meta-Data file "<input stream> 
java.lang.ClassCastException"
  at 
org.jpox.metadata.MetaDataParser.parseMetaDataStream(MetaDataParser.java:174)
  ...
with a nested exception:
java.lang.ClassCastException
  at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:691)
  ...

Regards Michael

>Author: clr
>Date: Fri Mar  3 12:08:34 2006
>New Revision: 382920
>
>URL: http://svn.apache.org/viewcvs?rev=382920&view=rev
>Log:
>JDO-296 Added new test for persistent interfaces with new mapping
>
>Modified:
>    db/jdo/trunk/tck20/src/conf/configurations.list
>    db/jdo/trunk/tck20/src/orm/applicationidentity/org/apache/jdo/tck/pc/company/package-standard.orm
>    db/jdo/trunk/tck20/src/orm/datastoreidentity/org/apache/jdo/tck/pc/company/package-standard.orm
>
>Modified: db/jdo/trunk/tck20/src/conf/configurations.list
>URL: http://svn.apache.org/viewcvs/db/jdo/trunk/tck20/src/conf/configurations.list?rev=382920&r1=382919&r2=382920&view=diff
>==============================================================================
>--- db/jdo/trunk/tck20/src/conf/configurations.list (original)
>+++ db/jdo/trunk/tck20/src/conf/configurations.list Fri Mar  3 12:08:34 2006
>@@ -17,6 +17,7 @@
>                  companyM-MRelationships.conf \
>                  companyAllRelationships.conf \
>                  companyPMClass.conf \
>+                 companyPMInterface.conf \
>                  inheritance1.conf \
>                  inheritance2.conf \
>                  inheritance3.conf \
>
>Modified: db/jdo/trunk/tck20/src/orm/applicationidentity/org/apache/jdo/tck/pc/company/package-standard.orm
>URL: http://svn.apache.org/viewcvs/db/jdo/trunk/tck20/src/orm/applicationidentity/org/apache/jdo/tck/pc/company/package-standard.orm?rev=382920&r1=382919&r2=382920&view=diff
>==============================================================================
>--- db/jdo/trunk/tck20/src/orm/applicationidentity/org/apache/jdo/tck/pc/company/package-standard.orm (original)
>+++ db/jdo/trunk/tck20/src/orm/applicationidentity/org/apache/jdo/tck/pc/company/package-standard.orm Fri Mar  3 12:08:34 2006
>@@ -162,5 +162,159 @@
>                 <element column="MEMBER"/>
>             </field>
>         </class>
>+
>+        <interface name="ICompany" table="companies">
>+            <property name="companyid" column="ID"/>
>+            <property name="name" column="NAME">
>+              <column name="NAME" sql-type="VARCHAR"/>
>+            </property>
>+            <property name="founded" column="FOUNDEDDATE"/>
>+            <property name="address">
>+                <embedded null-indicator-column="COUNTRY">
>+                    <property name="addrid" column="ADDRID"/>
>+                    <property name="street" column="STREET"/>
>+                    <property name="city" column="CITY"/>
>+                    <property name="state" column="STATE"/>
>+                    <property name="zipcode" column="ZIPCODE"/>
>+                    <property name="country" column="COUNTRY"/>
>+                </embedded>
>+            </property>
>+            <property name="departments" mapped-by="company"/>
>+        </interface>
>+
>+        <interface name="IDepartment" table="departments">
>+            <property name="deptid" column="ID"/>
>+            <property name="name" column="NAME"/>
>+            <property name="company" column="COMPANYID"/>
>+            <property name="employees" mapped-by="department"/>
>+            <property name="fundedEmps" mapped-by="fundingDept"/>
>+            <property name="employeeOfTheMonth" column="EMP_OF_THE_MONTH"/>
>+        </interface>
>+
>+        <interface name="IPartTimeEmployee">
>+            <inheritance strategy="superclass-table"/>
>+            <property name="wage" column="WAGE"/>
>+        </interface>
>+
>+        <interface name="IFullTimeEmployee">
>+            <inheritance strategy="superclass-table"/>
>+            <property name="salary" column="SALARY"/>
>+        </interface>
>+
>+        <interface name="IEmployee">
>+            <inheritance strategy="superclass-table"/>
>+            <property name="hiredate" column="HIREDATE"/>
>+            <property name="weeklyhours" column="WEEKLYHOURS"/>
>+            <property name="dentalInsurance" mapped-by="employee"/>
>+            <property name="medicalInsurance" mapped-by="employee"/>
>+            <property name="department" column="DEPARTMENT">
>+                        <foreign-key/>
>+            </property>
>+            <property name="fundingDept" column="FUNDINGDEPT">
>+                        <foreign-key/>
>+            </property>
>+            <property name="manager" column="MANAGER">
>+                        <foreign-key/>
>+            </property>
>+            <property name="mentor" column="MENTOR">
>+                        <foreign-key/>
>+            </property>
>+            <property name="protege" mapped-by="mentor"/>
>+            <property name="hradvisor" column="HRADVISOR">
>+                        <foreign-key/>
>+            </property>
>+            <property name="reviewedProjects" mapped-by="reviewers">
>+            </property>
>+            <property name="projects" mapped-by="members"/>
>+            <property name="team" mapped-by="manager"/>
>+            <property name="hradvisees" mapped-by="hradvisor"/>
>+        </interface>
>+
>+        <interface name="IPerson" table="persons">
>+            <inheritance strategy="new-table">
>+                <discriminator strategy="class-name" column="DISCRIMINATOR"
>+                    indexed="true"/>
>+            </inheritance>
>+            <property name="personid" column="PERSONID"/>
>+            <property name="firstname" column="FIRSTNAME"/>
>+            <property name="lastname" column="LASTNAME"/>
>+            <property name="middlename">
>+              <column name="MIDDLENAME" allows-null="true"/>
>+            </property>
>+            <property name="address">
>+                <embedded null-indicator-column="COUNTRY">
>+                    <property name="addrid">
>+                      <column name="ADDRID" allows-null="true"/>
>+                    </property>
>+                    <property name="street">
>+                      <column name="STREET" allows-null="true"/>
>+                    </property>
>+                    <property name="city">
>+                      <column name="CITY" allows-null="true"/>
>+                    </property>
>+                    <property name="state">
>+                      <column name="STATE" allows-null="true"/>
>+                    </property>
>+                    <property name="zipcode">
>+                      <column name="ZIPCODE" allows-null="true"/>
>+                    </property>
>+                    <property name="country">
>+                      <column name="COUNTRY" allows-null="true"/>
>+                    </property>
>+                </embedded>
>+            </property>
>+            <property name="phoneNumbers" table="employee_phoneno_type" >
>+                <join column="EMPID"/>
>+                <key column="TYPE"/>
>+                <value column="PHONENO"/>
>+            </property>
>+            <query name="packageORM">
>+                SELECT FROM org.apache.jdo.tck.pc.company.Person
>+                WHERE personid > 2
>+            </query>
>+        </interface>
>+
>+        <interface name="IInsurance" table="insuranceplans">
>+            <inheritance strategy="new-table">
>+                <discriminator strategy="class-name" column="DISCRIMINATOR">
>+                    <index name="INS_DISCRIMINATOR_INDEX" unique="false"/>
>+                </discriminator>
>+            </inheritance>
>+            <property name="insid" column="INSID"/>
>+            <property name="carrier" column="CARRIER"/>
>+            <property name="employee" column="EMPLOYEE">
>+                 <foreign-key/>
>+            </property>
>+        </interface>
>+
>+        <interface name="IDentalInsurance">
>+            <inheritance strategy="superclass-table"/>
>+            <property name="lifetimeOrthoBenefit" column="LIFETIME_ORTHO_BENEFIT"/>
>+        </interface>
>+
>+        <interface name="IMedicalInsurance">
>+            <inheritance strategy="superclass-table"/>
>+            <property name="planType" column="PLANTYPE"/>
>+        </interface>
>+
>+        <interface name="IProject" table="projects">
>+            <property name="projid" column="PROJID"/>
>+            <property name="name" column="NAME"/>
>+            <property name="budget">
>+               <column name="BUDGET" jdbc-type="DECIMAL" length="11" scale="2"/>
>+            </property>
>+            <property name="reviewers" table="project_reviewer">
>+                <join column="PROJID">
>+                    <foreign-key name="PR_PROJ_FK"/>
>+                </join>
>+                <element column="REVIEWER">
>+                    <foreign-key name="PR_REV_FK"/>
>+                </element>
>+            </property>
>+            <property name="members" table="project_member">
>+                <join column="PROJID"/>
>+                <element column="MEMBER"/>
>+            </property>
>+        </interface>
>     </package>
> </orm>
>
>Modified: db/jdo/trunk/tck20/src/orm/datastoreidentity/org/apache/jdo/tck/pc/company/package-standard.orm
>URL: http://svn.apache.org/viewcvs/db/jdo/trunk/tck20/src/orm/datastoreidentity/org/apache/jdo/tck/pc/company/package-standard.orm?rev=382920&r1=382919&r2=382920&view=diff
>==============================================================================
>--- db/jdo/trunk/tck20/src/orm/datastoreidentity/org/apache/jdo/tck/pc/company/package-standard.orm (original)
>+++ db/jdo/trunk/tck20/src/orm/datastoreidentity/org/apache/jdo/tck/pc/company/package-standard.orm Fri Mar  3 12:08:34 2006
>@@ -165,5 +165,165 @@
>                 <element column="MEMBER"/>
>             </field>
>         </class>
>+
>+        <interface name="ICompany" table="companies">
>+            <datastore-identity strategy="identity" column="DATASTORE_IDENTITY"/>
>+            <property name="companyid" column="ID"/>
>+            <property name="name" column="NAME">
>+              <column name="NAME" sql-type="VARCHAR"/>
>+            </property>
>+            <property name="founded" column="FOUNDEDDATE"/>
>+            <property name="address">
>+                <embedded null-indicator-column="COUNTRY">
>+                    <property name="addrid" column="ADDRID"/>
>+                    <property name="street" column="STREET"/>
>+                    <property name="city" column="CITY"/>
>+                    <property name="state" column="STATE"/>
>+                    <property name="zipcode" column="ZIPCODE"/>
>+                    <property name="country" column="COUNTRY"/>
>+                </embedded>
>+            </property>
>+            <property name="departments" mapped-by="company"/>
>+        </interface>
>+
>+        <interface name="IDepartment" table="departments">
>+            <datastore-identity strategy="identity" column="DATASTORE_IDENTITY"/>
>+            <property name="deptid" column="ID"/>
>+            <property name="name" column="NAME"/>
>+            <property name="company" column="COMPANYID"/>
>+            <property name="employees" mapped-by="department"/>
>+            <property name="fundedEmps" mapped-by="fundingDept"/>
>+            <property name="employeeOfTheMonth" column="EMP_OF_THE_MONTH"/>
>+        </interface>
>+
>+        <interface name="IPartTimeEmployee">
>+            <inheritance strategy="superclass-table"/>
>+            <property name="wage" column="WAGE"/>
>+        </interface>
>+
>+        <interface name="IFullTimeEmployee">
>+            <inheritance strategy="superclass-table"/>
>+            <property name="salary" column="SALARY"/>
>+        </interface>
>+
>+        <interface name="IEmployee">
>+            <inheritance strategy="superclass-table"/>
>+            <property name="hiredate" column="HIREDATE"/>
>+            <property name="weeklyhours" column="WEEKLYHOURS"/>
>+            <property name="dentalInsurance" mapped-by="employee"/>
>+            <property name="medicalInsurance" mapped-by="employee"/>
>+            <property name="department" column="DEPARTMENT">
>+                        <foreign-key/>
>+            </property>
>+            <property name="fundingDept" column="FUNDINGDEPT">
>+                        <foreign-key/>
>+            </property>
>+            <property name="manager" column="MANAGER">
>+                        <foreign-key/>
>+            </property>
>+            <property name="mentor" column="MENTOR">
>+                        <foreign-key/>
>+            </property>
>+            <property name="protege" mapped-by="mentor"/>
>+            <property name="hradvisor" column="HRADVISOR">
>+                        <foreign-key/>
>+            </property>
>+            <property name="reviewedProjects" mapped-by="reviewers">
>+            </property>
>+            <property name="projects" mapped-by="members"/>
>+            <property name="team" mapped-by="manager"/>
>+            <property name="hradvisees" mapped-by="hradvisor"/>
>+        </interface>
>+
>+        <interface name="IPerson" table="persons">
>+            <datastore-identity strategy="identity" column="DATASTORE_IDENTITY"/>
>+            <inheritance strategy="new-table">
>+                <discriminator strategy="class-name" column="DISCRIMINATOR"
>+                    indexed="true"/>
>+            </inheritance>
>+            <property name="personid" column="PERSONID"/>
>+            <property name="firstname" column="FIRSTNAME"/>
>+            <property name="lastname" column="LASTNAME"/>
>+            <property name="middlename">
>+              <column name="MIDDLENAME" allows-null="true"/>
>+            </property>
>+            <property name="address">
>+                <embedded null-indicator-column="COUNTRY">
>+                    <property name="addrid">
>+                      <column name="ADDRID" allows-null="true"/>
>+                    </property>
>+                    <property name="street">
>+                      <column name="STREET" allows-null="true"/>
>+                    </property>
>+                    <property name="city">
>+                      <column name="CITY" allows-null="true"/>
>+                    </property>
>+                    <property name="state">
>+                      <column name="STATE" allows-null="true"/>
>+                    </property>
>+                    <property name="zipcode">
>+                      <column name="ZIPCODE" allows-null="true"/>
>+                    </property>
>+                    <property name="country">
>+                      <column name="COUNTRY" allows-null="true"/>
>+                    </property>
>+                </embedded>
>+            </property>
>+            <property name="phoneNumbers" table="employee_phoneno_type" >
>+                <join column="EMPID"/>
>+                <key column="TYPE"/>
>+                <value column="PHONENO"/>
>+            </property>
>+            <query name="packageORM">
>+                SELECT FROM org.apache.jdo.tck.pc.company.Person
>+                WHERE personid > 2
>+            </query>
>+        </interface>
>+
>+        <interface name="IInsurance" table="insuranceplans">
>+            <datastore-identity strategy="identity" column="DATASTORE_IDENTITY"/>
>+            <inheritance strategy="new-table">
>+                <discriminator strategy="class-name" column="DISCRIMINATOR">
>+                    <index name="INS_DISCRIMINATOR_INDEX" unique="false"/>
>+                </discriminator>
>+            </inheritance>
>+            <property name="insid" column="INSID"/>
>+            <property name="carrier" column="CARRIER"/>
>+            <property name="employee" column="EMPLOYEE">
>+                 <foreign-key/>
>+            </property>
>+        </interface>
>+
>+        <interface name="IDentalInsurance">
>+            <inheritance strategy="superclass-table"/>
>+            <property name="lifetimeOrthoBenefit" column="LIFETIME_ORTHO_BENEFIT"/>
>+        </interface>
>+
>+        <interface name="IMedicalInsurance">
>+            <inheritance strategy="superclass-table"/>
>+            <property name="planType" column="PLANTYPE"/>
>+        </interface>
>+
>+        <interface name="IProject" table="projects">
>+            <datastore-identity strategy="identity" column="DATASTORE_IDENTITY"/>
>+            <property name="projid" column="PROJID"/>
>+            <property name="name" column="NAME"/>
>+            <property name="budget">
>+               <column name="BUDGET" jdbc-type="DECIMAL" length="11" scale="2"/>
>+            </property>
>+            <property name="reviewers" table="project_reviewer">
>+                <join column="PROJID">
>+                    <foreign-key name="PR_PROJ_FK"/>
>+                </join>
>+                <element column="REVIEWER">
>+                    <foreign-key name="PR_REV_FK"/>
>+                </element>
>+            </property>
>+            <property name="members" table="project_member">
>+                <join column="PROJID"/>
>+                <element column="MEMBER"/>
>+            </property>
>+        </interface>
>+
>     </package>
> </orm>
>
>  
>


-- 
Michael Bouschen		Tech@Spree Engineering GmbH
mailto:mbo.tech@spree.de	http://www.tech.spree.de/
Tel.:++49/30/235 520-33		Buelowstr. 66			
Fax.:++49/30/2175 2012		D-10783 Berlin