[ 
https://issues.apache.org/jira/browse/OPENNLP-776?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15424312#comment-15424312
 ] 

Joern Kottmann edited comment on OPENNLP-776 at 8/17/16 11:22 AM:
------------------------------------------------------------------

I would like to avoid adding the no-arg constructors since they are not needed. 
Your Spark use case should work if we just make the BaseModel implement  
java.io.Serializable. Should we do that? 

You don't need setters for a serializable object. It is possible to serialize 
an immutable object in Java for example.

Have a look here at 1.10:
https://docs.oracle.com/javase/7/docs/platform/serialization/spec/serial-arch.html#4539




was (Author: joern):
I would like to avoid adding the no-arg constructors since they are not needed. 
Your Spark use case should work if we just make the BaseModel implement  
java.io.Serializable. Should we do that? 

You don't need setters for a serializable object. It is possible to serialize 
an immutable object in Java.

Have a look here at 1.10:
https://docs.oracle.com/javase/7/docs/platform/serialization/spec/serial-arch.html



> Model Objects should be Serializable
> ------------------------------------
>
>                 Key: OPENNLP-776
>                 URL: https://issues.apache.org/jira/browse/OPENNLP-776
>             Project: OpenNLP
>          Issue Type: Improvement
>    Affects Versions: tools-1.5.3
>            Reporter: Tristan Nixon
>            Priority: Minor
>              Labels: features, patch
>             Fix For: 1.6.1
>
>         Attachments: externalizable.patch
>
>
> Marking model objects (ParserModel, SentenceModel, etc.) as Serializable can 
> enable a number of features offered by other Java frameworks (my own use case 
> is described below). You've already got a good mechanism for 
> (de-)serialization, but it cannot be leveraged by other frameworks without 
> implementing the Serializable interface. I'm attaching a patch to BaseModel 
> that implements the methods in the java.io.Externalizable interface as 
> wrappers to the existing (de-)serialization methods. This simple change can 
> open up a number of useful opportunities for integrating OpenNLP with other 
> frameworks.
> My use case is that I am incorporating OpenNLP into a Spark application. This 
> requires that components of the system be distributed between the driver and 
> worker nodes within the cluster. In order to do this, Spark uses Java 
> serialization API to transmit objects between nodes. This is far more 
> efficient than instantiating models on each node independently.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to