> > > I think the additional complexity (and things which can go wrong) isn't > > worth the small advantage of less classes on the users class path. > The primary reason is to have proper modularity, out of which follow other things. The CLI does not belong to the library, and this should be reflected in the structure, to avoid, for example that CLI classes are by chance used somewhere in the library. For example, while working in this, I found the duplicated procedure. Proper code modularization makes one aware of such things.
James, thank you for input! > I kinda agree with you. I download the source frequently and mainly use > the classes as libraries; I'm curious - it always interesting to know the workflow of others, may be it is more efficient. I also use sources. I have a development source (or my experimental branch) and I do "mvn package" and unpack the release into the new folder, then switch OPENNLP_HOME to it and I'm on another version. This also enables immediate testing whether there is a new artifact missing in the release, or badly packaged jars or files which are not committed. Can you elaborate on your process, may be it is more efficient? however, I really need the CLI stuff to train > and test the models that I use. Separating them would complicate the release Can you elaborate, how exactly having CLI module will complicate the release? Would it increase the number of files released? No. Would a developer have to enter one more command to make a release? No. Anything else I'm not aware of? > and cause more issues; Please, can you elaborate on this too? May be there is something I don't know. Which issues this can cause? since, many of the examples that show how it is used is in the CLI interfaces. A good point. Examples should be also kept out of the library. The depend on the library, and accompany it, but they are not part of it. > The examples in the classes > themselves are being deprecated soon. > +1 I also wanted to get rid of "mains" in the classes. It is a library after all, it should not contains such things. Aliaksandr
