Github user bzz commented on the issue:
https://github.com/apache/zeppelin/pull/1231
@onkarshedge
>> Initial idea the we discussed was that `BittorrentNotebookRepo`
encapsulates all the things that are required in order to get notebooks.
> Could you please elaborate this point.
Sure. The idea with P2P notebook storage implementation, be that Bittorrent
or Dat or any other protocol is to have:
- a self-contained implementation (that possibly can be extracted to maven
submodule later)
- of a single class, that `implements NotebookRepo` protocol
- and is pluggable, instead or on the side with current `VFSNotebookRepo`
(for now - pluggable though a simple configuration in `zeppelin-env.sh`, later
I can imagine that would be also possible though GUI)
In case only some parts of `VFSNotebookRepo` are required (not sure if that
is the case or not) - we can extract them to the _skeletal implementation_
`AbstractFileSystemNotebookRepo` and make `BittorrentNotebookRepo extends
AbstractFileSystemNotebookRepo`.
For more details on this approach to design object oriented architecture
please read infamous Joshua Bloch "Effective Java, 2nd edition" `Item18: Prefer
interfaces to abstract classes` p.93
-------
Waiting for the diagram of current architecture and code improvements
according to styleguide - please ping me and I'll be happy to make another pass
tomorrow.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---