[
https://issues.apache.org/jira/browse/OPENNLP-776?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15412332#comment-15412332
]
Tristan Nixon commented on OPENNLP-776:
---------------------------------------
This pattern is quite common in frameworks that manage object state for you.
Classes are instantiated via a no-arg constructor, and then state is set via
setters and/or some specialized de-serialization method.
Many different serialization frameworks work this way, such as JAXB, Jackson,
etc. Also ORM frameworks (hibernate, JPA), IOC frameworks (Spring, CDI), and
many others.
> 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)