Ticket #232 (new defect)
KaRMI should be compilable with jpc for automatic generation of marshaling routines
| Reported by: | hauma | Owned by: | hauma |
|---|---|---|---|
| Priority: | normal | Milestone: | JPlater |
| Component: | uka.transport | Version: | 1.09b |
| Severity: | normal | Keywords: | |
| Cc: |
Description
Currently, KaRMI with uka.transport is compiled in three phases. It is first compiled with javac. This requires to replace all declarations of the Transportable interface with java.io.Serializable. The resulting class files are read with the "transportc" retrofitting tool that generates code snippets with implementations of the marshaling methods, which are included into the original source code. In a third phase, the enriched source files are recompiled with javac to produce the transportable class files.
The procedure described above doese not work for classes with marshaling annotations as described in ticket:179 and ticket:231, because they are not understood by javac and therefore not included into the resulting class files. Even if this could be improved with Java 5 meta data annotations, a preliminary solution is to directly use jpc to translate the KaRMI classes which should become transportable. This is necessary, because some of the KaRMI classes depend on the annotations.
Attachments
Change History
comment:2 Changed 8 years ago by hauma
There are name clashes for clone() methods of KaRMI classes with automatically generated implementations of the Patchable interface when eagerly generating marshaling code for all serializable classes (see ticket:235).

Since KaRMI makes use of the Java 1.4 assert keyword, the resolution of this ticket heavily depends on ticket:221.