On 6/1/06, Edward Yakop <[EMAIL PROTECTED]> wrote:
Hi,
A small patch is required for model versioning to work for wicket in
OSGI environment.
Case:
The [ClassNotFoundException] is thrown when Objects#cloneModel or
Objects#cloneObject tries to clone objects that the class is not
resolveable by the Class#forName (used by ObjectInputStream) .
Possible solution:
<code fileName="wicket/util/lang/Objects.java">
package wicket.util.lang;
public abstract class Objects
{
...
private static final class ReplacedObjectInputStream extends ObjectInputStream
{
....
// Note:
// This overide is required to resolve classess inside in different
bundle, i.e .
// The classess can be resolved by OSGI classresolver implementation
protected Class resolveClass(ObjectStreamClass desc)
throws IOException, ClassNotFoundException
{
String className = desc.getName();
Application application = Application.get();
IApplicationSettings applicationSettings =
application.getApplicationSettings();
IClassResolver classResolver = applicationSettings.getClassResolver();
// TODO: How to deal with classResolver that throw RuntimeException?
Class candidate = classResolver.resolveClass(className);
if( candidate == null )
{
candidate = super.resolveClass ( desc );
}
return candidate;
}
}
....
}
</code>
This modification does not break wicket testcases :)
Regards,
Edward Yakop
-------------------------------------------------------
All the advantages of Linux Managed Hosting--Without the Cost and Risk!
Fully trained technicians. The highest number of Red Hat certifications in
the hosting industry. Fanatical Support. Click to learn more
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=107521&bid=248729&dat=121642
_______________________________________________
Wicket-develop mailing list
Wicket-develop@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wicket-develop