Dave wrote:
We've now got the Roller JPA implementation in the sandbox passing
100% of the JUnit "business" tests and I'm able to run the Roller Web
UI via JPA now.

However, there still couple of issues/problems:

1) Currently, not configured via JNDI datasource but instead by property file.
I think this is doable. Can you please give some more details on what is the expectation?

2) Need schema change for weblogcategory table to allow websiteid to be null and I'm reluctant to put commit this change into the Roller schema as websiteid
is required for categories.
There is a circular dependency between WebsiteData and WeblogCategoryData.
  This is due to following ManyToOne relationships
  Class WebsiteData  {
    ....
    @ManyToOne WeblogCategoryData bloggerCategory
    @ManyToOne WeblogCategoryData defaultCategory
    ....
   }

  Class WeblogCategoryData {
    ....
    @ManyToOne WebsiteData website
    ....
   }
Toplink puts WeblogCategoryData above WebsiteData in commit order hence a shallow insert (that is website set as null at insert and updated after insert of corresponding WebsiteData) is performed while inserting an instance of WeblogCategoryData. This requires to change the table definition for weblogcategory be changed to have column websiteid as nullable. I have not yet gone through hibernate code to see how it handles the situation but I think many other providers also might run into the same issue as toplink.


3) Separation of Planet code in apps/planet makes running Planet tests against
the JPA backend difficult so I haven't run the PlanetManagerTest yet.

4) The Roller UI comes up but sanity testing revealed these problems:
  - Weblog edit: Missing categories in weblog edit page
  - Comment mgmt: Marking comment as spam fails
  - Categories: remvoing category throws exception
  - Planet config: access config page throws exception

5) There are a number of TODO markers in the implementation that concern me,
especially the ones that say "TODO: handle offset and length".
This particular comments must be coming from DatamapperPlanetManagerImpl. As we discussed, we had stopped maintaining it couple of weeks back. It should be easy to implement the TODOs. There should be couple of more TODO items in Datamapper*Impl classes. They are marked as "//TODO: DatamapperPort". Some of them are observations that I made about improving the code while porting. I needed input from one of you on whether the optimization makes sense for roller. We will need to go over them individually.

Regards,
Mitesh
I'll keep testing and debugging items from #4. As I do that I'll add
new tests because those failures almost certainly indicate that we
don't have good enough test coverage.

To address item #3 I'd like to move the JPA/JDO code from the sandbox
and into the apps/planet/src directories.

Allen has two concerns about that move: 1) putting JPA/JDO
implementation under source will require developers to support two
backends and 2) putting JPA/JDO implementation under source implies
that we support JPA/JDO. To address those concerns, I'll change the
build process so that it specifically excludes the JPA/JDO code --
that way, those not interested in JPA/JDO can ignore the code and
since it's not distributed in Roller -- there's no question that we do
not support it.

Anybody have other objections to moving JPA/JDO code out of the sandbox?

Craig and Mitesh: Any comments/suggestions on the other items #1, #2 and #5?

- Dave

Reply via email to