Proposed New Structure (starter for 10)

[email protected] (Phillip Lord) Fri, 14 Aug 2015 17:51:52 +0100
Newsgroups gmane.emacs.jdee.devel
Message-ID <[email protected]>
So, I wanted to put some meat onto the bone of my proposed new
structure for JDEE.

It doesn't work yet, of course, but I think that it can in a relatively
short space of time.

https://github.com/phillord/jde-with-clojure-backend

The four components are:

jde -- this will be the Java centric major mode. It will involve NO JVM
interaction and not depend on any of the other parts. The "minimal
viable product" here is a ELPA packaged major mode that is a child of
Java mode and adds no functionality.

jde-interactive (crappy name, sorry) -- a minor mode which will be
active once the JVM (bsh interpreter equivalent) has been started and is
running. In the short term, this will have a dependency on cider, but
eventually this may just become a dependency on nrepl-client.el. I say
may, because, I think quite a bit of the cider functionality (like the
inspector) is JVM centric and entirely relevant.

The MVP here is to use maven inside a project to launch an nrepl, and
then to invoke a call to get the version number of the jde-nrepl
middleware and check that it is consistent with the version of jde-interactive.

jde-nrepl -- this is the nrepl middleware that provides all the backend
functionality, like class look up and the like. The MVP here is to
install some middleware into a nrepl, which returns a version map for
checking my jde-interactive, and which is packaged as a maven dependency
on clojars.

jdee-sample -- this is a sample project. Requirements in the short term
are that the project depend on jde-nrepl and
https://github.com/talios/clojure-maven-plugin to provide the nrepl
functionality we need. Typing "maven jde:nrepl" or equivalent should
result in a nrepl session.

MVP having a packaged jde-interactive that can install, that starts when
we open "App.java" in jdee-sample, and which can then invoke a method of
the class object coming from App.java.

In the long term, I would expect that all four of these would be
separate repos.


That's the idea. The lisp packaging already works (as you can see form
the dist directories that I should not have checked in). Most of the
rest can be stolen from cider.

Thoughts?

Phil

------------------------------------------------------------------------------