db-jdo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Craig L Russell <Craig.Russ...@Sun.COM>
Subject Re: TCK completeness interface
Date Thu, 06 Apr 2006 14:40:42 GMT
Hi Michael,

I haven't started on this. If possible, could you file a JIRA and  
attach your patch to it.

Without Erik's changes, I can't test it either.

Erik,

Is there a way you can make the JPOX jar file available?

Thanks,

Craig

On Apr 6, 2006, at 7:34 AM, Michael Bouschen wrote:

> Hi Craig,
>
> I think this issue appears at two different places:
>
> (1) Method compare(Object o1, Object o2) in all company classes  
> delegates to the compareTo method and casts the first argument to  
> the class instead of the interface:
>     public int compare(Object o1, Object o2) {
>         return ((Insurance)o1).compareTo(o2);
>     }
> This requires adding the compareTo methods to the interfaces.
>
> (2) Method deepCompareFields in Department and FullTimeEmployee  
> cast the argument to the class instead of the interface:
>     public boolean deepCompareFields(Object other,
>                                      EqualityHelper helper) {
>         Department otherDept = (Department)other;
>
> I understood you already started to fix this, correct? Anyway, you  
> find my changed attached. They compile, but I could not test it.
>
> Regards Michael
>
>> Hi Erik,
>> Great news. If you are this far, then you have succeeded in  
>> storing  and retrieving instances to the database. I'll have a fix  
>> for you  shortly.
>> Craig
>> On Apr 6, 2006, at 4:06 AM, Erik Bengtson wrote:
>>> Craig,
>>>
>>> The "null" issue is over. It was a reachability issue where JPOX   
>>> nullify all
>>> fields before deleting from the database.
>>>
>>> Now there is another issue in the CompletenessTest.test method   
>>> where it falls
>>> the expected object tree back to the concrete classes. It  
>>> compares  a concrete
>>> object tree to the tree of objects generated by JPOX.
>>>
>>> The code has a cast to Department and invoke to compareTo, and  
>>> this  code will
>>> not work for interfaces.
>>>
>>>     [java] 1) test(org.apache.jdo.tck.mapping.CompletenessTest)  
>>> java.lang.ClassCa
>>> stException: org.apache.jdo.tck.pc.company.IDepartmentImpl
>>>     [java]      at  
>>> org.apache.jdo.tck.pc.company.Department.compare (Department.j
>>> ava:297)
>>>     [java]      at java.util.Arrays.mergeSort(Arrays.java:1284)
>>>     [java]      at java.util.Arrays.sort(Arrays.java:1223)
>>>     [java]      at java.util.Collections.sort(Collections.java:159)
>>>     [java]      at  
>>> org.apache.jdo.tck.util.EqualityHelper.deepEquals (EqualityHel
>>> per.java:477)
>>>     [java]      at   
>>> org.apache.jdo.tck.pc.company.Company.deepCompareFields(Compa
>>> ny.java:224)
>>>     [java]      at  
>>> org.apache.jdo.tck.mapping.CompletenessTest.test (Completeness
>>> Test.java:108)
>>>
>>>
>> Craig Russell
>> Architect, Sun Java Enterprise System http://java.sun.com/products/ 
>> jdo
>> 408 276-5638 mailto:Craig.Russell@sun.com
>> P.S. A good JDO? O, Gasp!
>
>
> -- 
> 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			
> Index: src/java/org/apache/jdo/tck/pc/company/IInsurance.java
> ===================================================================
> --- src/java/org/apache/jdo/tck/pc/company/IInsurance.java	 
> (revision 391925)
> +++ src/java/org/apache/jdo/tck/pc/company/IInsurance.java	(working  
> copy)
> @@ -30,4 +30,6 @@
>      void setInsid(long insid);
>      void setCarrier(String carrier);
>      void setEmployee(IEmployee employee);
> +
> +    public int compareTo(Object o);
>  }
> Index: src/java/org/apache/jdo/tck/pc/company/Department.java
> ===================================================================
> --- src/java/org/apache/jdo/tck/pc/company/Department.java	 
> (revision 391925)
> +++ src/java/org/apache/jdo/tck/pc/company/Department.java	(working  
> copy)
> @@ -246,7 +246,7 @@
>       */
>      public boolean deepCompareFields(Object other,
>                                       EqualityHelper helper) {
> -        Department otherDept = (Department)other;
> +        IDepartment otherDept = (IDepartment)other;
>          String where = "Department<" + deptid + ">";
>          return
>              helper.equals(deptid, otherDept.getDeptid(), where +  
> ".deptid") &
> @@ -294,7 +294,7 @@
>       * Compare two instances. This is a method in Comparator.
>       */
>      public int compare(Object o1, Object o2) {
> -        return ((Department)o1).compareTo(o2);
> +        return ((IDepartment)o1).compareTo(o2);
>      }
>
>      /**
> Index: src/java/org/apache/jdo/tck/pc/company/Company.java
> ===================================================================
> --- src/java/org/apache/jdo/tck/pc/company/Company.java	(revision  
> 391925)
> +++ src/java/org/apache/jdo/tck/pc/company/Company.java	(working copy)
> @@ -233,7 +233,7 @@
>       * Compare two instances. This is a method in Comparator.
>       */
>      public int compare(Object o1, Object o2) {
> -        return ((Company)o1).compareTo(o2);
> +        return ((ICompany)o1).compareTo(o2);
>      }
>
>      /**
> Index: src/java/org/apache/jdo/tck/pc/company/Person.java
> ===================================================================
> --- src/java/org/apache/jdo/tck/pc/company/Person.java	(revision  
> 391925)
> +++ src/java/org/apache/jdo/tck/pc/company/Person.java	(working copy)
> @@ -293,7 +293,7 @@
>       * Compare two instances. This is a method in Comparator.
>       */
>      public int compare(Object o1, Object o2) {
> -        return ((Person)o1).compareTo(o2);
> +        return ((IPerson)o1).compareTo(o2);
>      }
>
>     /**
> Index: src/java/org/apache/jdo/tck/pc/company/Project.java
> ===================================================================
> --- src/java/org/apache/jdo/tck/pc/company/Project.java	(revision  
> 391925)
> +++ src/java/org/apache/jdo/tck/pc/company/Project.java	(working copy)
> @@ -233,7 +233,7 @@
>       * Compare two instances. This is a method in Comparator.
>       */
>      public int compare(Object o1, Object o2) {
> -        return ((Project)o1).compareTo(o2);
> +        return ((IProject)o1).compareTo(o2);
>      }
>
>      /**
> Index: src/java/org/apache/jdo/tck/pc/company/IDepartment.java
> ===================================================================
> --- src/java/org/apache/jdo/tck/pc/company/IDepartment.java	 
> (revision 391925)
> +++ src/java/org/apache/jdo/tck/pc/company/IDepartment.java	 
> (working copy)
> @@ -39,4 +39,5 @@
>      void setEmployees(Set employees);
>      void setFundedEmps(Set employees);
>
> +    public int compareTo(Object o);
>  }
> Index: src/java/org/apache/jdo/tck/pc/company/ICompany.java
> ===================================================================
> --- src/java/org/apache/jdo/tck/pc/company/ICompany.java	(revision  
> 391925)
> +++ src/java/org/apache/jdo/tck/pc/company/ICompany.java	(working  
> copy)
> @@ -37,4 +37,6 @@
>      void setDepartments(Set depts);
>      void setFounded(Date date);
>      void setName(String string);
> +
> +    public int compareTo(Object o);
>  }
> Index: src/java/org/apache/jdo/tck/pc/company/IPerson.java
> ===================================================================
> --- src/java/org/apache/jdo/tck/pc/company/IPerson.java	(revision  
> 391925)
> +++ src/java/org/apache/jdo/tck/pc/company/IPerson.java	(working copy)
> @@ -42,4 +42,5 @@
>      void setBirthdate(Date birthdate);
>      void setPhoneNumbers(Map phoneNumbers);
>
> +    public int compareTo(Object o);
>  }
> Index: src/java/org/apache/jdo/tck/pc/company/IProject.java
> ===================================================================
> --- src/java/org/apache/jdo/tck/pc/company/IProject.java	(revision  
> 391925)
> +++ src/java/org/apache/jdo/tck/pc/company/IProject.java	(working  
> copy)
> @@ -36,5 +36,6 @@
>      void setBudget(BigDecimal budget);
>      void setReviewers(Set reviewers);
>      void setMembers(Set employees);
> -
> +
> +    public int compareTo(Object o);
>  }
> Index: src/java/org/apache/jdo/tck/pc/company/FullTimeEmployee.java
> ===================================================================
> --- src/java/org/apache/jdo/tck/pc/company/FullTimeEmployee.java	 
> (revision 391925)
> +++ src/java/org/apache/jdo/tck/pc/company/FullTimeEmployee.java	 
> (working copy)
> @@ -117,7 +117,7 @@
>       */
>      public boolean deepCompareFields(Object other,
>                                       EqualityHelper helper) {
> -        FullTimeEmployee otherEmp = (FullTimeEmployee)other;
> +        IFullTimeEmployee otherEmp = (IFullTimeEmployee)other;
>          String where = "FullTimeEmployee<" + getPersonid() + ">";
>          return super.deepCompareFields(otherEmp, helper) &
>              helper.closeEnough(salary, otherEmp.getSalary(), where  
> + ".salary");
> Index: src/java/org/apache/jdo/tck/pc/company/Address.java
> ===================================================================
> --- src/java/org/apache/jdo/tck/pc/company/Address.java	(revision  
> 391925)
> +++ src/java/org/apache/jdo/tck/pc/company/Address.java	(working copy)
> @@ -209,7 +209,7 @@
>       * Compare two instances. This is a method in Comparator.
>       */
>      public int compare(Object o1, Object o2) {
> -        return ((Address)o1).compareTo(o2);
> +        return ((IAddress)o1).compareTo(o2);
>      }
>
>      /**
> Index: src/java/org/apache/jdo/tck/pc/company/Insurance.java
> ===================================================================
> --- src/java/org/apache/jdo/tck/pc/company/Insurance.java	(revision  
> 391925)
> +++ src/java/org/apache/jdo/tck/pc/company/Insurance.java	(working  
> copy)
> @@ -153,7 +153,7 @@
>       * Compare two instances. This is a method in Comparator.
>       */
>      public int compare(Object o1, Object o2) {
> -        return ((Insurance)o1).compareTo(o2);
> +        return ((IInsurance)o1).compareTo(o2);
>      }
>
>      /**
> Index: src/java/org/apache/jdo/tck/pc/company/IAddress.java
> ===================================================================
> --- src/java/org/apache/jdo/tck/pc/company/IAddress.java	(revision  
> 391925)
> +++ src/java/org/apache/jdo/tck/pc/company/IAddress.java	(working  
> copy)
> @@ -36,4 +36,6 @@
>      void setState(String state);
>      void setZipcode(String zipcode);
>      void setCountry(String country);
> +
> +    public int compareTo(Object o);
>  }

Craig Russell
Architect, Sun Java Enterprise System http://java.sun.com/products/jdo
408 276-5638 mailto:Craig.Russell@sun.com
P.S. A good JDO? O, Gasp!


Mime
View raw message